]>
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 | ||
83 | dnl OF1.1 had OFPBIC_UNSUP_EXP_INST as 3,5. | |
84 | dnl OF1.2 broke it into OFPBIC_BAD_EXPERIMENTER as 3,5 | |
85 | dnl and OFPBIC_BAD_EXT_TYPE as 3,6. | |
86 | dnl Thus, for OF1.1 we translate both of the latter error codes into 3,5. | |
87 | AT_SETUP([encoding OFPBIC_* experimenter errors]) | |
88 | AT_KEYWORDS([ofp-print ofp-errors]) | |
89 | AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXPERIMENTER], [0], [dnl | |
514887ee BP |
90 | OpenFlow 1.1: vendor 0, type 3, code 5 |
91 | OpenFlow 1.2: vendor 0, type 3, code 5 | |
92 | OpenFlow 1.3: vendor 0, type 3, code 5 | |
2e0525bc SH |
93 | ]) |
94 | AT_CHECK([ovs-ofctl print-error OFPBIC_BAD_EXP_TYPE], [0], [dnl | |
514887ee BP |
95 | OpenFlow 1.1: vendor 0, type 3, code 5 |
96 | OpenFlow 1.2: vendor 0, type 3, code 6 | |
97 | OpenFlow 1.3: vendor 0, type 3, code 6 | |
2e0525bc SH |
98 | ]) |
99 | AT_CLEANUP | |
100 | ||
edd70aa7 BP |
101 | dnl The "bad role" error was a Nicira extension in OpenFlow 1.0 and 1.1. |
102 | dnl It was adopted as an official error code in OpenFlow 1.2. | |
103 | AT_SETUP([encoding errors extension that became official]) | |
104 | AT_KEYWORDS([ofp-print ofp-errors]) | |
105 | AT_CHECK( | |
106 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0100000812345678], [0], [dnl | |
107 | 00000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 @&t@ | |
108 | 00000010 00 01 02 01 01 00 00 08-12 34 56 78 @&t@ | |
109 | ]) | |
110 | AT_CHECK( | |
111 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0200000812345678], [0], [dnl | |
112 | 00000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 @&t@ | |
113 | 00000010 00 01 02 01 02 00 00 08-12 34 56 78 @&t@ | |
114 | ]) | |
115 | AT_CHECK( | |
116 | [ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0300000812345678], [0], [dnl | |
117 | 00000000 03 01 00 14 12 34 56 78-00 0b 00 02 03 00 00 08 @&t@ | |
118 | 00000010 12 34 56 78 @&t@ | |
119 | ]) | |
120 | AT_CLEANUP | |
121 | ||
2e0525bc SH |
122 | AT_SETUP([decoding OFPBIC_* experimenter errors]) |
123 | AT_KEYWORDS([ofp-print ofp-errors]) | |
124 | AT_CHECK([ovs-ofctl ofp-print '0201001455555555 00030005 0102000811111111'], [0], [dnl | |
125 | OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER | |
126 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
127 | ]) | |
2e0525bc | 128 | AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030005 0102000811111111'], [0], [dnl |
4232ef77 | 129 | OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER |
2e0525bc SH |
130 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload |
131 | ]) | |
2e0525bc | 132 | AT_CHECK([ovs-ofctl ofp-print '0301001455555555 00030006 0102000811111111'], [0], [dnl |
4232ef77 | 133 | OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXP_TYPE |
2e0525bc SH |
134 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload |
135 | ]) | |
136 | AT_CLEANUP | |
514887ee BP |
137 | |
138 | AT_SETUP([decoding experimenter errors]) | |
139 | AT_KEYWORDS([ofp-print ofp-errors]) | |
140 | AT_CHECK([ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl | |
141 | OFPT_ERROR (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
142 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
143 | ]) | |
144 | AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010203 0102000811111111'], [0], [dnl | |
145 | OFPT_ERROR (OF1.1) (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
146 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
147 | ]) | |
148 | AT_CHECK([ovs-ofctl ofp-print '0301001855555555 ffff0004 00002320 0102000811111111'], [0], [dnl | |
149 | OFPT_ERROR (OF1.2) (xid=0x55555555): NXBRC_MUST_BE_ZERO | |
150 | OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload | |
151 | ]) | |
152 | AT_CLEANUP | |
153 | ||
154 | AT_SETUP([encoding experimenter errors]) | |
155 | AT_KEYWORDS([ofp-print ofp-errors]) | |
156 | AT_CHECK( | |
157 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0100000812345678], [0], [dnl | |
158 | 00000000 01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 @&t@ | |
159 | 00000010 00 01 02 03 01 00 00 08-12 34 56 78 @&t@ | |
160 | ]) | |
161 | AT_CHECK( | |
162 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0200000812345678], [0], [dnl | |
163 | 00000000 02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20 @&t@ | |
164 | 00000010 00 01 02 03 02 00 00 08-12 34 56 78 @&t@ | |
165 | ]) | |
166 | AT_CHECK( | |
167 | [ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0300000812345678], [0], [dnl | |
168 | 00000000 03 01 00 18 12 34 56 78-ff ff 00 04 00 00 23 20 @&t@ | |
169 | 00000010 03 00 00 08 12 34 56 78- | |
170 | ]) | |
171 | AT_CLEANUP |