Commit 796c75d0 authored by Ying Xue's avatar Ying Xue Committed by David S. Miller
Browse files

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: default avatarYing Xue <>
Signed-off-by: default avatarPaul Gortmaker <>
Signed-off-by: default avatarDavid S. Miller <>
parent ae8509c4
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
#include "discover.h" #include "discover.h"
#include "config.h" #include "config.h"
#include <linux/pkt_sched.h>
/* /*
* Error message prefixes * Error message prefixes
*/ */
...@@ -1947,6 +1949,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ, ...@@ -1947,6 +1949,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ,
return; return;
skb_copy_to_linear_data(buf, msg, sizeof(l_ptr->proto_msg)); skb_copy_to_linear_data(buf, msg, sizeof(l_ptr->proto_msg));
buf->priority = TC_PRIO_CONTROL;
/* Defer message if bearer is already blocked */ /* Defer message if bearer is already blocked */
if (tipc_bearer_blocked(l_ptr->b_ptr)) { if (tipc_bearer_blocked(l_ptr->b_ptr)) {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment