I had such ambitious goals when I started this project! My intent was
to allow elabinelab vlan firewalls. Alas, I never got there, fell into a pit of hell and never made it back out. However, I did do a few things. I did make some changes to deal with stacks, mostly making sure that stacks are processed properly inside the elabinelab, and passed through to the outer emulab, which currently ignores the stack. See the new version of the proxy. The big change was to -m and -o. These now require a pid/eid argument so that we can create (and delete) vlan objects in the DB, for both the control and experimental stacks. Most notably, when creating a firewalled experiment, we get a Lan(VLan) object for the control network fwvlan, and an entry in the softstate vlans table (that mirrors what is on the switches). This is intended to make things easier to cleanup after a swap error, and to catch inconsitencies before we release nodes. Note that -m and -o take -f to override the pid/eid requirement, in which case they operate as before. Trunk enable/disable and Port enable/disable now record that state in the new interface_state table. We now proxy doPortControl(). A second -l option overrides Keiths change that prints only vlans associated witl experiments; print *all* vlans.