[Swan-dev] test domain interface changes

Andrew Cagney andrew.cagney at gmail.com
Sun Sep 6 02:23:39 UTC 2020

There are two, related proposals.  Lets go through each carefully.

First there's <swandefault>:

On Sat, 5 Sep 2020 at 19:47, Paul Wouters <paul at nohats.ca> wrote:
> On Fri, 4 Sep 2020, Andrew Cagney wrote:
> >>>  this makes getting to the real domain and host much exier (OpenBSD
> >>> is already using swandefault when NFS mounting /testing)
> >>
> >> But then eth0 is never used in tests ?
> >
> > OpenBSD is using its dedicated <swandefault> interface to directly NFS
> > mount /testing.  It doesn't need nic.  We think it will work when
> > there are multiple instances of obsde et.al.
> >
> > I don't see why we shouldn't make this pervasive, and use <interface>0
> > so it is memorable.
> We removed the extra unused interfaces a few years ago that were in
> Those were eth2 and could be used but never were. Except
> on nic where it can hook up to the real internet.

(Hm, what's  Perhaps you ment which seems unused?

Based on the XML, OpenBSD's west has:
    0: 192_1_2
    1: 192_0_1
    2: swandefault
while linux's west has:
    0: 192_0_1
    1: 192_1_2
If we really are going to shoot for the holy grail where generic tests
work with arbitrary OSs on east/west then I think well be better off
having linux and bsd sharing a single machine definition.  If nothing
else it would fix what looks like a bug in the above, but would mean
<swandefault> is present on linux systems.

This leads to the second reason for adding <swandefault>.  Currently,
for east et.al. to get access to the real world it needs to go through
hoops.  NIC needs to be up and re-configured; east's routing tables
need to be fixed, ... All secret sauce that no one can quite remember
how to get working.  Having direct access to <swandefault> NAT should
simplify all that.

> >> But we want east and west with eth0 in the same network and with eth1 not on the same network ?
> >
> > So don't enable the network.  It's one thing to have the network
> > wired, another to have it enabled.
> I don't see the gain of breaking 700 test cases and their output just
> for using a different interface in openbsd. Just let openbsd use a
> new named interface ?

What we're talking about here is a _natted_ bridge that multiple
instances of obsde, say, can use to simultaneously access the host.
This means the VMs do not, and cannot, have pre-assigned ethernet / ip
addresses.  And this is what <swandefault> provides.

> > east 192_0_2 192_1_2
> > nic 192_1_2 192_1_3 swandefault
> > north 192_0_3 192_1_3
> > openbsde 192_1_2 192_0_2 swandefault
> > openbsdw 192_1_2 192_0_1 swandefault
> > road 192_1_3
> > west 192_0_1 192_1_2

(this is the first time I've been able to reliably see how the
interfaces are laid out)

> > we could at least have east, west, and nic use the same interface for
> > 192_1_2, for instance:
> > 0: swandefault
> > 1: 192_1_2
> > 2: the other interface
> > 3: and more random interfaces
> But almost no test would use eth0. I'd rather stick to eth0 for machines
> with "one real" interface, like road and north, and eth0 and eth1 for
> west and east that have to have "two real" interfaces.

Now we get to renumbering/renaming.  If you really think eth0 should
be a real interface, then <swandefault> can go last - knowing the last
interface is always the NAT is almost as easy as knowing it is the
(speaking of which, why do east and west - our most common test
exchange talk through the counter intuitive eth1 and not eth0?)

Two things to keep in mind:

- shuffling interfaces is incremental
one domain at a time (and personally I don't tend to push changes
affecting all test output without updating the output first)
- updating is transparent:
   gmake kvm-clean kvm-install kvm-test
rebuilds all the test VMs and their interfaces already

More information about the Swan-dev mailing list