From: Pravin B Shelar <pshelar@nicira.com> To: netdev@vger.kernel.org Cc: stephen@networkplumber.org, Pravin B Shelar <pshelar@nicira.com> Subject: [PATCH net-next v2 4/6] vxlan: Improve vxlan headroom calculation. Date: Tue, 23 Jul 2013 11:22:45 -0700 [thread overview] Message-ID: <1374603765-15529-1-git-send-email-pshelar@nicira.com> (raw) Rather than having static headroom calculation, adjust headroom according to target device. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> --- drivers/net/vxlan.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index 816ce9e..1ca7ca3 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -1067,6 +1067,7 @@ int vxlan_xmit_skb(struct net *net, struct vxlan_handler *vh, { struct vxlanhdr *vxh; struct udphdr *uh; + int min_headroom; int err; if (!skb->encapsulation) { @@ -1074,6 +1075,14 @@ int vxlan_xmit_skb(struct net *net, struct vxlan_handler *vh, skb->encapsulation = 1; } + min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len + + VXLAN_HLEN + sizeof(struct iphdr); + + /* Need space for new headers (invalidates iph ptr) */ + err = skb_cow_head(skb, min_headroom); + if (unlikely(err)) + return err; + vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh)); vxh->vx_flags = htonl(VXLAN_FLAGS); vxh->vx_vni = vni; @@ -1157,10 +1166,6 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev, goto drop; } - /* Need space for new headers (invalidates iph ptr) */ - if (skb_cow_head(skb, VXLAN_HEADROOM)) - goto drop; - old_iph = ip_hdr(skb); ttl = vxlan->ttl; -- 1.7.1
reply other threads:[~2013-07-23 18:22 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1374603765-15529-1-git-send-email-pshelar@nicira.com \ --to=pshelar@nicira.com \ --cc=netdev@vger.kernel.org \ --cc=stephen@networkplumber.org \ --subject='Re: [PATCH net-next v2 4/6] vxlan: Improve vxlan headroom calculation.' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).