From: Pravin Shelar <pshelar@nicira.com> To: Ben Hutchings <bhutchings@solarflare.com> Cc: netdev@vger.kernel.org, stephen@networkplumber.org Subject: Re: [PATCH net-next v2 5/6] vxlan: Add tx-vlan offload support. Date: Tue, 23 Jul 2013 16:37:42 -0700 [thread overview] Message-ID: <CALnjE+qJr8hXr_QcZ_foBR_wY3qjVgjkcy4W-7J8vVMaSo2yjA@mail.gmail.com> (raw) In-Reply-To: <1374607671.2072.16.camel@bwh-desktop.uk.level5networks.com> On Tue, Jul 23, 2013 at 12:27 PM, Ben Hutchings <bhutchings@solarflare.com> wrote: > On Tue, 2013-07-23 at 11:22 -0700, Pravin B Shelar wrote: >> Following patch allows transmit side vlan offload for vxlan >> devices. >> >> Signed-off-by: Pravin B Shelar <pshelar@nicira.com> >> --- >> drivers/net/vxlan.c | 15 ++++++++++++++- >> 1 files changed, 14 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c >> index 1ca7ca3..f76c09c 100644 >> --- a/drivers/net/vxlan.c >> +++ b/drivers/net/vxlan.c >> @@ -27,6 +27,7 @@ >> #include <linux/igmp.h> >> #include <linux/etherdevice.h> >> #include <linux/if_ether.h> >> +#include <linux/if_vlan.h> >> #include <linux/hash.h> >> #include <linux/ethtool.h> >> #include <net/arp.h> >> @@ -1076,13 +1077,23 @@ int vxlan_xmit_skb(struct net *net, struct vxlan_handler *vh, >> } >> >> min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len >> - + VXLAN_HLEN + sizeof(struct iphdr); >> + + VXLAN_HLEN + sizeof(struct iphdr) >> + + (vlan_tx_tag_present(skb) ? VLAN_HLEN : 0); >> >> /* Need space for new headers (invalidates iph ptr) */ >> err = skb_cow_head(skb, min_headroom); >> if (unlikely(err)) >> return err; >> >> + if (vlan_tx_tag_present(skb)) { >> + if (unlikely(!__vlan_put_tag(skb, >> + skb->vlan_proto, >> + vlan_tx_tag_get(skb)))) >> + return -ENOMEM; > > This can't fail since we already did skb_cow_head(). So a WARN_ON() > might be appropriate. > ok, I will add WARN_ON(). >> + skb->vlan_tci = 0; >> + } >> + >> vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh)); >> vxh->vx_flags = htonl(VXLAN_FLAGS); >> vxh->vx_vni = vni; >> @@ -1486,6 +1497,8 @@ static void vxlan_setup(struct net_device *dev) >> dev->features |= NETIF_F_RXCSUM; >> dev->features |= NETIF_F_GSO_SOFTWARE; >> >> + dev->vlan_features = dev->features; >> + dev->features |= NETIF_F_HW_VLAN_CTAG_TX; > > You can also add NETIF_F_HW_VLAN_STAG_TX. ok. > >> dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM; >> dev->hw_features |= NETIF_F_GSO_SOFTWARE; > > Should the VLAN TX features also be included in dev->hw_features? (I'm > not sure why you'd want to turn them off, but they are usually made > optional.) > right, I forgot to update hw_features. > Ben. > >> dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; > > -- > Ben Hutchings, Staff Engineer, Solarflare > Not speaking for my employer; that's the marketing department's job. > They asked us to note that Solarflare product names are trademarked. >
prev parent reply other threads:[~2013-07-23 23:37 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-07-23 18:22 Pravin B Shelar 2013-07-23 19:27 ` Ben Hutchings 2013-07-23 23:37 ` Pravin Shelar [this message]
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=CALnjE+qJr8hXr_QcZ_foBR_wY3qjVgjkcy4W-7J8vVMaSo2yjA@mail.gmail.com \ --to=pshelar@nicira.com \ --cc=bhutchings@solarflare.com \ --cc=netdev@vger.kernel.org \ --cc=stephen@networkplumber.org \ --subject='Re: [PATCH net-next v2 5/6] vxlan: Add tx-vlan offload support.' \ /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).