Bluetooth: Add a structure to carry ERTM data in skb control blocks
authorMat Martineau <mathewm@codeaurora.org>
Fri, 23 Mar 2012 23:56:56 +0000 (16:56 -0700)
committerGustavo Padovan <gustavo@padovan.org>
Wed, 9 May 2012 03:41:35 +0000 (00:41 -0300)
Every field from ERTM control headers is now carried in the control
block so it only has to be parsed or generated once, and can be
efficiently accessed throughout the ERTM code.

Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
include/net/bluetooth/bluetooth.h

index 262ebd1..f2c8bdf 100644 (file)
@@ -215,6 +215,18 @@ void bt_accept_unlink(struct sock *sk);
 struct sock *bt_accept_dequeue(struct sock *parent, struct socket *newsock);
 
 /* Skb helpers */
+struct l2cap_ctrl {
+       unsigned int    sframe  : 1,
+                       poll    : 1,
+                       final   : 1,
+                       fcs     : 1,
+                       sar     : 2,
+                       super   : 2;
+       __u16           reqseq;
+       __u16           txseq;
+       __u8            retries;
+};
+
 struct bt_skb_cb {
        __u8 pkt_type;
        __u8 incoming;
@@ -223,6 +235,7 @@ struct bt_skb_cb {
        __u8 retries;
        __u8 sar;
        __u8 force_active;
+       struct l2cap_ctrl control;
 };
 #define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb))