This also enables OF1.4 for all the tests. Signed-off-by: Alexandru Copot <alex.miha...@gmail.com> Cc: Daniel Baluta <dbal...@ixiacom.com> --- v3: small fix v2: rebase --- tests/ofp-print.at | 125 ++++++++++++++++++++++++++ tests/ofproto-macros.at | 4 +- tests/ofproto.at | 234 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 361 insertions(+), 2 deletions(-)
diff --git a/tests/ofp-print.at b/tests/ofp-print.at index ef3102f..b34e504 100644 --- a/tests/ofp-print.at +++ b/tests/ofp-print.at @@ -2807,3 +2807,128 @@ NXST_FLOW_MONITOR reply (xid=0x4): event=ABBREV xid=0x186a0 ]) AT_CLEANUP + + +AT_SETUP([OFPT_BUNDLE_CONTROL - OPEN_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 00 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - OPEN_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 00 00 02 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=OPEN_REQUEST flags=ordered +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - OPEN_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 00 00 03 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic ordered +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - OPEN_REPLY]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 01 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=OPEN_REPLY flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - CLOSE_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 02 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - CLOSE_REPLY]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 03 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=CLOSE_REPLY flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - COMMIT_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 04 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=COMMIT_REQUEST flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - COMMIT_REPLY]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 05 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=COMMIT_REPLY flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - DISCARD_REQUEST]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 06 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=DISCARD_REQUEST flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_CONTROL - DISCARD_REPLY]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 21 00 10 00 00 00 00 \ +00 00 00 01 00 07 00 01 \ +"], [0], [dnl +OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0): + bundle_id=0x1 type=DISCARD_REPLY flags=atomic +]) +AT_CLEANUP + +AT_SETUP([OFPT_BUNDLE_ADD_MESSAGE - OFPT_HELLO]) +AT_KEYWORDS([ofp-print]) +AT_CHECK([ovs-ofctl ofp-print "\ +05 22 00 20 00 00 00 00 \ +00 00 00 01 00 01 00 01 02 00 00 08 00 00 00 00 \ +00 00 00 00 00 00 00 00 \ +"], [0], [dnl +OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x0): + bundle_id=0x1 flags=atomic +OFPT_HELLO (OF1.1) (xid=0x0): + version bitmap: 0x01, 0x02 +]) +AT_CLEANUP diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at index a82a9b1..ac25d75 100644 --- a/tests/ofproto-macros.at +++ b/tests/ofproto-macros.at @@ -73,7 +73,7 @@ m4_define([OVS_VSWITCHD_START], AT_CHECK([ovs-vsctl --no-wait init]) dnl Start ovs-vswitchd. - AT_CHECK([ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy$3 --disable-system --log-file -vvconn -vofproto_dpif], [0], [], [stderr]) + AT_CHECK([ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy$3 --disable-system --log-file -vvconn -vofproto_dpif --enable-of14], [0], [], [stderr]) AT_CAPTURE_FILE([ovs-vswitchd.log]) AT_CHECK([[sed < stderr ' /vlog|INFO|opened log file/d @@ -83,7 +83,7 @@ m4_define([OVS_VSWITCHD_START], /ofproto|INFO|datapath ID changed to fedcba9876543210/d']]) dnl Add bridges, ports, etc. - AT_CHECK([ovs-vsctl -- add-br br0 -- set bridge br0 datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13]] fail-mode=secure -- $1 m4_if([$2], [], [], [| ${PERL} $srcdir/uuidfilt.pl])], [0], [$2]) + AT_CHECK([ovs-vsctl -- add-br br0 -- set bridge br0 datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14]] fail-mode=secure -- $1 m4_if([$2], [], [], [| ${PERL} $srcdir/uuidfilt.pl])], [0], [$2]) ]) m4_divert_push([PREPARE_TESTS]) diff --git a/tests/ofproto.at b/tests/ofproto.at index 7838db7..0b77251 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -2326,3 +2326,237 @@ for pre in '1 2' '[[]] 2' '1 [[]]' '[[]] [[]]' '2 1' '[[]] 1' '2 [[]]' \ done OVS_VSWITCHD_STOP AT_CLEANUP + + +AT_SETUP([ofproto - bundles, open (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Send an OpenFlow14 message (05), OFPT_BUNDLE_CONTROL (21), length (10), xid (0a) +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundles, double open (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Send twice an OpenFlow14 message (05), OFPT_BUNDLE_CONTROL (21), length (10), xid (0a) +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_ERROR (OF1.4): OFPBFC_BAD_ID +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle close without open (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +OFPT_ERROR (OF1.4): OFPBFC_BAD_ID +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle double close (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Open, Close, Close +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +OFPT_ERROR (OF1.4): OFPBFC_BUNDLE_CLOSED +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=atomic +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle close, different flags (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Open, Close, Close +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 02" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=ordered +OFPT_ERROR (OF1.4): OFPBFC_BAD_FLAGS +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=CLOSE_REQUEST flags=ordered +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle commit without open (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Open, Close, Close +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 04 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=COMMIT_REQUEST flags=atomic +OFPT_ERROR (OF1.4): OFPBFC_BAD_ID +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=COMMIT_REQUEST flags=atomic +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle commit, different flags (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Open, Close, Close +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 04 00 02" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REQUEST flags=atomic +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=OPEN_REPLY flags=0 +OFPT_BARRIER_REPLY (OF1.4): +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=COMMIT_REQUEST flags=ordered +OFPT_ERROR (OF1.4): OFPBFC_BAD_FLAGS +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=COMMIT_REQUEST flags=ordered +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([ofproto - bundle discard without open (OpenFlow 1.4)]) +AT_KEYWORDS([monitor]) +OVS_VSWITCHD_START + +# Start a monitor, use the required protocol version +ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1 +AT_CAPTURE_FILE([monitor.log]) + +# Open, Close, Close +ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 06 00 01" +ovs-appctl -t ovs-ofctl ofctl/barrier +ovs-appctl -t ovs-ofctl exit + +AT_CHECK([ofctl_strip < monitor.log], [0], [dnl +send: OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=DISCARD_REQUEST flags=atomic +OFPT_ERROR (OF1.4): OFPBFC_BAD_ID +OFPT_BUNDLE_CONTROL (OF1.4): + bundle_id=0x1 type=DISCARD_REQUEST flags=atomic +OFPT_BARRIER_REPLY (OF1.4): +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev