summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/tests/packet_data/of14/5-68-ofp_table_status.packetbin0 -> 96 bytes
-rw-r--r--ryu/tests/packet_data_generator/src/x5.erl26
-rw-r--r--ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json57
-rw-r--r--ryu/tests/unit/ofproto/test_parser.py1
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
new file mode 100644
index 00000000..f630ccc2
--- /dev/null
+++ b/ryu/tests/packet_data/of14/5-68-ofp_table_status.packet
Binary files differ
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),
},
}