From: Jesse Gross <jesse@nicira.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: netdev <netdev@vger.kernel.org>,
Dave Miller <davem@davemloft.net>,
Pravin B Shelar <pshelar@nicira.com>,
Jiri Benc <jbenc@redhat.com>
Subject: Re: [PATCH v4 1/2] geneve: implement support for IPv6-based tunnels
Date: Wed, 21 Oct 2015 13:06:18 +0800 [thread overview]
Message-ID: <CAEP_g=9pXGiDgZ9Y-2ZY+VjSRYP2wXQ=qv_iryMyq25OqF_k4g@mail.gmail.com> (raw)
In-Reply-To: <1445353866-32710-1-git-send-email-linville@tuxdriver.com>
All of this looks pretty good to me, I just have a few last things
that I noticed:
On Tue, Oct 20, 2015 at 11:11 PM, John W. Linville
<linville@tuxdriver.com> wrote:
> diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
> index 8f5c02eed47d..217b472ab9e7 100644
> --- a/drivers/net/geneve.c
> +++ b/drivers/net/geneve.c
> /* Pseudo network device */
> struct geneve_dev {
> struct hlist_node hlist; /* vni hash table */
> struct net *net; /* netns for packet i/o */
> struct net_device *dev; /* netdev for geneve tunnel */
> - struct geneve_sock *sock; /* socket used for geneve tunnel */
> + struct geneve_sock *sock4; /* IPv4 socket used for geneve tunnel */
> + struct geneve_sock *sock6; /* IPv6 socket used for geneve tunnel */
It might be worth wrapping sock6 in #if IS_ENABLED(CONFIG_IPV6). Not
because I'm trying to save space but because we make initializing it
conditional on this, so it would catch if somebody tries to access it
uninitialized.
> +static int geneve_open(struct net_device *dev)
> +{
> + struct geneve_dev *geneve = netdev_priv(dev);
> + bool ipv6 = geneve->remote.sa.sa_family == AF_INET6;
> + bool metadata = !!geneve->collect_md;
A small thing but geneve->collect_md is also a bool, so I guess we
probably don't need the !!.
> +#if IS_ENABLED(CONFIG_IPV6)
> +static int geneve6_build_skb(struct dst_entry *dst, struct sk_buff *skb,
> + __be16 tun_flags, u8 vni[3], u8 opt_len, u8 *opt,
> + bool csum, bool xnet)
> +{
[...]
> + skb_scrub_packet(skb, xnet);
I realized that I wasn't really all that clear with my previous
comment here. I was just asking if we should also use
skb_scrub_packet() in the IPv4 to keep things consistent. I agree that
the rt/dst differences makes sharing code a bit difficult in the
general sense.
> +static netdev_tx_t geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
> + struct ip_tunnel_info *info)
[...]
> + if (geneve->collect_md) {
> + if (unlikely(info && !(info->mode & IP_TUNNEL_INFO_TX))) {
> + netdev_dbg(dev, "no tunnel metadata\n");
> + goto tx_error;
It seems like this should also be checking for !info here - that's
perhaps the main cause of not having any tunnel metadata. This is the
same with IPv4 though too.
> @@ -870,14 +1139,29 @@ static int geneve_newlink(struct net *net, struct net_device *dev,
> - if (!data[IFLA_GENEVE_ID] || !data[IFLA_GENEVE_REMOTE])
> + if (!data[IFLA_GENEVE_ID] ||
> + (data[IFLA_GENEVE_REMOTE] && data[IFLA_GENEVE_REMOTE6]) ||
> + (!data[IFLA_GENEVE_REMOTE] && !data[IFLA_GENEVE_REMOTE6]))
> return -EINVAL;
I think this will conflict with/revert my change in -net. Obviously,
the conflict will need to be resolved at some point, but it's probably
just best to remove the whole block here so the resolution is obvious.
next prev parent reply other threads:[~2015-10-21 5:06 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-24 18:34 [RFT] geneve: implement support for IPv6-based tunnels John W. Linville
2015-09-24 18:39 ` [PATCH iproute2] geneve: add support for IPv6 link partners John W. Linville
2015-11-24 0:23 ` Stephen Hemminger
2015-09-25 12:08 ` [RFT] geneve: implement support for IPv6-based tunnels Jiri Benc
2015-09-28 19:20 ` John W. Linville
2015-09-29 16:10 ` Jiri Benc
2015-09-30 17:04 ` [RFT v2] " John W. Linville
2015-09-30 18:07 ` kbuild test robot
2015-09-30 18:34 ` [RFT v3] " John W. Linville
2015-10-01 1:55 ` kbuild test robot
2015-10-01 15:38 ` Jiri Benc
2015-10-01 16:26 ` Jesse Gross
2015-10-01 20:03 ` John W. Linville
2015-10-01 21:07 ` Jesse Gross
2015-10-20 15:11 ` [PATCH v4 1/2] " John W. Linville
2015-10-20 15:11 ` [PATCH 2/2] geneve: handle ipv6 priority like ipv4 tos John W. Linville
2015-10-21 5:13 ` Jesse Gross
2015-10-20 22:55 ` [PATCH v4 1/2] geneve: implement support for IPv6-based tunnels kbuild test robot
2015-10-21 1:52 ` YOSHIFUJI Hideaki/吉藤英明
2015-10-21 18:58 ` John W. Linville
2015-10-21 5:06 ` Jesse Gross [this message]
2015-10-22 19:45 ` [PATCH v5 " John W. Linville
2015-10-22 19:45 ` [PATCH v5 2/2] geneve: handle ipv6 priority like ipv4 tos John W. Linville
2015-10-23 4:48 ` [PATCH v5 1/2] geneve: implement support for IPv6-based tunnels YOSHIFUJI Hideaki
2015-10-23 13:38 ` John W. Linville
2015-10-23 14:40 ` [PATCH v6 " John W. Linville
2015-10-23 14:40 ` [PATCH v6 2/2] geneve: handle ipv6 priority like ipv4 tos John W. Linville
2015-10-26 4:08 ` [PATCH v6 1/2] geneve: implement support for IPv6-based tunnels Jesse Gross
2015-10-26 21:01 ` [PATCH v7 1/3] " John W. Linville
2015-10-26 21:01 ` [PATCH v7 2/3] geneve: handle ipv6 priority like ipv4 tos John W. Linville
2015-10-30 3:11 ` David Miller
2015-10-26 21:01 ` [PATCH v7 3/3] geneve: add IPv6 bits to geneve_fill_metadata_dst John W. Linville
2015-10-27 12:48 ` Sergei Shtylyov
2015-10-27 13:49 ` [PATCH v8 " John W. Linville
2015-10-27 14:24 ` Jesse Gross
2015-10-30 3:12 ` David Miller
2015-10-30 3:11 ` [PATCH v7 1/3] geneve: implement support for IPv6-based tunnels David Miller
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='CAEP_g=9pXGiDgZ9Y-2ZY+VjSRYP2wXQ=qv_iryMyq25OqF_k4g@mail.gmail.com' \
--to=jesse@nicira.com \
--cc=davem@davemloft.net \
--cc=jbenc@redhat.com \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
--cc=pshelar@nicira.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).