Various changes to MLE support, related to issue #317:
1. We now allow lans to be implemented by a path. We did not allow this before, cause some of the sanity checking code was a pain to implement for lans. Well, no more sanity checking, the user is responsible for doing things correctly (after all, they are doing experiments with their own switches!). 2. We now allow topologies with more then one switch to be wired together. The wires between switches are marked as "trunk" wires, which informs the configuration generation code in libosload_switch to create the trunks and do the little tagged/untagged magic that is required on procurve switches. The same information is used to mark the the logical wires between switches as trunks. Aside: this stuff needs some work; we have spanning tree on by default, which causes the trunks to not work correctly. When I turn that off, things start working. So need some help from others who now about spanning tree stuff. 3. Serious kludging in the Interface and Port libraries related to choice of primary keys in the wires table. In order to insert a logical wire (or interface) that represents a connection setup by the apcon, we have to overload the primary key since the node_id1 side of the logical wires is the same as the physical wire to the apcon. We have to have overload the node_id2 side too, but that is really just a problem when wiring two switches together. Anyway, the kludge just maps card1 to a different id, and the Port library unmaps it. It will do for now, but really need logical wires to be done better then this.
Showing with 473 additions and 363 deletions