Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Aug 2020 09:38:47 -0700 (PDT)
From:      "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>
To:        mike@karels.net
Cc:        "Alexander V. Chernikov" <melifaro@ipfw.ru>, net <net@freebsd.org>, freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: ip(8) in base
Message-ID:  <202008161638.07GGclX4056884@gndrsh.dnsmgr.net>
In-Reply-To: <202008161505.07GF5MMU054548@mail.karels.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> > From: "Alexander V. Chernikov" <melifaro@ipfw.ru>
> > To: net <net@freebsd.org>, freebsd-hackers <freebsd-hackers@freebsd.org>
> > Subject: ip(8) in base
> > Date: Sun, 16 Aug 2020 10:11:11 +0100
> 
> > I want to introduce ip(8) or something similar in base.
> > Basically, I need some userland tool to explicitly operates on nexthops, nexthop groups and fib lookup algorithms.
> 
> > The existing tools are not well suited for the job: route(8) may be a candidate, but (a) it would either add another bunch of  options or drastically change the tool by introducing [route nhop add], [route nhgroup add] and (b) listing is traditionally done by netstat(8).
> 
> I agree with the others who said not to use ip(8) if the tool is not
> compatible with the Linux ip.  Also, routing is (at least in theory)
> independent of address family, and that makes the name "ip" too specific.

I strongly agree with this.

> However, I think that route and netstat are sufficiently extensible to
> add additional facilities, as they have been so far.  One suggestion,
> though, would be to preserve the general strategy of using "route verb ...",
> e.g. "route add nhop ..." rather than "route nhop add ...".  These seem
> sufficiently similar to existing functionality to share a tool.

Again, I agree with the above statement by Mike.

The proposed commands are all in support of "route" features,
and in BSD it is the route command that is used to maniplate
these, please do not deviate from that.  I have seen no strong
reason given that route(8) and netstat(1) can not be extended
to add the desired functionality.

> Similarly, if possible I would prefer to see --libxo json rather than -j.

I have no skin in this one, other than to state that iirc the
route(8) command is currently without any long options so
adding this --libxo would require adding long option support,
which is probably not justifiable for 1 option.

> 		Mike
> 
> > I feel like there is a need of some cli tool that provides the ability to easily extend it by having separate namespaces for each sub-command (hello, ifconfig).
> 
> > Naming is hard. I can, for example, use "rt" as a name to address my use cases.
> > However, given the kernel interfaces for managing nexthops/nexhop groups are the same as with routes/arp/ndp, why not spending some additional time and support operating on routes and neighbors and name it ip?
> 
> > Though, that arises multiple questions.
> > Are we comfortable with ip(8) as a name in general?
> > If we are, what's our take on having the compatible interface with Linux ip(8)? 
> 
> > Any comments/feedback is welcome :-)
> 
> 
> > Appendix 
> > List of commands I need implemented
> 
> > cmd [-46m] nhop create [gw XX] [iface YYY] [mtu YYY] [reject] [proxyfib Y] [fib X][ipv4] [ipv6]
> > cmd [-46m] nhop delete nhop_id
> > cmd -46m nhop list 
> > cmd -j nhop list # json 

What is special about these nhop routes that this is not just a route add?
Could that not be handled as either a route flag ala -iface/-static/-reject/-blackhole
or via a route modifier ala -osi/-xns/-inet/-inet6?

I am actually a bit confused in that all routes are really just an expression
of the "next hop" as far as the kernel goes, or are we now doing lsdb type
routing in the kernel?

> 
> > cmd -46m nhgroup create nhops 1,2,3,4,5,6 [fib X]
> > cmd -46 nhgroup create nhops 1=100,2=100,3=200,4=100 [proxyfib Y][fib X]
> > cmd -46 nhroup list
            ^ nhgroup?

> > cmd -46 nhgroup delete nhgroup_id
> 
> > cmd -46 fib algo list
> > cmd -46 fib algo set algo dpdk_lpm6 fib 0
> > cmd -46 fib algo set algo auto fib 0
> 
> 
> > /Alexander

-- 
Rod Grimes                                                 rgrimes@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008161638.07GGclX4056884>