mirror of
https://github.com/torvalds/linux
synced 2024-09-22 03:55:39 +00:00
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: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
parent
3655959143
commit
f905730c7e
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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,
|
||||||
} 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,
|
||||||
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)
|
||||||
|
|
||||||
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,
|
||||||
{
|
{
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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,
|
||||||
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,
|
||||||
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,
|
||||||
|
|
||||||
/* 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)
|
||||||
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)
|
||||||
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
|
||||||
* 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;
|
||||||
|
|
Loading…
Reference in a new issue