]> git.proxmox.com Git - ovs.git/blame - tests/ofp-errors.at
tests: Convert ovsdb-monitor-sort utility from Perl to Python.
[ovs.git] / tests / ofp-errors.at
CommitLineData
2e0525bc
SH
1AT_BANNER([ofp-errors tests])
2
3AT_SETUP([OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.0])
4AT_KEYWORDS([ofp-print ofp-errors])
5AT_CHECK([ovs-ofctl ofp-print 010100170000000000000001657874726120646174610a], [0], [dnl
6OFPT_ERROR (xid=0x0): OFPHFC_EPERM
7extra data\012
8])
9AT_CLEANUP
10
11AT_SETUP([OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.1])
12AT_KEYWORDS([ofp-print ofp-errors])
13AT_CHECK([ovs-ofctl ofp-print 020100170000000000000001657874726120646174610a], [0], [dnl
14OFPT_ERROR (OF1.1) (xid=0x0): OFPHFC_EPERM
15extra data\012
16])
17AT_CLEANUP
18
19AT_SETUP([OFPT_ERROR with type OFPET_BAD_REQUEST - OF1.0])
20AT_KEYWORDS([ofp-print ofp-errors])
f25b4a81 21AT_CHECK([ovs-ofctl ofp-print 0101001400000000000100060105ccddeeff0011], [0], [dnl
2e0525bc 22OFPT_ERROR (xid=0x0): OFPBRC_BAD_LEN
f25b4a81 23OFPT_FEATURES_REQUEST (xid=0xeeff0011):
2e0525bc 24(***truncated to 8 bytes from 52445***)
f25b4a81
BP
2500000000 01 05 cc dd ee ff 00 11- |........ |
26])
27AT_CLEANUP
28
29AT_SETUP([OFPT_ERROR prints type of truncated inner messages])
30AT_KEYWORDS([ofp-print ofp-errors])
31AT_CHECK([ovs-ofctl ofp-print "0101004c092529d500010006 \
3201 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \
3300 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \
34ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \
3500 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01"], [0], [dnl
36OFPT_ERROR (xid=0x92529d5): OFPBRC_BAD_LEN
37OFPT_FEATURES_REPLY (xid=0x1):
38(***truncated to 64 bytes from 224***)
3900000000 01 06 00 e0 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....|
4000000010 00 00 01 00 02 00 00 00-00 00 00 87 00 00 0f ff |................|
4100000020 ff fe 50 54 00 00 00 01-62 72 30 00 00 00 00 00 |..PT....br0.....|
4200000030 00 00 00 00 00 00 00 00-00 00 00 01 00 00 00 01 |................|
2e0525bc
SH
43])
44AT_CLEANUP
45
46AT_SETUP([OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.0])
47AT_KEYWORDS([ofp-print ofp-errors])
48AT_CHECK([ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010104 0102000811111111'], [0], [dnl
49OFPT_ERROR (xid=0x55555555): OFPBMC_BAD_PREREQ
50OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
51])
52AT_CLEANUP
53
54AT_SETUP([OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.1])
55AT_KEYWORDS([ofp-print ofp-errors])
56AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010104 0102000811111111'], [0], [dnl
57OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBMC_BAD_PREREQ
58OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
59])
60AT_CLEANUP
61
62dnl Error type 3, code 1 is OFPFMFC_OVERLAP in OF1.0
63dnl and OFPBIC_UNSUP_INST in OF1.1, so check that value in both versions.
64AT_SETUP([OFPT_ERROR with type OFPFMFC_OVERLAP - OF1.0])
65AT_KEYWORDS([ofp-print ofp-errors])
f25b4a81 66AT_CHECK([ovs-ofctl ofp-print 0101001400000000000300010106ccddeeff0011], [0], [dnl
2e0525bc 67OFPT_ERROR (xid=0x0): OFPFMFC_OVERLAP
f25b4a81 68OFPT_FEATURES_REPLY (xid=0xeeff0011):
2e0525bc 69(***truncated to 8 bytes from 52445***)
f25b4a81 7000000000 01 06 cc dd ee ff 00 11- |........ |
2e0525bc
SH
71])
72AT_CLEANUP
73AT_SETUP([OFPT_ERROR with type OFPBIC_UNSUP_INST - OF1.1])
74AT_KEYWORDS([ofp-print ofp-errors])
f25b4a81 75AT_CHECK([ovs-ofctl ofp-print 0201001400000000000300010206ccddeeff0011], [0], [dnl
2e0525bc 76OFPT_ERROR (OF1.1) (xid=0x0): OFPBIC_UNSUP_INST
f25b4a81 77OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011):
2e0525bc 78(***truncated to 8 bytes from 52445***)
f25b4a81 7900000000 02 06 cc dd ee ff 00 11- |........ |
2e0525bc
SH
80])
81AT_CLEANUP
82
0ca30f6f
SH
83AT_SETUP([OFPT_ERROR with type OFPBIC_DUP_INST - OF1.4])
84AT_KEYWORDS([ofp-print ofp-errors])
85AT_CHECK([ovs-ofctl ofp-print 0501001400000000000300090206ccddeeff0011], [0], [dnl
86OFPT_ERROR (OF1.4) (xid=0x0): OFPBIC_DUP_INST
87OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011):
88(***truncated to 8 bytes from 52445***)
8900000000 02 06 cc dd ee ff 00 11- |........ |
90])
91AT_CLEANUP
92
2e0525bc
SH
93dnl OF1.1 had OFPBIC_UNSUP_EXP_INST as 3,5.
94dnl OF1.2 broke it into OFPBIC_BAD_EXPERIMENTER as 3,5
95dnl and OFPBIC_BAD_EXT_TYPE as 3,6.
96dnl Thus, for OF1.1 we translate both of the latter error codes into 3,5.
97AT_SETUP([encoding OFPBIC_* experimenter errors])
98AT_KEYWORDS([ofp-print ofp-errors])
99AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXPERIMENTER], [0], [dnl
514887ee
BP
100OpenFlow 1.1: vendor 0, type 3, code 5
101OpenFlow 1.2: vendor 0, type 3, code 5
102OpenFlow 1.3: vendor 0, type 3, code 5
c37c0382 103OpenFlow 1.4: vendor 0, type 3, code 5
42dccab5 104OpenFlow 1.5: vendor 0, type 3, code 5
b79d45a1 105OpenFlow 1.6: vendor 0, type 3, code 5
2e0525bc
SH
106])
107AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXP_TYPE], [0], [dnl
514887ee
BP
108OpenFlow 1.1: vendor 0, type 3, code 5
109OpenFlow 1.2: vendor 0, type 3, code 6
110OpenFlow 1.3: vendor 0, type 3, code 6
c37c0382 111OpenFlow 1.4: vendor 0, type 3, code 6
42dccab5 112OpenFlow 1.5: vendor 0, type 3, code 6
b79d45a1 113OpenFlow 1.6: vendor 0, type 3, code 6
2e0525bc
SH
114])
115AT_CLEANUP
116
edd70aa7
BP
117dnl The "bad role" error was a Nicira extension in OpenFlow 1.0 and 1.1.
118dnl It was adopted as an official error code in OpenFlow 1.2.
119AT_SETUP([encoding errors extension that became official])
120AT_KEYWORDS([ofp-print ofp-errors])
121AT_CHECK(
122 [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0100000812345678], [0], [dnl
327a39b6
BP
12300000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
12400000010 00 01 02 01 01 00 00 08-12 34 56 78
edd70aa7
BP
125])
126AT_CHECK(
127 [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0200000812345678], [0], [dnl
327a39b6
BP
12800000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
12900000010 00 01 02 01 02 00 00 08-12 34 56 78
edd70aa7
BP
130])
131AT_CHECK(
132 [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0300000812345678], [0], [dnl
327a39b6
BP
13300000000 03 01 00 14 12 34 56 78-00 0b 00 02 03 00 00 08
13400000010 12 34 56 78
edd70aa7
BP
135])
136AT_CLEANUP
137
2e0525bc
SH
138AT_SETUP([decoding OFPBIC_* experimenter errors])
139AT_KEYWORDS([ofp-print ofp-errors])
140AT_CHECK([ovs-ofctl ofp-print '0201001455555555 00030005 0102000811111111'], [0], [dnl
141OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER
142OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
143])
2e0525bc 144AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030005 0102000811111111'], [0], [dnl
4232ef77 145OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER
2e0525bc
SH
146OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
147])
2e0525bc 148AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030006 0102000811111111'], [0], [dnl
4232ef77 149OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXP_TYPE
2e0525bc
SH
150OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
151])
152AT_CLEANUP
514887ee
BP
153
154AT_SETUP([decoding experimenter errors])
155AT_KEYWORDS([ofp-print ofp-errors])
156AT_CHECK([ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl
157OFPT_ERROR (xid=0x55555555): NXBRC_MUST_BE_ZERO
158OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
159])
160AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl
161OFPT_ERROR (OF1.1) (xid=0x55555555): NXBRC_MUST_BE_ZERO
162OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
163])
164AT_CHECK([ovs-ofctl ofp-print '0301001855555555 ffff0004 00002320 0102000811111111'], [0], [dnl
165OFPT_ERROR (OF1.2) (xid=0x55555555): NXBRC_MUST_BE_ZERO
166OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
167])
d12f128a
BP
168
169AT_CHECK([ovs-ofctl ofp-print '0301001812345678 ffff0a28 4f4e4600 0300000812345678'], [0], [dnl
170OFPT_ERROR (OF1.2) (xid=0x12345678): OFPBIC_DUP_INST
171OFPT_HELLO (OF1.2) (xid=0x12345678):
172 version bitmap: 0x01, 0x02, 0x03
173])
174AT_CHECK([ovs-ofctl ofp-print '0401001812345678 ffff0a28 4f4e4600 0400000812345678'], [0], [dnl
175OFPT_ERROR (OF1.3) (xid=0x12345678): OFPBIC_DUP_INST
176OFPT_HELLO (OF1.3) (xid=0x12345678):
177 version bitmap: 0x01, 0x02, 0x03, 0x04
178])
179AT_CHECK([ovs-ofctl ofp-print '0501001412345678 00030009 0500000812345678'], [0], [dnl
180OFPT_ERROR (OF1.4) (xid=0x12345678): OFPBIC_DUP_INST
181OFPT_HELLO (OF1.4) (xid=0x12345678):
182 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05
183])
514887ee
BP
184AT_CLEANUP
185
186AT_SETUP([encoding experimenter errors])
187AT_KEYWORDS([ofp-print ofp-errors])
d12f128a
BP
188# Demonstrate that a Nicira extension error gets encoded correctly
189# using the Nicira error extension format in OF1.0 and OF1.1, and
190# correctly using the standard experimenter format in OF1.2.
514887ee
BP
191AT_CHECK(
192 [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0100000812345678], [0], [dnl
327a39b6
BP
19300000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
19400000010 00 01 02 03 01 00 00 08-12 34 56 78
514887ee
BP
195])
196AT_CHECK(
197 [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0200000812345678], [0], [dnl
327a39b6
BP
19800000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
19900000010 00 01 02 03 02 00 00 08-12 34 56 78
514887ee
BP
200])
201AT_CHECK(
202 [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0300000812345678], [0], [dnl
327a39b6
BP
20300000000 03 01 00 18 12 34 56 78-ff ff 00 04 00 00 23 20
20400000010 03 00 00 08 12 34 56 78
514887ee 205])
d12f128a
BP
206
207# Check that OFPERR_OFPBIC_DUP_INST is:
208# - not encodable in OF1.0 (OF1.0 doesn't have instructions, after all).
209# - encoded as a Nicira extension in OF1.1.
210# - encoded as an ONF extension in OF1.2 and OF1.3.
211# - encoded in the standard form in OF1.4.
212AT_CHECK(
213 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' encode-error-reply OFPBIC_DUP_INST 0100000812345678], [0], [dnl
327a39b6
BP
21400000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
21500000010 00 01 02 09 01 00 00 08-12 34 56 78
d12f128a
BP
216], [ofp_errors|ERR|cannot encode OFPBIC_DUP_INST for OpenFlow 1.0
217])
218AT_CHECK([ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0200000812345678], [0],
327a39b6
BP
219[00000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
22000000010 00 03 01 00 02 00 00 08-12 34 56 78
d12f128a
BP
221])
222AT_CHECK([ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0300000812345678], [0],
327a39b6
BP
223[00000000 03 01 00 18 12 34 56 78-ff ff 0a 28 4f 4e 46 00
22400000010 03 00 00 08 12 34 56 78
d12f128a
BP
225])
226AT_CHECK([ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0400000812345678], [0],
327a39b6
BP
227[00000000 04 01 00 18 12 34 56 78-ff ff 0a 28 4f 4e 46 00
22800000010 04 00 00 08 12 34 56 78
d12f128a
BP
229])
230AT_CHECK([ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0500000812345678], [0],
327a39b6
BP
231[00000000 05 01 00 14 12 34 56 78-00 03 00 09 05 00 00 08
23200000010 12 34 56 78
d12f128a 233])
514887ee 234AT_CLEANUP