summaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorRichard Alpe <richard.alpe@ericsson.com>2016-02-01 08:19:57 +0100
committerDavid S. Miller <davem@davemloft.net>2016-02-06 02:45:38 -0500
commit817298102b0bc936b08dfcc5fbcc2213157050f2 (patch)
treec434db2622b6f960a3594b08484336ba99580d72 /net/tipc
parentd01332f1acacc0cb43a61f4244dd2b846d4cd585 (diff)
downloadlinux-817298102b0bc936b08dfcc5fbcc2213157050f2.tar.bz2
tipc: fix link priority propagation
Currently link priority changes isn't handled for active links. In this patch we resolve this by changing our priority if the peer passes a valid priority in a state message. Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: Richard Alpe <richard.alpe@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/link.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index f15635391576..6f4a6d9b0149 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1458,6 +1458,12 @@ static int tipc_link_proto_rcv(struct tipc_link *l, struct sk_buff *skb,
if (in_range(peers_tol, TIPC_MIN_LINK_TOL, TIPC_MAX_LINK_TOL))
l->tolerance = peers_tol;
+ if (peers_prio && in_range(peers_prio, TIPC_MIN_LINK_PRI,
+ TIPC_MAX_LINK_PRI)) {
+ l->priority = peers_prio;
+ rc = tipc_link_fsm_evt(l, LINK_FAILURE_EVT);
+ }
+
l->silent_intv_cnt = 0;
l->stats.recv_states++;
if (msg_probe(hdr))