Commit f905730c authored by Allan Stephens's avatar Allan Stephens Committed by Paul Gortmaker

tipc: Allow use of buf_seqno() helper routine by unicast links

Migrates the buf_seqno() helper routine from broadcast link level to
unicast link level so that it can be used both types of TIPC links.
This is a cosmetic change only, and does not affect the operation of TIPC.
Signed-off-by: default avatarAllan Stephens <allan.stephens@windriver.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
parent 36559591
...@@ -115,11 +115,6 @@ static void tipc_nmap_diff(struct tipc_node_map *nm_a, ...@@ -115,11 +115,6 @@ static void tipc_nmap_diff(struct tipc_node_map *nm_a,
struct tipc_node_map *nm_b, struct tipc_node_map *nm_b,
struct tipc_node_map *nm_diff); struct tipc_node_map *nm_diff);
static u32 buf_seqno(struct sk_buff *buf)
{
return msg_seqno(buf_msg(buf));
}
static u32 bcbuf_acks(struct sk_buff *buf) static u32 bcbuf_acks(struct sk_buff *buf)
{ {
return (u32)(unsigned long)TIPC_SKB_CB(buf)->handle; return (u32)(unsigned long)TIPC_SKB_CB(buf)->handle;
......
...@@ -130,7 +130,7 @@ static void link_init_max_pkt(struct link *l_ptr) ...@@ -130,7 +130,7 @@ static void link_init_max_pkt(struct link *l_ptr)
static u32 link_next_sent(struct link *l_ptr) static u32 link_next_sent(struct link *l_ptr)
{ {
if (l_ptr->next_out) if (l_ptr->next_out)
return msg_seqno(buf_msg(l_ptr->next_out)); return buf_seqno(l_ptr->next_out);
return mod(l_ptr->next_out_no); return mod(l_ptr->next_out_no);
} }
...@@ -1354,7 +1354,7 @@ u32 tipc_link_push_packet(struct link *l_ptr) ...@@ -1354,7 +1354,7 @@ u32 tipc_link_push_packet(struct link *l_ptr)
if (r_q_size && buf) { if (r_q_size && buf) {
u32 last = lesser(mod(r_q_head + r_q_size), u32 last = lesser(mod(r_q_head + r_q_size),
link_last_sent(l_ptr)); link_last_sent(l_ptr));
u32 first = msg_seqno(buf_msg(buf)); u32 first = buf_seqno(buf);
while (buf && less(first, r_q_head)) { while (buf && less(first, r_q_head)) {
first = mod(first + 1); first = mod(first + 1);
...@@ -1403,7 +1403,7 @@ u32 tipc_link_push_packet(struct link *l_ptr) ...@@ -1403,7 +1403,7 @@ u32 tipc_link_push_packet(struct link *l_ptr)
if (buf) { if (buf) {
struct tipc_msg *msg = buf_msg(buf); struct tipc_msg *msg = buf_msg(buf);
u32 next = msg_seqno(msg); u32 next = msg_seqno(msg);
u32 first = msg_seqno(buf_msg(l_ptr->first_out)); u32 first = buf_seqno(l_ptr->first_out);
if (mod(next - first) < l_ptr->queue_limit[0]) { if (mod(next - first) < l_ptr->queue_limit[0]) {
msg_set_ack(msg, mod(l_ptr->next_in_no - 1)); msg_set_ack(msg, mod(l_ptr->next_in_no - 1));
...@@ -1558,7 +1558,7 @@ void tipc_link_retransmit(struct link *l_ptr, struct sk_buff *buf, ...@@ -1558,7 +1558,7 @@ void tipc_link_retransmit(struct link *l_ptr, struct sk_buff *buf,
} else { } else {
tipc_bearer_schedule(l_ptr->b_ptr, l_ptr); tipc_bearer_schedule(l_ptr->b_ptr, l_ptr);
l_ptr->stats.bearer_congs++; l_ptr->stats.bearer_congs++;
l_ptr->retransm_queue_head = msg_seqno(buf_msg(buf)); l_ptr->retransm_queue_head = buf_seqno(buf);
l_ptr->retransm_queue_size = retransmits; l_ptr->retransm_queue_size = retransmits;
return; return;
} }
...@@ -1579,7 +1579,7 @@ static struct sk_buff *link_insert_deferred_queue(struct link *l_ptr, ...@@ -1579,7 +1579,7 @@ static struct sk_buff *link_insert_deferred_queue(struct link *l_ptr,
if (l_ptr->oldest_deferred_in == NULL) if (l_ptr->oldest_deferred_in == NULL)
return buf; return buf;
seq_no = msg_seqno(buf_msg(l_ptr->oldest_deferred_in)); seq_no = buf_seqno(l_ptr->oldest_deferred_in);
if (seq_no == mod(l_ptr->next_in_no)) { if (seq_no == mod(l_ptr->next_in_no)) {
l_ptr->newest_deferred_in->next = buf; l_ptr->newest_deferred_in->next = buf;
buf = l_ptr->oldest_deferred_in; buf = l_ptr->oldest_deferred_in;
...@@ -1738,7 +1738,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *b_ptr) ...@@ -1738,7 +1738,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *b_ptr)
crs = l_ptr->first_out; crs = l_ptr->first_out;
while ((crs != l_ptr->next_out) && while ((crs != l_ptr->next_out) &&
less_eq(msg_seqno(buf_msg(crs)), ackd)) { less_eq(buf_seqno(crs), ackd)) {
struct sk_buff *next = crs->next; struct sk_buff *next = crs->next;
buf_discard(crs); buf_discard(crs);
...@@ -1861,7 +1861,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head, ...@@ -1861,7 +1861,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head,
{ {
struct sk_buff *prev = NULL; struct sk_buff *prev = NULL;
struct sk_buff *crs = *head; struct sk_buff *crs = *head;
u32 seq_no = msg_seqno(buf_msg(buf)); u32 seq_no = buf_seqno(buf);
buf->next = NULL; buf->next = NULL;
...@@ -1872,7 +1872,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head, ...@@ -1872,7 +1872,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head,
} }
/* Last ? */ /* Last ? */
if (less(msg_seqno(buf_msg(*tail)), seq_no)) { if (less(buf_seqno(*tail), seq_no)) {
(*tail)->next = buf; (*tail)->next = buf;
*tail = buf; *tail = buf;
return 1; return 1;
...@@ -1909,7 +1909,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head, ...@@ -1909,7 +1909,7 @@ u32 tipc_link_defer_pkt(struct sk_buff **head,
static void link_handle_out_of_seq_msg(struct link *l_ptr, static void link_handle_out_of_seq_msg(struct link *l_ptr,
struct sk_buff *buf) struct sk_buff *buf)
{ {
u32 seq_no = msg_seqno(buf_msg(buf)); u32 seq_no = buf_seqno(buf);
if (likely(msg_user(buf_msg(buf)) == LINK_PROTOCOL)) { if (likely(msg_user(buf_msg(buf)) == LINK_PROTOCOL)) {
link_recv_proto_msg(l_ptr, buf); link_recv_proto_msg(l_ptr, buf);
...@@ -1971,10 +1971,10 @@ void tipc_link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int probe_msg, ...@@ -1971,10 +1971,10 @@ void tipc_link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int probe_msg,
if (!tipc_link_is_up(l_ptr)) if (!tipc_link_is_up(l_ptr))
return; return;
if (l_ptr->next_out) if (l_ptr->next_out)
next_sent = msg_seqno(buf_msg(l_ptr->next_out)); next_sent = buf_seqno(l_ptr->next_out);
msg_set_next_sent(msg, next_sent); msg_set_next_sent(msg, next_sent);
if (l_ptr->oldest_deferred_in) { if (l_ptr->oldest_deferred_in) {
u32 rec = msg_seqno(buf_msg(l_ptr->oldest_deferred_in)); u32 rec = buf_seqno(l_ptr->oldest_deferred_in);
gap = mod(rec - mod(l_ptr->next_in_no)); gap = mod(rec - mod(l_ptr->next_in_no));
} }
msg_set_seq_gap(msg, gap); msg_set_seq_gap(msg, gap);
...@@ -2589,7 +2589,7 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb, ...@@ -2589,7 +2589,7 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
/* Is there an incomplete message waiting for this fragment? */ /* Is there an incomplete message waiting for this fragment? */
while (pbuf && ((msg_seqno(buf_msg(pbuf)) != long_msg_seq_no) || while (pbuf && ((buf_seqno(pbuf) != long_msg_seq_no) ||
(msg_orignode(fragm) != msg_orignode(buf_msg(pbuf))))) { (msg_orignode(fragm) != msg_orignode(buf_msg(pbuf))))) {
prev = pbuf; prev = pbuf;
pbuf = pbuf->next; pbuf = pbuf->next;
...@@ -3112,13 +3112,12 @@ static void link_print(struct link *l_ptr, const char *str) ...@@ -3112,13 +3112,12 @@ static void link_print(struct link *l_ptr, const char *str)
tipc_printf(buf, "NXI(%u):", mod(l_ptr->next_in_no)); tipc_printf(buf, "NXI(%u):", mod(l_ptr->next_in_no));
tipc_printf(buf, "SQUE"); tipc_printf(buf, "SQUE");
if (l_ptr->first_out) { if (l_ptr->first_out) {
tipc_printf(buf, "[%u..", msg_seqno(buf_msg(l_ptr->first_out))); tipc_printf(buf, "[%u..", buf_seqno(l_ptr->first_out));
if (l_ptr->next_out) if (l_ptr->next_out)
tipc_printf(buf, "%u..", tipc_printf(buf, "%u..", buf_seqno(l_ptr->next_out));
msg_seqno(buf_msg(l_ptr->next_out))); tipc_printf(buf, "%u]", buf_seqno(l_ptr->last_out));
tipc_printf(buf, "%u]", msg_seqno(buf_msg(l_ptr->last_out))); if ((mod(buf_seqno(l_ptr->last_out) -
if ((mod(msg_seqno(buf_msg(l_ptr->last_out)) - buf_seqno(l_ptr->first_out))
msg_seqno(buf_msg(l_ptr->first_out)))
!= (l_ptr->out_queue_size - 1)) || != (l_ptr->out_queue_size - 1)) ||
(l_ptr->last_out->next != NULL)) { (l_ptr->last_out->next != NULL)) {
tipc_printf(buf, "\nSend queue inconsistency\n"); tipc_printf(buf, "\nSend queue inconsistency\n");
...@@ -3130,8 +3129,8 @@ static void link_print(struct link *l_ptr, const char *str) ...@@ -3130,8 +3129,8 @@ static void link_print(struct link *l_ptr, const char *str)
tipc_printf(buf, "[]"); tipc_printf(buf, "[]");
tipc_printf(buf, "SQSIZ(%u)", l_ptr->out_queue_size); tipc_printf(buf, "SQSIZ(%u)", l_ptr->out_queue_size);
if (l_ptr->oldest_deferred_in) { if (l_ptr->oldest_deferred_in) {
u32 o = msg_seqno(buf_msg(l_ptr->oldest_deferred_in)); u32 o = buf_seqno(l_ptr->oldest_deferred_in);
u32 n = msg_seqno(buf_msg(l_ptr->newest_deferred_in)); u32 n = buf_seqno(l_ptr->newest_deferred_in);
tipc_printf(buf, ":RQUE[%u..%u]", o, n); tipc_printf(buf, ":RQUE[%u..%u]", o, n);
if (l_ptr->deferred_inqueue_sz != mod((n + 1) - o)) { if (l_ptr->deferred_inqueue_sz != mod((n + 1) - o)) {
tipc_printf(buf, ":RQSIZ(%u)", tipc_printf(buf, ":RQSIZ(%u)",
......
...@@ -254,6 +254,11 @@ void tipc_link_retransmit(struct link *l_ptr, struct sk_buff *start, u32 retrans ...@@ -254,6 +254,11 @@ void tipc_link_retransmit(struct link *l_ptr, struct sk_buff *start, u32 retrans
* Link sequence number manipulation routines (uses modulo 2**16 arithmetic) * Link sequence number manipulation routines (uses modulo 2**16 arithmetic)
*/ */
static inline u32 buf_seqno(struct sk_buff *buf)
{
return msg_seqno(buf_msg(buf));
}
static inline u32 mod(u32 x) static inline u32 mod(u32 x)
{ {
return x & 0xffffu; return x & 0xffffu;
......
Markdown is supported
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