aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorYing Xue <ying.xue@windriver.com>2013-06-17 10:54:48 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-17 15:53:01 -0700
commit796c75d0d3ef13cd1df00779abb8b27edb630504 (patch)
tree28ab84ef30e3c6317dea99f4826e1a31d38795b2 /net/tipc
parenttipc: cosmetic realignment of function arguments (diff)
downloadlinux-dev-796c75d0d3ef13cd1df00779abb8b27edb630504.tar.xz
linux-dev-796c75d0d3ef13cd1df00779abb8b27edb630504.zip
tipc: enhance priority of link protocol packet
pfifo_fast is set as default traffic class queueing discipline. This queue has three so called "bands". Within each band, FIFO rules apply. However, as long as there are packets waiting in band 0, band 1 won't be processed. Now all kind of TIPC type packet priorities are never set, that is, their priorities are 0, so they are mapped to band 1 of pfifo_fast qdisc. But, especially during link congestion, if link protocol packet can be sent out as earlier as possible than other type of packets so that protocol packet can arrive at peer endpoint in time, the peer will timely reset its link timeout timer to keep the link alive. So enhancing the priority of link protocol packets can meet the specific demand to avoid unnecessary link reset due to a transient link congestion. Signed-off-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/link.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index b852c94a784e..b6de1aa059f4 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -41,6 +41,8 @@
#include "discover.h"
#include "config.h"
+#include <linux/pkt_sched.h>
+
/*
* Error message prefixes
*/
@@ -1947,6 +1949,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ,
return;
skb_copy_to_linear_data(buf, msg, sizeof(l_ptr->proto_msg));
+ buf->priority = TC_PRIO_CONTROL;
/* Defer message if bearer is already blocked */
if (tipc_bearer_blocked(l_ptr->b_ptr)) {