Version 1 (modified by 10 years ago) (diff) | ,
---|
FOAM attachment information
FOAM can be configured with information about what other devices its switches are connected to, which is really useful in helping experimenters figure out the topology of the GENI infrastructure.
NOTE that you'll want to update this if you add or remove connections!
Configuring attachments
FOAM keeps track of these attachments, and there are three foamctl commands to work with them:
foamctl topo:create-attachment --passwd-file=/etc/foam.passwd foamctl topo:list-attachments --passwd-file=/etc/foam.passwd foamctl topo:remove-attachment --passwd-file=/etc/foam.passwd
topo:list-attachments will show of the currently-configured attachments, each of which has a UUID, which you can use to remove the attachment with topo:remove-attachment. The rest of this section describes how to create new attachments. (To modify an existing attachment, just remove it and create a new one.)
topo:create-attachment takes a variety of arguments:
--type=TYPE
: This identifies what type of remote device this attachment is connected to. There are four options:of
is a FOAM-managed OpenFlow device with a GENI URNnof
is a non-FOAM-managed network device with a GENI URNhost
is a host with a GENI URNother
is anything without a GENI URN
--local-dpid=LOCAL_DPID
and--local-port=LOCAL_PORT
: These identify the DPID and port name on the switch that FOAM manages.--remote-component-id=REMOTE_CMID
: The GENI URN of the remote device, if it has one; don't use this with --type=other.--remote-hostname=REMOTE_HOSTNAME
: A hostname (or some other string) that identifies the remote device, if it doesn't have a GENI URN; only use this with --type=other.--remote-port=REMOTE_PORT
: A string that identifies the port on the remote device.--desc=DESC
: A natural-language description of the remote device; typically something high-level that would be useful to an experimenter.
Examples
Here are some examples for various BBN things.
Both sides of a connection between two FOAM-managed OpenFlow switches (habanero-1750 and poblano-1750):
foamctl topo:create-attachment --type="of" --local-dpid="06:d6:00:24:a8:c4:b9:00" --local-port="47" --remote-component-id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:12:e2:b8:a5:d0" --remote-port="GBE0/20" --desc="poblano-1750" --passwd-file=/etc/foam.passwd foamctl topo:create-attachment --type="of" --local-dpid="06:d6:00:12:e2:b8:a5:d0" --local-port="GBE0/20" --remote-component-id="urn:publicid:IDN+openflow:foam:foam.gpolab.bbn.com+datapath+06:d6:00:24:a8:c4:b9:00" --remote-port="47" --desc="habanero-1750" --passwd-file=/etc/foam.passwd
A connection to a ProtoGENI node:
foamctl topo:create-attachment --type="host" --local-dpid="06:d6:00:24:a8:c4:b9:00" --local-port="1" --remote-component-id="urn:publicid:IDN+pgeni.gpolab.bbn.com+node+pc1" --remote-port="eth3" --desc="pc1.pgeni.gpolab.bbn.com[eth3] (ur)" --passwd-file=/etc/foam.passwd
A connection to a test node, which isn't GENI managed (and thus doesn't have a GENI URN):
foamctl topo:create-attachment --type="other" --local-dpid="06:d6:00:24:a8:c4:b9:00" --local-port="33" --remote-hostname="argos.gpolab.bbn.com" --remote-port="eth1" --desc="argos[eth1]" --passwd-file=/etc/foam.passwd