wiki:GENIRacksHome/ExogeniRacks/AcceptanceTestStatus/EG-MON-2

Version 7 (modified by Josh Smift, 12 years ago) (diff)

--

Detailed test plan for EG-MON-2: GENI Software Configuration Inspection Test

This page is GPO's working page for performing EG-MON-2. It is public for informational purposes, but it is not an official status report. See GENIRacksHome/ExogeniRacks/AcceptanceTestStatus for the current status of ExoGENI acceptance tests.

Last substantive edit of this page: 2012-08-09

Page format

  • The status chart summarizes the state of this test
  • The high-level description from test plan contains text copied exactly from the public test plan and acceptance criteria pages.
  • The steps contain things i will actually do/verify:
    • Steps may be composed of related substeps where i find this useful for clarity
    • Each step is either a preparatory step (identified by "(prep)") or a verification step (the default):
      • Preparatory steps are just things we have to do. They're not tests of the rack, but are prerequisites for subsequent verification steps
      • Verification steps are steps in which we will actually look at rack output and make sure it is as expected. They contain a Using: block, which lists the steps to run the verification, and an Expect: block which lists what outcome is expected for the test to pass.

Status of test

Meaning of states:

  • Color(lightgreen,Pass)?: Step is completed and passed (for a verification step), or is completed (for a prep step)
  • Color(red,Fail)?: Step is completed and failed, and is not being revisited
  • in progress: We are currently testing or iterating on this step
  • Color(orange,Blocked)?: Step is blocked by some other step or activity
Step State Date completed Open Tickets Closed Tickets/Comments
1 Color(orange,Blocked)? need info from exogeni-design, asked 2012-08-14
2 Color(orange,Blocked)? need info from exogeni-design, asked 2012-08-14
3 Color(orange,Blocked)? need info from exogeni-design, asked 2012-08-14
4 Color(orange,Blocked)? need info from exogeni-design, asked 2012-08-14
5 Color(lightgreen,Pass)? 2012-08-14

High-level description from test plan

This test inspects the state of the GENI AM software in use on the rack.

Procedure

  • A site administrator uses available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine the configuration of ExoGENI resources:
    • How many VMs are assigned to each of the BBN rack SM and the global ExoSM
    • How many bare metal nodes are configured on the rack and whether they are controlled by the BBN rack SM or by ExoSM.
    • How many unbound VLANs are in the rack's available pool and whether they are controlled by the BBN rack SM or by ExoSM.
    • Whether the BBN ExoGENI AM, the RENCI ExoGENI AM, and ExoSM trust the pgeni.gpolab.bbn.com slice authority, which will be used for testing.
  • A site administrator uses available system data sources to determine the configuration of OpenFlow resources according to FOAM, ExoGENI, and FlowVisor.

Criteria to verify as part of this test

  • VI.12. A public document describes all the GENI experimental resources within the rack, and explains what policy options exist for each, including: how to configure rack nodes as bare metal vs. VM server, what options exist for configuring automated approval of compute and network resource requests and how to set them, how to configure rack aggregates to trust additional GENI slice authorities, whether it is possible to trust local users within the rack. (F.7)
  • VI.13. A public document describes the expected state of all the GENI experimental resources in the rack, including how to determine the state of an experimental resource and what state is expected for an unallocated bare metal node. (F.5)
  • VII.11. A site administrator can locate current configuration of flowvisor, FOAM, and any other OpenFlow services, and find logs of recent activity and changes. (D.6.a)

Step 1: determine VM resource allocations

Overview of Step 1

Using:

  • On bbn-hn, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine how many VMs are assigned to each of the BBN rack SM and to the global ExoSM.

Verify:

  • The site administrator can determine how many VMs are allocated to each SM

Step 2: determine bare metal node configurations

Overview of Step 2

Using:

  • On bbn-hn, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine how many nodes in the rack are configured as bare metal nodes, and whether they are controlled by the BBN rack SM or by ExoSM.

Verify:

  • The site administrator can determine how many bare metal nodes are controlled by the local SM
  • The site administrator can determine where each rack bare metal node's controller is if the controller is not the local SM

Step 3: determine available VLAN pool

Overview of Step 3

Using:

  • On bbn-hn, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine how many unbound VLANs are available for rack use, and whether they are allocated by the local rack SM or by ExoSM.
  • On bbn-hn, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine whether any bound VLANs are available for rack use, and whether they are allocated by the local rack SM or by ExoSM.

Verify:

  • The site administrator can determine how many unbound VLANs are available for use and where they are allocated.
  • The site administrator can determine what bound VLANs are available for use and where they are allocated.

Step 4: determine which GENI SAs are trusted

Overview of Step 4

Using:

  • On bbn-hn, use available system data sources (process listings, monitoring output, system logs, etc) and/or AM administrative interfaces to determine which GENI slice authorities the local rack SM trusts.
  • Use the GENI AM API to verify that the BBN ExoGENI AM, the RENCI ExoGENI AM and the ExoSM trust the pgeni.gpolab.bbn.com SA.
  • Use the GENI AM API to verify that the rack FOAM instance trusts the pgeni.gpolab.bbn.com SA.

Verify:

  • The site administrator can determine the full set of trusted GENI slice authorities on the local rack.
  • An experimenter can verify that the four AMs to be used in the test trust the pgeni.gpolab.bbn.com SA.

Results of Step 4 from 2012-08-14

I verified that the rack FOAM instance trusts the pgeni.gpolab.bbn.com SA in two ways.

On bbn-hn:

[13:13:44] jbs@bbn-hn:/home/jbs
+$ cat /opt/foam/etc/gcf-ca-certs/pgeni.gpolab.bbn.com.pem 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            fc:ed:da:89:e1:1a:ba:af
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=US, ST=Massachusetts, L=Cambridge, O=GENI Project Office, OU=Certificate Authority, CN=boss.pgeni.gpolab.bbn.com/emailAddress=testbed-ops@ops.pgeni.gpolab.bbn.com
        Validity
            Not Before: May 28 16:07:58 2010 GMT
            Not After : Nov 18 16:07:58 2015 GMT
        Subject: C=US, ST=Massachusetts, L=Cambridge, O=GENI Project Office, OU=Certificate Authority, CN=boss.pgeni.gpolab.bbn.com/emailAddress=testbed-ops@ops.pgeni.gpolab.bbn.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:bb:7e:9b:79:87:8b:54:88:95:ad:39:54:2c:58:
                    7e:5f:cc:99:15:15:ee:25:f1:06:11:50:9e:bd:47:
                    d1:4f:5d:44:f1:d1:74:af:9f:ff:af:56:8b:17:b1:
                    f9:7b:b3:a3:df:1b:d5:13:ae:e5:71:4d:68:31:64:
                    ab:b7:b5:2b:40:51:20:3e:8b:b9:ba:0b:4e:f0:10:
                    3c:05:9b:1a:8f:75:4f:79:f3:a0:24:9a:8b:b5:4f:
                    a2:fe:50:9b:21:5a:6f:92:4e:43:d4:f0:56:06:23:
                    38:f5:e2:1d:c4:32:0c:38:0e:96:50:f0:a3:87:60:
                    4a:93:13:d9:d8:79:b0:3a:11
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                98:57:01:01:AE:BF:D9:9C:8D:D2:F0:04:06:D9:2A:E8:06:CB:B0:F9
            X509v3 Authority Key Identifier: 
                keyid:98:57:01:01:AE:BF:D9:9C:8D:D2:F0:04:06:D9:2A:E8:06:CB:B0:F9
                DirName:/C=US/ST=Massachusetts/L=Cambridge/O=GENI Project Office/OU=Certificate Authority/CN=boss.pgeni.gpolab.bbn.com/emailAddress=testbed-ops@ops.pgeni.gpolab.bbn.com
                serial:FC:ED:DA:89:E1:1A:BA:AF

            X509v3 Basic Constraints: 
                CA:TRUE
            X509v3 Subject Alternative Name: 
                URI:urn:publicid:IDN+pgeni.gpolab.bbn.com+authority+root
            X509v3 Issuer Alternative Name: 
                URI:urn:publicid:IDN+pgeni.gpolab.bbn.com+authority+root
    Signature Algorithm: md5WithRSAEncryption
        67:2c:95:c6:a1:d8:8a:1d:a4:1d:62:f8:36:e5:df:bd:08:ef:
        5f:57:1b:b4:6c:20:bd:79:d5:c8:96:de:ce:31:3b:cf:d9:4a:
        26:84:88:e4:eb:83:91:16:42:18:65:ea:9f:9a:ae:a0:57:52:
        f6:d2:17:fc:8a:a4:b7:8e:2a:a1:54:64:bb:e1:2a:68:fc:33:
        52:e5:18:f4:7f:78:8d:c0:31:db:52:ee:51:2c:bb:f2:44:f5:
        07:aa:19:0c:17:f2:5c:a7:d0:ba:e2:9b:c3:00:65:79:97:78:
        e5:ff:26:c7:b3:c6:2e:a6:2e:d7:08:bb:1d:c0:e5:e0:d6:af:
        ae:12
-----BEGIN CERTIFICATE-----
MIIE3jCCBEegAwIBAgIJAPzt2onhGrqvMA0GCSqGSIb3DQEBBAUAMIHQMQswCQYD
VQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czESMBAGA1UEBxMJQ2FtYnJp
ZGdlMRwwGgYDVQQKExNHRU5JIFByb2plY3QgT2ZmaWNlMR4wHAYDVQQLExVDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkxIjAgBgNVBAMTGWJvc3MucGdlbmkuZ3BvbGFiLmJi
bi5jb20xMzAxBgkqhkiG9w0BCQEWJHRlc3RiZWQtb3BzQG9wcy5wZ2VuaS5ncG9s
YWIuYmJuLmNvbTAeFw0xMDA1MjgxNjA3NThaFw0xNTExMTgxNjA3NThaMIHQMQsw
CQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czESMBAGA1UEBxMJQ2Ft
YnJpZGdlMRwwGgYDVQQKExNHRU5JIFByb2plY3QgT2ZmaWNlMR4wHAYDVQQLExVD
ZXJ0aWZpY2F0ZSBBdXRob3JpdHkxIjAgBgNVBAMTGWJvc3MucGdlbmkuZ3BvbGFi
LmJibi5jb20xMzAxBgkqhkiG9w0BCQEWJHRlc3RiZWQtb3BzQG9wcy5wZ2VuaS5n
cG9sYWIuYmJuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu36beYeL
VIiVrTlULFh+X8yZFRXuJfEGEVCevUfRT11E8dF0r5//r1aLF7H5e7Oj3xvVE67l
cU1oMWSrt7UrQFEgPou5ugtO8BA8BZsaj3VPefOgJJqLtU+i/lCbIVpvkk5D1PBW
BiM49eIdxDIMOA6WUPCjh2BKkxPZ2HmwOhECAwEAAaOCAbwwggG4MB0GA1UdDgQW
BBSYVwEBrr/ZnI3S8AQG2SroBsuw+TCCAQUGA1UdIwSB/TCB+oAUmFcBAa6/2ZyN
0vAEBtkq6AbLsPmhgdakgdMwgdAxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNz
YWNodXNldHRzMRIwEAYDVQQHEwlDYW1icmlkZ2UxHDAaBgNVBAoTE0dFTkkgUHJv
amVjdCBPZmZpY2UxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhvcml0eTEiMCAG
A1UEAxMZYm9zcy5wZ2VuaS5ncG9sYWIuYmJuLmNvbTEzMDEGCSqGSIb3DQEJARYk
dGVzdGJlZC1vcHNAb3BzLnBnZW5pLmdwb2xhYi5iYm4uY29tggkA/O3aieEauq8w
DAYDVR0TBAUwAwEB/zA/BgNVHREEODA2hjR1cm46cHVibGljaWQ6SUROK3BnZW5p
Lmdwb2xhYi5iYm4uY29tK2F1dGhvcml0eStyb290MD8GA1UdEgQ4MDaGNHVybjpw
dWJsaWNpZDpJRE4rcGdlbmkuZ3BvbGFiLmJibi5jb20rYXV0aG9yaXR5K3Jvb3Qw
DQYJKoZIhvcNAQEEBQADgYEAZyyVxqHYih2kHWL4NuXfvQjvX1cbtGwgvXnVyJbe
zjE7z9lKJoSI5OuDkRZCGGXqn5quoFdS9tIX/Iqkt44qoVRku+EqaPwzUuUY9H94
jcAx21LuUSy78kT1B6oZDBfyXKfQuuKbwwBleZd45f8mx7PGLqYu1wi7HcDl4Nav
rhI=
-----END CERTIFICATE-----

Via the GENI AM API:

[13:15:53] jbs@jericho:/home/jbs
+$ grep -A 8 -B 2 '\[gpolab\]' ~/.gcf/omni_config 
## GPO Lab ProtoGENI

[gpolab]

type = pg
verbose = false
ch = https://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/ch
sa = https://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/sa
cert = ~/.ssl/jbs@pgeni.gpolab.bbn.com.pem
key = ~/.ssl/jbs@pgeni.gpolab.bbn.com.pem

[13:16:54] jbs@jericho:/home/jbs
+$ omni -a https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1 getversion -f gpolab
INFO:omni:Loading config file /home/jbs/.gcf/omni_config
INFO:omni:Using control framework gpolab
INFO:omni:AM URN: unspecified_AM_URN (url: https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1) has version:
INFO:omni:{   'ad_rspec_versions': [   {   'extensions': [   'http://www.geni.net/resources/rspec/ext/openflow/3'],
                                 'namespace': 'http://www.geni.net/resources/rspec/3',
                                 'schema': 'http://www.geni.net/resources/rspec/3/ad.xsd',
                                 'type': 'GENI',
                                 'version': '3'}],
    'foam_version': '0.8.2',
    'geni_api': 1,
    'request_rspec_versions': [   {   'extensions': [   'http://www.geni.net/resources/rspec/ext/openflow/3',
                                                        'http://www.geni.net/resources/rspec/ext/openflow/4',
                                                        'http://www.geni.net/resources/rspec/ext/flowvisor/1'],
                                      'namespace': 'http://www.geni.net/resources/rspec/3',
                                      'schema': 'http://www.geni.net/resources/rspec/3/request.xsd',
                                      'type': 'GENI',
                                      'version': '3'}],
    'site_info': {   }}
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed getversion:

  Options as run:
                aggregate: https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1
                framework: gpolab
                native: True

  Args: getversion

  Result Summary: 
Got version for 1 out of 1 aggregates
 
INFO:omni: ============================================================

I also verified that it did not trust another SA, Utah ProtoGENI in this case:

[13:17:00] jbs@jericho:/home/jbs
+$ grep -A 8 -B 2 '\[utah\]' ~/.gcf/omni_config 
## Utah ProtoGENI

[utah]

type = pg
verbose = false
ch = https://www.emulab.net/protogeni/xmlrpc/ch
sa = https://www.emulab.net/protogeni/xmlrpc/sa
cert = ~/.ssl/jbs@www.emulab.net.pem
key = ~/.ssl/jbs@www.emulab.net.pem

[13:17:37] jbs@jericho:/home/jbs
+$ omni -a https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1 getversion -f utah
INFO:omni:Loading config file /home/jbs/.gcf/omni_config
INFO:omni:Using control framework utah
ERROR:omni.protogeni:Call for GetVersion at https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1 failed.: ProtocolError: <ProtocolError for bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1: 400 Bad Request>
ERROR:omni.protogeni:    ..... Run with --debug for more information
WARNING:omni:URN: unspecified_AM_URN (url:https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1) call failed: ProtocolError: <ProtocolError for bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1: 400 Bad Request>

INFO:omni: ------------------------------------------------------------
INFO:omni: Completed getversion:

  Options as run:
                aggregate: https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1
                framework: utah
                native: True

  Args: getversion

  Result Summary: Cannot GetVersion at https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1: ProtocolError: <ProtocolError for bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1: 400 Bad Request>

Got version for 0 out of 1 aggregates
 
INFO:omni: ============================================================

Step 5: determine rack OpenFlow state

Overview of Step 5

Using:

  • From a login to the 8264 (dataplane) switch, view the OpenFlow configuration.
  • On bbn-hn, use fvctl to view the set of devices reporting to the FlowVisor.
  • On bbn-hn, use foamctl to view the list of slivers.
  • Use the GENI AM API to view the set of datapaths advertised by FOAM.

Verify:

  • All datapaths on the rack switch report to FlowVisor.
  • All datapaths reporting to FlowVisor come from the rack switch.
  • A site administrator can look at flowvisor's state using fvctl.
  • A site administrator can look at FOAM's state using foamctl.
  • FOAM advertises all datapaths on the rack switch.

Results of Step 5 from 2012-08-14

For the first of those, the switch shows some OpenFlow information:

bbn-8264.bbn.xo>show openflow
        Protocol Version: 1
        Openflow State: Enabled
        Max Flows: 10000
        FDB Table Priority: 1000
        Open Flow Instance ID: 1
        Openflow Edge ports : None
        Openflow Management ports :  63
        Openflow Buffering : Enabled
        Openflow Buffer Size: 1024
        Emergency Mode : Disabled

Aha, and apparently that "Open Flow Instance ID: 1" tells me that 'show openflow 1' has a bunch more info:

bbn-8264.bbn.xo>show openflow 1
Open Flow Instance ID: 1
        DataPath ID: 0x640817f4b52a00
        Vlan ID: 100
        Max Retries per controller: 4
        Echo Request Interval: 30
        Echo Reply Timeout: 15
        Emergency Timeout: 30
        Operational Mode: Normal
        Miss Send Len: 128
        Swicth Support Capabiilities: 
                Flow Statistics             : enabled 
                Table Statistics            : enabled 
                Port Statistics             : enabled 
                Spanning Tree               : disabled 
                Reserved                    : disabled 
                Reassemble IP Fragments     : disabled 
                Queue Statistics            : disabled 
                Match IP Addr in ARP Packets: disabled 
        Swicth Support action:
                Output to Switch Port    : enabled 
                Set Vlan ID              : enabled 
                Set Priority             : enabled 
                Strip dot1q Header       : enabled 
                Ethernet Source Addr     : enabled 
                Ethernet Destination Addr: enabled 
                IP Source Address        : disabled 
                IP Destination Address   : disabled 
                IP ToS                   : enabled 
                TCP/UDP Source Port      : disabled 
                TCP/UDP Destination Port : disabled 
                Output to Queue          : disabled 
                Vendor                   : disabled 

PortList  Status  State  Config  Current  Advertised Supported  Peer
1           d     0x201   0x2     0x200    0x0       0x0         0x0
2           d     0x201   0x2     0x240    0x0       0x0         0x0
3           d     0x201   0x2     0x240    0x0       0x0         0x0
4           d     0x201   0x2     0x240    0x0       0x0         0x0
5           d     0x201   0x2     0x200    0x0       0x0         0x0
6           d     0x201   0x2     0x240    0x0       0x0         0x0
7           d     0x201   0x2     0x240    0x0       0x0         0x0
8           d     0x201   0x2     0x240    0x0       0x0         0x0
9           d     0x201   0x2     0x200    0x0       0x0         0x0
10          d     0x201   0x2     0x240    0x0       0x0         0x0
11          d     0x201   0x2     0x240    0x0       0x0         0x0
12          d     0x201   0x2     0x240    0x0       0x0         0x0
13          d     0x201   0x2     0x200    0x0       0x0         0x0
14          d     0x201   0x2     0x240    0x0       0x0         0x0
15          d     0x201   0x2     0x240    0x0       0x0         0x0
16          d     0x201   0x2     0x240    0x0       0x0         0x0
17          e     0x200   0x2     0xc0     0x0       0x0         0x0
18          e     0x200   0x2     0xc0     0x0       0x0         0x0
19          e     0x200   0x2     0xc0     0x0       0x0         0x0
20          e     0x200   0x2     0xc0     0x0       0x0         0x0
21          e     0x200   0x2     0xc0     0x0       0x0         0x0
22          e     0x200   0x2     0xc0     0x0       0x0         0x0
23          e     0x200   0x2     0xc0     0x0       0x0         0x0
24          d     0x201   0x2     0xc0     0x0       0x0         0x0
25          d     0x201   0x2     0xc0     0x0       0x0         0x0
26          d     0x201   0x2     0xc0     0x0       0x0         0x0
27          d     0x201   0x2     0x200    0x0       0x0         0x0
28          d     0x201   0x2     0x200    0x0       0x0         0x0
29          d     0x201   0x2     0x200    0x0       0x0         0x0
30          d     0x201   0x2     0x200    0x0       0x0         0x0
31          d     0x201   0x2     0x200    0x0       0x0         0x0
32          d     0x201   0x2     0x200    0x0       0x0         0x0
33          d     0x201   0x2     0x200    0x0       0x0         0x0
34          d     0x201   0x2     0x200    0x0       0x0         0x0
35          d     0x201   0x2     0x200    0x0       0x0         0x0
36          d     0x201   0x2     0x200    0x0       0x0         0x0
37          d     0x201   0x2     0x200    0x0       0x0         0x0
38          d     0x201   0x2     0x200    0x0       0x0         0x0
39          d     0x201   0x2     0x200    0x0       0x0         0x0
40          d     0x201   0x2     0x200    0x0       0x0         0x0
41          e     0x200   0x2     0xc0     0x0       0x0         0x0
42          e     0x200   0x2     0xc0     0x0       0x0         0x0
43          e     0x200   0x2     0xc0     0x0       0x0         0x0
44          e     0x200   0x2     0xc0     0x0       0x0         0x0
45          e     0x200   0x2     0xc0     0x0       0x0         0x0
46          e     0x200   0x2     0xc0     0x0       0x0         0x0
47          e     0x200   0x2     0xc0     0x0       0x0         0x0
48          d     0x201   0x2     0xc0     0x0       0x0         0x0
49          d     0x201   0x2     0xc0     0x0       0x0         0x0
50          d     0x201   0x2     0xc0     0x0       0x0         0x0
51          d     0x201   0x2     0x200    0x0       0x0         0x0
52          d     0x201   0x2     0x200    0x0       0x0         0x0
53          d     0x201   0x2     0x200    0x0       0x0         0x0
54          d     0x201   0x2     0x200    0x0       0x0         0x0
55          d     0x201   0x2     0x200    0x0       0x0         0x0
56          d     0x201   0x2     0x200    0x0       0x0         0x0
57          d     0x201   0x2     0x200    0x0       0x0         0x0
58          d     0x201   0x2     0x200    0x0       0x0         0x0
59          d     0x201   0x2     0x200    0x0       0x0         0x0
60          e     0x200   0x2     0x2a0    0x0       0x0         0x0
61          d     0x201   0x2     0x200    0x0       0x0         0x0
62          d     0x201   0x2     0x200    0x0       0x0         0x0
64          e     0x200   0x2     0x2a0    0x0       0x0         0x0

Number of Ports: 63
Configured Controllers: 
        IP Address: 192.168.103.10
                State: Active
                Port: 6633
                Retry Count: 0
        Configured Controller Count 1

So, there is only one datapath, and it points to 192.168.103.10:6633. That IP address is an interface on bbn-hn:

[13:31:20] jbs@bbn-hn:/home/jbs
+$ ifconfig -a | grep -A 7 -B 1 192.168.103.10
bond2.1006 Link encap:Ethernet  HWaddr 5C:F3:FC:6B:10:A8  
          inet addr:192.168.103.10  Bcast:192.168.103.255  Mask:255.255.255.0
          inet6 addr: fe80::5ef3:fcff:fe6b:10a8/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:106891 errors:0 dropped:0 overruns:0 frame:0
          TX packets:117109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11828203 (11.2 MiB)  TX bytes:17760462 (16.9 MiB)

FlowVisor is running on port 6633:

[13:32:26] jbs@bbn-hn:/home/jbs
+$ sudo netstat -anp | grep 6633
[sudo] password for jbs: 
tcp        0      0 :::6633                     :::*                        LISTEN      3517/java           
tcp        0    125 ::ffff:192.168.103.10:6633  ::ffff:192.168.103.4:41595  ESTABLISHED 3517/java           

[13:32:43] jbs@bbn-hn:/home/jbs
+$ ps -efwww | grep 3517
491       3517     1  2 12:12 ?        00:02:19 java -server -Xms256M -Xmx1500M -XX:OnError=flowvisor-crash-logger -XX:+UseConcMarkSweepGC -Dorg.flowvisor.config_dir=/opt/flowvisor/etc/flowvisor -Dorg.flowvisor.install_dir=/opt/flowvisor/libexec/flowvisor -Djavax.net.ssl.keyStore=/opt/flowvisor/etc/flowvisor/mySSLKeyStore -Djavax.net.ssl.keyStorePassword=CHANGEME_PASSWD -cp /opt/flowvisor/libexec/flowvisor/openflow.jar:/opt/flowvisor/libexec/flowvisor/xmlrpc-client-3.1.3.jar:/opt/flowvisor/libexec/flowvisor/xmlrpc-common-3.1.3.jar:/opt/flowvisor/libexec/flowvisor/xmlrpc-server-3.1.3.jar:/opt/flowvisor/libexec/flowvisor/commons-logging-1.1.jar:/opt/flowvisor/libexec/flowvisor/ws-commons-util-1.0.2.jar:/opt/flowvisor/libexec/flowvisor/jsse.jar:/opt/flowvisor/libexec/flowvisor/asm-3.0.jar:/opt/flowvisor/libexec/flowvisor/cglib-2.2.jar:/opt/flowvisor/libexec/flowvisor/commons-codec-1.4.jar:/opt/flowvisor/libexec/flowvisor/gson-1.7.1.jar:/opt/flowvisor/libexec/flowvisor/jetty-continuation-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/jetty-http-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/jetty-io-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/jetty-security-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/jetty-server-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/jetty-util-7.0.2.v20100331.jar:/opt/flowvisor/libexec/flowvisor/servlet-api-2.5.jar:/opt/flowvisor/libexec/flowvisor/flowvisor.jar org.flowvisor.FlowVisor /opt/flowvisor/etc/flowvisor/config.xml
jbs       4327  1532  0 13:33 pts/4    00:00:00 grep 3517

This verifies that all (one) datapaths on the rack switch report to FlowVisor.

For the second, fvctl shows only one device:

[13:33:43] jbs@bbn-hn:/home/jbs
+$ fvctl --passwd-file=/etc/flowvisor/fvpasswd listDevices
Device 0: 00:64:08:17:f4:b5:2a:00

This verifies that all datapaths reporting to FlowVisor come from the rack switch, and a site admin can look at FV's state using fvctl.

For the third, foamctl can show a list of slivers:

[13:37:07] jbs@bbn-hn:/home/jbs
+$ foamctl geni:list-slivers --passwd-file=/opt/foam/etc/foampasswd
{
 "slivers": [
  {
   "status": "Approved", 
   "sliver_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+tuptymon:3d95c17c-412b-4451-a2c2-c79d8b0542ee", 
   "creation": "2012-08-10 04:51:08.680747+00:00", 
   "pend_reason": null, 
   "expiration": "2012-09-15 00:00:00+00:00", 
   "deleted": "False", 
   "user": null, 
   "slice_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+tuptymon", 
   "enabled": true, 
   "email": "tupty@bbn.com", 
   "flowvisor_slice": "3d95c17c-412b-4451-a2c2-c79d8b0542ee", 
   "desc": "tuptymon OpenFlow resources at BBN.", 
   "ref": null, 
   "id": 12, 
   "uuid": "3d95c17c-412b-4451-a2c2-c79d8b0542ee"
  }, 
  {
   "status": "Approved", 
   "sliver_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+jbs16:d45b6df8-84ce-4764-811c-6bf2234efaa1", 
   "creation": "2012-08-10 04:51:10.287736+00:00", 
   "pend_reason": null, 
   "expiration": "2012-10-15 19:00:00+00:00", 
   "deleted": "False", 
   "user": null, 
   "slice_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+jbs16", 
   "enabled": true, 
   "email": "jbs@bbn.com", 
   "flowvisor_slice": "d45b6df8-84ce-4764-811c-6bf2234efaa1", 
   "desc": "JBS 16 OpenFlow resources at BBN ExoGENI.", 
   "ref": null, 
   "id": 19, 
   "uuid": "d45b6df8-84ce-4764-811c-6bf2234efaa1"
  }, 
  {
   "status": "Approved", 
   "sliver_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+jbs15:8ae4e90c-c6e3-4570-8e23-2357303c6a27", 
   "creation": "2012-08-10 04:51:10.488696+00:00", 
   "pend_reason": null, 
   "expiration": "2012-10-15 19:00:00+00:00", 
   "deleted": "False", 
   "user": null, 
   "slice_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+jbs15", 
   "enabled": true, 
   "email": "jbs@bbn.com", 
   "flowvisor_slice": "8ae4e90c-c6e3-4570-8e23-2357303c6a27", 
   "desc": "JBS 15 OpenFlow resources at BBN ExoGENI.", 
   "ref": null, 
   "id": 20, 
   "uuid": "8ae4e90c-c6e3-4570-8e23-2357303c6a27"
  }, 
  {
   "status": "Approved", 
   "sliver_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+trans:9d1e8717-424a-4495-a968-c7be314396dd", 
   "creation": "2012-08-10 04:51:13.414379+00:00", 
   "pend_reason": null, 
   "expiration": "2012-08-14 00:00:00+00:00", 
   "deleted": "False", 
   "user": null, 
   "slice_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+trans", 
   "enabled": true, 
   "email": "lnevers@bbn.com", 
   "flowvisor_slice": "9d1e8717-424a-4495-a968-c7be314396dd", 
   "desc": "Vlan translation for EG-EXP-5 resources at BBN ExoGENI.", 
   "ref": null, 
   "id": 33, 
   "uuid": "9d1e8717-424a-4495-a968-c7be314396dd"
  }
 ]
}

This verifies that a site administrator can look at FOAM's state using foamctl.

For the fourth, Omni can show advertised datapaths via the GENI AM API:

[13:39:38] jbs@jericho:/home/jbs
+$ omni -a https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1 listresources
INFO:omni:Loading config file /home/jbs/.gcf/omni_config
INFO:omni:Using control framework gpolab
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:<?xml version="1.0" ?>
INFO:omni:<!-- Resources at AM:
        URN: unspecified_AM_URN
        URL: https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1
 -->
INFO:omni:
<rspec type="advertisement" xmlns="http://www.geni.net/resources/rspec/3" xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/ad.xsd http://www.geni.net/resources/rspec/ext/openflow/3 http://www.geni.net/resources/rspec/ext/openflow/3/of-ad.xsd">
  <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:bbn-hn.exogeni.gpolab.bbn.com+datapath+00:64:08:17:f4:b5:2a:00" component_manager_id="urn:publicid:IDN+openflow:foam:bbn-hn.exogeni.gpolab.bbn.com+authority+am" dpid="00:64:08:17:f4:b5:2a:00">
    <openflow:port name="1" num="1"/>
    <openflow:port name="2" num="2"/>
    <openflow:port name="3" num="3"/>
    <openflow:port name="4" num="4"/>
    <openflow:port name="5" num="5"/>
    <openflow:port name="6" num="6"/>
    <openflow:port name="7" num="7"/>
    <openflow:port name="8" num="8"/>
    <openflow:port name="9" num="9"/>
    <openflow:port name="10" num="10"/>
    <openflow:port name="11" num="11"/>
    <openflow:port name="12" num="12"/>
    <openflow:port name="13" num="13"/>
    <openflow:port name="14" num="14"/>
    <openflow:port name="15" num="15"/>
    <openflow:port name="16" num="16"/>
    <openflow:port name="17" num="17"/>
    <openflow:port name="18" num="18"/>
    <openflow:port name="19" num="19"/>
    <openflow:port name="20" num="20"/>
    <openflow:port name="21" num="21"/>
    <openflow:port name="22" num="22"/>
    <openflow:port name="23" num="23"/>
    <openflow:port name="24" num="24"/>
    <openflow:port name="27" num="27"/>
    <openflow:port name="28" num="28"/>
    <openflow:port name="29" num="29"/>
    <openflow:port name="30" num="30"/>
    <openflow:port name="31" num="31"/>
    <openflow:port name="32" num="32"/>
    <openflow:port name="33" num="33"/>
    <openflow:port name="34" num="34"/>
    <openflow:port name="35" num="35"/>
    <openflow:port name="36" num="36"/>
    <openflow:port name="37" num="37"/>
    <openflow:port name="38" num="38"/>
    <openflow:port name="39" num="39"/>
    <openflow:port name="40" num="40"/>
    <openflow:port name="41" num="41"/>
    <openflow:port name="42" num="42"/>
    <openflow:port name="43" num="43"/>
    <openflow:port name="44" num="44"/>
    <openflow:port name="45" num="45"/>
    <openflow:port name="46" num="46"/>
    <openflow:port name="47" num="47"/>
    <openflow:port name="48" num="48"/>
    <openflow:port name="51" num="51"/>
    <openflow:port name="52" num="52"/>
    <openflow:port name="53" num="53"/>
    <openflow:port name="54" num="54"/>
    <openflow:port name="55" num="55"/>
    <openflow:port name="56" num="56"/>
    <openflow:port name="57" num="57"/>
    <openflow:port name="58" num="58"/>
    <openflow:port name="59" num="59"/>
    <openflow:port name="60" num="60"/>
    <openflow:port name="61" num="61"/>
    <openflow:port name="62" num="62"/>
    <openflow:port name="64" num="64"/>
    <openflow:port name="50" num="50"/>
    <openflow:port name="26" num="26"/>
    <openflow:port name="49" num="49"/>
    <openflow:port name="25" num="25"/>
  </openflow:datapath>
</rspec>

INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:

  Options as run:
                aggregate: https://bbn-hn.exogeni.gpolab.bbn.com:3626/foam/gapi/1
                framework: gpolab
                native: True

  Args: listresources

  Result Summary: Retrieved resources from 1 aggregates.
Wrote rspecs from 1 aggregates. 
INFO:omni: ============================================================

The one datapath from the switch (via FV) is advertised; this verifies that FOAM advertises all datapaths on the rack switch.