lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 20 Jun 2013 00:26:52 -0700 From: Pravin B Shelar <pshelar@...ira.com> To: netdev@...r.kernel.org, dev@...nvswitch.org Cc: Pravin B Shelar <pshelar@...ira.com> Subject: [PATCH net-next 6/8] vxlan: Improve vxlan headroom calculation. Rather than having static headroom calculation, adjust headroom according to target device. Signed-off-by: Pravin B Shelar <pshelar@...ira.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 6ca2632..e53c947 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -1040,6 +1040,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) { @@ -1047,6 +1048,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; @@ -1099,10 +1108,6 @@ static netdev_tx_t __vxlan_xmit(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 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists