]>
Commit | Line | Data |
---|---|---|
2e0525bc SH |
1 | AT_BANNER([ofp-errors tests]) |
2 | ||
3 | AT_SETUP([OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.0]) | |
4 | AT_KEYWORDS([ofp-print ofp-errors]) | |
5 | AT_CHECK([ovs-ofctl ofp-print 010100170000000000000001657874726120646174610a], [0], [dnl | |
6 | OFPT_ERROR (xid=0x0): OFPHFC_EPERM | |
7 | extra data\012 | |
8 | ]) | |
9 | AT_CLEANUP | |
10 | ||
11 | AT_SETUP([OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.1]) | |
12 | AT_KEYWORDS([ofp-print ofp-errors]) | |
13 | AT_CHECK([ovs-ofctl ofp-print 020100170000000000000001657874726120646174610a], [0], [dnl | |
14 | OFPT_ERROR (OF1.1) (xid=0x0): OFPHFC_EPERM | |
15 | extra data\012 | |
16 | ]) | |
17 | AT_CLEANUP | |
18 | ||
19 | AT_SETUP([OFPT_ERROR with type OFPET_BAD_REQUEST - OF1.0]) | |
20 | AT_KEYWORDS([ofp-print ofp-errors]) | |
f25b4a81 | 21 | AT_CHECK([ovs-ofctl ofp-print 0101001400000000000100060105ccddeeff0011], [0], [dnl |
2e0525bc | 22 | OFPT_ERROR (xid=0x0): OFPBRC_BAD_LEN |
f25b4a81 | 23 | OFPT_FEATURES_REQUEST (xid=0xeeff0011): |
2e0525bc | 24 | (***truncated to 8 bytes from 52445***) |
f25b4a81 BP |
25 | 00000000 01 05 cc dd ee ff 00 11- |........ | |
26 | ]) | |
27 | AT_CLEANUP | |
28 | ||
29 | AT_SETUP([OFPT_ERROR prints type of truncated inner messages]) | |
30 | AT_KEYWORDS([ofp-print ofp-errors]) | |
31 | AT_CHECK([ovs-ofctl ofp-print "0101004c092529d500010006 \ | |
32 | 01 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \ | |
33 | 00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \ | |
34 | ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \ | |
35 | 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01"], [0], [dnl | |
36 | OFPT_ERROR (xid=0x92529d5): OFPBRC_BAD_LEN | |
37 | OFPT_FEATURES_REPLY (xid=0x1): | |
38 | (***truncated to 64 bytes from 224***) | |
39 | 00000000 01 06 00 e0 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....| | |
40 | 00000010 00 00 01 00 02 00 00 00-00 00 00 87 00 00 0f ff |................| | |
41 | 00000020 ff fe 50 54 00 00 00 01-62 72 30 00 00 00 00 00 |..PT....br0.....| | |
42 | 00000030 00 00 00 00 00 00 00 00-00 00 00 01 00 00 00 01 |................| | |
2e0525bc SH |
43 | ]) |
44 | AT_CLEANUP | |
45 | ||
46 | AT_SETUP([OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.0]) | |
47 | AT_KEYWORDS([ofp-print ofp-errors]) | |
48 | AT_CHECK([ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010104 0102000811111111'], [0], [dnl | |
49 | OFPT_ERROR (xid=0x55555555): OFPBMC_BAD_PREREQ | |
50 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
51 | ]) | |
52 | AT_CLEANUP | |
53 | ||
54 | AT_SETUP([OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.1]) | |
55 | AT_KEYWORDS([ofp-print ofp-errors]) | |
56 | AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010104 0102000811111111'], [0], [dnl | |
57 | OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBMC_BAD_PREREQ | |
58 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
59 | ]) | |
60 | AT_CLEANUP | |
61 | ||
62 | dnl Error type 3, code 1 is OFPFMFC_OVERLAP in OF1.0 | |
63 | dnl and OFPBIC_UNSUP_INST in OF1.1, so check that value in both versions. | |
64 | AT_SETUP([OFPT_ERROR with type OFPFMFC_OVERLAP - OF1.0]) | |
65 | AT_KEYWORDS([ofp-print ofp-errors]) | |
f25b4a81 | 66 | AT_CHECK([ovs-ofctl ofp-print 0101001400000000000300010106ccddeeff0011], [0], [dnl |
2e0525bc | 67 | OFPT_ERROR (xid=0x0): OFPFMFC_OVERLAP |
f25b4a81 | 68 | OFPT_FEATURES_REPLY (xid=0xeeff0011): |
2e0525bc | 69 | (***truncated to 8 bytes from 52445***) |
f25b4a81 | 70 | 00000000 01 06 cc dd ee ff 00 11- |........ | |
2e0525bc SH |
71 | ]) |
72 | AT_CLEANUP | |
73 | AT_SETUP([OFPT_ERROR with type OFPBIC_UNSUP_INST - OF1.1]) | |
74 | AT_KEYWORDS([ofp-print ofp-errors]) | |
f25b4a81 | 75 | AT_CHECK([ovs-ofctl ofp-print 0201001400000000000300010206ccddeeff0011], [0], [dnl |
2e0525bc | 76 | OFPT_ERROR (OF1.1) (xid=0x0): OFPBIC_UNSUP_INST |
f25b4a81 | 77 | OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011): |
2e0525bc | 78 | (***truncated to 8 bytes from 52445***) |
f25b4a81 | 79 | 00000000 02 06 cc dd ee ff 00 11- |........ | |
2e0525bc SH |
80 | ]) |
81 | AT_CLEANUP | |
82 | ||
0ca30f6f SH |
83 | AT_SETUP([OFPT_ERROR with type OFPBIC_DUP_INST - OF1.4]) |
84 | AT_KEYWORDS([ofp-print ofp-errors]) | |
85 | AT_CHECK([ovs-ofctl ofp-print 0501001400000000000300090206ccddeeff0011], [0], [dnl | |
86 | OFPT_ERROR (OF1.4) (xid=0x0): OFPBIC_DUP_INST | |
87 | OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011): | |
88 | (***truncated to 8 bytes from 52445***) | |
89 | 00000000 02 06 cc dd ee ff 00 11- |........ | | |
90 | ]) | |
91 | AT_CLEANUP | |
92 | ||
2e0525bc SH |
93 | dnl OF1.1 had OFPBIC_UNSUP_EXP_INST as 3,5. |
94 | dnl OF1.2 broke it into OFPBIC_BAD_EXPERIMENTER as 3,5 | |
95 | dnl and OFPBIC_BAD_EXT_TYPE as 3,6. | |
96 | dnl Thus, for OF1.1 we translate both of the latter error codes into 3,5. | |
97 | AT_SETUP([encoding OFPBIC_* experimenter errors]) | |
98 | AT_KEYWORDS([ofp-print ofp-errors]) | |
99 | AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXPERIMENTER], [0], [dnl | |
514887ee BP |
100 | OpenFlow 1.1: vendor 0, type 3, code 5 |
101 | OpenFlow 1.2: vendor 0, type 3, code 5 | |
102 | OpenFlow 1.3: vendor 0, type 3, code 5 | |
c37c0382 | 103 | OpenFlow 1.4: vendor 0, type 3, code 5 |
42dccab5 | 104 | OpenFlow 1.5: vendor 0, type 3, code 5 |
b79d45a1 | 105 | OpenFlow 1.6: vendor 0, type 3, code 5 |
2e0525bc SH |
106 | ]) |
107 | AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXP_TYPE], [0], [dnl | |
514887ee BP |
108 | OpenFlow 1.1: vendor 0, type 3, code 5 |
109 | OpenFlow 1.2: vendor 0, type 3, code 6 | |
110 | OpenFlow 1.3: vendor 0, type 3, code 6 | |
c37c0382 | 111 | OpenFlow 1.4: vendor 0, type 3, code 6 |
42dccab5 | 112 | OpenFlow 1.5: vendor 0, type 3, code 6 |
b79d45a1 | 113 | OpenFlow 1.6: vendor 0, type 3, code 6 |
2e0525bc SH |
114 | ]) |
115 | AT_CLEANUP | |
116 | ||
edd70aa7 BP |
117 | dnl The "bad role" error was a Nicira extension in OpenFlow 1.0 and 1.1. |
118 | dnl It was adopted as an official error code in OpenFlow 1.2. | |
119 | AT_SETUP([encoding errors extension that became official]) | |
120 | AT_KEYWORDS([ofp-print ofp-errors]) | |
121 | AT_CHECK( | |
122 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0100000812345678], [0], [dnl | |
327a39b6 BP |
123 | 00000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 |
124 | 00000010 00 01 02 01 01 00 00 08-12 34 56 78 | |
edd70aa7 BP |
125 | ]) |
126 | AT_CHECK( | |
127 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0200000812345678], [0], [dnl | |
327a39b6 BP |
128 | 00000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 |
129 | 00000010 00 01 02 01 02 00 00 08-12 34 56 78 | |
edd70aa7 BP |
130 | ]) |
131 | AT_CHECK( | |
132 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0300000812345678], [0], [dnl | |
327a39b6 BP |
133 | 00000000 03 01 00 14 12 34 56 78-00 0b 00 02 03 00 00 08 |
134 | 00000010 12 34 56 78 | |
edd70aa7 BP |
135 | ]) |
136 | AT_CLEANUP | |
137 | ||
2e0525bc SH |
138 | AT_SETUP([decoding OFPBIC_* experimenter errors]) |
139 | AT_KEYWORDS([ofp-print ofp-errors]) | |
140 | AT_CHECK([ovs-ofctl ofp-print '0201001455555555 00030005 0102000811111111'], [0], [dnl | |
141 | OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER | |
142 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
143 | ]) | |
2e0525bc | 144 | AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030005 0102000811111111'], [0], [dnl |
4232ef77 | 145 | OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER |
2e0525bc SH |
146 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload |
147 | ]) | |
2e0525bc | 148 | AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030006 0102000811111111'], [0], [dnl |
4232ef77 | 149 | OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXP_TYPE |
2e0525bc SH |
150 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload |
151 | ]) | |
152 | AT_CLEANUP | |
514887ee BP |
153 | |
154 | AT_SETUP([decoding experimenter errors]) | |
155 | AT_KEYWORDS([ofp-print ofp-errors]) | |
156 | AT_CHECK([ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl | |
157 | OFPT_ERROR (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
158 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
159 | ]) | |
160 | AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl | |
161 | OFPT_ERROR (OF1.1) (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
162 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
163 | ]) | |
164 | AT_CHECK([ovs-ofctl ofp-print '0301001855555555 ffff0004 00002320 0102000811111111'], [0], [dnl | |
165 | OFPT_ERROR (OF1.2) (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
166 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
167 | ]) | |
d12f128a BP |
168 | |
169 | AT_CHECK([ovs-ofctl ofp-print '0301001812345678 ffff0a28 4f4e4600 0300000812345678'], [0], [dnl | |
170 | OFPT_ERROR (OF1.2) (xid=0x12345678): OFPBIC_DUP_INST | |
171 | OFPT_HELLO (OF1.2) (xid=0x12345678): | |
172 | version bitmap: 0x01, 0x02, 0x03 | |
173 | ]) | |
174 | AT_CHECK([ovs-ofctl ofp-print '0401001812345678 ffff0a28 4f4e4600 0400000812345678'], [0], [dnl | |
175 | OFPT_ERROR (OF1.3) (xid=0x12345678): OFPBIC_DUP_INST | |
176 | OFPT_HELLO (OF1.3) (xid=0x12345678): | |
177 | version bitmap: 0x01, 0x02, 0x03, 0x04 | |
178 | ]) | |
179 | AT_CHECK([ovs-ofctl ofp-print '0501001412345678 00030009 0500000812345678'], [0], [dnl | |
180 | OFPT_ERROR (OF1.4) (xid=0x12345678): OFPBIC_DUP_INST | |
181 | OFPT_HELLO (OF1.4) (xid=0x12345678): | |
182 | version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05 | |
183 | ]) | |
514887ee BP |
184 | AT_CLEANUP |
185 | ||
186 | AT_SETUP([encoding experimenter errors]) | |
187 | AT_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 |
191 | AT_CHECK( |
192 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0100000812345678], [0], [dnl | |
327a39b6 BP |
193 | 00000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 |
194 | 00000010 00 01 02 03 01 00 00 08-12 34 56 78 | |
514887ee BP |
195 | ]) |
196 | AT_CHECK( | |
197 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0200000812345678], [0], [dnl | |
327a39b6 BP |
198 | 00000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 |
199 | 00000010 00 01 02 03 02 00 00 08-12 34 56 78 | |
514887ee BP |
200 | ]) |
201 | AT_CHECK( | |
202 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0300000812345678], [0], [dnl | |
327a39b6 BP |
203 | 00000000 03 01 00 18 12 34 56 78-ff ff 00 04 00 00 23 20 |
204 | 00000010 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. | |
212 | AT_CHECK( | |
213 | [ovs-ofctl '-vPATTERN:console:%c|%p|%m' encode-error-reply OFPBIC_DUP_INST 0100000812345678], [0], [dnl | |
327a39b6 BP |
214 | 00000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 |
215 | 00000010 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 | ]) | |
218 | AT_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 |
220 | 00000010 00 03 01 00 02 00 00 08-12 34 56 78 | |
d12f128a BP |
221 | ]) |
222 | AT_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 |
224 | 00000010 03 00 00 08 12 34 56 78 | |
d12f128a BP |
225 | ]) |
226 | AT_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 |
228 | 00000010 04 00 00 08 12 34 56 78 | |
d12f128a BP |
229 | ]) |
230 | AT_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 |
232 | 00000010 12 34 56 78 | |
d12f128a | 233 | ]) |
514887ee | 234 | AT_CLEANUP |