Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 368157
b: refs/heads/master
c: aefbd2b
h: refs/heads/master
i:
  368155: 45bcfa1
v: v3
  • Loading branch information
Pravin B Shelar authored and David S. Miller committed Mar 9, 2013
1 parent 69bdf1d commit c6f9f90
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f5b1729443fdaf57766f99dd6e18d9b4b6f7a89e
refs/heads/master: aefbd2b3c2a9c657605e4337f9919d6c6273e8e6
34 changes: 34 additions & 0 deletions trunk/include/linux/skbuff.h
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,7 @@ typedef unsigned char *sk_buff_data_t;
* @vlan_tci: vlan tag control information
* @inner_transport_header: Inner transport layer header (encapsulation)
* @inner_network_header: Network layer header (encapsulation)
* @inner_mac_header: Link layer header (encapsulation)
* @transport_header: Transport layer header
* @network_header: Network layer header
* @mac_header: Link layer header
Expand Down Expand Up @@ -505,6 +506,7 @@ struct sk_buff {

sk_buff_data_t inner_transport_header;
sk_buff_data_t inner_network_header;
sk_buff_data_t inner_mac_header;
sk_buff_data_t transport_header;
sk_buff_data_t network_header;
sk_buff_data_t mac_header;
Expand Down Expand Up @@ -1466,6 +1468,7 @@ static inline void skb_reserve(struct sk_buff *skb, int len)

static inline void skb_reset_inner_headers(struct sk_buff *skb)
{
skb->inner_mac_header = skb->mac_header;
skb->inner_network_header = skb->network_header;
skb->inner_transport_header = skb->transport_header;
}
Expand Down Expand Up @@ -1511,6 +1514,22 @@ static inline void skb_set_inner_network_header(struct sk_buff *skb,
skb->inner_network_header += offset;
}

static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb)
{
return skb->head + skb->inner_mac_header;
}

static inline void skb_reset_inner_mac_header(struct sk_buff *skb)
{
skb->inner_mac_header = skb->data - skb->head;
}

static inline void skb_set_inner_mac_header(struct sk_buff *skb,
const int offset)
{
skb_reset_inner_mac_header(skb);
skb->inner_mac_header += offset;
}
static inline bool skb_transport_header_was_set(const struct sk_buff *skb)
{
return skb->transport_header != ~0U;
Expand Down Expand Up @@ -1604,6 +1623,21 @@ static inline void skb_set_inner_network_header(struct sk_buff *skb,
skb->inner_network_header = skb->data + offset;
}

static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb)
{
return skb->inner_mac_header;
}

static inline void skb_reset_inner_mac_header(struct sk_buff *skb)
{
skb->inner_mac_header = skb->data;
}

static inline void skb_set_inner_mac_header(struct sk_buff *skb,
const int offset)
{
skb->inner_mac_header = skb->data + offset;
}
static inline bool skb_transport_header_was_set(const struct sk_buff *skb)
{
return skb->transport_header != NULL;
Expand Down
2 changes: 2 additions & 0 deletions trunk/net/core/skbuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
new->mac_header = old->mac_header;
new->inner_transport_header = old->inner_transport_header;
new->inner_network_header = old->inner_network_header;
new->inner_mac_header = old->inner_mac_header;
skb_dst_copy(new, old);
new->rxhash = old->rxhash;
new->ooo_okay = old->ooo_okay;
Expand Down Expand Up @@ -876,6 +877,7 @@ static void skb_headers_offset_update(struct sk_buff *skb, int off)
skb->mac_header += off;
skb->inner_transport_header += off;
skb->inner_network_header += off;
skb->inner_mac_header += off;
}

static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
Expand Down

0 comments on commit c6f9f90

Please sign in to comment.