tests: Add tests for encoding and decoding OpenFlow hello messages.
[openvswitch] / tests / ofp-util.at
diff --git a/tests/ofp-util.at b/tests/ofp-util.at
new file mode 100644 (file)
index 0000000..e6dbfcf
--- /dev/null
@@ -0,0 +1,47 @@
+AT_BANNER([OpenFlow utilities])
+
+AT_SETUP([encoding hellos])
+dnl All versions up to a max version supported:
+AT_CHECK([ovs-ofctl encode-hello 0x2], [0], [dnl
+00000000  01 00 00 08 00 00 00 01-
+OFPT_HELLO (xid=0x1):
+ version bitmap: 0x01
+])
+AT_CHECK([ovs-ofctl encode-hello 0x6], [0], [dnl
+00000000  02 00 00 08 00 00 00 01-
+OFPT_HELLO (OF1.1) (xid=0x1):
+ version bitmap: 0x01, 0x02
+])
+AT_CHECK([ovs-ofctl encode-hello 0xe], [0], [dnl
+00000000  03 00 00 08 00 00 00 01-
+OFPT_HELLO (OF1.2) (xid=0x1):
+ version bitmap: 0x01, 0x02, 0x03
+])
+AT_CHECK([ovs-ofctl encode-hello 0x1e], [0], [dnl
+00000000  04 00 00 08 00 00 00 01-
+OFPT_HELLO (OF 0x04) (xid=0x1):
+ version bitmap: 0x01, 0x02, 0x03, 0x04
+])
+
+dnl Some versions below max version missing.
+AT_CHECK([ovs-ofctl encode-hello 0xc], [0], [dnl
+00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 0c @&t@
+OFPT_HELLO (OF1.2) (xid=0x1):
+ version bitmap: 0x02, 0x03
+])
+AT_CHECK([ovs-ofctl encode-hello 0xa], [0], [dnl
+00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 0a @&t@
+OFPT_HELLO (OF1.2) (xid=0x1):
+ version bitmap: 0x01, 0x03
+])
+AT_CHECK([ovs-ofctl encode-hello 0x8], [0], [dnl
+00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 08 @&t@
+OFPT_HELLO (OF1.2) (xid=0x1):
+ version bitmap: 0x03
+])
+AT_CHECK([ovs-ofctl encode-hello 0x4], [0], [dnl
+00000000  02 00 00 10 00 00 00 01-00 01 00 08 00 00 00 04 @&t@
+OFPT_HELLO (OF1.1) (xid=0x1):
+ version bitmap: 0x02
+])
+AT_CLEANUP