Interface Manager

Test Suite for testing basic Interface Manager functions.

Test Setup

Test setup consists of ODL with odl-genius installed and two switches (DPNs) connected to ODL over OVSDB and OpenflowPlugin.

Testbed Topologies

This suit uses the default Genius topology.

Default Topology

+--------+       +--------+
|  BR1   | data  |  BR2   |
|        <------->        |
+---^----+       +----^---+
    |       mgmt      |
+---v-----------------v---+
|                         |
|           ODL           |
|                         |
|        odl-genius       |
|                         |
+-------------------------+

Software Requirements

OVS 2.6+ Mininet ???

Test Suite Requirements

Test Suite Bringup

Following steps are followed at beginning of test suite:

  • Bring up ODL with odl-genius feature installed

  • Add bridge to DPN

  • Add tap interfaces to bridge created above

  • Add OVSDB manager to DPN using ovs-vsctl set-manager

  • Connect bridge to OpenFlow using ovs-vsctl set-controller

  • Repeat above steps for other DPNs

  • Create REST session to ODL

Test Suite Cleanup

Following steps are followed at beginning of test suite:

  • Delete bridge DPN

  • Delete OVSDB manager ‘ovs-vsctl del-manager’

  • Repeat above steps for other DPNs

  • Delete REST session to ODL

Debugging

Following DataStore models are captured at end of each test case:

  • config/itm-config:tunnel-monitor-enabled

  • config/itm-config:tunnel-monitor-interval

  • config/itm-state:dpn-endpoints

  • config/itm-state:external-tunnel-list

  • config/itm:transport-zones

  • config/network-topology:network-topology

  • config/opendaylight-inventory:nodes

  • operational/ietf-interfaces:interfaces

  • operational/ietf-interfaces:interfaces-state

  • operational/itm-config:tunnel-monitor-enabled

  • operational/itm-config:tunnel-monitor-interval

  • operational/itm-state:tunnels_state

  • operational/network-topology:network-topology

  • operational/odl-interface-meta:bridge-ref-info

Test Cases

Create l2vlan Transparent Interface

This creates a transparent l2vlan interface between two dpns

Test Steps and Pass Criteria

  1. Create transparent l2vlan interface through REST

    1. Interface shows up in config

    2. Interface state shows up in operational

    3. Flows are added to Table0 on the bridge

Troubleshooting

N.A.

Delete l2vlan Transparent Interface

This testcase deletes the l2vlan transparent interface created in previous test case.

Test Steps and Pass Criteria

  1. Remove all interfaces in config

    1. Interface config is empty

    2. Interface states in operational is empty

    3. Flows are deleted from Table0 on bridge

Troubleshooting

N.A.

Create l2vlan Trunk Interface

This testcase creates a l2vlan trunk interface between 2 DPNs.

Test Steps and Pass Criteria

  1. Create l2vlan trunk interface through REST

    1. Interface shows up in config

    2. Interface state shows up in operational

    3. Flows are added to Table0 on the bridge

Troubleshooting

N.A.

Create l2vlan Trunk Member Interface

This testcase creates a l2vlan Trunk member interface for the l2vlan trunk interface created in previous testcase.

Test Steps and Pass Criteria

  1. Create l2vlan trunk member interface through REST

    1. Interface shows up in config

    2. Interface state shows up in operational

    3. Flows are added to Table0 on the bridge

    4. Flows match on dl_vlan

    5. Flows have action=pop_vlan

Troubleshooting

N.A.

Bind service on Interface

This testcase binds service to the L2vlan Trunk Interface earlier.

Test Steps and Pass Criteria

  1. Add service bindings for elan and VPN services on L2Vlan Trunk Interface using REST

    1. Check bindings for VPN and elan services exist on L2Vlan Trunk interface

    2. Flows are added to Table17 on the bridge

    3. Flows have action goto_table:21

    4. Flows have action goto_table:50

Troubleshooting

N.A.

Unbind service on Interface

This testcase Unbinds the services which were bound in previous testcase.

Test Steps and Pass Criteria

  1. Delete service bindings for elan and VPN services on L2Vlan Trunk Interface using REST

    1. Check bindings for VPN and elan services on L2Vlan Trunk interface don’t exist

    2. No flows on Table0

    3. No flows with action goto_table:21

    4. No flows with action goto_table:50

Troubleshooting

N.A.

Delete L2vlan Trunk Interface

Delete l2vlan trunk interface created and used in earlier test cases

Test Steps and Pass Criteria

  1. Remove all interfaces in config

    1. Interface config is empty

    2. Interface states in operational is empty

    3. Flows are deleted from Table0 on bridge

Troubleshooting

N.A.

Implementation

Assignee(s)

Primary assignee:

<developer-a>

Other contributors:

<developer-b> <developer-c>