* [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function.
@ 2013-03-07 23:21 Pravin B Shelar
2013-03-08 5:40 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: Pravin B Shelar @ 2013-03-07 23:21 UTC (permalink / raw)
To: davem, netdev; +Cc: jesse, Pravin B Shelar
This function will be used in next VXLAN_GSO patch. This patch does
not change any functionality.
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
---
net/core/skbuff.c | 34 ++++++++++++++--------------------
1 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 33245ef..b3e8db8 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -867,6 +867,17 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
}
EXPORT_SYMBOL(skb_clone);
+static void skb_headers_offset_update(struct sk_buff *skb, int off)
+{
+ /* {transport,network,mac}_header and tail are relative to skb->head */
+ skb->transport_header += off;
+ skb->network_header += off;
+ if (skb_mac_header_was_set(skb))
+ skb->mac_header += off;
+ skb->inner_transport_header += off;
+ skb->inner_network_header += off;
+}
+
static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
{
#ifndef NET_SKBUFF_DATA_USES_OFFSET
@@ -879,13 +890,7 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
__copy_skb_header(new, old);
#ifndef NET_SKBUFF_DATA_USES_OFFSET
- /* {transport,network,mac}_header are relative to skb->head */
- new->transport_header += offset;
- new->network_header += offset;
- if (skb_mac_header_was_set(new))
- new->mac_header += offset;
- new->inner_transport_header += offset;
- new->inner_network_header += offset;
+ skb_headers_offset_update(new, offset);
#endif
skb_shinfo(new)->gso_size = skb_shinfo(old)->gso_size;
skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs;
@@ -1077,14 +1082,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
#else
skb->end = skb->head + size;
#endif
- /* {transport,network,mac}_header and tail are relative to skb->head */
skb->tail += off;
- skb->transport_header += off;
- skb->network_header += off;
- if (skb_mac_header_was_set(skb))
- skb->mac_header += off;
- skb->inner_transport_header += off;
- skb->inner_network_header += off;
+ skb_headers_offset_update(skb, off);
/* Only adjust this if it actually is csum_start rather than csum */
if (skb->ip_summed == CHECKSUM_PARTIAL)
skb->csum_start += nhead;
@@ -1180,12 +1179,7 @@ struct sk_buff *skb_copy_expand(const struct sk_buff *skb,
if (n->ip_summed == CHECKSUM_PARTIAL)
n->csum_start += off;
#ifdef NET_SKBUFF_DATA_USES_OFFSET
- n->transport_header += off;
- n->network_header += off;
- if (skb_mac_header_was_set(skb))
- n->mac_header += off;
- n->inner_transport_header += off;
- n->inner_network_header += off;
+ skb_headers_offset_update(n, off);
#endif
return n;
--
1.7.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function.
2013-03-07 23:21 [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function Pravin B Shelar
@ 2013-03-08 5:40 ` Stephen Hemminger
2013-03-08 7:23 ` Pravin Shelar
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2013-03-08 5:40 UTC (permalink / raw)
To: Pravin B Shelar; +Cc: davem, netdev, jesse
On Thu, 7 Mar 2013 15:21:40 -0800
Pravin B Shelar <pshelar@nicira.com> wrote:
> +static void skb_headers_offset_update(struct sk_buff *skb, int off)
> +{
> + /* {transport,network,mac}_header and tail are relative to skb->head */
> + skb->transport_header += off;
> + skb->network_header += off;
> + if (skb_mac_header_was_set(skb))
> + skb->mac_header += off;
> + skb->inner_transport_header += off;
> + skb->inner_network_header += off;
> +}
> +
Won't this cause an unused function warning if NET_SKBUFF_DATA_USES_OFFSET is defined?
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function.
2013-03-08 5:40 ` Stephen Hemminger
@ 2013-03-08 7:23 ` Pravin Shelar
0 siblings, 0 replies; 4+ messages in thread
From: Pravin Shelar @ 2013-03-08 7:23 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: davem, netdev, jesse
On Thu, Mar 7, 2013 at 9:40 PM, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> On Thu, 7 Mar 2013 15:21:40 -0800
> Pravin B Shelar <pshelar@nicira.com> wrote:
>
>> +static void skb_headers_offset_update(struct sk_buff *skb, int off)
>> +{
>> + /* {transport,network,mac}_header and tail are relative to skb->head */
>> + skb->transport_header += off;
>> + skb->network_header += off;
>> + if (skb_mac_header_was_set(skb))
>> + skb->mac_header += off;
>> + skb->inner_transport_header += off;
>> + skb->inner_network_header += off;
>> +}
>> +
>
> Won't this cause an unused function warning if NET_SKBUFF_DATA_USES_OFFSET is defined?
This function is used in both cases, so it should be ok.
Thanks,
Pravin.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function.
@ 2013-02-16 1:06 Pravin B Shelar
0 siblings, 0 replies; 4+ messages in thread
From: Pravin B Shelar @ 2013-02-16 1:06 UTC (permalink / raw)
To: netdev; +Cc: edumazet, jesse, stephen, Pravin B Shelar
This function will be used in next VXLAN-TSO patch. This patch does
not change any functionality.
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
---
net/core/skbuff.c | 34 ++++++++++++++--------------------
1 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 2a3ca33..d388e77 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -867,6 +867,17 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
}
EXPORT_SYMBOL(skb_clone);
+static void skb_headers_offset_update(struct sk_buff *skb, int off)
+{
+ /* {transport,network,mac}_header and tail are relative to skb->head */
+ skb->transport_header += off;
+ skb->network_header += off;
+ if (skb_mac_header_was_set(skb))
+ skb->mac_header += off;
+ skb->inner_transport_header += off;
+ skb->inner_network_header += off;
+}
+
static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
{
#ifndef NET_SKBUFF_DATA_USES_OFFSET
@@ -879,13 +890,7 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
__copy_skb_header(new, old);
#ifndef NET_SKBUFF_DATA_USES_OFFSET
- /* {transport,network,mac}_header are relative to skb->head */
- new->transport_header += offset;
- new->network_header += offset;
- if (skb_mac_header_was_set(new))
- new->mac_header += offset;
- new->inner_transport_header += offset;
- new->inner_network_header += offset;
+ skb_headers_offset_update(new, offset);
#endif
skb_shinfo(new)->gso_size = skb_shinfo(old)->gso_size;
skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs;
@@ -1077,14 +1082,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
#else
skb->end = skb->head + size;
#endif
- /* {transport,network,mac}_header and tail are relative to skb->head */
skb->tail += off;
- skb->transport_header += off;
- skb->network_header += off;
- if (skb_mac_header_was_set(skb))
- skb->mac_header += off;
- skb->inner_transport_header += off;
- skb->inner_network_header += off;
+ skb_headers_offset_update(skb, off);
/* Only adjust this if it actually is csum_start rather than csum */
if (skb->ip_summed == CHECKSUM_PARTIAL)
skb->csum_start += nhead;
@@ -1180,12 +1179,7 @@ struct sk_buff *skb_copy_expand(const struct sk_buff *skb,
if (n->ip_summed == CHECKSUM_PARTIAL)
n->csum_start += off;
#ifdef NET_SKBUFF_DATA_USES_OFFSET
- n->transport_header += off;
- n->network_header += off;
- if (skb_mac_header_was_set(skb))
- n->mac_header += off;
- n->inner_transport_header += off;
- n->inner_network_header += off;
+ skb_headers_offset_update(n, off);
#endif
return n;
--
1.7.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-03-08 7:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-07 23:21 [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function Pravin B Shelar
2013-03-08 5:40 ` Stephen Hemminger
2013-03-08 7:23 ` Pravin Shelar
-- strict thread matches above, loose matches on Subject: below --
2013-02-16 1:06 Pravin B Shelar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox