On Wed, Sep 01, 2021 at 11:37:10PM +0200, Alexander Bluhm wrote: > On Wed, Aug 18, 2021 at 04:28:13PM +0200, Alexander Bluhm wrote: > > I want to create an enc1 interface for routing domain 1 and set > > additional addresses on lo1. So my net config looks like this. > > > > ==> /etc/hostname.enc1 <== > > rdomain 1 > > > > ==> /etc/hostname.lo1 <== > > rdomain 1 > > inet alias 10.188.10.74 255.255.255.255 > > ... > > > > /etc/netstart creates enc1 in routing domain 0, but does not place > > it into rdomain 1 due to this error: > > starting network > > ifconfig: SIOCSIFRDOMAIN: Invalid argument > > > > With some additional debug output netstart does this: > > { ifconfig enc1 || ifconfig enc1 create; } > > { ifconfig lo0 || ifconfig lo0 create; } > > { ifconfig lo1 || ifconfig lo1 create; } > > { ifconfig enc1 || ifconfig enc1 create; } > > ifconfig enc1 rdomain 1 > > ... > > { ifconfig lo1 || ifconfig lo1 create; } > > ifconfig lo1 rdomain 1 > > ifconfig lo1 inet alias 10.188.10.74 netmask 255.255.255.255 > > > > ifconfig enc1 rdomain 1 fails as lo1 exists, but is still in routing > > domain 0. > > > > To fix this, I think lo1, lo2, ... should not be created upfront. > > Also more debug output for /etc/netstart -n is necessary to understand > > what is going on. > > Debugging code has been added seperately. The following condition > allows me to create enc1 in routing domain 1.
OK kn > Index: etc/netstart > =================================================================== > RCS file: /data/mirror/openbsd/cvs/src/etc/netstart,v > retrieving revision 1.215 > diff -u -p -r1.215 netstart > --- etc/netstart 30 Aug 2021 16:58:52 -0000 1.215 > +++ etc/netstart 1 Sep 2021 15:52:56 -0000 > @@ -103,6 +103,9 @@ vifscreate() { > [[ -f $_hn ]] || continue > _if=${_hn#/etc/hostname.} > > + # loopback for routing domain is created by kernel > + [[ -n "${_if##lo[1-9]*}" ]] || continue No need for double quotes. > if ! ifcreate $_if; then > print -u2 "${0##*/}: create for '$_if' failed." > fi >