Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25-rc7 /net/dccp/ackvec.c

Filename:/net/dccp/ackvec.c
Lines Added:77
Lines Deleted:86
Also changed in: (Previous) 2.6.25-rc6  2.6.25-rc5  2.6.25-rc4  2.6.25-rc3  2.6.25-rc2  2.6.25-rc1 
(Following) 2.6.25-rc8  2.6.25-rc9  2.6.25  2.6.26-rc6-git2  2.6.26-rc6-git3  2.6.26-rc6-git4 

Location
[  2.6.25-rc7
  [  net
    [  dccp
       o  ackvec.c

Patch

diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c
index 83378f3..6de4bd1 100644
--- a/net/dccp/ackvec.c
+++ b/net/dccp/ackvec.c
@@ -30,7 +30,7 @@ static struct dccp_ackvec_record *dccp_ackvec_record_new(void)
          kmem_cache_alloc(dccp_ackvec_record_slab, GFP_ATOMIC);
 
    if (avr != NULL)
-      INIT_LIST_HEAD(&avr->dccpavr_node);
+      INIT_LIST_HEAD(&avr->avr_node);
 
    return avr;
 }
@@ -40,7 +40,7 @@ static void dccp_ackvec_record_delete(struct dccp_ackvec_record *avr)
    if (unlikely(avr == NULL))
       return;
    /* Check if deleting a linked record */
-   WARN_ON(!list_empty(&avr->dccpavr_node));
+   WARN_ON(!list_empty(&avr->avr_node));
    kmem_cache_free(dccp_ackvec_record_slab, avr);
 }
 
@@ -52,16 +52,15 @@ static void dccp_ackvec_insert_avr(struct dccp_ackvec *av,
     * just add the AVR at the head of the list.
     * -sorbo.
     */
-   if (!list_empty(&av->dccpav_records)) {
+   if (!list_empty(&av->av_records)) {
       const struct dccp_ackvec_record *head =
-               list_entry(av->dccpav_records.next,
+               list_entry(av->av_records.next,
                      struct dccp_ackvec_record,
-                     dccpavr_node);
-      BUG_ON(before48(avr->dccpavr_ack_seqno,
-            head->dccpavr_ack_seqno));
+                     avr_node);
+      BUG_ON(before48(avr->avr_ack_seqno, head->avr_ack_seqno));
    }
 
-   list_add(&avr->dccpavr_node, &av->dccpav_records);
+   list_add(&avr->avr_node, &av->av_records);
 }
 
 int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
@@ -69,9 +68,8 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
    struct dccp_sock *dp = dccp_sk(sk);
    struct dccp_ackvec *av = dp->dccps_hc_rx_ackvec;
    /* Figure out how many options do we need to represent the ackvec */
-   const u16 nr_opts = DIV_ROUND_UP(av->dccpav_vec_len,
-                DCCP_MAX_ACKVEC_OPT_LEN);
-   u16 len = av->dccpav_vec_len + 2 * nr_opts, i;
+   const u16 nr_opts = DIV_ROUND_UP(av->av_vec_len, DCCP_MAX_ACKVEC_OPT_LEN);
+   u16 len = av->av_vec_len + 2 * nr_opts, i;
    u32 elapsed_time;
    const unsigned char *tail, *from;
    unsigned char *to;
@@ -81,7 +79,7 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
    if (DCCP_SKB_CB(skb)->dccpd_opt_len + len > DCCP_MAX_OPT_LEN)
       return -1;
 
-   delta = ktime_us_delta(ktime_get_real(), av->dccpav_time);
+   delta = ktime_us_delta(ktime_get_real(), av->av_time);
    elapsed_time = delta / 10;
 
    if (elapsed_time != 0 &&
@@ -95,9 +93,9 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
    DCCP_SKB_CB(skb)->dccpd_opt_len += len;
 
    to   = skb_push(skb, len);
-   len  = av->dccpav_vec_len;
-   from = av->dccpav_buf + av->dccpav_buf_head;
-   tail = av->dccpav_buf + DCCP_MAX_ACKVEC_LEN;
+   len  = av->av_vec_len;
+   from = av->av_buf + av->av_buf_head;
+   tail = av->av_buf + DCCP_MAX_ACKVEC_LEN;
 
    for (i = 0; i < nr_opts; ++i) {
       int copylen = len;
@@ -116,7 +114,7 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
          to   += tailsize;
          len   -= tailsize;
          copylen   -= tailsize;
-         from   = av->dccpav_buf;
+         from   = av->av_buf;
       }
 
       memcpy(to, from, copylen);
@@ -134,19 +132,19 @@ int dccp_insert_option_ackvec(struct sock *sk, struct sk_buff *skb)
     *   buf_head; ack_ackno will equal buf_ackno; and ack_nonce will
     *   equal buf_nonce.
     */
-   avr->dccpavr_ack_seqno = DCCP_SKB_CB(skb)->dccpd_seq;
-   avr->dccpavr_ack_ptr   = av->dccpav_buf_head;
-   avr->dccpavr_ack_ackno = av->dccpav_buf_ackno;
-   avr->dccpavr_ack_nonce = av->dccpav_buf_nonce;
-   avr->dccpavr_sent_len  = av->dccpav_vec_len;
+   avr->avr_ack_seqno = DCCP_SKB_CB(skb)->dccpd_seq;
+   avr->avr_ack_ptr   = av->av_buf_head;
+   avr->avr_ack_ackno = av->av_buf_ackno;
+   avr->avr_ack_nonce = av->av_buf_nonce;
+   avr->avr_sent_len  = av->av_vec_len;
 
    dccp_ackvec_insert_avr(av, avr);
 
    dccp_pr_debug("%s ACK Vector 0, len=%d, ack_seqno=%llu, "
             "ack_ackno=%llu\n",
-            dccp_role(sk), avr->dccpavr_sent_len,
-            (unsigned long long)avr->dccpavr_ack_seqno,
-            (unsigned long long)avr->dccpavr_ack_ackno);
+            dccp_role(sk), avr->avr_sent_len,
+            (unsigned long long)avr->avr_ack_seqno,
+            (unsigned long long)avr->avr_ack_ackno);
    return 0;
 }
 
@@ -155,12 +153,12 @@ struct dccp_ackvec *dccp_ackvec_alloc(const gfp_t priority)
    struct dccp_ackvec *av = kmem_cache_alloc(dccp_ackvec_slab, priority);
 
    if (av != NULL) {
-      av->dccpav_buf_head   = DCCP_MAX_ACKVEC_LEN - 1;
-      av->dccpav_buf_ackno   = UINT48_MAX + 1;
-      av->dccpav_buf_nonce = av->dccpav_buf_nonce = 0;
-      av->dccpav_time        = ktime_set(0, 0);
-      av->dccpav_vec_len   = 0;
-      INIT_LIST_HEAD(&av->dccpav_records);
+      av->av_buf_head    = DCCP_MAX_ACKVEC_LEN - 1;
+      av->av_buf_ackno = UINT48_MAX + 1;
+      av->av_buf_nonce = 0;
+      av->av_time    = ktime_set(0, 0);
+      av->av_vec_len    = 0;
+      INIT_LIST_HEAD(&av->av_records);
    }
 
    return av;
@@ -171,12 +169,11 @@ void dccp_ackvec_free(struct dccp_ackvec *av)
    if (unlikely(av == NULL))
       return;
 
-   if (!list_empty(&av->dccpav_records)) {
+   if (!list_empty(&av->av_records)) {
       struct dccp_ackvec_record *avr, *next;
 
-      list_for_each_entry_safe(avr, next, &av->dccpav_records,
-                dccpavr_node) {
-         list_del_init(&avr->dccpavr_node);
+      list_for_each_entry_safe(avr, next, &av->av_records, avr_node) {
+         list_del_init(&avr->avr_node);
          dccp_ackvec_record_delete(avr);
       }
    }
@@ -187,13 +184,13 @@ void dccp_ackvec_free(struct dccp_ackvec *av)
 static inline u8 dccp_ackvec_state(const struct dccp_ackvec *av,
                const u32 index)
 {
-   return av->dccpav_buf[index] & DCCP_ACKVEC_STATE_MASK;
+   return av->av_buf[index] & DCCP_ACKVEC_STATE_MASK;
 }
 
 static inline u8 dccp_ackvec_len(const struct dccp_ackvec *av,
              const u32 index)
 {
-   return av->dccpav_buf[index] & DCCP_ACKVEC_LEN_MASK;
+   return av->av_buf[index] & DCCP_ACKVEC_LEN_MASK;
 }
 
 /*
@@ -208,29 +205,29 @@ static inline int dccp_ackvec_set_buf_head_state(struct dccp_ackvec *av,
    unsigned int gap;
    long new_head;
 
-   if (av->dccpav_vec_len + packets > DCCP_MAX_ACKVEC_LEN)
+   if (av->av_vec_len + packets > DCCP_MAX_ACKVEC_LEN)
       return -ENOBUFS;
 
    gap    = packets - 1;
-   new_head = av->dccpav_buf_head - packets;
+   new_head = av->av_buf_head - packets;
 
    if (new_head < 0) {
       if (gap > 0) {
-         memset(av->dccpav_buf, DCCP_ACKVEC_STATE_NOT_RECEIVED,
+         memset(av->av_buf, DCCP_ACKVEC_STATE_NOT_RECEIVED,
                 gap + new_head + 1);
          gap = -new_head;
       }
       new_head += DCCP_MAX_ACKVEC_LEN;
    }
 
-   av->dccpav_buf_head = new_head;
+   av->av_buf_head = new_head;
 
    if (gap > 0)
-      memset(av->dccpav_buf + av->dccpav_buf_head + 1,
+      memset(av->av_buf + av->av_buf_head + 1,
              DCCP_ACKVEC_STATE_NOT_RECEIVED, gap);
 
-   av->dccpav_buf[av->dccpav_buf_head] = state;
-   av->dccpav_vec_len += packets;
+   av->av_buf[av->av_buf_head] = state;
+   av->av_vec_len += packets;
    return 0;
 }
 
@@ -243,7 +240,7 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
    /*
     * Check at the right places if the buffer is full, if it is, tell the
     * caller to start dropping packets till the HC-Sender acks our ACK
-    * vectors, when we will free up space in dccpav_buf.
+    * vectors, when we will free up space in av_buf.
     *
     * We may well decide to do buffer compression, etc, but for now lets
     * just drop.
@@ -263,22 +260,20 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
     */
 
    /* See if this is the first ackno being inserted */
-   if (av->dccpav_vec_len == 0) {
-      av->dccpav_buf[av->dccpav_buf_head] = state;
-      av->dccpav_vec_len = 1;
-   } else if (after48(ackno, av->dccpav_buf_ackno)) {
-      const u64 delta = dccp_delta_seqno(av->dccpav_buf_ackno,
-                     ackno);
+   if (av->av_vec_len == 0) {
+      av->av_buf[av->av_buf_head] = state;
+      av->av_vec_len = 1;
+   } else if (after48(ackno, av->av_buf_ackno)) {
+      const u64 delta = dccp_delta_seqno(av->av_buf_ackno, ackno);
 
       /*
        * Look if the state of this packet is the same as the
        * previous ackno and if so if we can bump the head len.
        */
       if (delta == 1 &&
-          dccp_ackvec_state(av, av->dccpav_buf_head) == state &&
-          (dccp_ackvec_len(av, av->dccpav_buf_head) <
-           DCCP_ACKVEC_LEN_MASK))
-         av->dccpav_buf[av->dccpav_buf_head]++;
+          dccp_ackvec_state(av, av->av_buf_head) == state &&
+          dccp_ackvec_len(av, av->av_buf_head) < DCCP_ACKVEC_LEN_MASK)
+         av->av_buf[av->av_buf_head]++;
       else if (dccp_ackvec_set_buf_head_state(av, delta, state))
          return -ENOBUFS;
    } else {
@@ -290,14 +285,14 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
        *   the byte corresponding to S. (Indexing structures
        *   could reduce the complexity of this scan.)
        */
-      u64 delta = dccp_delta_seqno(ackno, av->dccpav_buf_ackno);
-      u32 index = av->dccpav_buf_head;
+      u64 delta = dccp_delta_seqno(ackno, av->av_buf_ackno);
+      u32 index = av->av_buf_head;
 
       while (1) {
          const u8 len = dccp_ackvec_len(av, index);
          const u8 state = dccp_ackvec_state(av, index);
          /*
-          * valid packets not yet in dccpav_buf have a reserved
+          * valid packets not yet in av_buf have a reserved
           * entry, with a len equal to 0.
           */
          if (state == DCCP_ACKVEC_STATE_NOT_RECEIVED &&
@@ -305,7 +300,7 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
                       reserved seat! */
             dccp_pr_debug("Found %llu reserved seat!\n",
                      (unsigned long long)ackno);
-            av->dccpav_buf[index] = state;
+            av->av_buf[index] = state;
             goto out;
          }
          /* len == 0 means one packet */
@@ -318,8 +313,8 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
       }
    }
 
-   av->dccpav_buf_ackno = ackno;
-   av->dccpav_time = ktime_get_real();
+   av->av_buf_ackno = ackno;
+   av->av_time = ktime_get_real();
 out:
    return 0;
 
@@ -349,9 +344,9 @@ void dccp_ackvector_print(const u64 ackno, const unsigned char *vector, int len)
 
 void dccp_ackvec_print(const struct dccp_ackvec *av)
 {
-   dccp_ackvector_print(av->dccpav_buf_ackno,
-              av->dccpav_buf + av->dccpav_buf_head,
-              av->dccpav_vec_len);
+   dccp_ackvector_print(av->av_buf_ackno,
+              av->av_buf + av->av_buf_head,
+              av->av_vec_len);
 }
 #endif
 
@@ -361,17 +356,15 @@ static void dccp_ackvec_throw_record(struct dccp_ackvec *av,
    struct dccp_ackvec_record *next;
 
    /* sort out vector length */
-   if (av->dccpav_buf_head <= avr->dccpavr_ack_ptr)
-      av->dccpav_vec_len = avr->dccpavr_ack_ptr - av->dccpav_buf_head;
+   if (av->av_buf_head <= avr->avr_ack_ptr)
+      av->av_vec_len = avr->avr_ack_ptr - av->av_buf_head;
    else
-      av->dccpav_vec_len = DCCP_MAX_ACKVEC_LEN - 1
-                 - av->dccpav_buf_head
-                 + avr->dccpavr_ack_ptr;
+      av->av_vec_len = DCCP_MAX_ACKVEC_LEN - 1 -
+             av->av_buf_head + avr->avr_ack_ptr;
 
    /* free records */
-   list_for_each_entry_safe_from(avr, next, &av->dccpav_records,
-                  dccpavr_node) {
-      list_del_init(&avr->dccpavr_node);
+   list_for_each_entry_safe_from(avr, next, &av->av_records, avr_node) {
+      list_del_init(&avr->avr_node);
       dccp_ackvec_record_delete(avr);
    }
 }
@@ -386,16 +379,16 @@ void dccp_ackvec_check_rcv_ackno(struct dccp_ackvec *av, struct sock *sk,
     * windows. We will be receiving ACKs for stuff we sent a while back
     * -sorbo.
     */
-   list_for_each_entry_reverse(avr, &av->dccpav_records, dccpavr_node) {
-      if (ackno == avr->dccpavr_ack_seqno) {
+   list_for_each_entry_reverse(avr, &av->av_records, avr_node) {
+      if (ackno == avr->avr_ack_seqno) {
          dccp_pr_debug("%s ACK packet 0, len=%d, ack_seqno=%llu, "
                   "ack_ackno=%llu, ACKED!\n",
                   dccp_role(sk), 1,
-                  (unsigned long long)avr->dccpavr_ack_seqno,
-                  (unsigned long long)avr->dccpavr_ack_ackno);
+                  (unsigned long long)avr->avr_ack_seqno,
+                  (unsigned long long)avr->avr_ack_ackno);
          dccp_ackvec_throw_record(av, avr);
          break;
-      } else if (avr->dccpavr_ack_seqno > ackno)
+      } else if (avr->avr_ack_seqno > ackno)
          break; /* old news */
    }
 }
@@ -409,7 +402,7 @@ static void dccp_ackvec_check_rcv_ackvector(struct dccp_ackvec *av,
    struct dccp_ackvec_record *avr;
 
    /* Check if we actually sent an ACK vector */
-   if (list_empty(&av->dccpav_records))
+   if (list_empty(&av->av_records))
       return;
 
    i = len;
@@ -418,8 +411,7 @@ static void dccp_ackvec_check_rcv_ackvector(struct dccp_ackvec *av,
     * I think it might be more efficient to work backwards. See comment on
     * rcv_ackno. -sorbo.
     */
-   avr = list_entry(av->dccpav_records.next, struct dccp_ackvec_record,
-          dccpavr_node);
+   avr = list_entry(av->av_records.next, struct dccp_ackvec_record, avr_node);
    while (i--) {
       const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK;
       u64 ackno_end_rl;
@@ -430,15 +422,14 @@ static void dccp_ackvec_check_rcv_ackvector(struct dccp_ackvec *av,
        * If our AVR sequence number is greater than the ack, go
        * forward in the AVR list until it is not so.
        */
-      list_for_each_entry_from(avr, &av->dccpav_records,
-                dccpavr_node) {
-         if (!after48(avr->dccpavr_ack_seqno, *ackno))
+      list_for_each_entry_from(avr, &av->av_records, avr_node) {
+         if (!after48(avr->avr_ack_seqno, *ackno))
             goto found;
       }
-      /* End of the dccpav_records list, not found, exit */
+      /* End of the av_records list, not found, exit */
       break;
 found:
-      if (between48(avr->dccpavr_ack_seqno, ackno_end_rl, *ackno)) {
+      if (between48(avr->avr_ack_seqno, ackno_end_rl, *ackno)) {
          const u8 state = *vector & DCCP_ACKVEC_STATE_MASK;
          if (state != DCCP_ACKVEC_STATE_NOT_RECEIVED) {
             dccp_pr_debug("%s ACK vector 0, len=%d, "
@@ -446,9 +437,9 @@ found:
                      "ACKED!\n",
                      dccp_role(sk), len,
                      (unsigned long long)
-                     avr->dccpavr_ack_seqno,
+                     avr->avr_ack_seqno,
                      (unsigned long long)
-                     avr->dccpavr_ack_ackno);
+                     avr->avr_ack_ackno);
             dccp_ackvec_throw_record(av, avr);
             break;
          }


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.