Skip to content
This repository was archived by the owner on Apr 22, 2024. It is now read-only.

Commit 0301472

Browse files
authored
Merge pull request #533 from viniarck/of13_support_errcodes
Added support for OpenFlow 1.3 OFP_ERROR codes with the get_class method
2 parents da680e6 + f294489 commit 0301472

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

pyof/v0x04/asynchronous/error_msg.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,29 @@ class ErrorType(IntEnum):
197197
#: Experimenter error messages.
198198
OFPET_EXPERIMENTER = 0xffff
199199

200+
def get_class(self):
201+
"""Return a Code class based on current ErrorType value.
202+
203+
Returns:
204+
enum.IntEnum: class referenced by current error type.
205+
206+
"""
207+
classes = {'OFPET_HELLO_FAILED': HelloFailedCode,
208+
'OFPET_BAD_REQUEST': BadRequestCode,
209+
'OFPET_BAD_ACTION': BadActionCode,
210+
'OFPET_BAD_INSTRUCTION': BadInstructionCode,
211+
'OFPET_BAD_MATCH': BadMatchCode,
212+
'OFPET_FLOW_MOD_FAILED': FlowModFailedCode,
213+
'OFPET_GROUP_MOD_FAILED': GroupModFailedCode,
214+
'OFPET_PORT_MOD_FAILED': PortModFailedCode,
215+
'OFPET_QUEUE_OP_FAILED': QueueOpFailedCode,
216+
'OFPET_SWITCH_CONFIG_FAILED': SwitchConfigFailedCode,
217+
'OFPET_ROLE_REQUEST_FAILED': RoleRequestFailedCode,
218+
'OFPET_METER_MOD_FAILED': MeterModFailedCode,
219+
'OFPET_TABLE_MOD_FAILED': TableModFailedCode,
220+
'OFPET_TABLE_FEATURES_FAILED': TableFeaturesFailedCode}
221+
return classes[self.name]
222+
200223

201224
class FlowModFailedCode(IntEnum):
202225
"""Error_msg 'code' values for OFPET_FLOW_MOD_FAILED.

0 commit comments

Comments
 (0)