Changes between Initial Version and Version 1 of OpenFlow/FOAM/AttachmentInformation


Ignore:
Timestamp:
10/01/13 11:53:50 (11 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OpenFlow/FOAM/AttachmentInformation

    v1 v1  
     1[[PageOutline]]
     2
     3= FOAM attachment information =
     4
     5[wiki:OpenFlow/FOAM 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.
     6
     7NOTE that you'll want to update this if you add or remove connections!
     8
     9= Configuring attachments =
     10
     11FOAM keeps track of these attachments, and there are three foamctl commands to work with them:
     12
     13{{{
     14foamctl topo:create-attachment --passwd-file=/etc/foam.passwd
     15foamctl topo:list-attachments --passwd-file=/etc/foam.passwd
     16foamctl topo:remove-attachment --passwd-file=/etc/foam.passwd
     17}}}
     18
     19topo: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.)
     20
     21topo:create-attachment takes a variety of arguments:
     22
     23 * `--type=TYPE`: This identifies what type of remote device this attachment is connected to. There are four options:
     24   * `of` is a FOAM-managed !OpenFlow device with a GENI URN
     25   * `nof` is a non-FOAM-managed network device with a GENI URN
     26   * `host` is a host with a GENI URN
     27   * `other` is anything without a GENI URN
     28 * `--local-dpid=LOCAL_DPID` and `--local-port=LOCAL_PORT`: These identify the DPID and port name on the switch that FOAM manages.
     29 * `--remote-component-id=REMOTE_CMID`: The GENI URN of the remote device, if it has one; don't use this with --type=other.
     30 * `--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.
     31 * `--remote-port=REMOTE_PORT`: A string that identifies the port on the remote device.
     32 * `--desc=DESC`: A natural-language description of the remote device; typically something high-level that would be useful to an experimenter.
     33
     34= Examples =
     35
     36Here are some examples for various BBN things.
     37
     38Both sides of a connection between two FOAM-managed !OpenFlow switches (habanero-1750 and poblano-1750):
     39
     40{{{
     41foamctl 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
     42foamctl 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
     43}}}
     44
     45A connection to a ProtoGENI node:
     46
     47{{{
     48foamctl 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
     49}}}
     50
     51A connection to a test node, which isn't GENI managed (and thus doesn't have a GENI URN):
     52
     53{{{
     54foamctl 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
     55}}}