Skip to content. | Skip to navigation

Personal tools


You are here: Home / Wiki / Insideemulab




This is a draft. Will grow by my diving into Emulab more and more.



The link, lan, etc are all VLANs in Emulab. The attributes of a VLAN is set by the NS running, which generates an XML file to represent your experiment. Then the XML file is written into mysql DB by dividing it into many tables' rows. It is easy to imagine each group of attributes belongs to different tables. e.g. VLAN attributes belong to the VLAN table in DB.

But there are actually many tables about VLANs. The one the XML file will be written into is virt_lans, and actually also virt_lan_lans. The former one stores all the data your specified for a VLAN and also the generated data by Emulab during creating your experiment. The later is just a simple view of virt_lans for simpler query to get the ID stuff.

When creating a VLAN during swapping, VLAN identifiers are selected from virt_lan_lans and inserted into lans, which is done by Then the will set some runtime and static attributes of VLAN into lan_attributes.

Each member of the LAN will be created by VLan::AddPort(). The member rows in lan_members is created by the swap-in code.


To assign nodes and find the connected switch port of a PC NIC, the table wires should be consulted. It provides the wires info, which mainly are the two end points of a wire connection.

... to be continued.