blob: 49440e4bc529a21b2daf130453ed0a77c499d4a1 [file] [log] [blame]
Rich Lanec2ee4b82013-04-24 17:12:38 -07001# Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
2# Copyright (c) 2011, 2012 Open Networking Foundation
3# Copyright (c) 2012, 2013 Big Switch Networks, Inc.
Dan Talaycof6202252013-07-02 01:00:29 -07004# See the file LICENSE.pyloxi which should have been included in the source distribution
Rich Lanec2ee4b82013-04-24 17:12:38 -07005
6# Automatically generated by LOXI from template const.py
7# Do not modify
8
9OFP_VERSION = 4
10
11# Identifiers from group macro_definitions
Rich Lanec2ee4b82013-04-24 17:12:38 -070012OFP_MAX_TABLE_NAME_LEN = 32
Dan Talaycof6202252013-07-02 01:00:29 -070013OFP_MAX_PORT_NAME_LEN = 16
Rich Lane6f4978c2013-10-20 21:33:52 -070014OFP_TCP_PORT = 6653
15OFP_SSL_PORT = 6653
Dan Talaycof6202252013-07-02 01:00:29 -070016OFP_ETH_ALEN = 6
17OFP_DEFAULT_MISS_SEND_LEN = 128
18OFP_VLAN_NONE = 0
19OFP_FLOW_PERMANENT = 0
Rich Lanec2ee4b82013-04-24 17:12:38 -070020OFP_DEFAULT_PRIORITY = 32768
Rich Lanec2ee4b82013-04-24 17:12:38 -070021OFP_NO_BUFFER = 4294967295
Dan Talaycof6202252013-07-02 01:00:29 -070022DESC_STR_LEN = 256
23SERIAL_NUM_LEN = 32
24OFPQ_ALL = 4294967295
25OFPQ_MAX_RATE_UNCFG = 65535
26OFPQ_MIN_RATE_UNCFG = 65535
Rich Lanec2ee4b82013-04-24 17:12:38 -070027
Rich Lane7b0f2012013-11-22 14:15:26 -080028# Identifiers from group of_bsn_lacp_convergence_status_t
29LACP_SUCCESS = 0
30LACP_TIMEDOUT = 1
31LACP_OUT_OF_SYNC = 2
32
33of_bsn_lacp_convergence_status_t_map = {
34 0: 'LACP_SUCCESS',
35 1: 'LACP_TIMEDOUT',
36 2: 'LACP_OUT_OF_SYNC',
37}
38
Rich Lane6f4978c2013-10-20 21:33:52 -070039# Identifiers from group of_bsn_pdu_slot_num_t
40BSN_PDU_SLOT_NUM_ANY = 255
41
42of_bsn_pdu_slot_num_t_map = {
43 255: 'BSN_PDU_SLOT_NUM_ANY',
44}
45
Rich Lane7dcdf022013-12-11 14:45:27 -080046# Identifiers from group of_bsn_vlan_counter_t
47OFP_BSN_VLAN_COUNTER_RX_BYTES = 0
48OFP_BSN_VLAN_COUNTER_RX_PACKETS = 1
49OFP_BSN_VLAN_COUNTER_TX_BYTES = 2
50OFP_BSN_VLAN_COUNTER_TX_PACKETS = 3
51
52of_bsn_vlan_counter_t_map = {
53 0: 'OFP_BSN_VLAN_COUNTER_RX_BYTES',
54 1: 'OFP_BSN_VLAN_COUNTER_RX_PACKETS',
55 2: 'OFP_BSN_VLAN_COUNTER_TX_BYTES',
56 3: 'OFP_BSN_VLAN_COUNTER_TX_PACKETS',
57}
58
Rich Lanec2ee4b82013-04-24 17:12:38 -070059# Identifiers from group ofp_action_type
60OFPAT_OUTPUT = 0
61OFPAT_COPY_TTL_OUT = 11
62OFPAT_COPY_TTL_IN = 12
63OFPAT_SET_MPLS_TTL = 15
64OFPAT_DEC_MPLS_TTL = 16
65OFPAT_PUSH_VLAN = 17
66OFPAT_POP_VLAN = 18
67OFPAT_PUSH_MPLS = 19
68OFPAT_POP_MPLS = 20
69OFPAT_SET_QUEUE = 21
70OFPAT_GROUP = 22
71OFPAT_SET_NW_TTL = 23
72OFPAT_DEC_NW_TTL = 24
73OFPAT_SET_FIELD = 25
74OFPAT_PUSH_PBB = 26
75OFPAT_POP_PBB = 27
76OFPAT_EXPERIMENTER = 65535
77
78ofp_action_type_map = {
79 0: 'OFPAT_OUTPUT',
80 11: 'OFPAT_COPY_TTL_OUT',
81 12: 'OFPAT_COPY_TTL_IN',
82 15: 'OFPAT_SET_MPLS_TTL',
83 16: 'OFPAT_DEC_MPLS_TTL',
84 17: 'OFPAT_PUSH_VLAN',
85 18: 'OFPAT_POP_VLAN',
86 19: 'OFPAT_PUSH_MPLS',
87 20: 'OFPAT_POP_MPLS',
88 21: 'OFPAT_SET_QUEUE',
89 22: 'OFPAT_GROUP',
90 23: 'OFPAT_SET_NW_TTL',
91 24: 'OFPAT_DEC_NW_TTL',
92 25: 'OFPAT_SET_FIELD',
93 26: 'OFPAT_PUSH_PBB',
94 27: 'OFPAT_POP_PBB',
95 65535: 'OFPAT_EXPERIMENTER',
96}
97
98# Identifiers from group ofp_bad_action_code
99OFPBAC_BAD_TYPE = 0
100OFPBAC_BAD_LEN = 1
101OFPBAC_BAD_EXPERIMENTER = 2
Rich Lane6f4978c2013-10-20 21:33:52 -0700102OFPBAC_BAD_EXPERIMENTER_TYPE = 3
Rich Lanec2ee4b82013-04-24 17:12:38 -0700103OFPBAC_BAD_OUT_PORT = 4
104OFPBAC_BAD_ARGUMENT = 5
105OFPBAC_EPERM = 6
106OFPBAC_TOO_MANY = 7
107OFPBAC_BAD_QUEUE = 8
108OFPBAC_BAD_OUT_GROUP = 9
109OFPBAC_MATCH_INCONSISTENT = 10
110OFPBAC_UNSUPPORTED_ORDER = 11
111OFPBAC_BAD_TAG = 12
112OFPBAC_BAD_SET_TYPE = 13
113OFPBAC_BAD_SET_LEN = 14
114OFPBAC_BAD_SET_ARGUMENT = 15
115
116ofp_bad_action_code_map = {
117 0: 'OFPBAC_BAD_TYPE',
118 1: 'OFPBAC_BAD_LEN',
119 2: 'OFPBAC_BAD_EXPERIMENTER',
Rich Lane6f4978c2013-10-20 21:33:52 -0700120 3: 'OFPBAC_BAD_EXPERIMENTER_TYPE',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700121 4: 'OFPBAC_BAD_OUT_PORT',
122 5: 'OFPBAC_BAD_ARGUMENT',
123 6: 'OFPBAC_EPERM',
124 7: 'OFPBAC_TOO_MANY',
125 8: 'OFPBAC_BAD_QUEUE',
126 9: 'OFPBAC_BAD_OUT_GROUP',
127 10: 'OFPBAC_MATCH_INCONSISTENT',
128 11: 'OFPBAC_UNSUPPORTED_ORDER',
129 12: 'OFPBAC_BAD_TAG',
130 13: 'OFPBAC_BAD_SET_TYPE',
131 14: 'OFPBAC_BAD_SET_LEN',
132 15: 'OFPBAC_BAD_SET_ARGUMENT',
133}
134
135# Identifiers from group ofp_bad_instruction_code
136OFPBIC_UNKNOWN_INST = 0
137OFPBIC_UNSUP_INST = 1
138OFPBIC_BAD_TABLE_ID = 2
139OFPBIC_UNSUP_METADATA = 3
140OFPBIC_UNSUP_METADATA_MASK = 4
141OFPBIC_BAD_EXPERIMENTER = 5
Rich Lane6f4978c2013-10-20 21:33:52 -0700142OFPBIC_BAD_EXPERIMENTER_TYPE = 6
Rich Lanec2ee4b82013-04-24 17:12:38 -0700143OFPBIC_BAD_LEN = 7
144OFPBIC_EPERM = 8
145
146ofp_bad_instruction_code_map = {
147 0: 'OFPBIC_UNKNOWN_INST',
148 1: 'OFPBIC_UNSUP_INST',
149 2: 'OFPBIC_BAD_TABLE_ID',
150 3: 'OFPBIC_UNSUP_METADATA',
151 4: 'OFPBIC_UNSUP_METADATA_MASK',
152 5: 'OFPBIC_BAD_EXPERIMENTER',
Rich Lane6f4978c2013-10-20 21:33:52 -0700153 6: 'OFPBIC_BAD_EXPERIMENTER_TYPE',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700154 7: 'OFPBIC_BAD_LEN',
155 8: 'OFPBIC_EPERM',
156}
157
158# Identifiers from group ofp_bad_match_code
159OFPBMC_BAD_TYPE = 0
160OFPBMC_BAD_LEN = 1
161OFPBMC_BAD_TAG = 2
162OFPBMC_BAD_DL_ADDR_MASK = 3
163OFPBMC_BAD_NW_ADDR_MASK = 4
164OFPBMC_BAD_WILDCARDS = 5
165OFPBMC_BAD_FIELD = 6
166OFPBMC_BAD_VALUE = 7
167OFPBMC_BAD_MASK = 8
168OFPBMC_BAD_PREREQ = 9
169OFPBMC_DUP_FIELD = 10
170OFPBMC_EPERM = 11
171
172ofp_bad_match_code_map = {
173 0: 'OFPBMC_BAD_TYPE',
174 1: 'OFPBMC_BAD_LEN',
175 2: 'OFPBMC_BAD_TAG',
176 3: 'OFPBMC_BAD_DL_ADDR_MASK',
177 4: 'OFPBMC_BAD_NW_ADDR_MASK',
178 5: 'OFPBMC_BAD_WILDCARDS',
179 6: 'OFPBMC_BAD_FIELD',
180 7: 'OFPBMC_BAD_VALUE',
181 8: 'OFPBMC_BAD_MASK',
182 9: 'OFPBMC_BAD_PREREQ',
183 10: 'OFPBMC_DUP_FIELD',
184 11: 'OFPBMC_EPERM',
185}
186
187# Identifiers from group ofp_bad_request_code
188OFPBRC_BAD_VERSION = 0
189OFPBRC_BAD_TYPE = 1
Rich Lane6f4978c2013-10-20 21:33:52 -0700190OFPBRC_BAD_STAT = 2
Rich Lanec2ee4b82013-04-24 17:12:38 -0700191OFPBRC_BAD_EXPERIMENTER = 3
Rich Lane6f4978c2013-10-20 21:33:52 -0700192OFPBRC_BAD_EXPERIMENTER_TYPE = 4
Rich Lanec2ee4b82013-04-24 17:12:38 -0700193OFPBRC_EPERM = 5
194OFPBRC_BAD_LEN = 6
195OFPBRC_BUFFER_EMPTY = 7
196OFPBRC_BUFFER_UNKNOWN = 8
197OFPBRC_BAD_TABLE_ID = 9
198OFPBRC_IS_SLAVE = 10
199OFPBRC_BAD_PORT = 11
200OFPBRC_BAD_PACKET = 12
201OFPBRC_MULTIPART_BUFFER_OVERFLOW = 13
202
203ofp_bad_request_code_map = {
204 0: 'OFPBRC_BAD_VERSION',
205 1: 'OFPBRC_BAD_TYPE',
Rich Lane6f4978c2013-10-20 21:33:52 -0700206 2: 'OFPBRC_BAD_STAT',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700207 3: 'OFPBRC_BAD_EXPERIMENTER',
Rich Lane6f4978c2013-10-20 21:33:52 -0700208 4: 'OFPBRC_BAD_EXPERIMENTER_TYPE',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700209 5: 'OFPBRC_EPERM',
210 6: 'OFPBRC_BAD_LEN',
211 7: 'OFPBRC_BUFFER_EMPTY',
212 8: 'OFPBRC_BUFFER_UNKNOWN',
213 9: 'OFPBRC_BAD_TABLE_ID',
214 10: 'OFPBRC_IS_SLAVE',
215 11: 'OFPBRC_BAD_PORT',
216 12: 'OFPBRC_BAD_PACKET',
217 13: 'OFPBRC_MULTIPART_BUFFER_OVERFLOW',
218}
219
Rich Lane5454b682014-01-14 17:07:36 -0800220# Identifiers from group ofp_bsn_controller_connection_state
221OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED = 0
222OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED = 1
223
224ofp_bsn_controller_connection_state_map = {
225 0: 'OFP_BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED',
226 1: 'OFP_BSN_CONTROLLER_CONNECTION_STATE_CONNECTED',
227}
228
229# Identifiers from group ofp_bsn_controller_role_reason
230OFP_BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST = 0
231OFP_BSN_CONTROLLER_ROLE_REASON_CONFIG = 1
232OFP_BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER = 2
233
234ofp_bsn_controller_role_reason_map = {
235 0: 'OFP_BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST',
236 1: 'OFP_BSN_CONTROLLER_ROLE_REASON_CONFIG',
237 2: 'OFP_BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER',
238}
239
Rich Lane93b33132014-04-21 12:20:58 -0700240# Identifiers from group ofp_bsn_pktin_flag
241OFP_BSN_PKTIN_FLAG_PDU = 1
242OFP_BSN_PKTIN_FLAG_NEW_HOST = 2
243OFP_BSN_PKTIN_FLAG_STATION_MOVE = 4
244OFP_BSN_PKTIN_FLAG_ARP = 8
245OFP_BSN_PKTIN_FLAG_DHCP = 16
246OFP_BSN_PKTIN_FLAG_L2_CPU = 32
247OFP_BSN_PKTIN_FLAG_DEBUG = 64
248OFP_BSN_PKTIN_FLAG_TTL_EXPIRED = 128
249OFP_BSN_PKTIN_FLAG_L3_MISS = 256
250OFP_BSN_PKTIN_FLAG_L3_CPU = 512
Harshmeet Singhc51f4042014-05-21 13:32:52 -0700251OFP_BSN_PKTIN_FLAG_INGRESS_ACL = 1024
Rich Lane93b33132014-04-21 12:20:58 -0700252
253ofp_bsn_pktin_flag_map = {
254 1: 'OFP_BSN_PKTIN_FLAG_PDU',
255 2: 'OFP_BSN_PKTIN_FLAG_NEW_HOST',
256 4: 'OFP_BSN_PKTIN_FLAG_STATION_MOVE',
257 8: 'OFP_BSN_PKTIN_FLAG_ARP',
258 16: 'OFP_BSN_PKTIN_FLAG_DHCP',
259 32: 'OFP_BSN_PKTIN_FLAG_L2_CPU',
260 64: 'OFP_BSN_PKTIN_FLAG_DEBUG',
261 128: 'OFP_BSN_PKTIN_FLAG_TTL_EXPIRED',
262 256: 'OFP_BSN_PKTIN_FLAG_L3_MISS',
263 512: 'OFP_BSN_PKTIN_FLAG_L3_CPU',
Harshmeet Singhc51f4042014-05-21 13:32:52 -0700264 1024: 'OFP_BSN_PKTIN_FLAG_INGRESS_ACL',
Rich Lane93b33132014-04-21 12:20:58 -0700265}
266
Rich Lane7dcdf022013-12-11 14:45:27 -0800267# Identifiers from group ofp_bsn_port_counter
268OFP_BSN_PORT_COUNTER_RX_BYTES = 0
269OFP_BSN_PORT_COUNTER_RX_PACKETS_UNICAST = 1
270OFP_BSN_PORT_COUNTER_RX_PACKETS_BROADCAST = 2
271OFP_BSN_PORT_COUNTER_RX_PACKETS_MULTICAST = 3
272OFP_BSN_PORT_COUNTER_RX_DROPPED = 4
273OFP_BSN_PORT_COUNTER_RX_ERRORS = 5
274OFP_BSN_PORT_COUNTER_TX_BYTES = 6
275OFP_BSN_PORT_COUNTER_TX_PACKETS_UNICAST = 7
276OFP_BSN_PORT_COUNTER_TX_PACKETS_BROADCAST = 8
277OFP_BSN_PORT_COUNTER_TX_PACKETS_MULTICAST = 9
278OFP_BSN_PORT_COUNTER_TX_DROPPED = 10
279OFP_BSN_PORT_COUNTER_TX_ERRORS = 11
280
281ofp_bsn_port_counter_map = {
282 0: 'OFP_BSN_PORT_COUNTER_RX_BYTES',
283 1: 'OFP_BSN_PORT_COUNTER_RX_PACKETS_UNICAST',
284 2: 'OFP_BSN_PORT_COUNTER_RX_PACKETS_BROADCAST',
285 3: 'OFP_BSN_PORT_COUNTER_RX_PACKETS_MULTICAST',
286 4: 'OFP_BSN_PORT_COUNTER_RX_DROPPED',
287 5: 'OFP_BSN_PORT_COUNTER_RX_ERRORS',
288 6: 'OFP_BSN_PORT_COUNTER_TX_BYTES',
289 7: 'OFP_BSN_PORT_COUNTER_TX_PACKETS_UNICAST',
290 8: 'OFP_BSN_PORT_COUNTER_TX_PACKETS_BROADCAST',
291 9: 'OFP_BSN_PORT_COUNTER_TX_PACKETS_MULTICAST',
292 10: 'OFP_BSN_PORT_COUNTER_TX_DROPPED',
293 11: 'OFP_BSN_PORT_COUNTER_TX_ERRORS',
294}
295
Harshmeet Singhc51f4042014-05-21 13:32:52 -0700296# Identifiers from group ofp_bsn_tcp_flag
297OFP_BSN_TCP_FLAG_FIN = 1
298OFP_BSN_TCP_FLAG_SYN = 2
299OFP_BSN_TCP_FLAG_RST = 4
300OFP_BSN_TCP_FLAG_PSH = 8
301OFP_BSN_TCP_FLAG_ACK = 16
302OFP_BSN_TCP_FLAG_URG = 32
303OFP_BSN_TCP_FLAG_ECE = 64
304OFP_BSN_TCP_FLAG_CWR = 128
305OFP_BSN_TCP_FLAG_NS = 256
306
307ofp_bsn_tcp_flag_map = {
308 1: 'OFP_BSN_TCP_FLAG_FIN',
309 2: 'OFP_BSN_TCP_FLAG_SYN',
310 4: 'OFP_BSN_TCP_FLAG_RST',
311 8: 'OFP_BSN_TCP_FLAG_PSH',
312 16: 'OFP_BSN_TCP_FLAG_ACK',
313 32: 'OFP_BSN_TCP_FLAG_URG',
314 64: 'OFP_BSN_TCP_FLAG_ECE',
315 128: 'OFP_BSN_TCP_FLAG_CWR',
316 256: 'OFP_BSN_TCP_FLAG_NS',
317}
318
Rich Lane93b33132014-04-21 12:20:58 -0700319# Identifiers from group ofp_bsn_udf_anchor
320OFP_BSN_UDF_ANCHOR_PACKET_START = 0
321OFP_BSN_UDF_ANCHOR_L3_HEADER_START = 1
322OFP_BSN_UDF_ANCHOR_L4_HEADER_START = 2
323
324ofp_bsn_udf_anchor_map = {
325 0: 'OFP_BSN_UDF_ANCHOR_PACKET_START',
326 1: 'OFP_BSN_UDF_ANCHOR_L3_HEADER_START',
327 2: 'OFP_BSN_UDF_ANCHOR_L4_HEADER_START',
328}
329
330# Identifiers from group ofp_bsn_vport_l2gre_flags
331OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID = 1
332OF_BSN_VPORT_L2GRE_DSCP_ASSIGN = 2
333OF_BSN_VPORT_L2GRE_DSCP_COPY = 4
334
335ofp_bsn_vport_l2gre_flags_map = {
336 1: 'OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID',
337 2: 'OF_BSN_VPORT_L2GRE_DSCP_ASSIGN',
338 4: 'OF_BSN_VPORT_L2GRE_DSCP_COPY',
339}
340
Dan Talaycof6202252013-07-02 01:00:29 -0700341# Identifiers from group ofp_bsn_vport_q_in_q_untagged
342OF_BSN_VPORT_Q_IN_Q_UNTAGGED = 65535
343
344ofp_bsn_vport_q_in_q_untagged_map = {
345 65535: 'OF_BSN_VPORT_Q_IN_Q_UNTAGGED',
346}
347
Rich Laned53156a2013-08-05 17:17:33 -0700348# Identifiers from group ofp_bsn_vport_status
349OF_BSN_VPORT_STATUS_OK = 0
350OF_BSN_VPORT_STATUS_FAILED = 1
351
352ofp_bsn_vport_status_map = {
353 0: 'OF_BSN_VPORT_STATUS_OK',
354 1: 'OF_BSN_VPORT_STATUS_FAILED',
355}
356
Rich Lanec2ee4b82013-04-24 17:12:38 -0700357# Identifiers from group ofp_capabilities
358OFPC_FLOW_STATS = 1
359OFPC_TABLE_STATS = 2
360OFPC_PORT_STATS = 4
361OFPC_GROUP_STATS = 8
362OFPC_IP_REASM = 32
363OFPC_QUEUE_STATS = 64
364OFPC_PORT_BLOCKED = 256
365
366ofp_capabilities_map = {
367 1: 'OFPC_FLOW_STATS',
368 2: 'OFPC_TABLE_STATS',
369 4: 'OFPC_PORT_STATS',
370 8: 'OFPC_GROUP_STATS',
371 32: 'OFPC_IP_REASM',
372 64: 'OFPC_QUEUE_STATS',
373 256: 'OFPC_PORT_BLOCKED',
374}
375
376# Identifiers from group ofp_config_flags
377OFPC_FRAG_NORMAL = 0
378OFPC_FRAG_DROP = 1
379OFPC_FRAG_REASM = 2
380OFPC_FRAG_MASK = 3
381
382ofp_config_flags_map = {
383 0: 'OFPC_FRAG_NORMAL',
384 1: 'OFPC_FRAG_DROP',
385 2: 'OFPC_FRAG_REASM',
386 3: 'OFPC_FRAG_MASK',
387}
388
389# Identifiers from group ofp_controller_max_len
390OFPCML_MAX = 65509
391OFPCML_NO_BUFFER = 65535
392
393ofp_controller_max_len_map = {
394 65509: 'OFPCML_MAX',
395 65535: 'OFPCML_NO_BUFFER',
396}
397
398# Identifiers from group ofp_controller_role
399OFPCR_ROLE_NOCHANGE = 0
400OFPCR_ROLE_EQUAL = 1
401OFPCR_ROLE_MASTER = 2
402OFPCR_ROLE_SLAVE = 3
403
404ofp_controller_role_map = {
405 0: 'OFPCR_ROLE_NOCHANGE',
406 1: 'OFPCR_ROLE_EQUAL',
407 2: 'OFPCR_ROLE_MASTER',
408 3: 'OFPCR_ROLE_SLAVE',
409}
410
411# Identifiers from group ofp_error_type
412OFPET_HELLO_FAILED = 0
413OFPET_BAD_REQUEST = 1
414OFPET_BAD_ACTION = 2
415OFPET_BAD_INSTRUCTION = 3
416OFPET_BAD_MATCH = 4
417OFPET_FLOW_MOD_FAILED = 5
418OFPET_GROUP_MOD_FAILED = 6
419OFPET_PORT_MOD_FAILED = 7
420OFPET_TABLE_MOD_FAILED = 8
421OFPET_QUEUE_OP_FAILED = 9
422OFPET_SWITCH_CONFIG_FAILED = 10
423OFPET_ROLE_REQUEST_FAILED = 11
424OFPET_METER_MOD_FAILED = 12
425OFPET_TABLE_FEATURES_FAILED = 13
426OFPET_EXPERIMENTER = 65535
427
428ofp_error_type_map = {
429 0: 'OFPET_HELLO_FAILED',
430 1: 'OFPET_BAD_REQUEST',
431 2: 'OFPET_BAD_ACTION',
432 3: 'OFPET_BAD_INSTRUCTION',
433 4: 'OFPET_BAD_MATCH',
434 5: 'OFPET_FLOW_MOD_FAILED',
435 6: 'OFPET_GROUP_MOD_FAILED',
436 7: 'OFPET_PORT_MOD_FAILED',
437 8: 'OFPET_TABLE_MOD_FAILED',
438 9: 'OFPET_QUEUE_OP_FAILED',
439 10: 'OFPET_SWITCH_CONFIG_FAILED',
440 11: 'OFPET_ROLE_REQUEST_FAILED',
441 12: 'OFPET_METER_MOD_FAILED',
442 13: 'OFPET_TABLE_FEATURES_FAILED',
443 65535: 'OFPET_EXPERIMENTER',
444}
445
446# Identifiers from group ofp_flow_mod_command
447OFPFC_ADD = 0
448OFPFC_MODIFY = 1
449OFPFC_MODIFY_STRICT = 2
450OFPFC_DELETE = 3
451OFPFC_DELETE_STRICT = 4
452
453ofp_flow_mod_command_map = {
454 0: 'OFPFC_ADD',
455 1: 'OFPFC_MODIFY',
456 2: 'OFPFC_MODIFY_STRICT',
457 3: 'OFPFC_DELETE',
458 4: 'OFPFC_DELETE_STRICT',
459}
460
461# Identifiers from group ofp_flow_mod_failed_code
462OFPFMFC_UNKNOWN = 0
463OFPFMFC_TABLE_FULL = 1
464OFPFMFC_BAD_TABLE_ID = 2
465OFPFMFC_OVERLAP = 3
466OFPFMFC_EPERM = 4
467OFPFMFC_BAD_TIMEOUT = 5
468OFPFMFC_BAD_COMMAND = 6
469OFPFMFC_BAD_FLAGS = 7
470
471ofp_flow_mod_failed_code_map = {
472 0: 'OFPFMFC_UNKNOWN',
473 1: 'OFPFMFC_TABLE_FULL',
474 2: 'OFPFMFC_BAD_TABLE_ID',
475 3: 'OFPFMFC_OVERLAP',
476 4: 'OFPFMFC_EPERM',
477 5: 'OFPFMFC_BAD_TIMEOUT',
478 6: 'OFPFMFC_BAD_COMMAND',
479 7: 'OFPFMFC_BAD_FLAGS',
480}
481
482# Identifiers from group ofp_flow_mod_flags
483OFPFF_SEND_FLOW_REM = 1
484OFPFF_CHECK_OVERLAP = 2
485OFPFF_RESET_COUNTS = 4
486OFPFF_NO_PKT_COUNTS = 8
487OFPFF_NO_BYT_COUNTS = 16
Rich Lane6f4978c2013-10-20 21:33:52 -0700488OFPFF_BSN_SEND_IDLE = 128
Rich Lanec2ee4b82013-04-24 17:12:38 -0700489
490ofp_flow_mod_flags_map = {
491 1: 'OFPFF_SEND_FLOW_REM',
492 2: 'OFPFF_CHECK_OVERLAP',
493 4: 'OFPFF_RESET_COUNTS',
494 8: 'OFPFF_NO_PKT_COUNTS',
495 16: 'OFPFF_NO_BYT_COUNTS',
Rich Lane6f4978c2013-10-20 21:33:52 -0700496 128: 'OFPFF_BSN_SEND_IDLE',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700497}
498
499# Identifiers from group ofp_flow_removed_reason
500OFPRR_IDLE_TIMEOUT = 0
501OFPRR_HARD_TIMEOUT = 1
502OFPRR_DELETE = 2
503OFPRR_GROUP_DELETE = 3
504
505ofp_flow_removed_reason_map = {
506 0: 'OFPRR_IDLE_TIMEOUT',
507 1: 'OFPRR_HARD_TIMEOUT',
508 2: 'OFPRR_DELETE',
509 3: 'OFPRR_GROUP_DELETE',
510}
511
512# Identifiers from group ofp_group
513OFPG_MAX = 4294967040
514OFPG_ALL = 4294967292
515OFPG_ANY = 4294967295
516
517ofp_group_map = {
518 4294967040: 'OFPG_MAX',
519 4294967292: 'OFPG_ALL',
520 4294967295: 'OFPG_ANY',
521}
522
523# Identifiers from group ofp_group_capabilities
524OFPGFC_SELECT_WEIGHT = 1
525OFPGFC_SELECT_LIVENESS = 2
526OFPGFC_CHAINING = 4
527OFPGFC_CHAINING_CHECKS = 8
528
529ofp_group_capabilities_map = {
530 1: 'OFPGFC_SELECT_WEIGHT',
531 2: 'OFPGFC_SELECT_LIVENESS',
532 4: 'OFPGFC_CHAINING',
533 8: 'OFPGFC_CHAINING_CHECKS',
534}
535
536# Identifiers from group ofp_group_mod_command
537OFPGC_ADD = 0
538OFPGC_MODIFY = 1
539OFPGC_DELETE = 2
540
541ofp_group_mod_command_map = {
542 0: 'OFPGC_ADD',
543 1: 'OFPGC_MODIFY',
544 2: 'OFPGC_DELETE',
545}
546
547# Identifiers from group ofp_group_mod_failed_code
548OFPGMFC_GROUP_EXISTS = 0
549OFPGMFC_INVALID_GROUP = 1
550OFPGMFC_WEIGHT_UNSUPPORTED = 2
551OFPGMFC_OUT_OF_GROUPS = 3
552OFPGMFC_OUT_OF_BUCKETS = 4
553OFPGMFC_CHAINING_UNSUPPORTED = 5
554OFPGMFC_WATCH_UNSUPPORTED = 6
555OFPGMFC_LOOP = 7
556OFPGMFC_UNKNOWN_GROUP = 8
557OFPGMFC_CHAINED_GROUP = 9
558OFPGMFC_BAD_TYPE = 10
559OFPGMFC_BAD_COMMAND = 11
560OFPGMFC_BAD_BUCKET = 12
561OFPGMFC_BAD_WATCH = 13
562OFPGMFC_EPERM = 14
563
564ofp_group_mod_failed_code_map = {
565 0: 'OFPGMFC_GROUP_EXISTS',
566 1: 'OFPGMFC_INVALID_GROUP',
567 2: 'OFPGMFC_WEIGHT_UNSUPPORTED',
568 3: 'OFPGMFC_OUT_OF_GROUPS',
569 4: 'OFPGMFC_OUT_OF_BUCKETS',
570 5: 'OFPGMFC_CHAINING_UNSUPPORTED',
571 6: 'OFPGMFC_WATCH_UNSUPPORTED',
572 7: 'OFPGMFC_LOOP',
573 8: 'OFPGMFC_UNKNOWN_GROUP',
574 9: 'OFPGMFC_CHAINED_GROUP',
575 10: 'OFPGMFC_BAD_TYPE',
576 11: 'OFPGMFC_BAD_COMMAND',
577 12: 'OFPGMFC_BAD_BUCKET',
578 13: 'OFPGMFC_BAD_WATCH',
579 14: 'OFPGMFC_EPERM',
580}
581
582# Identifiers from group ofp_group_type
583OFPGT_ALL = 0
584OFPGT_SELECT = 1
585OFPGT_INDIRECT = 2
586OFPGT_FF = 3
587
588ofp_group_type_map = {
589 0: 'OFPGT_ALL',
590 1: 'OFPGT_SELECT',
591 2: 'OFPGT_INDIRECT',
592 3: 'OFPGT_FF',
593}
594
595# Identifiers from group ofp_hello_elem_type
596OFPHET_VERSIONBITMAP = 1
597
598ofp_hello_elem_type_map = {
599 1: 'OFPHET_VERSIONBITMAP',
600}
601
602# Identifiers from group ofp_hello_failed_code
603OFPHFC_INCOMPATIBLE = 0
604OFPHFC_EPERM = 1
605
606ofp_hello_failed_code_map = {
607 0: 'OFPHFC_INCOMPATIBLE',
608 1: 'OFPHFC_EPERM',
609}
610
611# Identifiers from group ofp_instruction_type
612OFPIT_GOTO_TABLE = 1
613OFPIT_WRITE_METADATA = 2
614OFPIT_WRITE_ACTIONS = 3
615OFPIT_APPLY_ACTIONS = 4
616OFPIT_CLEAR_ACTIONS = 5
617OFPIT_METER = 6
618OFPIT_EXPERIMENTER = 65535
619
620ofp_instruction_type_map = {
621 1: 'OFPIT_GOTO_TABLE',
622 2: 'OFPIT_WRITE_METADATA',
623 3: 'OFPIT_WRITE_ACTIONS',
624 4: 'OFPIT_APPLY_ACTIONS',
625 5: 'OFPIT_CLEAR_ACTIONS',
626 6: 'OFPIT_METER',
627 65535: 'OFPIT_EXPERIMENTER',
628}
629
630# Identifiers from group ofp_ipv6exthdr_flags
631OFPIEH_NONEXT = 1
632OFPIEH_ESP = 2
633OFPIEH_AUTH = 4
634OFPIEH_DEST = 8
635OFPIEH_FRAG = 16
636OFPIEH_ROUTER = 32
637OFPIEH_HOP = 64
638OFPIEH_UNREP = 128
639OFPIEH_UNSEQ = 256
640
641ofp_ipv6exthdr_flags_map = {
642 1: 'OFPIEH_NONEXT',
643 2: 'OFPIEH_ESP',
644 4: 'OFPIEH_AUTH',
645 8: 'OFPIEH_DEST',
646 16: 'OFPIEH_FRAG',
647 32: 'OFPIEH_ROUTER',
648 64: 'OFPIEH_HOP',
649 128: 'OFPIEH_UNREP',
650 256: 'OFPIEH_UNSEQ',
651}
652
653# Identifiers from group ofp_match_type
654OFPMT_STANDARD = 0
655OFPMT_OXM = 1
656
657ofp_match_type_map = {
658 0: 'OFPMT_STANDARD',
659 1: 'OFPMT_OXM',
660}
661
662# Identifiers from group ofp_meter
663OFPM_MAX = 4294901760
664OFPM_SLOWPATH = 4294967293
665OFPM_CONTROLLER = 4294967294
666OFPM_ALL = 4294967295
667
668ofp_meter_map = {
669 4294901760: 'OFPM_MAX',
670 4294967293: 'OFPM_SLOWPATH',
671 4294967294: 'OFPM_CONTROLLER',
672 4294967295: 'OFPM_ALL',
673}
674
675# Identifiers from group ofp_meter_band_type
676OFPMBT_DROP = 1
677OFPMBT_DSCP_REMARK = 2
678OFPMBT_EXPERIMENTER = 65535
679
680ofp_meter_band_type_map = {
681 1: 'OFPMBT_DROP',
682 2: 'OFPMBT_DSCP_REMARK',
683 65535: 'OFPMBT_EXPERIMENTER',
684}
685
686# Identifiers from group ofp_meter_flags
687OFPMF_KBPS = 1
688OFPMF_PKTPS = 2
689OFPMF_BURST = 4
690OFPMF_STATS = 8
691
692ofp_meter_flags_map = {
693 1: 'OFPMF_KBPS',
694 2: 'OFPMF_PKTPS',
695 4: 'OFPMF_BURST',
696 8: 'OFPMF_STATS',
697}
698
699# Identifiers from group ofp_meter_mod_command
700OFPMC_ADD = 0
701OFPMC_MODIFY = 1
702OFPMC_DELETE = 2
703
704ofp_meter_mod_command_map = {
705 0: 'OFPMC_ADD',
706 1: 'OFPMC_MODIFY',
707 2: 'OFPMC_DELETE',
708}
709
710# Identifiers from group ofp_meter_mod_failed_code
711OFPMMFC_UNKNOWN = 0
712OFPMMFC_METER_EXISTS = 1
713OFPMMFC_INVALID_METER = 2
714OFPMMFC_UNKNOWN_METER = 3
715OFPMMFC_BAD_COMMAND = 4
716OFPMMFC_BAD_FLAGS = 5
717OFPMMFC_BAD_RATE = 6
718OFPMMFC_BAD_BURST = 7
719OFPMMFC_BAD_BAND = 8
720OFPMMFC_BAD_BAND_VALUE = 9
721OFPMMFC_OUT_OF_METERS = 10
722OFPMMFC_OUT_OF_BANDS = 11
723
724ofp_meter_mod_failed_code_map = {
725 0: 'OFPMMFC_UNKNOWN',
726 1: 'OFPMMFC_METER_EXISTS',
727 2: 'OFPMMFC_INVALID_METER',
728 3: 'OFPMMFC_UNKNOWN_METER',
729 4: 'OFPMMFC_BAD_COMMAND',
730 5: 'OFPMMFC_BAD_FLAGS',
731 6: 'OFPMMFC_BAD_RATE',
732 7: 'OFPMMFC_BAD_BURST',
733 8: 'OFPMMFC_BAD_BAND',
734 9: 'OFPMMFC_BAD_BAND_VALUE',
735 10: 'OFPMMFC_OUT_OF_METERS',
736 11: 'OFPMMFC_OUT_OF_BANDS',
737}
738
Rich Lanec2ee4b82013-04-24 17:12:38 -0700739# Identifiers from group ofp_oxm_class
740OFPXMC_NXM_0 = 0
741OFPXMC_NXM_1 = 1
742OFPXMC_OPENFLOW_BASIC = 32768
743OFPXMC_EXPERIMENTER = 65535
744
745ofp_oxm_class_map = {
746 0: 'OFPXMC_NXM_0',
747 1: 'OFPXMC_NXM_1',
748 32768: 'OFPXMC_OPENFLOW_BASIC',
749 65535: 'OFPXMC_EXPERIMENTER',
750}
751
752# Identifiers from group ofp_packet_in_reason
753OFPR_NO_MATCH = 0
754OFPR_ACTION = 1
755OFPR_INVALID_TTL = 2
Rich Laned9e3f7b2013-11-04 11:40:43 -0800756OFPR_BSN_NEW_HOST = 128
757OFPR_BSN_STATION_MOVE = 129
758OFPR_BSN_BAD_VLAN = 130
759OFPR_BSN_DESTINATION_LOOKUP_FAILURE = 131
Rich Lane5454b682014-01-14 17:07:36 -0800760OFPR_BSN_NO_ROUTE = 132
Rich Lane95f7fc92014-01-27 17:08:16 -0800761OFPR_BSN_ICMP_ECHO_REQUEST = 133
762OFPR_BSN_DEST_NETWORK_UNREACHABLE = 134
763OFPR_BSN_DEST_HOST_UNREACHABLE = 135
764OFPR_BSN_DEST_PORT_UNREACHABLE = 136
765OFPR_BSN_FRAGMENTATION_REQUIRED = 137
766OFPR_BSN_ARP = 139
Rich Lane1b75abf2014-02-05 11:23:20 -0800767OFPR_BSN_DHCP = 140
Rich Lane9ec3fca2014-02-26 16:22:56 -0800768OFPR_BSN_DEBUG = 141
Rich Lanef50b7c32014-03-20 11:38:02 -0700769OFPR_BSN_PACKET_OF_DEATH = 142
Rich Lanec2ee4b82013-04-24 17:12:38 -0700770
771ofp_packet_in_reason_map = {
772 0: 'OFPR_NO_MATCH',
773 1: 'OFPR_ACTION',
774 2: 'OFPR_INVALID_TTL',
Rich Laned9e3f7b2013-11-04 11:40:43 -0800775 128: 'OFPR_BSN_NEW_HOST',
776 129: 'OFPR_BSN_STATION_MOVE',
777 130: 'OFPR_BSN_BAD_VLAN',
778 131: 'OFPR_BSN_DESTINATION_LOOKUP_FAILURE',
Rich Lane5454b682014-01-14 17:07:36 -0800779 132: 'OFPR_BSN_NO_ROUTE',
Rich Lane95f7fc92014-01-27 17:08:16 -0800780 133: 'OFPR_BSN_ICMP_ECHO_REQUEST',
781 134: 'OFPR_BSN_DEST_NETWORK_UNREACHABLE',
782 135: 'OFPR_BSN_DEST_HOST_UNREACHABLE',
783 136: 'OFPR_BSN_DEST_PORT_UNREACHABLE',
784 137: 'OFPR_BSN_FRAGMENTATION_REQUIRED',
785 139: 'OFPR_BSN_ARP',
Rich Lane1b75abf2014-02-05 11:23:20 -0800786 140: 'OFPR_BSN_DHCP',
Rich Lane9ec3fca2014-02-26 16:22:56 -0800787 141: 'OFPR_BSN_DEBUG',
Rich Lanef50b7c32014-03-20 11:38:02 -0700788 142: 'OFPR_BSN_PACKET_OF_DEATH',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700789}
790
791# Identifiers from group ofp_port
792OFPP_MAX = 4294967040
793OFPP_IN_PORT = 4294967288
794OFPP_TABLE = 4294967289
795OFPP_NORMAL = 4294967290
796OFPP_FLOOD = 4294967291
797OFPP_ALL = 4294967292
798OFPP_CONTROLLER = 4294967293
799OFPP_LOCAL = 4294967294
Rich Laned9e3f7b2013-11-04 11:40:43 -0800800OFPP_ANY = 4294967295
Rich Lanec2ee4b82013-04-24 17:12:38 -0700801
802ofp_port_map = {
803 4294967040: 'OFPP_MAX',
804 4294967288: 'OFPP_IN_PORT',
805 4294967289: 'OFPP_TABLE',
806 4294967290: 'OFPP_NORMAL',
807 4294967291: 'OFPP_FLOOD',
808 4294967292: 'OFPP_ALL',
809 4294967293: 'OFPP_CONTROLLER',
810 4294967294: 'OFPP_LOCAL',
Rich Laned9e3f7b2013-11-04 11:40:43 -0800811 4294967295: 'OFPP_ANY',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700812}
813
814# Identifiers from group ofp_port_config
815OFPPC_PORT_DOWN = 1
816OFPPC_NO_RECV = 4
817OFPPC_NO_FWD = 32
818OFPPC_NO_PACKET_IN = 64
Rich Lane6f4978c2013-10-20 21:33:52 -0700819OFPPC_BSN_MIRROR_DEST = 2147483648
Rich Lanec2ee4b82013-04-24 17:12:38 -0700820
821ofp_port_config_map = {
822 1: 'OFPPC_PORT_DOWN',
823 4: 'OFPPC_NO_RECV',
824 32: 'OFPPC_NO_FWD',
825 64: 'OFPPC_NO_PACKET_IN',
Rich Lane6f4978c2013-10-20 21:33:52 -0700826 2147483648: 'OFPPC_BSN_MIRROR_DEST',
Rich Lanec2ee4b82013-04-24 17:12:38 -0700827}
828
829# Identifiers from group ofp_port_features
830OFPPF_10MB_HD = 1
831OFPPF_10MB_FD = 2
832OFPPF_100MB_HD = 4
833OFPPF_100MB_FD = 8
834OFPPF_1GB_HD = 16
835OFPPF_1GB_FD = 32
836OFPPF_10GB_FD = 64
837OFPPF_40GB_FD = 128
838OFPPF_100GB_FD = 256
839OFPPF_1TB_FD = 512
840OFPPF_OTHER = 1024
841OFPPF_COPPER = 2048
842OFPPF_FIBER = 4096
843OFPPF_AUTONEG = 8192
844OFPPF_PAUSE = 16384
845OFPPF_PAUSE_ASYM = 32768
846
847ofp_port_features_map = {
848 1: 'OFPPF_10MB_HD',
849 2: 'OFPPF_10MB_FD',
850 4: 'OFPPF_100MB_HD',
851 8: 'OFPPF_100MB_FD',
852 16: 'OFPPF_1GB_HD',
853 32: 'OFPPF_1GB_FD',
854 64: 'OFPPF_10GB_FD',
855 128: 'OFPPF_40GB_FD',
856 256: 'OFPPF_100GB_FD',
857 512: 'OFPPF_1TB_FD',
858 1024: 'OFPPF_OTHER',
859 2048: 'OFPPF_COPPER',
860 4096: 'OFPPF_FIBER',
861 8192: 'OFPPF_AUTONEG',
862 16384: 'OFPPF_PAUSE',
863 32768: 'OFPPF_PAUSE_ASYM',
864}
865
866# Identifiers from group ofp_port_mod_failed_code
867OFPPMFC_BAD_PORT = 0
868OFPPMFC_BAD_HW_ADDR = 1
869OFPPMFC_BAD_CONFIG = 2
870OFPPMFC_BAD_ADVERTISE = 3
871OFPPMFC_EPERM = 4
872
873ofp_port_mod_failed_code_map = {
874 0: 'OFPPMFC_BAD_PORT',
875 1: 'OFPPMFC_BAD_HW_ADDR',
876 2: 'OFPPMFC_BAD_CONFIG',
877 3: 'OFPPMFC_BAD_ADVERTISE',
878 4: 'OFPPMFC_EPERM',
879}
880
Rich Lanec2ee4b82013-04-24 17:12:38 -0700881# Identifiers from group ofp_port_reason
882OFPPR_ADD = 0
883OFPPR_DELETE = 1
884OFPPR_MODIFY = 2
885
886ofp_port_reason_map = {
887 0: 'OFPPR_ADD',
888 1: 'OFPPR_DELETE',
889 2: 'OFPPR_MODIFY',
890}
891
892# Identifiers from group ofp_port_state
893OFPPS_LINK_DOWN = 1
894OFPPS_BLOCKED = 2
895OFPPS_LIVE = 4
896
897ofp_port_state_map = {
898 1: 'OFPPS_LINK_DOWN',
899 2: 'OFPPS_BLOCKED',
900 4: 'OFPPS_LIVE',
901}
902
903# Identifiers from group ofp_queue_op_failed_code
904OFPQOFC_BAD_PORT = 0
905OFPQOFC_BAD_QUEUE = 1
906OFPQOFC_EPERM = 2
907
908ofp_queue_op_failed_code_map = {
909 0: 'OFPQOFC_BAD_PORT',
910 1: 'OFPQOFC_BAD_QUEUE',
911 2: 'OFPQOFC_EPERM',
912}
913
914# Identifiers from group ofp_queue_properties
915OFPQT_MIN_RATE = 1
916OFPQT_MAX_RATE = 2
917OFPQT_EXPERIMENTER = 65535
918
919ofp_queue_properties_map = {
920 1: 'OFPQT_MIN_RATE',
921 2: 'OFPQT_MAX_RATE',
922 65535: 'OFPQT_EXPERIMENTER',
923}
924
925# Identifiers from group ofp_role_request_failed_code
926OFPRRFC_STALE = 0
927OFPRRFC_UNSUP = 1
928OFPRRFC_BAD_ROLE = 2
929
930ofp_role_request_failed_code_map = {
931 0: 'OFPRRFC_STALE',
932 1: 'OFPRRFC_UNSUP',
933 2: 'OFPRRFC_BAD_ROLE',
934}
935
Rich Lane6f4978c2013-10-20 21:33:52 -0700936# Identifiers from group ofp_stats_reply_flags
937OFPSF_REPLY_MORE = 1
938
939ofp_stats_reply_flags_map = {
940 1: 'OFPSF_REPLY_MORE',
941}
942
943# Identifiers from group ofp_stats_request_flags
944OFPSF_REQ_MORE = 1
945
946ofp_stats_request_flags_map = {
947 1: 'OFPSF_REQ_MORE',
948}
949
950# Identifiers from group ofp_stats_type
951OFPST_DESC = 0
952OFPST_FLOW = 1
953OFPST_AGGREGATE = 2
954OFPST_TABLE = 3
955OFPST_PORT = 4
956OFPST_QUEUE = 5
957OFPST_GROUP = 6
958OFPST_GROUP_DESC = 7
959OFPST_GROUP_FEATURES = 8
960OFPST_METER = 9
961OFPST_METER_CONFIG = 10
962OFPST_METER_FEATURES = 11
963OFPST_TABLE_FEATURES = 12
964OFPST_PORT_DESC = 13
965OFPST_EXPERIMENTER = 65535
966
967ofp_stats_type_map = {
968 0: 'OFPST_DESC',
969 1: 'OFPST_FLOW',
970 2: 'OFPST_AGGREGATE',
971 3: 'OFPST_TABLE',
972 4: 'OFPST_PORT',
973 5: 'OFPST_QUEUE',
974 6: 'OFPST_GROUP',
975 7: 'OFPST_GROUP_DESC',
976 8: 'OFPST_GROUP_FEATURES',
977 9: 'OFPST_METER',
978 10: 'OFPST_METER_CONFIG',
979 11: 'OFPST_METER_FEATURES',
980 12: 'OFPST_TABLE_FEATURES',
981 13: 'OFPST_PORT_DESC',
982 65535: 'OFPST_EXPERIMENTER',
983}
984
Rich Lanec2ee4b82013-04-24 17:12:38 -0700985# Identifiers from group ofp_switch_config_failed_code
986OFPSCFC_BAD_FLAGS = 0
987OFPSCFC_BAD_LEN = 1
988OFPSCFC_EPERM = 2
989
990ofp_switch_config_failed_code_map = {
991 0: 'OFPSCFC_BAD_FLAGS',
992 1: 'OFPSCFC_BAD_LEN',
993 2: 'OFPSCFC_EPERM',
994}
995
996# Identifiers from group ofp_table
997OFPTT_MAX = 254
998OFPTT_ALL = 255
999
1000ofp_table_map = {
1001 254: 'OFPTT_MAX',
1002 255: 'OFPTT_ALL',
1003}
1004
1005# Identifiers from group ofp_table_config
1006OFPTC_DEPRECATED_MASK = 3
1007
1008ofp_table_config_map = {
1009 3: 'OFPTC_DEPRECATED_MASK',
1010}
1011
1012# Identifiers from group ofp_table_feature_prop_type
1013OFPTFPT_INSTRUCTIONS = 0
1014OFPTFPT_INSTRUCTIONS_MISS = 1
1015OFPTFPT_NEXT_TABLES = 2
1016OFPTFPT_NEXT_TABLES_MISS = 3
1017OFPTFPT_WRITE_ACTIONS = 4
1018OFPTFPT_WRITE_ACTIONS_MISS = 5
1019OFPTFPT_APPLY_ACTIONS = 6
1020OFPTFPT_APPLY_ACTIONS_MISS = 7
1021OFPTFPT_MATCH = 8
1022OFPTFPT_WILDCARDS = 10
1023OFPTFPT_WRITE_SETFIELD = 12
1024OFPTFPT_WRITE_SETFIELD_MISS = 13
1025OFPTFPT_APPLY_SETFIELD = 14
1026OFPTFPT_APPLY_SETFIELD_MISS = 15
1027OFPTFPT_EXPERIMENTER = 65534
1028OFPTFPT_EXPERIMENTER_MISS = 65535
1029
1030ofp_table_feature_prop_type_map = {
1031 0: 'OFPTFPT_INSTRUCTIONS',
1032 1: 'OFPTFPT_INSTRUCTIONS_MISS',
1033 2: 'OFPTFPT_NEXT_TABLES',
1034 3: 'OFPTFPT_NEXT_TABLES_MISS',
1035 4: 'OFPTFPT_WRITE_ACTIONS',
1036 5: 'OFPTFPT_WRITE_ACTIONS_MISS',
1037 6: 'OFPTFPT_APPLY_ACTIONS',
1038 7: 'OFPTFPT_APPLY_ACTIONS_MISS',
1039 8: 'OFPTFPT_MATCH',
1040 10: 'OFPTFPT_WILDCARDS',
1041 12: 'OFPTFPT_WRITE_SETFIELD',
1042 13: 'OFPTFPT_WRITE_SETFIELD_MISS',
1043 14: 'OFPTFPT_APPLY_SETFIELD',
1044 15: 'OFPTFPT_APPLY_SETFIELD_MISS',
1045 65534: 'OFPTFPT_EXPERIMENTER',
1046 65535: 'OFPTFPT_EXPERIMENTER_MISS',
1047}
1048
1049# Identifiers from group ofp_table_features_failed_code
1050OFPTFFC_BAD_TABLE = 0
1051OFPTFFC_BAD_METADATA = 1
1052OFPTFFC_BAD_TYPE = 2
1053OFPTFFC_BAD_LEN = 3
1054OFPTFFC_BAD_ARGUMENT = 4
1055OFPTFFC_EPERM = 5
1056
1057ofp_table_features_failed_code_map = {
1058 0: 'OFPTFFC_BAD_TABLE',
1059 1: 'OFPTFFC_BAD_METADATA',
1060 2: 'OFPTFFC_BAD_TYPE',
1061 3: 'OFPTFFC_BAD_LEN',
1062 4: 'OFPTFFC_BAD_ARGUMENT',
1063 5: 'OFPTFFC_EPERM',
1064}
1065
1066# Identifiers from group ofp_table_mod_failed_code
1067OFPTMFC_BAD_TABLE = 0
1068OFPTMFC_BAD_CONFIG = 1
1069OFPTMFC_EPERM = 2
1070
1071ofp_table_mod_failed_code_map = {
1072 0: 'OFPTMFC_BAD_TABLE',
1073 1: 'OFPTMFC_BAD_CONFIG',
1074 2: 'OFPTMFC_EPERM',
1075}
1076
1077# Identifiers from group ofp_type
1078OFPT_HELLO = 0
1079OFPT_ERROR = 1
1080OFPT_ECHO_REQUEST = 2
1081OFPT_ECHO_REPLY = 3
1082OFPT_EXPERIMENTER = 4
1083OFPT_FEATURES_REQUEST = 5
1084OFPT_FEATURES_REPLY = 6
1085OFPT_GET_CONFIG_REQUEST = 7
1086OFPT_GET_CONFIG_REPLY = 8
1087OFPT_SET_CONFIG = 9
1088OFPT_PACKET_IN = 10
1089OFPT_FLOW_REMOVED = 11
1090OFPT_PORT_STATUS = 12
1091OFPT_PACKET_OUT = 13
1092OFPT_FLOW_MOD = 14
1093OFPT_GROUP_MOD = 15
1094OFPT_PORT_MOD = 16
1095OFPT_TABLE_MOD = 17
Rich Lane6f4978c2013-10-20 21:33:52 -07001096OFPT_STATS_REQUEST = 18
1097OFPT_STATS_REPLY = 19
Rich Lanec2ee4b82013-04-24 17:12:38 -07001098OFPT_BARRIER_REQUEST = 20
1099OFPT_BARRIER_REPLY = 21
1100OFPT_QUEUE_GET_CONFIG_REQUEST = 22
1101OFPT_QUEUE_GET_CONFIG_REPLY = 23
1102OFPT_ROLE_REQUEST = 24
1103OFPT_ROLE_REPLY = 25
1104OFPT_GET_ASYNC_REQUEST = 26
1105OFPT_GET_ASYNC_REPLY = 27
1106OFPT_SET_ASYNC = 28
1107OFPT_METER_MOD = 29
1108
1109ofp_type_map = {
1110 0: 'OFPT_HELLO',
1111 1: 'OFPT_ERROR',
1112 2: 'OFPT_ECHO_REQUEST',
1113 3: 'OFPT_ECHO_REPLY',
1114 4: 'OFPT_EXPERIMENTER',
1115 5: 'OFPT_FEATURES_REQUEST',
1116 6: 'OFPT_FEATURES_REPLY',
1117 7: 'OFPT_GET_CONFIG_REQUEST',
1118 8: 'OFPT_GET_CONFIG_REPLY',
1119 9: 'OFPT_SET_CONFIG',
1120 10: 'OFPT_PACKET_IN',
1121 11: 'OFPT_FLOW_REMOVED',
1122 12: 'OFPT_PORT_STATUS',
1123 13: 'OFPT_PACKET_OUT',
1124 14: 'OFPT_FLOW_MOD',
1125 15: 'OFPT_GROUP_MOD',
1126 16: 'OFPT_PORT_MOD',
1127 17: 'OFPT_TABLE_MOD',
Rich Lane6f4978c2013-10-20 21:33:52 -07001128 18: 'OFPT_STATS_REQUEST',
1129 19: 'OFPT_STATS_REPLY',
Rich Lanec2ee4b82013-04-24 17:12:38 -07001130 20: 'OFPT_BARRIER_REQUEST',
1131 21: 'OFPT_BARRIER_REPLY',
1132 22: 'OFPT_QUEUE_GET_CONFIG_REQUEST',
1133 23: 'OFPT_QUEUE_GET_CONFIG_REPLY',
1134 24: 'OFPT_ROLE_REQUEST',
1135 25: 'OFPT_ROLE_REPLY',
1136 26: 'OFPT_GET_ASYNC_REQUEST',
1137 27: 'OFPT_GET_ASYNC_REPLY',
1138 28: 'OFPT_SET_ASYNC',
1139 29: 'OFPT_METER_MOD',
1140}
1141
1142# Identifiers from group ofp_vlan_id
1143OFPVID_NONE = 0
1144OFPVID_PRESENT = 4096
1145
1146ofp_vlan_id_map = {
1147 0: 'OFPVID_NONE',
1148 4096: 'OFPVID_PRESENT',
1149}
1150