On Tue, Sep 22, 2020 at 10:03:29PM +0200, Klemens Nanni wrote: > We have never been able to remove an rtable; until claudio moved them > explicitly with rtable_l2set() in if_loop.c:loop_clone_destroy(), i.e. > > revision 1.90 > date: 2020/01/08 09:09:10; author: claudio; state: Exp; lines: +6 -2; > In loop_clone_destroy() reset the rdomain with rtable_l2set() after > the if_detach() call. In if_detach() various route messages are > generated > and during that time the rtable_l2() mapping needs to stay. > OK kn@ > > it would still exist but not be assigned to any valid rdomain. Back then this > could be obvserved with `route -T1 ...' still "working" after having > destroyed lo1. > > Reverting claudio's commit on -CURRENT, that is with `netstat -R' now > available, confirms this: > > # sysctl kern.version > kern.version=OpenBSD 6.8-beta (GENERIC) #0: Tue Sep 22 21:24:48 CEST > 2020 > kn@eru:/sys/arch/amd64/compile/GENERIC > # ifconfig lo1 rdomain 1 > # netstat -R > Rdomain 0 > Interfaces: lo0 vio0 > Routing table: 0 > > Rdomain 1 > Interface: lo1 > Routing table: 1 > > # ifconfig lo1 destroy > # netstat -R > Rdomain 0 > Interfaces: lo0 vio0 > Routing table: 0 > > # route -T1 show > Routing tables > # echo $? > 0 > > > This is not documented anywhere and I'd certainly not expect it after > reading rtable(4). The manual says we can delete rdomains and is quiet > about deleting rtables, which can imply that rtables cannot be deleted > but might also imply that rtables are deleted automatically when > rdomains are deleted. > > Either way, explicit is better here, I think. > > Feedback? OK?
The comment at the beginning of src/sys/net/rtable.c is the only place I'm aware of that documents that routing tables can not be deleted. I think it makes sense to document this in rtable(4). ok remi@ > > > Index: rdomain.4 > =================================================================== > RCS file: /cvs/src/share/man/man4/rdomain.4,v > retrieving revision 1.14 > diff -u -p -r1.14 rdomain.4 > --- rdomain.4 30 Jul 2020 21:44:34 -0000 1.14 > +++ rdomain.4 22 Sep 2020 19:58:57 -0000 > @@ -146,3 +146,5 @@ and IPv6 support first appeared in > .Sh CAVEATS > No tool is available to assign more than one rtable to an rdomain > other than to the default one (0). > +An rtable cannot be deleted. > +Deleting an rdomain will move its rtable into the default rdomain. >