All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Kubecek <mkubecek@suse.cz>
To: netdev@vger.kernel.org
Cc: Benjamin Poirier <bpoirier@cumulusnetworks.com>,
	Nicolas Dichtel <nicolas.dichtel@6wind.com>,
	David Ahern <dsahern@gmail.com>
Subject: Re: [PATCH net 2/2] ipv6: Fix nlmsg_flags when splitting a multipath route
Date: Wed, 12 Feb 2020 22:58:49 +0100	[thread overview]
Message-ID: <20200212215849.GC21997@unicorn.suse.cz> (raw)
In-Reply-To: <20200212014107.110066-2-bpoirier@cumulusnetworks.com>

On Wed, Feb 12, 2020 at 10:41:07AM +0900, Benjamin Poirier wrote:
> When splitting an RTA_MULTIPATH request into multiple routes and adding the
> second and later components, we must not simply remove NLM_F_REPLACE but
> instead replace it by NLM_F_CREATE. Otherwise, it may look like the netlink
> message was malformed.
> 
> For example,
> 	ip route add 2001:db8::1/128 dev dummy0
> 	ip route change 2001:db8::1/128 nexthop via fe80::30:1 dev dummy0 \
> 		nexthop via fe80::30:2 dev dummy0
> results in the following warnings:
> [ 1035.057019] IPv6: RTM_NEWROUTE with no NLM_F_CREATE or NLM_F_REPLACE
> [ 1035.057517] IPv6: NLM_F_CREATE should be set when creating new route
> 
> This patch makes the nlmsg sequence look equivalent for __ip6_ins_rt() to
> what it would get if the multipath route had been added in multiple netlink
> operations:
> 	ip route add 2001:db8::1/128 dev dummy0
> 	ip route change 2001:db8::1/128 nexthop via fe80::30:1 dev dummy0
> 	ip route append 2001:db8::1/128 nexthop via fe80::30:2 dev dummy0
> 
> Fixes: 27596472473a ("ipv6: fix ECMP route replacement")
> Signed-off-by: Benjamin Poirier <bpoirier@cumulusnetworks.com>

Reviewed-by: Michal Kubecek <mkubecek@suse.cz>

> ---
>  net/ipv6/route.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> index 4fbdc60b4e07..2931224b674e 100644
> --- a/net/ipv6/route.c
> +++ b/net/ipv6/route.c
> @@ -5198,6 +5198,7 @@ static int ip6_route_multipath_add(struct fib6_config *cfg,
>  		 */
>  		cfg->fc_nlinfo.nlh->nlmsg_flags &= ~(NLM_F_EXCL |
>  						     NLM_F_REPLACE);
> +		cfg->fc_nlinfo.nlh->nlmsg_flags |= NLM_F_CREATE;
>  		nhn++;
>  	}
>  
> -- 
> 2.25.0
> 

  reply	other threads:[~2020-02-12 21:58 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12  1:41 [PATCH net 1/2] ipv6: Fix route replacement with dev-only route Benjamin Poirier
2020-02-12  1:41 ` [PATCH net 2/2] ipv6: Fix nlmsg_flags when splitting a multipath route Benjamin Poirier
2020-02-12 21:58   ` Michal Kubecek [this message]
2020-02-15 17:58   ` David Ahern
2020-02-17  2:35   ` David Miller
2020-02-12 21:57 ` [PATCH net 1/2] ipv6: Fix route replacement with dev-only route Michal Kubecek
2020-02-15 18:00 ` David Ahern
2020-02-17  3:12   ` Benjamin Poirier
2020-02-20  3:20     ` Cong Wang
2020-02-17  2:35 ` 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=20200212215849.GC21997@unicorn.suse.cz \
    --to=mkubecek@suse.cz \
    --cc=bpoirier@cumulusnetworks.com \
    --cc=dsahern@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.dichtel@6wind.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.