From: Hangbin Liu <liuhangbin@gmail.com>
To: David Ahern <dsahern@kernel.org>
Cc: Ido Schimmel <idosch@idosch.org>,
Stephen Hemminger <stephen@networkplumber.org>,
netdev@vger.kernel.org, "David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Thomas Haller <thaller@redhat.com>
Subject: Re: [Questions] Some issues about IPv4/IPv6 nexthop route
Date: Tue, 29 Aug 2023 09:07:46 +0800 [thread overview]
Message-ID: <ZO1E4iy5hmd4kpHl@Laptop-X1> (raw)
In-Reply-To: <078061ce-1411-d150-893a-d0a950c8866f@kernel.org>
On Mon, Aug 28, 2023 at 09:06:25AM -0600, David Ahern wrote:
> >>> But there are 2 issues here:
> >>> 1. the *type* and *protocol* field are actally ignored
> >>> 2. when do `ip monitor route`, the info dumpped in fib6_add_rt2node()
> >>> use the config info from user space. When means `ip monitor` show the
> >>> incorrect type and protocol
> >>>
> >>> So my questions are, should we show weight/scope for IPv4?
> >
> > Here is the first one. As the weight/scope are not shown, the two separate
> > routes would looks exactly the same for end user, which makes user confused.
>
> Asked and answered many times above: Weight has no meaning on single
> path routes; it is not even tracked if I recall correctly.
Yes, I'm sorry that I asked this question over and over again. Because I
always got the answer that these are two different routes and weight are
meaningless for none-multipath route. But IIRC, I never got a straight answer
of what we should deal with this problem.
>
> > So why not just show the weight/scope, or forbid user to add a non-multipath
> > route with weight/scope?
>
> That is a change to a uAPI we can not do at this point.
Yes, that's the answers I want to receive. Either show it, forbid it, or
not change it as it would change uAPI.
>
> >
> >>> How to deal the type/proto info missing for IPv6?
> >
> > What we should do for this bug? The type/proto info are ignored when
> > merge the IPv6 nexthop entries.
>
> I need more information; this thread has gone on for a long time now.
Sure, here is the reproducer:
+ ip link add dummy1 up type dummy
+ ip link add dummy2 up type dummy
+ ip addr add 2001:db8:101::1/64 dev dummy1
+ ip addr add 2001:db8:101::2/64 dev dummy2
+ ip monitor route
+ sleep 1
+ ip route add local 2001:db8:103::/64 via 2001:db8:101::10 dev dummy1 table 100
local 2001:db8:103::/64 via 2001:db8:101::10 dev dummy1 table 100 metric 1024 pref medium
+ ip route prepend unicast 2001:db8:103::/64 via 2001:db8:101::10 dev dummy2 table 100
2001:db8:103::/64 table 100 metric 1024 pref medium
nexthop via 2001:db8:101::10 dev dummy2 weight 1
nexthop via 2001:db8:101::10 dev dummy1 weight 1
^^ Here you can see the ip monitor print the route with unicast, even the
"dev dummy1" route should be local
+ ip -6 route show table 100
local 2001:db8:103::/64 metric 1024 pref medium
nexthop via 2001:db8:101::10 dev dummy1 weight 1
nexthop via 2001:db8:101::10 dev dummy2 weight 1
^^ But the final route still keep using local. Which is different with
what `ip monitor` print
+ ip route add 2001:db8:104::/64 via 2001:db8:101::10 dev dummy1 proto kernel table 200
2001:db8:104::/64 via 2001:db8:101::10 dev dummy1 table 200 proto kernel metric 1024 pref medium
+ ip route append 2001:db8:104::/64 via 2001:db8:101::10 dev dummy2 proto bgp table 200
2001:db8:104::/64 table 200 proto bgp metric 1024 pref medium
nexthop via 2001:db8:101::10 dev dummy2 weight 1
nexthop via 2001:db8:101::10 dev dummy1 weight 1
+ ip -6 route show table 200
2001:db8:104::/64 proto kernel metric 1024 pref medium
nexthop via 2001:db8:101::10 dev dummy1 weight 1
nexthop via 2001:db8:101::10 dev dummy2 weight 1
^^ Same here, ip monitor print protocol bgp, but the actual protocol
is still kernel. We just merged them together and ignored the
protocol field.
+ kill $!
As I asked, The type/proto info are ignored and dropped when merge the IPv6
nexthop entries. How should we deal with this bug? Fix it or ignore it?
Thanks
Hangbin
next prev parent reply other threads:[~2023-08-29 1:07 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-18 8:00 [PATCH net-next] ipv4/fib: send RTM_DELROUTE notify when flush fib Hangbin Liu
2023-07-18 10:19 ` Ido Schimmel
2023-07-18 10:32 ` Ido Schimmel
2023-07-18 14:45 ` David Ahern
2023-07-18 15:58 ` Stephen Hemminger
2023-07-20 7:51 ` Hangbin Liu
2023-07-20 14:29 ` Ido Schimmel
2023-07-21 1:34 ` Hangbin Liu
2023-07-21 4:01 ` David Ahern
2023-07-21 5:46 ` Hangbin Liu
2023-07-23 7:38 ` Ido Schimmel
2023-07-24 8:56 ` Hangbin Liu
2023-07-24 15:48 ` Stephen Hemminger
2023-07-25 8:20 ` Hangbin Liu
2023-07-25 16:36 ` Stephen Hemminger
2023-07-28 13:01 ` Nicolas Dichtel
2023-07-28 15:42 ` David Ahern
2023-08-02 9:10 ` Thomas Haller
2023-08-08 1:44 ` David Ahern
2023-08-08 18:59 ` Benjamin Poirier
2023-09-11 9:50 ` Thomas Haller
2023-09-13 7:58 ` Nicolas Dichtel
2023-09-13 9:54 ` Hangbin Liu
2023-09-13 14:11 ` Nicolas Dichtel
2023-09-13 14:43 ` David Ahern
2023-09-13 14:53 ` Nicolas Dichtel
2023-09-14 15:43 ` Nicolas Dichtel
2023-09-15 3:07 ` David Ahern
2023-09-15 15:54 ` Nicolas Dichtel
2023-09-13 14:41 ` David Ahern
2023-09-15 16:59 ` Stephen Hemminger
2023-07-26 10:17 ` [Questions] Some issues about IPv4/IPv6 nexthop route (was Re: [PATCH net-next] ipv4/fib: send RTM_DELROUTE notify when flush fib) Hangbin Liu
2023-07-26 15:57 ` David Ahern
2023-07-27 4:19 ` [Questions] Some issues about IPv4/IPv6 nexthop route Hangbin Liu
2023-07-27 15:35 ` David Ahern
2023-07-27 14:45 ` [Questions] Some issues about IPv4/IPv6 nexthop route (was Re: [PATCH net-next] ipv4/fib: send RTM_DELROUTE notify when flush fib) Ido Schimmel
2023-08-28 7:53 ` [Questions] Some issues about IPv4/IPv6 nexthop route Hangbin Liu
2023-08-28 15:06 ` David Ahern
2023-08-29 1:07 ` Hangbin Liu [this message]
2023-08-29 1:42 ` David Ahern
2023-08-02 9:06 ` [PATCH net-next] ipv4/fib: send RTM_DELROUTE notify when flush fib Thomas Haller
2023-08-04 8:09 ` Hangbin Liu
2023-08-09 7:06 ` Ido Schimmel
2023-08-09 10:02 ` Hangbin Liu
2023-07-25 14:13 ` kernel test robot
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=ZO1E4iy5hmd4kpHl@Laptop-X1 \
--to=liuhangbin@gmail.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=idosch@idosch.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=stephen@networkplumber.org \
--cc=thaller@redhat.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