diff options
-rw-r--r-- | ryu/tests/packet_data/of14/5-68-ofp_table_status.packet | bin | 0 -> 96 bytes | |||
-rw-r--r-- | ryu/tests/packet_data_generator/src/x5.erl | 26 | ||||
-rw-r--r-- | ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json | 57 | ||||
-rw-r--r-- | ryu/tests/unit/ofproto/test_parser.py | 1 |
4 files changed, 83 insertions, 1 deletions
diff --git a/ryu/tests/packet_data/of14/5-68-ofp_table_status.packet b/ryu/tests/packet_data/of14/5-68-ofp_table_status.packet Binary files differnew file mode 100644 index 00000000..f630ccc2 --- /dev/null +++ b/ryu/tests/packet_data/of14/5-68-ofp_table_status.packet diff --git a/ryu/tests/packet_data_generator/src/x5.erl b/ryu/tests/packet_data_generator/src/x5.erl index 1611ab97..74debf12 100644 --- a/ryu/tests/packet_data_generator/src/x5.erl +++ b/ryu/tests/packet_data_generator/src/x5.erl @@ -2842,6 +2842,30 @@ x() -> port = normal, max_len = 0}]}]}, #ofp_flow_update_abbrev{event = abbrev,xid=1234}, - #ofp_flow_update_paused{event = paused}]} + #ofp_flow_update_paused{event = paused}]}, + #ofp_table_status{ + reason = vacancy_down, + table = + #ofp_table_desc{ + table_id = 8, + config = [], + properties = + [#ofp_table_mod_prop_eviction{flags = []}, + #ofp_table_mod_prop_vacancy{ + vacancy = 0, + vacancy_down = 0, + vacancy_up = 0}, + #ofp_table_mod_prop_experimenter{ + experimenter = 101, + exp_type = 0, + data = <<>>}, + #ofp_table_mod_prop_experimenter{ + experimenter = 101, + exp_type = 1, + data = <<1:32>>}, + #ofp_table_mod_prop_experimenter{ + experimenter = 101, + exp_type = 2, + data = <<1:32,2:32>>}]}} ], lists:foldl(fun x:do/2, {5, 0}, List). diff --git a/ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json b/ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json new file mode 100644 index 00000000..b66831b8 --- /dev/null +++ b/ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json @@ -0,0 +1,57 @@ +{ + "OFPTableStatus": { + "reason": 3, + "table": { + "OFPTableDesc": { + "config": 0, + "length": 80, + "properties": [ + { + "OFPTableModPropEviction": { + "flags": 0, + "length": 8, + "type": 2 + } + }, + { + "OFPTableModPropVacancy": { + "length": 8, + "type": 3, + "vacancy": 0, + "vacancy_down": 0, + "vacancy_up": 0 + } + }, + { + "OFPTableModPropExperimenter": { + "data": "", + "exp_type": 0, + "experimenter": 101, + "length": 12, + "type": 65535 + } + }, + { + "OFPTableModPropExperimenter": { + "data": "AAAAAQ==", + "exp_type": 1, + "experimenter": 101, + "length": 16, + "type": 65535 + } + }, + { + "OFPTableModPropExperimenter": { + "data": "AAAAAQAAAAI=", + "exp_type": 2, + "experimenter": 101, + "length": 20, + "type": 65535 + } + } + ], + "table_id": 8 + } + } + } +} diff --git a/ryu/tests/unit/ofproto/test_parser.py b/ryu/tests/unit/ofproto/test_parser.py index 57ad6f62..cac78b48 100644 --- a/ryu/tests/unit/ofproto/test_parser.py +++ b/ryu/tests/unit/ofproto/test_parser.py @@ -112,6 +112,7 @@ implemented = { ofproto_v1_4.OFPT_GET_ASYNC_REPLY: (True, False), ofproto_v1_4.OFPT_SET_ASYNC: (False, True), ofproto_v1_4.OFPT_ROLE_STATUS: (True, False), + ofproto_v1_4.OFPT_TABLE_STATUS: (True, False), }, } |