Here is the list of available tests by module in oft. Last updated 1/25/2011.
| MplsActNonTagPush | MPLS push action (0x8847) test with untagged pkt |
| MplsActNonTagPushDecTtl | MPLS Push and TTL decrement action test with untagged pkt |
| MplsActNonTagPushSetLabel | MPLS Push and Set LABEL action test with untagged pkt |
| MplsActNonTagPushSetOutrange0 | MPLS set LABEL action (outrange value) test with untaggedpkt |
| MplsActNonTagPushSetOutrange1 | MPLS set TC action test with untagged pkt |
| MplsActNonTagPushSetTc | MPLS Push and Set TC action test with untagged pkt |
| MplsActNonTagPushSetTtl | MPLS Push and Set TTL action test with untagged pkt |
| MplsActNonTagPushTtlIn | MPLS push and TTL-in action test with untagged pkts |
| MplsActNonTagPushTtlOut | MPLS push and TTL-out action test with untagged pkts |
| MplsActOneTagDecTtl | MPLS TTL decrement action test with tagged pkt |
| MplsActOneTagPop | MPLS pop action test with tagged pkt |
| MplsActOneTagPush | MPLS push action (0x8847) test with tagged pkt |
| MplsActOneTagPushDecTtl | MPLS Push and TTL decrement action test with tagged pkt |
| MplsActOneTagPushSetLabel | MPLS Push and Set LABEL action test with tagged pkt |
| MplsActOneTagPushSetOutrange0 | MPLS push and set LABEL action (outrange value) test withtagged pkt |
| MplsActOneTagPushSetOutrange1 | MPLS push and set TC action (outrange value) test with tagged pkt |
| MplsActOneTagPushSetTc | MPLS Push and Set TC action test with tagged pkt |
| MplsActOneTagPushSetTtl | MPLS Push and Set TTL action test with tagged pkt |
| MplsActOneTagPushTtlIn | MPLS push and TTL-in action test with tagged pkt |
| MplsActOneTagPushTtlOut | MPLS push and TTL-out action test with tagged pkt |
| MplsActOneTagSetLabel0 | MPLS set LABEL action test with tagged pkt |
| MplsActOneTagSetLabel1 | MPLS set LABEL action (outrange value) test with tagged pkt |
| MplsActOneTagSetTc0-1 | MPLS set action test with tagged pkt |
| MplsActOneTagSetTtl | MPLS Set TTL action test with tagged pkt |
| MplsActOneTagTtlIn | MPLS Copy TTL inward with tagged pkt |
| MplsActOneTagTtlOut | MPLS Copy TTL outward with tagged pkt |
| MplsActTwoTagDecTtl | MPLS TTL decrement action test with two-tagged pkt |
| MplsActTwoTagPop | MPLS pop action test with two-tagged pkt |
| MplsActTwoTagPush | MPLS push action (0x8847) test with two-tagged pkt |
| MplsActTwoTagPushDecTtl | MPLS Push and Set TTL action test with two-tagged pkt |
| MplsActTwoTagPushSetLabel | MPLS Push and Set LABEL action test with two-tagged pkt |
| MplsActTwoTagPushSetOutrange0 | MPLS push and set LABEL action (outrange value) test withtwo-tagged pkt |
| MplsActTwoTagPushSetOutrange1 | MPLS push and set TC action (outrange value) test with two-tagged pkt |
| MplsActTwoTagPushSetTc | MPLS Push and Set TC action test with two-tagged pkt |
| MplsActTwoTagPushSetTtl | MPLS Push and Set TTL action test with two-tagged pkt |
| MplsActTwoTagPushTtlIn | MPLS push and TTL-in action test with two-tagged pkts |
| MplsActTwoTagPushTtlOut | MPLS push and TTL-out action test with two-tagged pkts |
| MplsActTwoTagSetLabel0 | MPLS set LABEL action test with two-tagged pkt |
| MplsActTwoTagSetLabel1 | MPLS set LABEL action (outrange value) test with two-tagged pkt |
| MplsActTwoTagSetTc0 | MPLS set TC action test with two-tagged pkt |
| MplsActTwoTagSetTc1 | MPLS set TC action (outrange value) test with two-tagged pkt |
| MplsActTwoTagSetTtl | MPLS set TTL action test with two-tagged pkt4 |
| MplsActTwoTagTtlIn | MPLS Copy TTL inward with two-tagged pkt |
| MplsActTwoTagTtlOut | MPLS Copy TTL outward with two-tagged pkt |
| MplsExactAny0-1 | MPLS match test with Exact LABEL, TC |
| MplsExactLabelWildTcAny0-1 | MPLS match test with Exact LABEL and Wildcard TC |
| MplsExactLabelWildTcNone0-2 | MPLS match test with Exact LABEL and Wildcard TC |
| MplsExactLabelWildTcOutrange0-4 | MPLS match test with Exact LABEL and Wildcard TC |
| MplsExactLabelWildTcSpecific0-5 | MPLS match test with Exact LABEL and Wildcard TC |
| MplsExactNone0-2 | MPLS match test with Exact LABEL, TC |
| MplsExactOutrange0-4 | MPLS match test with Exact LABEL, TC |
| MplsExactSpecific0-5 | MPLS match test with Exact LABEL, TC |
| MplsWildAny0-1 | MPLS match test with Wildcard LABEL, TC |
| MplsWildLabelExactTcAny0-1 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcNone0-2 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcOutrange0 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcOutrange1 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcOutrange2 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcOutrange3 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcOutrange4 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific0 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific1 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific2 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific3 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific4 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildLabelExactTcSpecific5 | MPLS match test with Wildcard LABEL and Exact TC |
| MplsWildNone0 | MPLS match test with Wildcard LABEL, TC |
| MplsWildNone1 | MPLS match test with Wildcard LABEL, TC |
| MplsWildNone2 | MPLS match test with Wildcard LABEL, TC |
| MplsWildOutrange0 | MPLS match test with Wildcard LABEL, TC |
| MplsWildOutrange1 | MPLS match test with Wildcard LABEL, TC |
| MplsWildOutrange2 | MPLS match test with Wildcard LABEL, TC |
| MplsWildOutrange3 | MPLS match test with Wildcard LABEL, TC |
| MplsWildOutrange4 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific0 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific1 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific2 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific3 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific4 | MPLS match test with Wildcard LABEL, TC |
| MplsWildSpecific5 | MPLS match test with Wildcard LABEL, TC |
| TwoTable0MplsPushSetLabelTcMatch | Multitable test: Push, Set LABEL, TC and apply it and expect it on outport |
| TwoTable1MplsPopMatch | Multitable test: Pop, apply it and expect it on outport |
| TwoTable1MplsPopUnmatch | Multitable test: Pop, apply it but not expect it on outport |
| TwoTable2MplsPopMatch | Multitable test: Pop, apply it and expect it on outport |
| TwoTable2MplsPopUnmatch | Multitable test: Pop, apply it but not expect it on outport |
| TwoTableMplsPushMatch | Multitable test: Push and apply it and expect it on outport |
| TwoTableMplsPushSetLabelMatch | Multitable test: Push, Set LABEL, apply it and expect it on outport |
| TwoTableMplsPushSetLabelUnmatch | Multitable test: Push, Set LABEL, apply it but not expectit on outport |
| TwoTableMplsPushSetTcMatch | Multitable test: Push, Set TC, apply it and expect it on outport |
| TwoTableMplsPushSetTcUnmatch | Multitable test: Push, Set TC, apply it but not expect iton outport |
| TwoTableMplsPushSetTtlMatch | Multitable test: Push, Set TTL, apply it and expect it onoutport |
| TwoTableMplsPushUnmatch | Multitable test: Push, Set LABEL, apply it but not expectit on outport |
| TwoTableMplsSetMatch | Multitable test: Set LABEL+TC, apply it and expect it on outport |
| TwoTableMplsSetUnmatch | Multitable test: Set LABEL+TC, apply it but not expect iton outport |
| TwoTableMplsTtlInMatch | Multitable test: Copy TTL inwards, apply it and expect iton outport |
| TwoTableMplsTtlOutMatch | Multitable test: Copy TTL outwards, apply it and expect it on outport |
| TwoTable0VlanPushSetVidPcpMatch | Multitable test: Push, Set VID, PCP and apply it and expect it on outport |
| TwoTable1VlanPopMatch | Multitable test: Pop, apply it and expect it on outport |
| TwoTable1VlanPopUnmatch | Multitable test: Pop, apply it but not expect it on outport |
| TwoTable2VlanPopMatch | Multitable test: Pop, apply it and expect it on outport |
| TwoTable2VlanPopUnmatch | Multitable test: Pop, apply it but not expect it on outport |
| TwoTableVlanPushSetPcpMatch | Multitable test: Push, Set PCP, apply it and expect it onoutport |
| TwoTableVlanPushSetPcpUnmatch | Multitable test: Push, Set PCP, apply it but not expect it on outport |
| TwoTableVlanPushSetVidMatch0 | Multitable test: Push, Set VID, apply it and expect it onoutport |
| TwoTableVlanPushSetVidMatch1 | Multitable test: Push, Set VID, apply it and expect it onoutport |
| TwoTableVlanPushSetVidPcpMatch | Multitable test: Push, Set VID+PCP, apply it and expect it on outport |
| TwoTableVlanPushSetVidPcpUnmatch | Multitable test: Push, Set VID+PCP, apply it but not expect it on outport |
| TwoTableVlanPushSetVidUnmatch0 | Multitable test: Push, Set VID, apply it but not expect it on outport |
| TwoTableVlanPushSetVidUnmatch1 | Multitable test: Push, Set VID, apply it but not expect it on outport |
| TwoTableVlanSetMatch | Multitable test: Set VID+PCP, apply it and expect it on outport |
| TwoTableVlanSetUnmatch | Multitable test: Set VID+PCP, apply it but not expect it on outport |
| AddVLANTag | Add a VLAN tag to an untagged packet |
| All | Send to OFPP_ALL port |
| AllExceptOneWildcardMatch | Match exactly one field |
| AllExceptOneWildcardMatchTagged | Match one field with tagged packets |
| AllPlusIngress | Send to OFPP_ALL port and ingress port |
| AllWildcardMatch | Create Wildcard-all flow and exercise for all ports |
| AllWildcardMatchTagged | AllWildcardMatch with tagged packets |
| BaseMatchCase | No description |
| DirectMC | Multicast to all ports including ingress |
| DirectMCNonIngress | Multicast to all non-ingress ports |
| DirectPacket | Send packet to single egress port |
| DirectPacketICMP | Send ICMP packet to single egress port |
| DirectTwoPorts | Send packet to two egress ports |
| ExactMatch | Exercise exact matching for all port pairs |
| ExactMatchTagged | Exact match for all port pairs with tagged pkts |
| * ExactMatchTaggedMany | ExactMatchTagged with many VLANS |
| * MixedVLAN | Test mixture of VLAN tag actions |
| ModifyL2Dst | Modify the dest MAC address (TP1) |
| ModifyL2Src | Modify the source MAC address (TP1) |
| ModifyL3Dst | Modify the dest IP address of an IP packet (TP1) |
| ModifyL3Src | Modify the source IP address of an IP packet (TP1) |
| ModifyL4Dst | Modify the dest TCP port of a TCP packet (TP1) |
| ModifyL4Src | Modify the source TCP port of a TCP packet (TP1) |
| ModifyTOS | Modify the IP type of service of an IP packet (TP1) |
| ModifyVID | Modify the VLAN ID in the VLAN tag of a tagged packet |
| * PacketOnly | Just send a packet thru the switch |
| * PacketOnlyTagged | Just send a packet thru the switch |
| SingleWildcardMatch | Exercise wildcard matching for all ports |
| SingleWildcardMatchTagged | SingleWildcardMatch with tagged packets |
| StripVLANTag | Strip the VLAN tag from a tagged packet |
| VlanActNonTagPush0 | VLAN push action (type VLAN) test with untagged pkt |
| VlanActNonTagPush1 | VLAN push action (type QinQ) test with untagged pkt |
| VlanActNonTagPush2 | VLAN push action (type other) test with untagged pkt |
| VlanActNonTagPushPop | VLAN Push and Pop action test with untagged pkt |
| VlanActNonTagPushSetPcp | VLAN Push and Set PCP action test with untagged pkt |
| VlanActNonTagPushSetVid | VLAN Push and Set VID action test with untagged pkt |
| VlanActNonTagPushSetVidPcp | VLAN Push, Set VID and Set PCP action test with untagged pkt |
| VlanActOneTagPop | VLAN pop action test with tagged pkt |
| VlanActOneTagPush0 | VLAN push action (type VLAN) test with tagged pkt |
| VlanActOneTagPush1 | VLAN push action (type QinQ) test with tagged pkt |
| VlanActOneTagPush2 | VLAN push action (type other) test with tagged pkt |
| VlanActOneTagPushSPop | VLAN multiple action test with tagged pkt |
| VlanActOneTagPushSetPcp | VLAN Push and Set PCP action test with tagged pkt |
| VlanActOneTagPushSetVid | VLAN Push and Set VID action test with tagged pkt |
| VlanActOneTagPushSetVidPcp | VLAN Push, Set VID and Set PCP action test with tagged pkt |
| VlanActOneTagSetPcp0 | VLAN set action test with tagged pkt |
| VlanActOneTagSetPcp1 | VLAN set action test with tagged pkt |
| VlanActOneTagSetVid0 | VLAN set VID action test with tagged pkt |
| VlanActOneTagSetVid1 | VLAN set VID action (outrange value) test with tagged pkt |
| VlanActTwoTagPop | VLAN pop action test with two-tagged pkt |
| VlanActTwoTagPush0 | VLAN push action (type VLAN) test with two-tagged pkt |
| VlanActTwoTagPush1 | VLAN push action (type QinQ) test with two-tagged pkt |
| VlanActTwoTagPush2 | VLAN push action (type other) test with two-tagged pkt |
| VlanActTwoTagPushPop | VLAN Push and Pop action test with two-tagged pkt |
| VlanActTwoTagPushSetPcp | VLAN Push and Set PCP action test with two-tagged pkt |
| VlanActTwoTagPushSetVid | VLAN Push and Set VID action test with two-tagged pkt |
| VlanActTwoTagPushSetVidPcp | VLAN Push, Set VID and Set PCP action test with two-tagged pkt |
| VlanActTwoTagSetPcp0 | VLAN set PCP action test with two-tagged pkt |
| VlanActTwoTagSetPcp1 | VLAN set PCP action (outrange value) test with two-taggedpkt |
| VlanActTwoTagSetVid0 | VLAN set VID action test with two-tagged pkt |
| VlanActTwoTagSetVid1 | VLAN set VID action (outrange value) test with two-taggedpkt |
| VlanExactAny0 | VLAN match test with Exact VID, PCP |
| VlanExactAny1 | VLAN match test with Exact VID, PCP |
| VlanExactIdWildPcpAny0 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpAny1 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpNone0 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpNone1 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpNone2 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpOutrange0 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpOutrange1 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpOutrange2 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpOutrange3 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpOutrange4 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific0 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific1 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific2 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific3 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific4 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactIdWildPcpSpecific5 | VLAN match test with Exact VID and Wildcard PCP |
| VlanExactNone0 | VLAN match test with Exact VID, PCP |
| VlanExactNone1 | VLAN match test with Exact VID, PCP |
| VlanExactNone2 | VLAN match test with Exact VID, PCP |
| VlanExactOutrange0 | VLAN match test with Exact VID, PCP |
| VlanExactOutrange1 | VLAN match test with Exact VID, PCP |
| VlanExactOutrange2 | VLAN match test with Exact VID, PCP |
| VlanExactOutrange3 | VLAN match test with Exact VID, PCP |
| VlanExactOutrange4 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific0 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific1 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific2 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific3 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific4 | VLAN match test with Exact VID, PCP |
| VlanExactSpecific5 | VLAN match test with Exact VID, PCP |
| VlanWildAny0 | VLAN match test with Wildcard VID, PCP |
| VlanWildAny1 | VLAN match test with Wildcard VID, PCP |
| VlanWildIdExactPcpAny0 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpAny1 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpNone0 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpNone1 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpNone2 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpOutrange0 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpOutrange1 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpOutrange2 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpOutrange3 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpOutrange4 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific0 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific1 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific2 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific3 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific4 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildIdExactPcpSpecific5 | VLAN match test with Wildcard VID and Exact PCP |
| VlanWildNone0 | VLAN match test with Wildcard VID, PCP |
| VlanWildNone1 | VLAN match test with Wildcard VID, PCP |
| VlanWildNone2 | VLAN match test with Wildcard VID, PCP |
| VlanWildOutrange0 | VLAN match test with Wildcard VID, PCP |
| VlanWildOutrange1 | VLAN match test with Wildcard VID, PCP |
| VlanWildOutrange2 | VLAN match test with Wildcard VID, PCP |
| VlanWildOutrange3 | VLAN match test with Wildcard VID, PCP |
| VlanWildOutrange4 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific0 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific1 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific2 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific3 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific4 | VLAN match test with Wildcard VID, PCP |
| VlanWildSpecific5 | VLAN match test with Wildcard VID, PCP |
Here is the list of available tests by module in oft on the master branch. This supports OpenFlow 1.0. Last updated 7/20/2010.
Here is a rough prioritization of test cases to add taken from the more
complete list below.
This is an attempt to identify possible tests for OpenFlow switches.
In the test lists, the following markers are used.
Tests involving the dataplane may have variations in the
packets that are used. These are not really test cases
directly, but parameters that may be used by test cases.
Note each test generally includes a positive test (send packet
matching flow and expect action) and a negative test (send
packet not matching flow and verify action did not occur, at
least through flow counter).
The following modification actions may be carried out in any
combination. Of course we'll start with the single field change
operations; do a few multiple field operations and then do as
many as possible.
during the test (such as a port status that requires
changing the physical port state).