summaryrefslogtreecommitdiffhomepage
path: root/tests/unit/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/lib')
-rw-r--r--tests/unit/lib/__init__.py0
-rw-r--r--tests/unit/lib/ofctl_json/of10/1-2-ofp_flow_mod.packet.json23
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-0-ofp_desc_stats_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-11-ofp_flow_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-12-ofp_flow_stats_reply.packet.json75
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-16-ofp_experimenter.packet.json8
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-2-ofp_flow_mod.packet.json41
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-21-ofp_group_mod.packet.json22
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-22-ofp_port_mod.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-25-ofp_aggregate_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-26-ofp_aggregate_stats_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-28-ofp_table_stats_reply.packet.json32134
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-30-ofp_port_stats_reply.packet.json34
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-32-ofp_group_features_stats_reply.packet.json104
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-34-ofp_group_desc_stats_reply.packet.json20
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-35-ofp_queue_get_config_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-36-ofp_queue_get_config_reply.packet.json43
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-38-ofp_queue_stats_reply.packet.json25
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-6-ofp_features_reply.packet.json30
-rw-r--r--tests/unit/lib/ofctl_json/of12/3-62-ofp_group_stats_reply.packet.json17
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_group_stats_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_port_stats_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_get_config_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet1.json3
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet2.json4
-rw-r--r--tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet3.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-0-ofp_desc_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-11-ofp_flow_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-12-ofp_flow_stats_reply.packet.json104
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-16-ofp_experimenter.packet.json8
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-2-ofp_flow_mod.packet.json97
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-21-ofp_group_mod.packet.json21
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-22-ofp_port_mod.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-25-ofp_aggregate_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-26-ofp_aggregate_stats_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-28-ofp_table_stats_reply.packet.json16
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-30-ofp_port_stats_reply.packet.json38
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-32-ofp_group_features_reply.packet.json104
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-34-ofp_group_desc_reply.packet.json20
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-35-ofp_queue_get_config_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-36-ofp_queue_get_config_reply.packet.json83
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-38-ofp_queue_stats_reply.packet.json31
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-45-ofp_meter_mod.packet.json31
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-48-ofp_meter_config_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-50-ofp_meter_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-52-ofp_meter_features_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-54-ofp_port_desc_reply.packet.json30
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-56-ofp_table_features_reply.packet.json11928
-rw-r--r--tests/unit/lib/ofctl_json/of13/4-58-ofp_group_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_group_stats_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_config_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_stats_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_port_stats_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_get_config_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet1.json3
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet2.json4
-rw-r--r--tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet3.json3
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-0-ofp_desc_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-11-ofp_flow_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-12-ofp_flow_stats_reply.packet.json197
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-16-ofp_experimenter.packet.json8
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-2-ofp_flow_mod.packet.json103
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-21-ofp_group_mod.packet.json21
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-22-ofp_port_mod.packet.json50
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-25-ofp_aggregate_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-26-ofp_aggregate_stats_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-28-ofp_table_stats_reply.packet.json16
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-30-ofp_port_stats_reply.packet.json85
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-32-ofp_group_features_reply.packet.json104
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-34-ofp_group_desc_reply.packet.json24
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-36-ofp_queue_stats_reply.packet.json64
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-43-ofp_meter_mod.packet.json31
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-46-ofp_meter_config_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-48-ofp_meter_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-50-ofp_meter_features_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-52-ofp_port_desc_reply.packet.json83
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-54-ofp_table_features_reply.packet.json11928
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-56-ofp_group_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-63-ofp_queue_desc_request.packet.json4
-rw-r--r--tests/unit/lib/ofctl_json/of14/5-64-ofp_queue_desc_reply.packet.json61
-rw-r--r--tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_reply.packet.json48
-rw-r--r--tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_request.packet.json13
-rw-r--r--tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_mod.packet.json115
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_reply.packet.json10
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-desc_reply.packet.json9
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-experimenter.packet.json8
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_reply.packet.json26
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_request.packet.json13
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_mod_no_nx.packet.json103
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_reply.packet.json16
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_request.packet.json11
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_reply.packet.json27
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_features_reply.packet.json104
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_mod.packet.json42
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_desc_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_features_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_mod.packet.json24
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_stats_reply.packet.json19
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_reply.packet.json83
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_request.packet.json3
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_mod.packet.json50
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_stats_reply.packet.json93
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_reply.packet.json61
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_request.packet.json4
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_stats_reply.packet.json64
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_features_reply.packet.json25
-rw-r--r--tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_stats_reply.packet.json16
-rw-r--r--tests/unit/lib/ovs/__init__.py0
-rw-r--r--tests/unit/lib/ovs/test_vsctl.py789
-rw-r--r--tests/unit/lib/test_addrconv.py56
-rw-r--r--tests/unit/lib/test_hub.py239
-rw-r--r--tests/unit/lib/test_import_module.py66
-rw-r--r--tests/unit/lib/test_ip.py156
-rw-r--r--tests/unit/lib/test_mac.py95
-rw-r--r--tests/unit/lib/test_mod/__init__.py15
-rw-r--r--tests/unit/lib/test_mod/aaa/__init__.py15
-rw-r--r--tests/unit/lib/test_mod/aaa/mod.py17
-rw-r--r--tests/unit/lib/test_mod/bbb/__init__.py15
-rw-r--r--tests/unit/lib/test_mod/bbb/mod.py17
-rw-r--r--tests/unit/lib/test_mod/ccc/__init__.py14
-rw-r--r--tests/unit/lib/test_mod/ccc/mod.py16
-rw-r--r--tests/unit/lib/test_mod/ddd/__init__.py14
-rw-r--r--tests/unit/lib/test_mod/ddd/mod.py16
-rw-r--r--tests/unit/lib/test_mod/eee.py16
-rw-r--r--tests/unit/lib/test_mod/fff.py16
-rw-r--r--tests/unit/lib/test_mod/ggg.py16
-rw-r--r--tests/unit/lib/test_mrtlib.py765
-rw-r--r--tests/unit/lib/test_of_config_classes.py442
-rw-r--r--tests/unit/lib/test_ofctl.py643
-rw-r--r--tests/unit/lib/test_ofctl_action_match.py869
-rw-r--r--tests/unit/lib/test_ofctl_string.py151
-rw-r--r--tests/unit/lib/test_ofctl_utils.py142
-rw-r--r--tests/unit/lib/test_ofctl_v1_3.py54
-rw-r--r--tests/unit/lib/test_ofp_pktinfilter.py92
-rw-r--r--tests/unit/lib/test_pack_utils.py59
-rw-r--r--tests/unit/lib/test_pcaplib.py230
-rw-r--r--tests/unit/lib/test_rpc.py360
-rw-r--r--tests/unit/lib/test_stringify.py75
141 files changed, 64734 insertions, 0 deletions
diff --git a/tests/unit/lib/__init__.py b/tests/unit/lib/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/unit/lib/__init__.py
diff --git a/tests/unit/lib/ofctl_json/of10/1-2-ofp_flow_mod.packet.json b/tests/unit/lib/ofctl_json/of10/1-2-ofp_flow_mod.packet.json
new file mode 100644
index 00000000..cc0b13d9
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of10/1-2-ofp_flow_mod.packet.json
@@ -0,0 +1,23 @@
+{
+ "cmd": 0,
+ "flow": {
+ "actions": [
+ {
+ "type": "OUTPUT",
+ "max_len": 65535,
+ "port": 6
+ }
+ ],
+ "buffer_id": 65535,
+ "command": 0,
+ "cookie": 0,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "match": {
+ "dl_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "out_port": 65532,
+ "priority": 123
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-0-ofp_desc_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-0-ofp_desc_stats_reply.packet.json
new file mode 100644
index 00000000..8fc54b74
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-0-ofp_desc_stats_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": {
+ "dp_desc": "dp",
+ "hw_desc": "hw",
+ "mfr_desc": "mfr",
+ "serial_num": "serial",
+ "sw_desc": "sw"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-11-ofp_flow_stats_request.packet.json b/tests/unit/lib/ofctl_json/of12/3-11-ofp_flow_stats_request.packet.json
new file mode 100644
index 00000000..a42dfef0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-11-ofp_flow_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 0
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-12-ofp_flow_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-12-ofp_flow_stats_reply.packet.json
new file mode 100644
index 00000000..4d73e0b5
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-12-ofp_flow_stats_reply.packet.json
@@ -0,0 +1,75 @@
+{
+ "1": [
+ {
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115277000,
+ "duration_sec": 358,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "actions": [],
+ "length": 56,
+ "match": {},
+ "packet_count": 0,
+ "priority": 65535,
+ "table_id": 0
+ },
+ {
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115055000,
+ "duration_sec": 358,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "actions": [
+ "OUTPUT:NORMAL"
+ ],
+ "length": 88,
+ "match": {
+ "dl_type": 2054
+ },
+ "packet_count": 0,
+ "priority": 65534,
+ "table_id": 0
+ },
+ {
+ "byte_count": 238,
+ "cookie": 0,
+ "duration_nsec": 511582000,
+ "duration_sec": 316220,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "actions": [
+ "GOTO_TABLE:1"
+ ],
+ "length": 80,
+ "match": {
+ "in_port": 6,
+ "dl_src": "f2:0b:a4:7d:f8:ea"
+ },
+ "packet_count": 3,
+ "priority": 123,
+ "table_id": 0
+ },
+ {
+ "byte_count": 98,
+ "cookie": 0,
+ "duration_nsec": 980901000,
+ "duration_sec": 313499,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "actions": [
+ {
+ "WRITE_ACTIONS": [
+ "OUTPUT:CONTROLLER"
+ ]
+ }
+ ],
+ "length": 80,
+ "match": {},
+ "packet_count": 1,
+ "priority": 0,
+ "table_id": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-16-ofp_experimenter.packet.json b/tests/unit/lib/ofctl_json/of12/3-16-ofp_experimenter.packet.json
new file mode 100644
index 00000000..c655f8f0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-16-ofp_experimenter.packet.json
@@ -0,0 +1,8 @@
+{
+ "exp": {
+ "data": "bmF6bw==",
+ "data_type": "base64",
+ "exp_type": 123456789,
+ "experimenter": 98765432
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-2-ofp_flow_mod.packet.json b/tests/unit/lib/ofctl_json/of12/3-2-ofp_flow_mod.packet.json
new file mode 100644
index 00000000..f6a0f26a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-2-ofp_flow_mod.packet.json
@@ -0,0 +1,41 @@
+{
+ "cmd": 0,
+ "flow": {
+ "buffer_id": 65535,
+ "command": 0,
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "actions": [
+ {
+ "type": "WRITE_ACTIONS",
+ "actions": [
+ {
+ "type": "SET_FIELD",
+ "field": "vlan_vid",
+ "value": 258
+ },
+ {
+ "type": "OUTPUT",
+ "port": 6,
+ "max_len": 65535
+ }
+ ]
+ },
+ {
+ "type": "SET_FIELD",
+ "field": "eth_src",
+ "value": "01:02:03:04:05:06"
+ }
+ ],
+ "match": {
+ "eth_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "priority": 123,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-21-ofp_group_mod.packet.json b/tests/unit/lib/ofctl_json/of12/3-21-ofp_group_mod.packet.json
new file mode 100644
index 00000000..9509e191
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-21-ofp_group_mod.packet.json
@@ -0,0 +1,22 @@
+{
+ "cmd": 0,
+ "group": {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "max_len": 65535,
+ "port": 2,
+ "type": "OUTPUT"
+ }
+ ],
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "command": 0,
+ "group_id": 1,
+ "type": "ALL"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-22-ofp_port_mod.packet.json b/tests/unit/lib/ofctl_json/of12/3-22-ofp_port_mod.packet.json
new file mode 100644
index 00000000..3c3ccf89
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-22-ofp_port_mod.packet.json
@@ -0,0 +1,9 @@
+{
+ "port_config": {
+ "advertise": 4096,
+ "config": 0,
+ "hw_addr": "00-11-00-00-11-11",
+ "mask": 0,
+ "port_no": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-25-ofp_aggregate_stats_request.packet.json b/tests/unit/lib/ofctl_json/of12/3-25-ofp_aggregate_stats_request.packet.json
new file mode 100644
index 00000000..845af65b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-25-ofp_aggregate_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 255
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-26-ofp_aggregate_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-26-ofp_aggregate_stats_reply.packet.json
new file mode 100644
index 00000000..a4b23d12
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-26-ofp_aggregate_stats_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": [
+ {
+ "byte_count": 574,
+ "flow_count": 6,
+ "packet_count": 7
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-28-ofp_table_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-28-ofp_table_stats_reply.packet.json
new file mode 100644
index 00000000..7444a29a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-28-ofp_table_stats_reply.packet.json
@@ -0,0 +1,32134 @@
+{
+ "1": [
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "\u79c1\u306e\u30c6\u30fc\u30d6\u30eb",
+ "matched_count": 4,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 4,
+ "max_entries": 16777216,
+ "lookup_count": 4,
+ "metadata_match": 18446744073709551615,
+ "table_id": 0,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x01",
+ "matched_count": 3,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 2,
+ "max_entries": 16777216,
+ "lookup_count": 3,
+ "metadata_match": 18446744073709551615,
+ "table_id": 1,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x02",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 2,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x03",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 3,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x04",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 4,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x05",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 5,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x06",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 6,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x07",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 7,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x08",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 8,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x09",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 9,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 10,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 11,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 12,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 13,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 14,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x0f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 15,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x10",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 16,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x11",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 17,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x12",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 18,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x13",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 19,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x14",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 20,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x15",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 21,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x16",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 22,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x17",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 23,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x18",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 24,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x19",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 25,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 26,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 27,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 28,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 29,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 30,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x1f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 31,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x20",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 32,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x21",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 33,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x22",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 34,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x23",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 35,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x24",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 36,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x25",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 37,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x26",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 38,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x27",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 39,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x28",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 40,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x29",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 41,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 42,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 43,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 44,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 45,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 46,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x2f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 47,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x30",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 48,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x31",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 49,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x32",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 50,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x33",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 51,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x34",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 52,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x35",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 53,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x36",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 54,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x37",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 55,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x38",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 56,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x39",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 57,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 58,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 59,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 60,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 61,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 62,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x3f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 63,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x40",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 64,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x41",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 65,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x42",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 66,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x43",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 67,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x44",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 68,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x45",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 69,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x46",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 70,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x47",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 71,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x48",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 72,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x49",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 73,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 74,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 75,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 76,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 77,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 78,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x4f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 79,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x50",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 80,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x51",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 81,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x52",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 82,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x53",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 83,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x54",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 84,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x55",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 85,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x56",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 86,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x57",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 87,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x58",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 88,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x59",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 89,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 90,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 91,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 92,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 93,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 94,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x5f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 95,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x60",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 96,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x61",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 97,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x62",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 98,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x63",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 99,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x64",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 100,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x65",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 101,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x66",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 102,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x67",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 103,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x68",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 104,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x69",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 105,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 106,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 107,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 108,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 109,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 110,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x6f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 111,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x70",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 112,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x71",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 113,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x72",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 114,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x73",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 115,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x74",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 116,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x75",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 117,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x76",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 118,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x77",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 119,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x78",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 120,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x79",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 121,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 122,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 123,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 124,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 125,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 126,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x7f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 127,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x80",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 128,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x81",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 129,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x82",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 130,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x83",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 131,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x84",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 132,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x85",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 133,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x86",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 134,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x87",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 135,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x88",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 136,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x89",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 137,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 138,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 139,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 140,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 141,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 142,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x8f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 143,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x90",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 144,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x91",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 145,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x92",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 146,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x93",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 147,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x94",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 148,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x95",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 149,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x96",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 150,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x97",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 151,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x98",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 152,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x99",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 153,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9a",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 154,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9b",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 155,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9c",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 156,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9d",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 157,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9e",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 158,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0x9f",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 159,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 160,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 161,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 162,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 163,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 164,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 165,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 166,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 167,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 168,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xa9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 169,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xaa",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 170,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xab",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 171,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xac",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 172,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xad",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 173,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xae",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 174,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xaf",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 175,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 176,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 177,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 178,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 179,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 180,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 181,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 182,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 183,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 184,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xb9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 185,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xba",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 186,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xbb",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 187,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xbc",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 188,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xbd",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 189,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xbe",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 190,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xbf",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 191,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 192,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 193,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 194,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 195,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 196,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 197,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 198,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 199,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 200,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xc9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 201,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xca",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 202,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xcb",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 203,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xcc",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 204,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xcd",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 205,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xce",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 206,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xcf",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 207,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 208,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 209,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 210,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 211,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 212,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 213,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 214,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 215,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 216,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xd9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 217,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xda",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 218,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xdb",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 219,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xdc",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 220,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xdd",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 221,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xde",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 222,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xdf",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 223,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 224,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 225,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 226,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 227,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 228,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 229,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 230,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 231,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 232,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xe9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 233,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xea",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 234,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xeb",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 235,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xec",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 236,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xed",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 237,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xee",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 238,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xef",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 239,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf0",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 240,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf1",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 241,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf2",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 242,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf3",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 243,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf4",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 244,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf5",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 245,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf6",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 246,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf7",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 247,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf8",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 248,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xf9",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 249,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xfa",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 250,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xfb",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 251,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xfc",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 252,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xfd",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": 253,
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ },
+ {
+ "wildcards": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "write_setfields": [],
+ "write_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "name": "Flow Table 0xfe",
+ "matched_count": 0,
+ "apply_actions": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ],
+ "active_count": 0,
+ "max_entries": 16777216,
+ "lookup_count": 0,
+ "metadata_match": 18446744073709551615,
+ "table_id": "MAX",
+ "instructions": [
+ "GOTO_TABLE",
+ "WRITE_METADATA",
+ "WRITE_ACTIONS",
+ "APPLY_ACTIONS",
+ "CLEAR_ACTIONS"
+ ],
+ "config": [],
+ "metadata_write": 18446744073709551615,
+ "match": [
+ "IN_PORT",
+ "METADATA",
+ "ETH_DST",
+ "ETH_SRC",
+ "ETH_TYPE",
+ "VLAN_VID",
+ "VLAN_PCP",
+ "IP_DSCP",
+ "IP_ECN",
+ "IP_PROTO",
+ "IPV4_SRC",
+ "IPV4_DST",
+ "TCP_SRC",
+ "TCP_DST",
+ "UDP_SRC",
+ "UDP_DST",
+ "SCTP_SRC",
+ "SCTP_DST",
+ "ICMPV4_TYPE",
+ "ICMPV4_CODE",
+ "ARP_OP",
+ "ARP_SPA",
+ "ARP_TPA",
+ "ARP_SHA",
+ "ARP_THA",
+ "IPV6_SRC",
+ "IPV6_DST",
+ "IPV6_FLABEL",
+ "ICMPV6_TYPE",
+ "ICMPV6_CODE",
+ "IPV6_ND_TARGET",
+ "IPV6_ND_SLL",
+ "IPV6_ND_TLL",
+ "MPLS_LABEL",
+ "MPLS_TC"
+ ],
+ "apply_setfields": []
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/unit/lib/ofctl_json/of12/3-30-ofp_port_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-30-ofp_port_stats_reply.packet.json
new file mode 100644
index 00000000..43414b65
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-30-ofp_port_stats_reply.packet.json
@@ -0,0 +1,34 @@
+{
+ "1": [
+ {
+ "collisions": 0,
+ "port_no": 7,
+ "rx_bytes": 0,
+ "rx_crc_err": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "rx_packets": 0,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ },
+ {
+ "collisions": 0,
+ "port_no": 6,
+ "rx_bytes": 336,
+ "rx_crc_err": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "rx_packets": 4,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-32-ofp_group_features_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-32-ofp_group_features_stats_reply.packet.json
new file mode 100644
index 00000000..b277969e
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-32-ofp_group_features_stats_reply.packet.json
@@ -0,0 +1,104 @@
+{
+ "1": [
+ {
+ "actions": [
+ {
+ "ALL": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "SELECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "INDIRECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "FF": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ }
+ ],
+ "max_groups": [
+ {
+ "ALL": 16777216
+ },
+ {
+ "SELECT": 16777216
+ },
+ {
+ "INDIRECT": 16777216
+ },
+ {
+ "FF": 16777216
+ }
+ ],
+ "capabilities": [
+ "SELECT_WEIGHT",
+ "CHAINING"
+ ],
+ "types": [
+ "ALL",
+ "SELECT",
+ "INDIRECT",
+ "FF"
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/tests/unit/lib/ofctl_json/of12/3-34-ofp_group_desc_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-34-ofp_group_desc_stats_reply.packet.json
new file mode 100644
index 00000000..c23a9bbe
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-34-ofp_group_desc_stats_reply.packet.json
@@ -0,0 +1,20 @@
+{
+ "1": [
+ {
+ "buckets": [
+ {
+ "actions": [
+ "OUTPUT:2"
+ ],
+ "len": 32,
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "group_id": 1,
+ "length": 40,
+ "type": "ALL"
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-35-ofp_queue_get_config_request.packet.json b/tests/unit/lib/ofctl_json/of12/3-35-ofp_queue_get_config_request.packet.json
new file mode 100644
index 00000000..fc49ec2c
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-35-ofp_queue_get_config_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": 4294967295
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-36-ofp_queue_get_config_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-36-ofp_queue_get_config_reply.packet.json
new file mode 100644
index 00000000..8e922a9a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-36-ofp_queue_get_config_reply.packet.json
@@ -0,0 +1,43 @@
+{
+ "1": [
+ {
+ "port": "ANY",
+ "queues": [
+ {
+ "len": 48,
+ "port": 77,
+ "properties": [
+ {
+ "len": 16,
+ "property": "MIN_RATE",
+ "rate": 10
+ },
+ {
+ "len": 16,
+ "property": "MAX_RATE",
+ "rate": 900
+ }
+ ],
+ "queue_id": 99
+ },
+ {
+ "len": 48,
+ "port": 77,
+ "properties": [
+ {
+ "len": 16,
+ "property": "MIN_RATE",
+ "rate": 100
+ },
+ {
+ "len": 16,
+ "property": "MAX_RATE",
+ "rate": 200
+ }
+ ],
+ "queue_id": 88
+ }
+ ]
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-38-ofp_queue_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-38-ofp_queue_stats_reply.packet.json
new file mode 100644
index 00000000..db50c1e5
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-38-ofp_queue_stats_reply.packet.json
@@ -0,0 +1,25 @@
+{
+ "1": [
+ {
+ "port_no": 7,
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "port_no": 6,
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "port_no": 7,
+ "queue_id": 2,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-6-ofp_features_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-6-ofp_features_reply.packet.json
new file mode 100644
index 00000000..be040f79
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-6-ofp_features_reply.packet.json
@@ -0,0 +1,30 @@
+{
+ "1": [
+ {
+ "advertised": 10240,
+ "config": 0,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "hw_addr": "f2:0b:a4:7d:f8:ea",
+ "max_speed": 5000,
+ "name": "Port6",
+ "peer": 10248,
+ "port_no": 6,
+ "state": 4,
+ "supported": 10248
+ },
+ {
+ "advertised": 10240,
+ "config": 0,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "hw_addr": "f2:0b:a4:d0:3f:70",
+ "max_speed": 5000,
+ "name": "Port7",
+ "peer": 10248,
+ "port_no": 7,
+ "state": 4,
+ "supported": 10248
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/3-62-ofp_group_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of12/3-62-ofp_group_stats_reply.packet.json
new file mode 100644
index 00000000..f2f1a6ce
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/3-62-ofp_group_stats_reply.packet.json
@@ -0,0 +1,17 @@
+{
+ "1": [
+ {
+ "bucket_stats": [
+ {
+ "byte_count": 2345,
+ "packet_count": 234
+ }
+ ],
+ "byte_count": 12345,
+ "group_id": 1,
+ "length": 48,
+ "packet_count": 123,
+ "ref_count": 2
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_group_stats_request.packet.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_group_stats_request.packet.json
new file mode 100644
index 00000000..7646a77a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_group_stats_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "group_id": 1
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_port_stats_request.packet.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_port_stats_request.packet.json
new file mode 100644
index 00000000..7d56f29d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_port_stats_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": 7
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_get_config_request.packet.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_get_config_request.packet.json
new file mode 100644
index 00000000..e116fdc1
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_get_config_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": null
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet1.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet1.json
new file mode 100644
index 00000000..7d56f29d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet1.json
@@ -0,0 +1,3 @@
+{
+ "port": 7
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet2.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet2.json
new file mode 100644
index 00000000..78077510
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet2.json
@@ -0,0 +1,4 @@
+{
+ "port": 7,
+ "queue_id":1
+}
diff --git a/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet3.json b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet3.json
new file mode 100644
index 00000000..ee465693
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of12/lib-ofctl-ofp_queue_stats_request.packet3.json
@@ -0,0 +1,3 @@
+{
+ "queue_id":1
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-0-ofp_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-0-ofp_desc_reply.packet.json
new file mode 100644
index 00000000..8fc54b74
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-0-ofp_desc_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": {
+ "dp_desc": "dp",
+ "hw_desc": "hw",
+ "mfr_desc": "mfr",
+ "serial_num": "serial",
+ "sw_desc": "sw"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-11-ofp_flow_stats_request.packet.json b/tests/unit/lib/ofctl_json/of13/4-11-ofp_flow_stats_request.packet.json
new file mode 100644
index 00000000..a42dfef0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-11-ofp_flow_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 0
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-12-ofp_flow_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-12-ofp_flow_stats_reply.packet.json
new file mode 100644
index 00000000..f9b8e68f
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-12-ofp_flow_stats_reply.packet.json
@@ -0,0 +1,104 @@
+{
+ "1": [
+ {
+ "actions": [],
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115277000,
+ "duration_sec": 358,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "length": 0,
+ "match": {},
+ "packet_count": 0,
+ "priority": 65535,
+ "table_id": 0
+ },
+ {
+ "actions": [
+ "OUTPUT:NORMAL"
+ ],
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115055000,
+ "duration_sec": 358,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "length": 0,
+ "match": {
+ "dl_type": 2054
+ },
+ "packet_count": 0,
+ "priority": 65534,
+ "table_id": 0
+ },
+ {
+ "actions": [
+ "GOTO_TABLE:1"
+ ],
+ "byte_count": 238,
+ "cookie": 0,
+ "duration_nsec": 511582000,
+ "duration_sec": 316220,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "length": 0,
+ "match": {
+ "dl_src": "f2:0b:a4:7d:f8:ea",
+ "in_port": 6
+ },
+ "packet_count": 3,
+ "priority": 123,
+ "table_id": 0
+ },
+ {
+ "actions": [
+ {
+ "WRITE_ACTIONS": [
+ "SET_FIELD: {vlan_vid:258}",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "COPY_TTL_IN",
+ "POP_PBB",
+ "PUSH_PBB:4660",
+ "POP_MPLS:39030",
+ "PUSH_MPLS:34887",
+ "POP_VLAN",
+ "PUSH_VLAN:33024",
+ "DEC_MPLS_TTL",
+ "SET_MPLS_TTL:10",
+ "DEC_NW_TTL",
+ "SET_NW_TTL:10",
+ "SET_QUEUE:3",
+ "GROUP:99",
+ "OUTPUT:6",
+ "EXPERIMENTER: {experimenter:98765432, data:ZXhwX2RhdGE=}",
+ "NX_UNKNOWN: {subtype: 25976, data: cF9kYXRh}"
+ ]
+ },
+ "SET_FIELD: {eth_src:01:02:03:04:05:06}",
+ "SET_FIELD: {pbb_uca:1}",
+ {
+ "WRITE_ACTIONS": [
+ "OUTPUT:CONTROLLER"
+ ]
+ }
+ ],
+ "byte_count": 98,
+ "cookie": 0,
+ "duration_nsec": 980901000,
+ "duration_sec": 313499,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "length": 0,
+ "match": {},
+ "packet_count": 1,
+ "priority": 0,
+ "table_id": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-16-ofp_experimenter.packet.json b/tests/unit/lib/ofctl_json/of13/4-16-ofp_experimenter.packet.json
new file mode 100644
index 00000000..c655f8f0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-16-ofp_experimenter.packet.json
@@ -0,0 +1,8 @@
+{
+ "exp": {
+ "data": "bmF6bw==",
+ "data_type": "base64",
+ "exp_type": 123456789,
+ "experimenter": 98765432
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-2-ofp_flow_mod.packet.json b/tests/unit/lib/ofctl_json/of13/4-2-ofp_flow_mod.packet.json
new file mode 100644
index 00000000..fbd5c214
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-2-ofp_flow_mod.packet.json
@@ -0,0 +1,97 @@
+{
+ "cmd": 0,
+ "flow": {
+ "buffer_id": 65535,
+ "table_id": 1,
+ "priority": 123,
+ "match": {
+ "eth_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "actions": [
+ {
+ "type": "WRITE_ACTIONS",
+ "actions": [
+ {
+ "type": "SET_FIELD",
+ "field": "vlan_vid",
+ "value": 258
+ },
+ {
+ "type": "COPY_TTL_OUT"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "POP_PBB"
+ },
+ {
+ "type": "PUSH_PBB",
+ "ethertype": 4660
+ },
+ {
+ "type": "POP_MPLS",
+ "ethertype": 39030
+ },
+ {
+ "type": "PUSH_MPLS",
+ "ethertype": 34887
+ },
+ {
+ "type": "POP_VLAN"
+ },
+ {
+ "type": "PUSH_VLAN",
+ "ethertype": 33024
+ },
+ {
+ "type": "DEC_MPLS_TTL"
+ },
+ {
+ "type": "SET_MPLS_TTL",
+ "mpls_ttl": 10
+ },
+ {
+ "type": "DEC_NW_TTL"
+ },
+ {
+ "type": "SET_NW_TTL",
+ "nw_ttl": 10
+ },
+ {
+ "type": "EXPERIMENTER",
+ "experimenter": 101,
+ "data": "AAECAwQFBgc=",
+ "data_type": "base64"
+ },
+ {
+ "type": "SET_QUEUE",
+ "queue_id": 3
+ },
+ {
+ "type": "GROUP",
+ "group_id": 99
+ },
+ {
+ "type": "OUTPUT",
+ "max_len": 65535,
+ "port": 6
+ }
+ ]
+ },
+ {
+ "type": "SET_FIELD",
+ "field": "eth_src",
+ "value": "01:02:03:04:05:06"
+ },
+ {
+ "type": "SET_FIELD",
+ "field": "pbb_uca",
+ "value": 1
+ }
+ ]
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-21-ofp_group_mod.packet.json b/tests/unit/lib/ofctl_json/of13/4-21-ofp_group_mod.packet.json
new file mode 100644
index 00000000..fa48425a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-21-ofp_group_mod.packet.json
@@ -0,0 +1,21 @@
+{
+ "cmd": 0,
+ "group": {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "max_len": 65535,
+ "port": 2,
+ "type": "OUTPUT"
+ }
+ ],
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "group_id": 1,
+ "type": "ALL"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-22-ofp_port_mod.packet.json b/tests/unit/lib/ofctl_json/of13/4-22-ofp_port_mod.packet.json
new file mode 100644
index 00000000..73339730
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-22-ofp_port_mod.packet.json
@@ -0,0 +1,9 @@
+{
+ "port_config": {
+ "advertise": 4096,
+ "config": 0,
+ "hw_addr": "00:11:00:00:11:11",
+ "mask": 0,
+ "port_no": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-25-ofp_aggregate_stats_request.packet.json b/tests/unit/lib/ofctl_json/of13/4-25-ofp_aggregate_stats_request.packet.json
new file mode 100644
index 00000000..845af65b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-25-ofp_aggregate_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 255
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-26-ofp_aggregate_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-26-ofp_aggregate_stats_reply.packet.json
new file mode 100644
index 00000000..a4b23d12
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-26-ofp_aggregate_stats_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": [
+ {
+ "byte_count": 574,
+ "flow_count": 6,
+ "packet_count": 7
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-28-ofp_table_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-28-ofp_table_stats_reply.packet.json
new file mode 100644
index 00000000..95b2c495
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-28-ofp_table_stats_reply.packet.json
@@ -0,0 +1,16 @@
+{
+ "1": [
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 0
+ },
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-30-ofp_port_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-30-ofp_port_stats_reply.packet.json
new file mode 100644
index 00000000..a81e6825
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-30-ofp_port_stats_reply.packet.json
@@ -0,0 +1,38 @@
+{
+ "1": [
+ {
+ "collisions": 0,
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 7,
+ "rx_bytes": 0,
+ "rx_crc_err": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "rx_packets": 0,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ },
+ {
+ "collisions": 0,
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 6,
+ "rx_bytes": 336,
+ "rx_crc_err": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "rx_packets": 4,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-32-ofp_group_features_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-32-ofp_group_features_reply.packet.json
new file mode 100644
index 00000000..2a29ac2d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-32-ofp_group_features_reply.packet.json
@@ -0,0 +1,104 @@
+{
+ "1": [
+ {
+ "actions": [
+ {
+ "ALL": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "SELECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "INDIRECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "FF": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ }
+ ],
+ "capabilities": [
+ "SELECT_WEIGHT",
+ "CHAINING"
+ ],
+ "max_groups": [
+ {
+ "ALL": 16777216
+ },
+ {
+ "SELECT": 16777216
+ },
+ {
+ "INDIRECT": 16777216
+ },
+ {
+ "FF": 16777216
+ }
+ ],
+ "types": [
+ "ALL",
+ "SELECT",
+ "INDIRECT",
+ "FF"
+ ]
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-34-ofp_group_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-34-ofp_group_desc_reply.packet.json
new file mode 100644
index 00000000..c23a9bbe
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-34-ofp_group_desc_reply.packet.json
@@ -0,0 +1,20 @@
+{
+ "1": [
+ {
+ "buckets": [
+ {
+ "actions": [
+ "OUTPUT:2"
+ ],
+ "len": 32,
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "group_id": 1,
+ "length": 40,
+ "type": "ALL"
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-35-ofp_queue_get_config_request.packet.json b/tests/unit/lib/ofctl_json/of13/4-35-ofp_queue_get_config_request.packet.json
new file mode 100644
index 00000000..fc49ec2c
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-35-ofp_queue_get_config_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": 4294967295
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-36-ofp_queue_get_config_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-36-ofp_queue_get_config_reply.packet.json
new file mode 100644
index 00000000..9d529400
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-36-ofp_queue_get_config_reply.packet.json
@@ -0,0 +1,83 @@
+{
+ "1": [
+ {
+ "port": "ANY",
+ "queues": [
+ {
+ "len": 64,
+ "port": 77,
+ "properties": [
+ {
+ "len": 16,
+ "property": "MIN_RATE",
+ "rate": 10
+ },
+ {
+ "len": 16,
+ "property": "MAX_RATE",
+ "rate": 900
+ },
+ {
+ "data": [],
+ "experimenter": 999,
+ "len": 16,
+ "property": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 99
+ },
+ {
+ "len": 65,
+ "port": 77,
+ "properties": [
+ {
+ "len": 16,
+ "property": "MIN_RATE",
+ "rate": 100
+ },
+ {
+ "len": 16,
+ "property": "MAX_RATE",
+ "rate": 200
+ },
+ {
+ "experimenter": 999,
+ "data": [
+ 1
+ ],
+ "len": 17,
+ "property": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 88
+ },
+ {
+ "len": 66,
+ "port": 77,
+ "properties": [
+ {
+ "len": 16,
+ "property": "MIN_RATE",
+ "rate": 200
+ },
+ {
+ "len": 16,
+ "property": "MAX_RATE",
+ "rate": 400
+ },
+ {
+ "experimenter": 999,
+ "data": [
+ 1,
+ 2
+ ],
+ "len": 18,
+ "property": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 77
+ }
+ ]
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-38-ofp_queue_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-38-ofp_queue_stats_reply.packet.json
new file mode 100644
index 00000000..b19fe300
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-38-ofp_queue_stats_reply.packet.json
@@ -0,0 +1,31 @@
+{
+ "1": [
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 7,
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 6,
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 7,
+ "queue_id": 2,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-45-ofp_meter_mod.packet.json b/tests/unit/lib/ofctl_json/of13/4-45-ofp_meter_mod.packet.json
new file mode 100644
index 00000000..b78ea6be
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-45-ofp_meter_mod.packet.json
@@ -0,0 +1,31 @@
+{
+ "cmd": 0,
+ "meter": {
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100,
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ },
+ {
+ "burst_size": 10,
+ "prec_level": 1,
+ "rate": 1000,
+ "type": "DSCP_REMARK"
+ },
+ {
+ "burst_size": 10,
+ "experimenter": 999,
+ "len": 16,
+ "rate": 1000,
+ "type": "EXPERIMENTER"
+ }
+ ]
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-48-ofp_meter_config_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-48-ofp_meter_config_reply.packet.json
new file mode 100644
index 00000000..d5efcd97
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-48-ofp_meter_config_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ }
+ ],
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-50-ofp_meter_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-50-ofp_meter_stats_reply.packet.json
new file mode 100644
index 00000000..f21ec519
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-50-ofp_meter_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_stats": [
+ {
+ "byte_band_count": 0,
+ "packet_band_count": 0
+ }
+ ],
+ "byte_in_count": 0,
+ "duration_nsec": 480000,
+ "duration_sec": 0,
+ "flow_count": 0,
+ "len": 56,
+ "meter_id": 100,
+ "packet_in_count": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-52-ofp_meter_features_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-52-ofp_meter_features_reply.packet.json
new file mode 100644
index 00000000..24dac7d4
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-52-ofp_meter_features_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_types": [
+ "DROP",
+ "DSCP_REMARK"
+ ],
+ "capabilities": [
+ "KBPS",
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "max_bands": 255,
+ "max_color": 0,
+ "max_meter": 16777216
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-54-ofp_port_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-54-ofp_port_desc_reply.packet.json
new file mode 100644
index 00000000..72ff2ec3
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-54-ofp_port_desc_reply.packet.json
@@ -0,0 +1,30 @@
+{
+ "1": [
+ {
+ "advertised": 10240,
+ "config": 0,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "hw_addr": "f2:0b:a4:d0:3f:70",
+ "max_speed": 5000,
+ "name": "Port7",
+ "peer": 10248,
+ "port_no": 7,
+ "state": 4,
+ "supported": 10248
+ },
+ {
+ "advertised": 10240,
+ "config": 0,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "hw_addr": "f2:0b:a4:7d:f8:ea",
+ "max_speed": 5000,
+ "name": "Port6",
+ "peer": 10248,
+ "port_no": 6,
+ "state": 4,
+ "supported": 10248
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-56-ofp_table_features_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-56-ofp_table_features_reply.packet.json
new file mode 100644
index 00000000..ded5a996
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-56-ofp_table_features_reply.packet.json
@@ -0,0 +1,11928 @@
+{
+ "1": [
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "\u79c1\u306e\u30c6\u30fc\u30d6\u30eb",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ },
+ {
+ "type": "EXPERIMENTER"
+ },
+ {
+ "type": "EXPERIMENTER"
+ },
+ {
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "table_id": 0
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x01",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 1
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x02",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 2
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x03",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 3
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x04",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 4
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x05",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 5
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x06",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 6
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x07",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 7
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x08",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 8
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x09",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 9
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/4-58-ofp_group_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of13/4-58-ofp_group_stats_reply.packet.json
new file mode 100644
index 00000000..1c6f9039
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/4-58-ofp_group_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bucket_stats": [
+ {
+ "byte_count": 2345,
+ "packet_count": 234
+ }
+ ],
+ "byte_count": 12345,
+ "duration_nsec": 609036000,
+ "duration_sec": 9,
+ "group_id": 1,
+ "length": 56,
+ "packet_count": 123,
+ "ref_count": 2
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_group_stats_request.packet.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_group_stats_request.packet.json
new file mode 100644
index 00000000..7646a77a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_group_stats_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "group_id": 1
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_config_request.packet.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_config_request.packet.json
new file mode 100644
index 00000000..3ad622e0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_config_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "meter_id": 1
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_stats_request.packet.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_stats_request.packet.json
new file mode 100644
index 00000000..3ad622e0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_meter_stats_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "meter_id": 1
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_port_stats_request.packet.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_port_stats_request.packet.json
new file mode 100644
index 00000000..7d56f29d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_port_stats_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": 7
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_get_config_request.packet.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_get_config_request.packet.json
new file mode 100644
index 00000000..e116fdc1
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_get_config_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port": null
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet1.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet1.json
new file mode 100644
index 00000000..7d56f29d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet1.json
@@ -0,0 +1,3 @@
+{
+ "port": 7
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet2.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet2.json
new file mode 100644
index 00000000..78077510
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet2.json
@@ -0,0 +1,4 @@
+{
+ "port": 7,
+ "queue_id":1
+}
diff --git a/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet3.json b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet3.json
new file mode 100644
index 00000000..ee465693
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of13/lib-ofctl-ofp_queue_stats_request.packet3.json
@@ -0,0 +1,3 @@
+{
+ "queue_id":1
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-0-ofp_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-0-ofp_desc_reply.packet.json
new file mode 100644
index 00000000..8fc54b74
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-0-ofp_desc_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": {
+ "dp_desc": "dp",
+ "hw_desc": "hw",
+ "mfr_desc": "mfr",
+ "serial_num": "serial",
+ "sw_desc": "sw"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-11-ofp_flow_stats_request.packet.json b/tests/unit/lib/ofctl_json/of14/5-11-ofp_flow_stats_request.packet.json
new file mode 100644
index 00000000..a42dfef0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-11-ofp_flow_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 0
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-12-ofp_flow_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-12-ofp_flow_stats_reply.packet.json
new file mode 100644
index 00000000..134c3f12
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-12-ofp_flow_stats_reply.packet.json
@@ -0,0 +1,197 @@
+{
+ "1": [
+ {
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115277000,
+ "duration_sec": 358,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "importance": 0,
+ "instructions": [],
+ "length": 0,
+ "match": {},
+ "packet_count": 0,
+ "priority": 65535,
+ "table_id": 0
+ },
+ {
+ "byte_count": 0,
+ "cookie": 0,
+ "duration_nsec": 115055000,
+ "duration_sec": 358,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "importance": 0,
+ "instructions": [
+ {
+ "actions": [
+ {
+ "max_len": 0,
+ "port": 4294967290,
+ "type": "OUTPUT"
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ }
+ ],
+ "length": 0,
+ "match": {
+ "eth_type": 2054
+ },
+ "packet_count": 0,
+ "priority": 65534,
+ "table_id": 0
+ },
+ {
+ "byte_count": 238,
+ "cookie": 0,
+ "duration_nsec": 511582000,
+ "duration_sec": 316220,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "importance": 0,
+ "instructions": [
+ {
+ "table_id": 1,
+ "type": "GOTO_TABLE"
+ }
+ ],
+ "length": 0,
+ "match": {
+ "eth_src": "f2:0b:a4:7d:f8:ea",
+ "in_port": 6
+ },
+ "packet_count": 3,
+ "priority": 123,
+ "table_id": 0
+ },
+ {
+ "byte_count": 98,
+ "cookie": 0,
+ "duration_nsec": 980901000,
+ "duration_sec": 313499,
+ "flags": 0,
+ "hard_timeout": 0,
+ "idle_timeout": 0,
+ "importance": 0,
+ "instructions": [
+ {
+ "actions": [
+ {
+ "field": "vlan_vid",
+ "mask": null,
+ "type": "SET_FIELD",
+ "value": 258
+ },
+ {
+ "type": "COPY_TTL_OUT"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "POP_PBB"
+ },
+ {
+ "ethertype": 4660,
+ "type": "PUSH_PBB"
+ },
+ {
+ "ethertype": 39030,
+ "type": "POP_MPLS"
+ },
+ {
+ "ethertype": 34887,
+ "type": "PUSH_MPLS"
+ },
+ {
+ "type": "POP_VLAN"
+ },
+ {
+ "ethertype": 33024,
+ "type": "PUSH_VLAN"
+ },
+ {
+ "type": "DEC_MPLS_TTL"
+ },
+ {
+ "mpls_ttl": 10,
+ "type": "SET_MPLS_TTL"
+ },
+ {
+ "type": "DEC_NW_TTL"
+ },
+ {
+ "nw_ttl": 10,
+ "type": "SET_NW_TTL"
+ },
+ {
+ "queue_id": 3,
+ "type": "SET_QUEUE"
+ },
+ {
+ "group_id": 99,
+ "type": "GROUP"
+ },
+ {
+ "max_len": 65535,
+ "port": 6,
+ "type": "OUTPUT"
+ },
+ {
+ "data": "ZXhwX2RhdGE=",
+ "experimenter": 98765432,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": "cF9kYXRh",
+ "experimenter": 8992,
+ "subtype": 25976,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "field": "eth_src",
+ "mask": null,
+ "type": "SET_FIELD",
+ "value": "01:02:03:04:05:06"
+ },
+ {
+ "field": "pbb_uca",
+ "mask": null,
+ "type": "SET_FIELD",
+ "value": 1
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "max_len": 65535,
+ "port": 4294967293,
+ "type": "OUTPUT"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ }
+ ],
+ "length": 0,
+ "match": {},
+ "packet_count": 1,
+ "priority": 0,
+ "table_id": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-16-ofp_experimenter.packet.json b/tests/unit/lib/ofctl_json/of14/5-16-ofp_experimenter.packet.json
new file mode 100644
index 00000000..c655f8f0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-16-ofp_experimenter.packet.json
@@ -0,0 +1,8 @@
+{
+ "exp": {
+ "data": "bmF6bw==",
+ "data_type": "base64",
+ "exp_type": 123456789,
+ "experimenter": 98765432
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-2-ofp_flow_mod.packet.json b/tests/unit/lib/ofctl_json/of14/5-2-ofp_flow_mod.packet.json
new file mode 100644
index 00000000..72054e33
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-2-ofp_flow_mod.packet.json
@@ -0,0 +1,103 @@
+{
+ "cmd": 0,
+ "flow": {
+ "instructions": [
+ {
+ "actions": [
+ {
+ "field": "vlan_vid",
+ "type": "SET_FIELD",
+ "value": 258
+ },
+ {
+ "type": "COPY_TTL_OUT"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "POP_PBB"
+ },
+ {
+ "ethertype": 4660,
+ "type": "PUSH_PBB"
+ },
+ {
+ "ethertype": 39030,
+ "type": "POP_MPLS"
+ },
+ {
+ "ethertype": 34887,
+ "type": "PUSH_MPLS"
+ },
+ {
+ "type": "POP_VLAN"
+ },
+ {
+ "ethertype": 33024,
+ "type": "PUSH_VLAN"
+ },
+ {
+ "type": "DEC_MPLS_TTL"
+ },
+ {
+ "mpls_ttl": 10,
+ "type": "SET_MPLS_TTL"
+ },
+ {
+ "type": "DEC_NW_TTL"
+ },
+ {
+ "nw_ttl": 10,
+ "type": "SET_NW_TTL"
+ },
+ {
+ "data": "AAECAwQFBgc=",
+ "data_type": "base64",
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "queue_id": 3,
+ "type": "SET_QUEUE"
+ },
+ {
+ "group_id": 99,
+ "type": "GROUP"
+ },
+ {
+ "max_len": 65535,
+ "port": 6,
+ "type": "OUTPUT"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "field": "eth_src",
+ "type": "SET_FIELD",
+ "value": "01:02:03:04:05:06"
+ },
+ {
+ "field": "pbb_uca",
+ "type": "SET_FIELD",
+ "value": 1
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ }
+ ],
+ "buffer_id": 65535,
+ "importance": 0,
+ "match": {
+ "eth_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "priority": 123,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-21-ofp_group_mod.packet.json b/tests/unit/lib/ofctl_json/of14/5-21-ofp_group_mod.packet.json
new file mode 100644
index 00000000..fa48425a
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-21-ofp_group_mod.packet.json
@@ -0,0 +1,21 @@
+{
+ "cmd": 0,
+ "group": {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "max_len": 65535,
+ "port": 2,
+ "type": "OUTPUT"
+ }
+ ],
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "group_id": 1,
+ "type": "ALL"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-22-ofp_port_mod.packet.json b/tests/unit/lib/ofctl_json/of14/5-22-ofp_port_mod.packet.json
new file mode 100644
index 00000000..980456eb
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-22-ofp_port_mod.packet.json
@@ -0,0 +1,50 @@
+{
+ "port_config": {
+ "config": 0,
+ "hw_addr": "00:11:00:00:11:11",
+ "mask": 0,
+ "port_no": 1,
+ "properties": [
+ {
+ "advertise": 4096,
+ "length": 8,
+ "type": 0
+ },
+ {
+ "configure": 3,
+ "fl_offset": 2000,
+ "freq_lmda": 1500,
+ "grid_span": 3000,
+ "length": 24,
+ "tx_pwr": 300,
+ "type": 1
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": 65535
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": 65535
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": 65535
+ }
+ ]
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-25-ofp_aggregate_stats_request.packet.json b/tests/unit/lib/ofctl_json/of14/5-25-ofp_aggregate_stats_request.packet.json
new file mode 100644
index 00000000..845af65b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-25-ofp_aggregate_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 255
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-26-ofp_aggregate_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-26-ofp_aggregate_stats_reply.packet.json
new file mode 100644
index 00000000..a4b23d12
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-26-ofp_aggregate_stats_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": [
+ {
+ "byte_count": 574,
+ "flow_count": 6,
+ "packet_count": 7
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-28-ofp_table_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-28-ofp_table_stats_reply.packet.json
new file mode 100644
index 00000000..95b2c495
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-28-ofp_table_stats_reply.packet.json
@@ -0,0 +1,16 @@
+{
+ "1": [
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 0
+ },
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-30-ofp_port_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-30-ofp_port_stats_reply.packet.json
new file mode 100644
index 00000000..f9f1d86f
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-30-ofp_port_stats_reply.packet.json
@@ -0,0 +1,85 @@
+{
+ "1": [
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 7,
+ "properties": [
+ {
+ "collisions": 0,
+ "rx_crc_err": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "type": "ETHERNET"
+ },
+ {
+ "bias_current": 300,
+ "flags": 3,
+ "rx_freq_lmda": 1500,
+ "rx_grid_span": 500,
+ "rx_offset": 700,
+ "rx_pwr": 2000,
+ "temperature": 273,
+ "tx_freq_lmda": 1500,
+ "tx_grid_span": 500,
+ "tx_offset": 700,
+ "tx_pwr": 2000,
+ "type": "OPTICAL"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "rx_bytes": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_packets": 0,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "port_no": 6,
+ "properties": [
+ {
+ "collisions": 0,
+ "rx_crc_err": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "type": "ETHERNET"
+ }
+ ],
+ "rx_bytes": 336,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_packets": 4,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-32-ofp_group_features_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-32-ofp_group_features_reply.packet.json
new file mode 100644
index 00000000..2a29ac2d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-32-ofp_group_features_reply.packet.json
@@ -0,0 +1,104 @@
+{
+ "1": [
+ {
+ "actions": [
+ {
+ "ALL": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "SELECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "INDIRECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "FF": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ }
+ ],
+ "capabilities": [
+ "SELECT_WEIGHT",
+ "CHAINING"
+ ],
+ "max_groups": [
+ {
+ "ALL": 16777216
+ },
+ {
+ "SELECT": 16777216
+ },
+ {
+ "INDIRECT": 16777216
+ },
+ {
+ "FF": 16777216
+ }
+ ],
+ "types": [
+ "ALL",
+ "SELECT",
+ "INDIRECT",
+ "FF"
+ ]
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-34-ofp_group_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-34-ofp_group_desc_reply.packet.json
new file mode 100644
index 00000000..df0ef359
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-34-ofp_group_desc_reply.packet.json
@@ -0,0 +1,24 @@
+{
+ "1": [
+ {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "max_len": 65535,
+ "port": 2,
+ "type": "OUTPUT"
+ }
+ ],
+ "len": 32,
+ "watch_group": 1,
+ "watch_port": 1,
+ "weight": 1
+ }
+ ],
+ "group_id": 1,
+ "length": 40,
+ "type": "ALL"
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-36-ofp_queue_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-36-ofp_queue_stats_reply.packet.json
new file mode 100644
index 00000000..a6d246d0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-36-ofp_queue_stats_reply.packet.json
@@ -0,0 +1,64 @@
+{
+ "1": [
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 104,
+ "port_no": 7,
+ "properties": [
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 48,
+ "port_no": 6,
+ "properties": [],
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 48,
+ "port_no": 7,
+ "properties": [],
+ "queue_id": 2,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-43-ofp_meter_mod.packet.json b/tests/unit/lib/ofctl_json/of14/5-43-ofp_meter_mod.packet.json
new file mode 100644
index 00000000..b78ea6be
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-43-ofp_meter_mod.packet.json
@@ -0,0 +1,31 @@
+{
+ "cmd": 0,
+ "meter": {
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100,
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ },
+ {
+ "burst_size": 10,
+ "prec_level": 1,
+ "rate": 1000,
+ "type": "DSCP_REMARK"
+ },
+ {
+ "burst_size": 10,
+ "experimenter": 999,
+ "len": 16,
+ "rate": 1000,
+ "type": "EXPERIMENTER"
+ }
+ ]
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-46-ofp_meter_config_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-46-ofp_meter_config_reply.packet.json
new file mode 100644
index 00000000..d5efcd97
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-46-ofp_meter_config_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ }
+ ],
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-48-ofp_meter_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-48-ofp_meter_stats_reply.packet.json
new file mode 100644
index 00000000..f21ec519
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-48-ofp_meter_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_stats": [
+ {
+ "byte_band_count": 0,
+ "packet_band_count": 0
+ }
+ ],
+ "byte_in_count": 0,
+ "duration_nsec": 480000,
+ "duration_sec": 0,
+ "flow_count": 0,
+ "len": 56,
+ "meter_id": 100,
+ "packet_in_count": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-50-ofp_meter_features_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-50-ofp_meter_features_reply.packet.json
new file mode 100644
index 00000000..24dac7d4
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-50-ofp_meter_features_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_types": [
+ "DROP",
+ "DSCP_REMARK"
+ ],
+ "capabilities": [
+ "KBPS",
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "max_bands": 255,
+ "max_color": 0,
+ "max_meter": 16777216
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-52-ofp_port_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-52-ofp_port_desc_reply.packet.json
new file mode 100644
index 00000000..c2f748a8
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-52-ofp_port_desc_reply.packet.json
@@ -0,0 +1,83 @@
+{
+ "1": [
+ {
+ "config": 0,
+ "hw_addr": "f2:0b:a4:d0:3f:70",
+ "length": 168,
+ "name": "Port7",
+ "port_no": 7,
+ "properties": [
+ {
+ "advertised": 10240,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "length": 32,
+ "max_speed": 5000,
+ "peer": 10248,
+ "supported": 10248,
+ "type": "ETHERNET"
+ },
+ {
+ "length": 40,
+ "rx_grid_freq_lmda": 1500,
+ "rx_max_freq_lmda": 2000,
+ "rx_min_freq_lmda": 1000,
+ "supported": 1,
+ "tx_grid_freq_lmda": 1500,
+ "tx_max_freq_lmda": 2000,
+ "tx_min_freq_lmda": 1000,
+ "tx_pwr_max": 2000,
+ "tx_pwr_min": 1000,
+ "type": "OPTICAL"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "state": 4
+ },
+ {
+ "config": 0,
+ "hw_addr": "f2:0b:a4:7d:f8:ea",
+ "length": 72,
+ "name": "Port6",
+ "port_no": 6,
+ "properties": [
+ {
+ "advertised": 10240,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "length": 32,
+ "max_speed": 5000,
+ "peer": 10248,
+ "supported": 10248,
+ "type": "ETHERNET"
+ }
+ ],
+ "state": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-54-ofp_table_features_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-54-ofp_table_features_reply.packet.json
new file mode 100644
index 00000000..ded5a996
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-54-ofp_table_features_reply.packet.json
@@ -0,0 +1,11928 @@
+{
+ "1": [
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "\u79c1\u306e\u30c6\u30fc\u30d6\u30eb",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ },
+ {
+ "type": "EXPERIMENTER"
+ },
+ {
+ "type": "EXPERIMENTER"
+ },
+ {
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "table_id": 0
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x01",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 1
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x02",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 2
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x03",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 3
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x04",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 4
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x05",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 5
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x06",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 6
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x07",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 7
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x08",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 8
+ },
+ {
+ "config": 0,
+ "max_entries": 16777216,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "Flow Table 0x09",
+ "properties": [
+ {
+ "instruction_ids": [
+ {
+ "len": 4,
+ "type": 1
+ },
+ {
+ "len": 4,
+ "type": 2
+ },
+ {
+ "len": 4,
+ "type": 3
+ },
+ {
+ "len": 4,
+ "type": 4
+ },
+ {
+ "len": 4,
+ "type": 5
+ },
+ {
+ "len": 4,
+ "type": 6
+ }
+ ],
+ "type": "INSTRUCTIONS"
+ },
+ {
+ "table_ids": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254
+ ],
+ "type": "NEXT_TABLES"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "action_ids": [
+ {
+ "len": 4,
+ "type": 0
+ },
+ {
+ "len": 4,
+ "type": 22
+ },
+ {
+ "len": 4,
+ "type": 21
+ },
+ {
+ "len": 4,
+ "type": 15
+ },
+ {
+ "len": 4,
+ "type": 16
+ },
+ {
+ "len": 4,
+ "type": 23
+ },
+ {
+ "len": 4,
+ "type": 24
+ },
+ {
+ "len": 4,
+ "type": 11
+ },
+ {
+ "len": 4,
+ "type": 12
+ },
+ {
+ "len": 4,
+ "type": 17
+ },
+ {
+ "len": 4,
+ "type": 18
+ },
+ {
+ "len": 4,
+ "type": 19
+ },
+ {
+ "len": 4,
+ "type": 20
+ },
+ {
+ "len": 4,
+ "type": 26
+ },
+ {
+ "len": 4,
+ "type": 27
+ },
+ {
+ "len": 4,
+ "type": 25
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "MATCH"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WILDCARDS"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "WRITE_SETFIELD"
+ },
+ {
+ "oxm_ids": [
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "in_port"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "metadata"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "eth_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_vid"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "vlan_pcp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_dscp"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_ecn"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ip_proto"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv4_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "tcp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "udp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "sctp_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv4_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_op"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_spa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tpa"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_sha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "arp_tha"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_src"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_dst"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_flabel"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_type"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "icmpv6_code"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_target"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_sll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "ipv6_nd_tll"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_label"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_tc"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "mpls_bos"
+ },
+ {
+ "hasmask": 0,
+ "length": 0,
+ "type": "pbb_isid"
+ }
+ ],
+ "type": "APPLY_SETFIELD"
+ }
+ ],
+ "table_id": 9
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-56-ofp_group_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-56-ofp_group_stats_reply.packet.json
new file mode 100644
index 00000000..1c6f9039
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-56-ofp_group_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bucket_stats": [
+ {
+ "byte_count": 2345,
+ "packet_count": 234
+ }
+ ],
+ "byte_count": 12345,
+ "duration_nsec": 609036000,
+ "duration_sec": 9,
+ "group_id": 1,
+ "length": 56,
+ "packet_count": 123,
+ "ref_count": 2
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-63-ofp_queue_desc_request.packet.json b/tests/unit/lib/ofctl_json/of14/5-63-ofp_queue_desc_request.packet.json
new file mode 100644
index 00000000..fc863813
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-63-ofp_queue_desc_request.packet.json
@@ -0,0 +1,4 @@
+{
+ "port_no": 7,
+ "queue_id": 4294967295
+}
diff --git a/tests/unit/lib/ofctl_json/of14/5-64-ofp_queue_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of14/5-64-ofp_queue_desc_reply.packet.json
new file mode 100644
index 00000000..ca6e87f2
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of14/5-64-ofp_queue_desc_reply.packet.json
@@ -0,0 +1,61 @@
+{
+ "1": [
+ {
+ "len": 32,
+ "port_no": 7,
+ "properties": [
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 0
+ },
+ {
+ "len": 88,
+ "port_no": 8,
+ "properties": [
+ {
+ "length": 8,
+ "rate": 300,
+ "type": "MIN_RATE"
+ },
+ {
+ "length": 8,
+ "rate": 900,
+ "type": "MAX_RATE"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_reply.packet.json
new file mode 100644
index 00000000..0b5e04be
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_reply.packet.json
@@ -0,0 +1,48 @@
+{
+ "1": [
+ {
+ "cookie": 1234605616436508552,
+ "flags": 1,
+ "hard_timeout": 255,
+ "idle_timeout": 255,
+ "importance": 43690,
+ "instructions": [
+ {
+ "table_id": 2,
+ "type": "GOTO_TABLE"
+ },
+ {
+ "actions": [
+ {
+ "meter_id": 2,
+ "type": "METER"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "type": "COPY_FIELD",
+ "n_bits": 32,
+ "src_offset": 1,
+ "dst_offset": 2,
+ "src_oxm_id": "eth_src",
+ "dst_oxm_id": "eth_dst"
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ }
+ ],
+ "length": 64,
+ "match": {
+ "in_port": 1
+ },
+ "priority": 5,
+ "stats": {
+ "flow_count": 1
+ },
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_request.packet.json b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_request.packet.json
new file mode 100644
index 00000000..f59aa0b2
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_desc_request.packet.json
@@ -0,0 +1,13 @@
+{
+ "flow": {
+ "cookie": 1234605616436508552,
+ "cookie_mask": 18446744073709551615,
+ "flags": 0,
+ "match": {
+ "in_port": 1
+ },
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_mod.packet.json b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_mod.packet.json
new file mode 100644
index 00000000..cc3ba488
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/lib-ofctl-OFP15-flow_mod.packet.json
@@ -0,0 +1,115 @@
+{
+ "cmd": 0,
+ "flow": {
+ "instructions": [
+ {
+ "actions": [
+ {
+ "field": "vlan_vid",
+ "type": "SET_FIELD",
+ "value": 258
+ },
+ {
+ "type": "COPY_TTL_OUT"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "POP_PBB"
+ },
+ {
+ "ethertype": 4660,
+ "type": "PUSH_PBB"
+ },
+ {
+ "ethertype": 39030,
+ "type": "POP_MPLS"
+ },
+ {
+ "ethertype": 34887,
+ "type": "PUSH_MPLS"
+ },
+ {
+ "type": "POP_VLAN"
+ },
+ {
+ "ethertype": 33024,
+ "type": "PUSH_VLAN"
+ },
+ {
+ "type": "DEC_MPLS_TTL"
+ },
+ {
+ "mpls_ttl": 10,
+ "type": "SET_MPLS_TTL"
+ },
+ {
+ "type": "DEC_NW_TTL"
+ },
+ {
+ "nw_ttl": 10,
+ "type": "SET_NW_TTL"
+ },
+ {
+ "data": "AAECAwQFBgc=",
+ "data_type": "base64",
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "queue_id": 3,
+ "type": "SET_QUEUE"
+ },
+ {
+ "meter_id": 2,
+ "type": "METER"
+ },
+ {
+ "group_id": 99,
+ "type": "GROUP"
+ },
+ {
+ "max_len": 65535,
+ "port": 6,
+ "type": "OUTPUT"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "field": "eth_src",
+ "type": "SET_FIELD",
+ "value": "01:02:03:04:05:06"
+ },
+ {
+ "field": "pbb_uca",
+ "type": "SET_FIELD",
+ "value": 1
+ },
+ {
+ "type": "COPY_FIELD",
+ "n_bits": 32,
+ "src_offset": 1,
+ "dst_offset": 2,
+ "src_oxm_id": "eth_src",
+ "dst_oxm_id": "eth_dst"
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ }
+ ],
+ "buffer_id": 65535,
+ "importance": 0,
+ "match": {
+ "eth_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "priority": 123,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_reply.packet.json
new file mode 100644
index 00000000..ac4f93c4
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_reply.packet.json
@@ -0,0 +1,10 @@
+{
+ "1": [
+ {
+ "length": 16,
+ "stats": {
+ "flow_count": 1
+ }
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_request.packet.json
new file mode 100644
index 00000000..845af65b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-aggregate_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 255
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-desc_reply.packet.json
new file mode 100644
index 00000000..8fc54b74
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-desc_reply.packet.json
@@ -0,0 +1,9 @@
+{
+ "1": {
+ "dp_desc": "dp",
+ "hw_desc": "hw",
+ "mfr_desc": "mfr",
+ "serial_num": "serial",
+ "sw_desc": "sw"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-experimenter.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-experimenter.packet.json
new file mode 100644
index 00000000..c655f8f0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-experimenter.packet.json
@@ -0,0 +1,8 @@
+{
+ "exp": {
+ "data": "bmF6bw==",
+ "data_type": "base64",
+ "exp_type": 123456789,
+ "experimenter": 98765432
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_reply.packet.json
new file mode 100644
index 00000000..4e12f857
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_reply.packet.json
@@ -0,0 +1,26 @@
+{
+ "1": [
+ {
+ "cookie": 1234605616436508552,
+ "flags": 1,
+ "hard_timeout": 255,
+ "idle_timeout": 255,
+ "importance": 43690,
+ "instructions": [
+ {
+ "table_id": 2,
+ "type": "GOTO_TABLE"
+ }
+ ],
+ "length": 64,
+ "match": {
+ "in_port": 1
+ },
+ "priority": 5,
+ "stats": {
+ "flow_count": 1
+ },
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_request.packet.json
new file mode 100644
index 00000000..f59aa0b2
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_desc_request.packet.json
@@ -0,0 +1,13 @@
+{
+ "flow": {
+ "cookie": 1234605616436508552,
+ "cookie_mask": 18446744073709551615,
+ "flags": 0,
+ "match": {
+ "in_port": 1
+ },
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_mod_no_nx.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_mod_no_nx.packet.json
new file mode 100644
index 00000000..72054e33
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_mod_no_nx.packet.json
@@ -0,0 +1,103 @@
+{
+ "cmd": 0,
+ "flow": {
+ "instructions": [
+ {
+ "actions": [
+ {
+ "field": "vlan_vid",
+ "type": "SET_FIELD",
+ "value": 258
+ },
+ {
+ "type": "COPY_TTL_OUT"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "COPY_TTL_IN"
+ },
+ {
+ "type": "POP_PBB"
+ },
+ {
+ "ethertype": 4660,
+ "type": "PUSH_PBB"
+ },
+ {
+ "ethertype": 39030,
+ "type": "POP_MPLS"
+ },
+ {
+ "ethertype": 34887,
+ "type": "PUSH_MPLS"
+ },
+ {
+ "type": "POP_VLAN"
+ },
+ {
+ "ethertype": 33024,
+ "type": "PUSH_VLAN"
+ },
+ {
+ "type": "DEC_MPLS_TTL"
+ },
+ {
+ "mpls_ttl": 10,
+ "type": "SET_MPLS_TTL"
+ },
+ {
+ "type": "DEC_NW_TTL"
+ },
+ {
+ "nw_ttl": 10,
+ "type": "SET_NW_TTL"
+ },
+ {
+ "data": "AAECAwQFBgc=",
+ "data_type": "base64",
+ "experimenter": 101,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "queue_id": 3,
+ "type": "SET_QUEUE"
+ },
+ {
+ "group_id": 99,
+ "type": "GROUP"
+ },
+ {
+ "max_len": 65535,
+ "port": 6,
+ "type": "OUTPUT"
+ }
+ ],
+ "type": "WRITE_ACTIONS"
+ },
+ {
+ "actions": [
+ {
+ "field": "eth_src",
+ "type": "SET_FIELD",
+ "value": "01:02:03:04:05:06"
+ },
+ {
+ "field": "pbb_uca",
+ "type": "SET_FIELD",
+ "value": 1
+ }
+ ],
+ "type": "APPLY_ACTIONS"
+ }
+ ],
+ "buffer_id": 65535,
+ "importance": 0,
+ "match": {
+ "eth_dst": "f2:0b:a4:7d:f8:ea"
+ },
+ "priority": 123,
+ "table_id": 1
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_reply.packet.json
new file mode 100644
index 00000000..385f256b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_reply.packet.json
@@ -0,0 +1,16 @@
+{
+ "1": [
+ {
+ "length": 40,
+ "match": {
+ "in_port": 1
+ },
+ "priority": 1,
+ "reason": 0,
+ "stats": {
+ "flow_count": 1
+ },
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_request.packet.json
new file mode 100644
index 00000000..a42dfef0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-flow_stats_request.packet.json
@@ -0,0 +1,11 @@
+{
+ "flow": {
+ "cookie": 0,
+ "cookie_mask": 0,
+ "flags": 0,
+ "match": {},
+ "out_group": 4294967295,
+ "out_port": 4294967295,
+ "table_id": 0
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_reply.packet.json
new file mode 100644
index 00000000..b6b75020
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_reply.packet.json
@@ -0,0 +1,27 @@
+{
+ "1": [
+ {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "max_len": 65509,
+ "port": 1,
+ "type": "OUTPUT"
+ }
+ ],
+ "bucket_id": 65535,
+ "properties": [
+ {
+ "type": "WEIGHT",
+ "weight": 65535
+ }
+ ]
+ }
+ ],
+ "group_id": 1,
+ "properties": [],
+ "type": "SELECT"
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_request.packet.json
new file mode 100644
index 00000000..f25aaff4
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_desc_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "group_id": 52651
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_features_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_features_reply.packet.json
new file mode 100644
index 00000000..2a29ac2d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_features_reply.packet.json
@@ -0,0 +1,104 @@
+{
+ "1": [
+ {
+ "actions": [
+ {
+ "ALL": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "SELECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "INDIRECT": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ },
+ {
+ "FF": [
+ "OUTPUT",
+ "COPY_TTL_OUT",
+ "COPY_TTL_IN",
+ "SET_MPLS_TTL",
+ "DEC_MPLS_TTL",
+ "PUSH_VLAN",
+ "POP_VLAN",
+ "PUSH_MPLS",
+ "POP_MPLS",
+ "SET_QUEUE",
+ "GROUP",
+ "SET_NW_TTL",
+ "DEC_NW_TTL",
+ "SET_FIELD"
+ ]
+ }
+ ],
+ "capabilities": [
+ "SELECT_WEIGHT",
+ "CHAINING"
+ ],
+ "max_groups": [
+ {
+ "ALL": 16777216
+ },
+ {
+ "SELECT": 16777216
+ },
+ {
+ "INDIRECT": 16777216
+ },
+ {
+ "FF": 16777216
+ }
+ ],
+ "types": [
+ "ALL",
+ "SELECT",
+ "INDIRECT",
+ "FF"
+ ]
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_mod.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_mod.packet.json
new file mode 100644
index 00000000..eca861ea
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_mod.packet.json
@@ -0,0 +1,42 @@
+{
+ "cmd": 3,
+ "group": {
+ "buckets": [
+ {
+ "actions": [
+ {
+ "len": 8,
+ "type": "POP_VLAN"
+ },
+ {
+ "field": "ipv4_dst",
+ "type": "SET_FIELD",
+ "value": "192.168.2.9"
+ }
+ ],
+ "bucket_id": 305419896,
+ "properties": [
+ {
+ "length": 8,
+ "type": "WEIGHT",
+ "weight": 52428
+ },
+ {
+ "length": 8,
+ "type": "WATCH_PORT",
+ "watch": 56797
+ },
+ {
+ "length": 8,
+ "type": "WATCH_GROUP",
+ "watch": 4008636142
+ }
+ ]
+ }
+ ],
+ "command_bucket_id": 3149642683,
+ "group_id": 2863311530,
+ "properties": [],
+ "type": "SELECT"
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_stats_reply.packet.json
new file mode 100644
index 00000000..1c6f9039
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-group_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bucket_stats": [
+ {
+ "byte_count": 2345,
+ "packet_count": 234
+ }
+ ],
+ "byte_count": 12345,
+ "duration_nsec": 609036000,
+ "duration_sec": 9,
+ "group_id": 1,
+ "length": 56,
+ "packet_count": 123,
+ "ref_count": 2
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_desc_reply.packet.json
new file mode 100644
index 00000000..d5efcd97
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_desc_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ }
+ ],
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_features_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_features_reply.packet.json
new file mode 100644
index 00000000..24dac7d4
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_features_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_types": [
+ "DROP",
+ "DSCP_REMARK"
+ ],
+ "capabilities": [
+ "KBPS",
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "max_bands": 255,
+ "max_color": 0,
+ "max_meter": 16777216
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_mod.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_mod.packet.json
new file mode 100644
index 00000000..1d881209
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_mod.packet.json
@@ -0,0 +1,24 @@
+{
+ "cmd": 0,
+ "meter": {
+ "bands": [
+ {
+ "burst_size": 10,
+ "rate": 1000,
+ "type": "DROP"
+ },
+ {
+ "burst_size": 10,
+ "prec_level": 1,
+ "rate": 1000,
+ "type": "DSCP_REMARK"
+ }
+ ],
+ "flags": [
+ "PKTPS",
+ "BURST",
+ "STATS"
+ ],
+ "meter_id": 100
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_stats_reply.packet.json
new file mode 100644
index 00000000..e7f9722b
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-meter_stats_reply.packet.json
@@ -0,0 +1,19 @@
+{
+ "1": [
+ {
+ "band_stats": [
+ {
+ "byte_band_count": 0,
+ "packet_band_count": 0
+ }
+ ],
+ "byte_in_count": 0,
+ "duration_nsec": 480000,
+ "duration_sec": 0,
+ "len": 56,
+ "meter_id": 100,
+ "packet_in_count": 0,
+ "ref_count": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_reply.packet.json
new file mode 100644
index 00000000..c2f748a8
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_reply.packet.json
@@ -0,0 +1,83 @@
+{
+ "1": [
+ {
+ "config": 0,
+ "hw_addr": "f2:0b:a4:d0:3f:70",
+ "length": 168,
+ "name": "Port7",
+ "port_no": 7,
+ "properties": [
+ {
+ "advertised": 10240,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "length": 32,
+ "max_speed": 5000,
+ "peer": 10248,
+ "supported": 10248,
+ "type": "ETHERNET"
+ },
+ {
+ "length": 40,
+ "rx_grid_freq_lmda": 1500,
+ "rx_max_freq_lmda": 2000,
+ "rx_min_freq_lmda": 1000,
+ "supported": 1,
+ "tx_grid_freq_lmda": 1500,
+ "tx_max_freq_lmda": 2000,
+ "tx_min_freq_lmda": 1000,
+ "tx_pwr_max": 2000,
+ "tx_pwr_min": 1000,
+ "type": "OPTICAL"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "state": 4
+ },
+ {
+ "config": 0,
+ "hw_addr": "f2:0b:a4:7d:f8:ea",
+ "length": 72,
+ "name": "Port6",
+ "port_no": 6,
+ "properties": [
+ {
+ "advertised": 10240,
+ "curr": 10248,
+ "curr_speed": 5000,
+ "length": 32,
+ "max_speed": 5000,
+ "peer": 10248,
+ "supported": 10248,
+ "type": "ETHERNET"
+ }
+ ],
+ "state": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_request.packet.json
new file mode 100644
index 00000000..d0519e83
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_desc_request.packet.json
@@ -0,0 +1,3 @@
+{
+ "port_no": 48346
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_mod.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_mod.packet.json
new file mode 100644
index 00000000..be9de69d
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_mod.packet.json
@@ -0,0 +1,50 @@
+{
+ "port_config": {
+ "config": 0,
+ "hw_addr": "00:11:00:00:11:11",
+ "mask": 0,
+ "port_no": 1,
+ "properties": [
+ {
+ "advertise": 4096,
+ "length": 8,
+ "type": "ETHERNET"
+ },
+ {
+ "configure": 3,
+ "fl_offset": 2000,
+ "freq_lmda": 1500,
+ "grid_span": 3000,
+ "length": 24,
+ "tx_pwr": 300,
+ "type": "OPTICAL"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ]
+ }
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_stats_reply.packet.json
new file mode 100644
index 00000000..821c9b72
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-port_stats_reply.packet.json
@@ -0,0 +1,93 @@
+{
+ "1": [
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 224,
+ "port_no": 7,
+ "properties": [
+ {
+ "collisions": 0,
+ "length": 40,
+ "rx_crc_err": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "type": "ETHERNET"
+ },
+ {
+ "bias_current": 300,
+ "flags": 3,
+ "length": 44,
+ "rx_freq_lmda": 1500,
+ "rx_grid_span": 500,
+ "rx_offset": 700,
+ "rx_pwr": 2000,
+ "temperature": 273,
+ "tx_freq_lmda": 1500,
+ "tx_grid_span": 500,
+ "tx_offset": 700,
+ "tx_pwr": 2000,
+ "type": "OPTICAL"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "rx_bytes": 0,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_packets": 0,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 120,
+ "port_no": 6,
+ "properties": [
+ {
+ "collisions": 0,
+ "length": 40,
+ "rx_crc_err": 0,
+ "rx_frame_err": 0,
+ "rx_over_err": 0,
+ "type": "ETHERNET"
+ }
+ ],
+ "rx_bytes": 336,
+ "rx_dropped": 0,
+ "rx_errors": 0,
+ "rx_packets": 4,
+ "tx_bytes": 336,
+ "tx_dropped": 0,
+ "tx_errors": 0,
+ "tx_packets": 4
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_reply.packet.json
new file mode 100644
index 00000000..71ca0b71
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_reply.packet.json
@@ -0,0 +1,61 @@
+{
+ "1": [
+ {
+ "len": 32,
+ "port_no": 7,
+ "properties": [
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 0
+ },
+ {
+ "len": 88,
+ "port_no": 8,
+ "properties": [
+ {
+ "length": 8,
+ "rate": 300,
+ "type": "MIN_RATE"
+ },
+ {
+ "length": 8,
+ "rate": 900,
+ "type": "MAX_RATE"
+ },
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_request.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_request.packet.json
new file mode 100644
index 00000000..9765cf31
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_desc_request.packet.json
@@ -0,0 +1,4 @@
+{
+ "port_no": 52651,
+ "queue_id": 57020
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_stats_reply.packet.json
new file mode 100644
index 00000000..a6d246d0
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-queue_stats_reply.packet.json
@@ -0,0 +1,64 @@
+{
+ "1": [
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 104,
+ "port_no": 7,
+ "properties": [
+ {
+ "data": [],
+ "exp_type": 0,
+ "experimenter": 101,
+ "length": 12,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1
+ ],
+ "exp_type": 1,
+ "experimenter": 101,
+ "length": 16,
+ "type": "EXPERIMENTER"
+ },
+ {
+ "data": [
+ 1,
+ 2
+ ],
+ "exp_type": 2,
+ "experimenter": 101,
+ "length": 20,
+ "type": "EXPERIMENTER"
+ }
+ ],
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 48,
+ "port_no": 6,
+ "properties": [],
+ "queue_id": 1,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ },
+ {
+ "duration_nsec": 0,
+ "duration_sec": 0,
+ "length": 48,
+ "port_no": 7,
+ "properties": [],
+ "queue_id": 2,
+ "tx_bytes": 0,
+ "tx_errors": 0,
+ "tx_packets": 0
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_features_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_features_reply.packet.json
new file mode 100644
index 00000000..e16efb76
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_features_reply.packet.json
@@ -0,0 +1,25 @@
+{
+ "1": [
+ {
+ "capabilities": 4,
+ "command": 1,
+ "features": 1,
+ "length": 80,
+ "max_entries": 255,
+ "metadata_match": 18446744073709551615,
+ "metadata_write": 18446744073709551615,
+ "name": "table1",
+ "properties": [
+ {
+ "oxm_values": [
+ {
+ "eth_src": "aa:bb:cc:dd:ee:ff"
+ }
+ ],
+ "type": "PACKET_TYPES"
+ }
+ ],
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_stats_reply.packet.json b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_stats_reply.packet.json
new file mode 100644
index 00000000..95b2c495
--- /dev/null
+++ b/tests/unit/lib/ofctl_json/of15/libofproto-OFP15-table_stats_reply.packet.json
@@ -0,0 +1,16 @@
+{
+ "1": [
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 0
+ },
+ {
+ "active_count": 4,
+ "lookup_count": 4,
+ "matched_count": 4,
+ "table_id": 1
+ }
+ ]
+}
diff --git a/tests/unit/lib/ovs/__init__.py b/tests/unit/lib/ovs/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/unit/lib/ovs/__init__.py
diff --git a/tests/unit/lib/ovs/test_vsctl.py b/tests/unit/lib/ovs/test_vsctl.py
new file mode 100644
index 00000000..28edf6e9
--- /dev/null
+++ b/tests/unit/lib/ovs/test_vsctl.py
@@ -0,0 +1,789 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distutils.spawn import find_executable
+import logging
+import subprocess
+import unittest
+
+from nose.tools import eq_
+from nose.tools import ok_
+
+from ryu.lib.hub import sleep
+from ryu.lib.ovs import vsctl
+
+
+LOG = logging.getLogger(__name__)
+
+DOCKER_IMAGE_MININET = 'osrg/ryu-book'
+
+OVSDB_MANAGER_ADDR = 'ptcp:6640'
+OVSDB_SWITCH_ADDR = 'tcp:%s:6640'
+
+
+def setUpModule():
+ if not find_executable('docker'):
+ raise unittest.SkipTest(
+ 'Docker is not available. Test in %s will be skipped.' % __name__)
+
+
+def _run(command):
+ popen = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
+ popen.wait()
+ result = popen.stdout.read().decode('utf-8')
+
+ if result:
+ return [str(r.strip('\r')) for r in result.split('\n')]
+ else:
+ return []
+
+
+class TestVSCtl(unittest.TestCase):
+ """
+ Test cases for ryu.lib.ovs.vsctl.VSCtl
+ """
+ container_mn = None # Container ID of Mininet
+ container_mn_ip = None # IP of Mininet container
+
+ vsctl = None # instance of vsctl.VSCtl
+
+ @classmethod
+ def _docker_exec(cls, container, command):
+ return _run('docker exec -t %s %s' % (container, command))
+
+ @classmethod
+ def _docker_exec_mn(cls, command):
+ return cls._docker_exec(cls.container_mn, command)
+
+ @classmethod
+ def _docker_run(cls, image):
+ return _run('docker run --privileged -t -d %s' % image)[0]
+
+ @classmethod
+ def _docker_stop(cls, container):
+ return _run('docker stop %s' % container)[0]
+
+ @classmethod
+ def _docker_rm(cls, container):
+ return _run('docker rm %s' % container)[0]
+
+ @classmethod
+ def _docker_inspect_ip_addr(cls, container):
+ return _run(
+ 'docker inspect --format="{{.NetworkSettings.IPAddress}}" %s' %
+ container)[0].strip('"')
+
+ @classmethod
+ def _set_up_mn_container(cls):
+ cls.container_mn = cls._docker_run(DOCKER_IMAGE_MININET)
+ cls.container_mn_ip = cls._docker_inspect_ip_addr(cls.container_mn)
+
+ # Note: Wait for loading the OVS kernel module.
+ # If the OVS kernel module is loaded at first time, it might take
+ # a few seconds.
+ sleep(5)
+
+ cls._docker_exec_mn(
+ 'ovs-vsctl set-manager %s' % OVSDB_MANAGER_ADDR)
+
+ @classmethod
+ def _set_up_vsctl(cls):
+ cls.vsctl = vsctl.VSCtl(OVSDB_SWITCH_ADDR % cls.container_mn_ip)
+
+ @classmethod
+ def setUpClass(cls):
+ cls._set_up_mn_container()
+ cls._set_up_vsctl()
+
+ @classmethod
+ def _tear_down_mn_container(cls):
+ cls._docker_exec_mn('mn --clean')
+ cls._docker_stop(cls.container_mn)
+ cls._docker_rm(cls.container_mn)
+
+ @classmethod
+ def tearDownClass(cls):
+ cls._tear_down_mn_container()
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def _run_commands(self, commands):
+ self.vsctl.run_command(commands, timeout_sec=1)
+
+ # 00: Open vSwitch commands
+
+ def test_00_01_init(self):
+ command = vsctl.VSCtlCommand('init')
+ self._run_commands([command])
+
+ ok_(command.result is None)
+
+ def test_00_02_show(self):
+ command = vsctl.VSCtlCommand('show')
+ self._run_commands([command])
+
+ ok_(command.result is not None)
+
+ # 01: Bridge commands
+
+ def test_01_01_add_br_bridge(self):
+ bridge = 's1'
+ command = vsctl.VSCtlCommand('add-br', (bridge,))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn('ovs-vsctl list-br')
+ ok_(bridge in result)
+
+ def test_01_02_add_br_parent_vlan(self):
+ bridge = 'sub-s1-100'
+ parent = 's1'
+ vlan = '100'
+ command = vsctl.VSCtlCommand('add-br', (bridge, parent, vlan))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn('ovs-vsctl list-br')
+ ok_(bridge in result)
+ result = self._docker_exec_mn(
+ 'ovs-vsctl br-to-parent %s' % bridge)
+ eq_(parent, result[0])
+ result = self._docker_exec_mn(
+ 'ovs-vsctl br-to-vlan %s' % bridge)
+ eq_(vlan, result[0])
+
+ def test_01_03_del_br(self):
+ bridge = 's1'
+ child = 'sub-s1-100'
+
+ command = vsctl.VSCtlCommand('del-br', (bridge,))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn('ovs-vsctl list-br')
+ ok_(bridge not in result)
+ ok_(child not in result)
+
+ def test_01_04_list_br(self):
+ bridge = 's1'
+ child = 'sub-s1-100'
+ vlan = '100'
+ self._docker_exec_mn('ovs-vsctl add-br %s' % bridge)
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %s %s %s' % (child, bridge, vlan))
+
+ command = vsctl.VSCtlCommand('list-br')
+ self._run_commands([command])
+
+ ok_(bridge in command.result)
+ ok_(child in command.result)
+
+ def test_01_05_br_exists(self):
+ bridge = 's1'
+
+ command = vsctl.VSCtlCommand('br-exists', (bridge, ))
+ self._run_commands([command])
+
+ eq_(True, command.result)
+
+ def test_01_06_br_to_vlan(self):
+ bridge = 's1'
+
+ command = vsctl.VSCtlCommand('br-to-vlan', (bridge, ))
+ self._run_commands([command])
+
+ eq_(0, command.result)
+
+ def test_01_06_br_to_vlan_fake_bridge(self):
+ bridge = 'sub-s1-100'
+
+ command = vsctl.VSCtlCommand('br-to-vlan', (bridge, ))
+ self._run_commands([command])
+
+ eq_(100, command.result)
+
+ def test_01_07_br_to_parent(self):
+ bridge = 's1'
+ parent = bridge
+
+ command = vsctl.VSCtlCommand('br-to-parent', (bridge, ))
+ self._run_commands([command])
+
+ # result = <ryu.lib.ovs.vsctl.VSCtlBridge object>
+ eq_(parent, command.result.name)
+
+ def test_01_07_br_to_parent_fake_bridge(self):
+ bridge = 'sub-s1-100'
+ parent = 's1'
+
+ command = vsctl.VSCtlCommand('br-to-parent', (bridge, ))
+ self._run_commands([command])
+
+ # result = <ryu.lib.ovs.vsctl.VSCtlBridge object>
+ eq_(parent, command.result.name)
+
+ def test_01_08_br_set_external_id_add(self):
+ bridge = 's1'
+ key = 'ext_id_key'
+ value = 'ext_id_value'
+
+ command = vsctl.VSCtlCommand(
+ 'br-set-external-id', (bridge, key, value))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl br-get-external-id %s %s' % (bridge, key))
+ eq_(value, result[0])
+
+ def test_01_09_br_get_external_id_value(self):
+ bridge = 's1'
+ key = 'ext_id_key'
+ value = 'ext_id_value'
+
+ command = vsctl.VSCtlCommand(
+ 'br-get-external-id', (bridge, key))
+ self._run_commands([command])
+
+ eq_(value, command.result)
+
+ def test_01_10_br_get_external_id_dict(self):
+ bridge = 's1'
+ key = 'ext_id_key'
+ value = 'ext_id_value'
+
+ command = vsctl.VSCtlCommand(
+ 'br-get-external-id', (bridge,))
+ self._run_commands([command])
+
+ eq_({key: value}, command.result)
+
+ def test_01_11_br_set_external_id_clear(self):
+ bridge = 's1'
+ key = 'ext_id_key'
+
+ command = vsctl.VSCtlCommand(
+ 'br-set-external-id', (bridge, key))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl br-get-external-id %s %s' % (bridge, key))
+ eq_([], result)
+
+ # Clean up
+ self._docker_exec_mn('mn --clean')
+
+ # 02: Port commands
+
+ def test_02_01_list_ports(self):
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+ interface_2 = 's1-eth2'
+
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_1)
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_2)
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %(bridge)s'
+ ' -- add-port %(bridge)s %(interface_1)s'
+ ' -- add-port %(bridge)s %(interface_2)s' % locals())
+
+ command = vsctl.VSCtlCommand('list-ports', (bridge,))
+ self._run_commands([command])
+
+ ok_(interface_1 in command.result)
+ ok_(interface_2 in command.result)
+
+ def test_02_02_add_port(self):
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+ self._docker_exec_mn(
+ 'ovs-vsctl del-port %s %s' % (bridge, interface_1))
+
+ command = vsctl.VSCtlCommand('add-port', (bridge, interface_1))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl port-to-br %s' % interface_1)
+ eq_(bridge, result[0])
+
+ def test_02_03_add_bond(self):
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+ interface_2 = 's1-eth2'
+ port = 's1-bond1'
+ interface_list = [interface_1, interface_2]
+ self._docker_exec_mn('ovs-vsctl del-br %s' % bridge)
+ self._docker_exec_mn('ovs-vsctl add-br %s' % bridge)
+
+ command = vsctl.VSCtlCommand(
+ 'add-bond', (bridge, port, interface_list))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl port-to-br %s' % port)
+ eq_(bridge, result[0])
+
+ def test_02_04_del_port(self):
+ bridge = 's1'
+ port = 's1-bond1'
+
+ command = vsctl.VSCtlCommand('del-port', (bridge, port))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl list-ports %s' % bridge)
+ eq_([], result)
+
+ def test_02_05_port_to_br(self):
+ bridge = 's1'
+ port_1 = 's1-eth1'
+ port_2 = 's1-eth2'
+ self._docker_exec_mn('ovs-vsctl del-br %s' % bridge)
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %(bridge)s'
+ ' -- add-port %(bridge)s %(port_1)s'
+ ' -- add-port %(bridge)s %(port_2)s' % locals())
+
+ command = vsctl.VSCtlCommand('port-to-br', (port_1,))
+ self._run_commands([command])
+
+ eq_(bridge, command.result)
+
+ # Clean up
+ self._docker_exec_mn('mn --clean')
+
+ # 03: Interface commands
+
+ def test_03_01_list_ifaces(self):
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+ interface_2 = 's1-eth2'
+
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_1)
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_2)
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %(bridge)s'
+ ' -- add-port %(bridge)s %(interface_1)s'
+ ' -- add-port %(bridge)s %(interface_2)s' % locals())
+
+ command = vsctl.VSCtlCommand('list-ifaces', (bridge,))
+ self._run_commands([command])
+
+ ok_(interface_1 in command.result)
+ ok_(interface_2 in command.result)
+
+ def test_03_02_ifaces_to_br(self):
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+
+ command = vsctl.VSCtlCommand('iface-to-br', (interface_1,))
+ self._run_commands([command])
+
+ eq_(bridge, command.result)
+
+ # Clean up
+ self._docker_exec_mn('mn --clean')
+
+ # 04: Controller commands
+
+ def test_04_01_get_controller(self):
+ bridge = 's1'
+ controller = 'tcp:127.0.0.1:6653'
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %(bridge)s'
+ ' -- set-controller %(bridge)s %(controller)s' % locals())
+
+ command = vsctl.VSCtlCommand('get-controller', (bridge,))
+ self._run_commands([command])
+
+ eq_(1, len(command.result))
+ eq_(controller, command.result[0])
+
+ def test_04_02_del_controller(self):
+ bridge = 's1'
+
+ command = vsctl.VSCtlCommand('del-controller', (bridge,))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get-controller %s' % bridge)
+ eq_([], result)
+
+ def test_04_03_set_controller(self):
+ bridge = 's1'
+ controller = 'tcp:127.0.0.1:6653'
+
+ command = vsctl.VSCtlCommand('set-controller', (bridge, controller))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get-controller %s' % bridge)
+ eq_(controller, result[0])
+
+ def test_04_04_get_fail_mode(self):
+ bridge = 's1'
+ fai_mode = 'secure'
+ self._docker_exec_mn(
+ 'ovs-vsctl set-fail-mode %s %s' % (bridge, fai_mode))
+
+ command = vsctl.VSCtlCommand('get-fail-mode', (bridge,))
+ self._run_commands([command])
+
+ eq_(fai_mode, command.result)
+
+ def test_04_05_del_fail_mode(self):
+ bridge = 's1'
+
+ command = vsctl.VSCtlCommand('del-fail-mode', (bridge,))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get-fail-mode %s' % bridge)
+ eq_([], result)
+
+ def test_04_06_set_fail_mode(self):
+ bridge = 's1'
+ fail_mode = 'secure'
+
+ command = vsctl.VSCtlCommand('set-fail-mode', (bridge, fail_mode))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get-fail-mode %s' % bridge)
+ eq_(fail_mode, result[0])
+
+ # Clean up
+ self._docker_exec_mn('mn --clean')
+
+ # 05: Manager commands (not implemented yet)
+ # 06: SSL commands (not implemented yet)
+ # 07: Switch commands (not implemented yet)
+
+ # 08: Database commands
+
+ def test_08_01_list(self):
+ table = 'Bridge'
+ bridge = 's1'
+ interface_1 = 's1-eth1'
+ interface_2 = 's1-eth2'
+ fail_mode = 'secure'
+ protocols = 'OpenFlow10,OpenFlow13'
+ datapath_id = '1111111111111111'
+
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_1)
+ self._docker_exec_mn(
+ 'ip link add %s type dummy' % interface_2)
+ self._docker_exec_mn(
+ 'ovs-vsctl add-br %(bridge)s'
+ ' -- add-port %(bridge)s %(interface_1)s'
+ ' -- add-port %(bridge)s %(interface_2)s' % locals())
+ self._docker_exec_mn(
+ 'ovs-vsctl set %(table)s %(bridge)s '
+ 'fail_mode=%(fail_mode)s '
+ 'protocols=%(protocols)s '
+ 'other_config:datapath-id=%(datapath_id)s' % locals())
+
+ command = vsctl.VSCtlCommand('list', (table,))
+ self._run_commands([command])
+
+ eq_(1, len(command.result))
+ # command.result[0] = <ryu.lib.ovs.vsctl.VSCtlBridge object>
+ eq_(bridge, command.result[0].name)
+
+ def test_08_02_find(self):
+ table = 'Bridge'
+ bridge = 's1'
+
+ command = vsctl.VSCtlCommand('find', (table, 'name=%s' % bridge))
+ self._run_commands([command])
+
+ eq_(1, len(command.result))
+ # command.result[0] = <ovs.db.idl.Row object object> for Bridge
+ eq_(bridge, command.result[0].name)
+
+ def test_08_02_find_complex(self):
+ table = 'Bridge'
+ bridge = 's1'
+ fail_mode = 'secure'
+ protocols = 'OpenFlow10,OpenFlow13'
+ datapath_id = '1111111111111111'
+
+ command = vsctl.VSCtlCommand(
+ 'find', (table, 'fail_mode=%s' % fail_mode,
+ 'protocols=%s' % protocols,
+ 'other_config:datapath-id=%s' % datapath_id))
+ self._run_commands([command])
+
+ eq_(1, len(command.result))
+ # command.result[0] = <ovs.db.idl.Row object object> for Bridge
+ eq_(bridge, command.result[0].name)
+
+ def test_08_03_get_01_value(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'fail_mode'
+ value = 'secure'
+
+ command = vsctl.VSCtlCommand('get', (table, bridge, column))
+ self._run_commands([command])
+
+ # command.result[0] is a list of return values
+ eq_(value, command.result[0][0])
+
+ def test_08_03_get_02_set(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'protocols'
+ value = 'OpenFlow10,OpenFlow13'.split(',')
+
+ command = vsctl.VSCtlCommand('get', (table, bridge, column))
+ self._run_commands([command])
+
+ # command.result[0] is a list
+ eq_(value, command.result[0])
+
+ def test_08_03_get_03_map(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'datapath-id'
+ datapath_id = '1111111111111111'
+ value = {key: datapath_id}
+
+ command = vsctl.VSCtlCommand('get', (table, bridge, column))
+ self._run_commands([command])
+
+ # command.result[0] is a dict
+ eq_(value, command.result[0])
+
+ def test_08_03_get_04_map_value(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'datapath-id'
+ datapath_id = '1111111111111111'
+ value = datapath_id
+
+ command = vsctl.VSCtlCommand(
+ 'get', (table, bridge, '%s:%s' % (column, key)))
+ self._run_commands([command])
+
+ # command.result[0] is a dict
+ eq_(value, command.result[0])
+
+ def test_08_04_set_01_value(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'fail_mode'
+ value = 'standalone'
+
+ command = vsctl.VSCtlCommand(
+ 'set', (table, bridge, '%s=%s' % (column, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ eq_(value, result[0])
+
+ def test_08_04_set_02_set(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'protocols'
+ value = 'OpenFlow10,OpenFlow12,OpenFlow13'
+
+ command = vsctl.VSCtlCommand(
+ 'set', (table, bridge, '%s=%s' % (column, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '["OpenFlow10", "OpenFlow12", "OpenFlow13"]'
+ eq_(expected_value, result[0])
+
+ def test_08_04_set_03_map(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'datapath-id'
+ value = '0000000000000001'
+
+ command = vsctl.VSCtlCommand(
+ 'set', (table, bridge, '%s:%s=%s' % (column, key, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s:%s' % (table, bridge, column, key))
+ expected_value = '"0000000000000001"'
+ eq_(expected_value, result[0])
+
+ def test_08_05_add_01_value(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'tag'
+ value = '100'
+
+ command = vsctl.VSCtlCommand(
+ 'add', (table, bridge, column, value))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ eq_(value, result[0])
+
+ def test_08_05_add_02_set(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'trunks'
+ value = '100,200'
+
+ command = vsctl.VSCtlCommand(
+ 'add', (table, bridge, column, value))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '[100, 200]'
+ eq_(expected_value, result[0])
+
+ def test_08_05_add_03_map(self):
+ table = 'Bridge'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'datapath-id'
+ value = '0000000000000011'
+
+ command = vsctl.VSCtlCommand(
+ 'add', (table, bridge, column, '%s=%s' % (key, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s:%s' % (table, bridge, column, key))
+ expected_value = '"0000000000000011"'
+ eq_(expected_value, result[0])
+
+ def test_08_06_remove_01_value(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'tag'
+ value = '100'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s=%s' % (table, bridge, column, value))
+
+ command = vsctl.VSCtlCommand(
+ 'remove', (table, bridge, column, value))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '[]'
+ eq_(expected_value, result[0])
+
+ def test_08_06_remove_02_set(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'trunks'
+ init_value = '100,200,300'
+ value = '100,200'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s=%s' % (table, bridge, column, init_value))
+
+ command = vsctl.VSCtlCommand(
+ 'remove', (table, bridge, column, value))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '[300]'
+ eq_(expected_value, result[0])
+
+ def test_08_06_remove_03_map(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'priority-tag'
+ value = 'true'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s:%s=%s' %
+ (table, bridge, column, key, value))
+
+ command = vsctl.VSCtlCommand(
+ 'remove', (table, bridge, column, '%s=%s' % (key, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '{}'
+ eq_(expected_value, result[0])
+
+ def test_08_07_clear_01_value(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'tag'
+ value = '100'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s=%s' % (table, bridge, column, value))
+
+ command = vsctl.VSCtlCommand(
+ 'clear', (table, bridge, column))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '[]'
+ eq_(expected_value, result[0])
+
+ def test_08_07_clear_02_set(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'trunks'
+ value = '100,200'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s=%s' % (table, bridge, column, value))
+
+ command = vsctl.VSCtlCommand(
+ 'clear', (table, bridge, column))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '[]'
+ eq_(expected_value, result[0])
+
+ def test_08_07_clear_03_map(self):
+ table = 'Port'
+ bridge = 's1'
+ column = 'other_config'
+ key = 'priority-tag'
+ value = 'true'
+ self._docker_exec_mn(
+ 'ovs-vsctl set %s %s %s:%s=%s' %
+ (table, bridge, column, key, value))
+
+ command = vsctl.VSCtlCommand(
+ 'clear', (table, bridge, column, '%s=%s' % (key, value)))
+ self._run_commands([command])
+
+ result = self._docker_exec_mn(
+ 'ovs-vsctl get %s %s %s' % (table, bridge, column))
+ expected_value = '{}'
+ eq_(expected_value, result[0])
+
+ # Clean up
+ self._docker_exec_mn('mn --clean')
diff --git a/tests/unit/lib/test_addrconv.py b/tests/unit/lib/test_addrconv.py
new file mode 100644
index 00000000..77877038
--- /dev/null
+++ b/tests/unit/lib/test_addrconv.py
@@ -0,0 +1,56 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from nose.tools import eq_
+
+from ryu.lib import addrconv
+
+
+class Test_addrconv(unittest.TestCase):
+ """ Test case for ryu.lib.addrconv
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ @staticmethod
+ def _test_conv(conv, text_value, bin_value):
+ eq_(conv.text_to_bin(text_value), bin_value)
+ eq_(conv.bin_to_text(bin_value), text_value)
+
+ def test_ipv4(self):
+ self._test_conv(addrconv.ipv4, '0.0.0.0', b'\x00\x00\x00\x00')
+ self._test_conv(addrconv.ipv4, '127.0.0.1', b'\x7f\x00\x00\x01')
+ self._test_conv(addrconv.ipv4, '255.255.0.0', b'\xff\xff\x00\x00')
+
+ def test_ipv6(self):
+ self._test_conv(addrconv.ipv6, 'ff02::1',
+ (b'\xff\x02\x00\x00\x00\x00\x00\x00'
+ b'\x00\x00\x00\x00\x00\x00\x00\x01'))
+ self._test_conv(addrconv.ipv6, 'fe80::f00b:a4ff:fe7d:f8ea',
+ (b'\xfe\x80\x00\x00\x00\x00\x00\x00'
+ b'\xf0\x0b\xa4\xff\xfe\x7d\xf8\xea'))
+ self._test_conv(addrconv.ipv6, '::',
+ (b'\x00\x00\x00\x00\x00\x00\x00\x00'
+ b'\x00\x00\x00\x00\x00\x00\x00\x00'))
+
+ def test_mac(self):
+ self._test_conv(addrconv.mac, 'f2:0b:a4:01:0a:23',
+ b'\xf2\x0b\xa4\x01\x0a\x23')
diff --git a/tests/unit/lib/test_hub.py b/tests/unit/lib/test_hub.py
new file mode 100644
index 00000000..d8b75996
--- /dev/null
+++ b/tests/unit/lib/test_hub.py
@@ -0,0 +1,239 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import time
+import unittest
+from nose.tools import raises
+
+from ryu.lib import hub
+hub.patch()
+
+
+class MyException(BaseException):
+ pass
+
+
+class Test_hub(unittest.TestCase):
+ """ Test case for ryu.lib.hub
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ # we want to test timeout first because the rest of tests rely on it.
+ # thus test_0_ prefix.
+
+ @raises(hub.Timeout)
+ def test_0_timeout1(self):
+ with hub.Timeout(0.1):
+ hub.sleep(1)
+
+ @raises(MyException)
+ def test_0_timeout2(self):
+ with hub.Timeout(0.1, MyException):
+ hub.sleep(1)
+
+ def test_0_timeout3(self):
+ with hub.Timeout(1):
+ hub.sleep(0.1)
+ # sleep some more to ensure timer cancelation
+ hub.sleep(2)
+
+ def test_spawn_event1(self):
+ def _child(ev, result):
+ hub.sleep(1)
+ result.append(1)
+ ev.set()
+
+ ev = hub.Event()
+ result = []
+ with hub.Timeout(2):
+ hub.spawn(_child, ev, result)
+ ev.wait()
+ assert len(result) == 1
+
+ def test_spawn_event2(self):
+ def _child(ev, result):
+ hub.sleep(1)
+ result.append(1)
+ ev.set()
+
+ ev = hub.Event()
+ result = []
+ with hub.Timeout(2):
+ t = hub.spawn(_child, ev, result)
+ ev.wait(timeout=0.5)
+ assert len(result) == 0
+ ev.wait()
+ assert len(result) == 1
+
+ def test_spawn_event3(self):
+ def _child(ev, ev2, result):
+ ev2.wait()
+ hub.sleep(0.5)
+ result.append(1)
+ ev.set()
+
+ ev = hub.Event()
+ ev2 = hub.Event()
+ result = []
+ with hub.Timeout(2):
+ hub.spawn(_child, ev, ev2, result)
+ hub.spawn(_child, ev, ev2, result)
+ hub.sleep(0.5)
+ ev2.set() # this should wake up the above created two threads
+ ev.wait(timeout=1)
+ assert len(result) == 2
+
+ def test_spawn_select1(self):
+ import select
+ import socket
+
+ def _child(s1):
+ hub.sleep(0.5)
+ s1.send(b"hoge")
+
+ s1, s2 = socket.socketpair()
+ with hub.Timeout(1):
+ hub.spawn(_child, s1)
+ select.select([s2.fileno()], [], [])
+ select.select([s2.fileno()], [], []) # return immediately
+
+ @raises(MyException)
+ def test_select1(self):
+ import select
+ import socket
+
+ s1, s2 = socket.socketpair()
+ with hub.Timeout(1, MyException):
+ select.select([s2.fileno()], [], [])
+
+ def test_select2(self):
+ import select
+
+ with hub.Timeout(1, MyException):
+ select.select([], [], [], 0) # timeout immediately
+
+ def test_select3(self):
+ import select
+ import socket
+
+ s1, s2 = socket.socketpair()
+ with hub.Timeout(1, MyException):
+ list = [s1.fileno(), s2.fileno()]
+ rlist, wlist, xlist = select.select(list, list, list)
+ assert not s1.fileno() in rlist
+ assert not s2.fileno() in rlist
+ # the following two assertions are commented out because one of
+ # them fails with eventlet-patched select.
+ # assert s1.fileno() in wlist
+ # assert s2.fileno() in wlist
+ # note: eventlet-patched select returns at most one file.
+ assert (s1.fileno() in wlist) or (s2.fileno() in wlist)
+ assert not s1.fileno() in xlist
+ assert not s2.fileno() in xlist
+
+ def test_spawn_joinall(self):
+ def _child(ev2, result):
+ ev2.wait()
+ hub.sleep(0.5)
+ result.append(1)
+ raise BaseException("this exception should not be propagated")
+
+ ev2 = hub.Event()
+ threads = []
+ result = []
+ with hub.Timeout(2):
+ threads.append(hub.spawn(_child, ev2, result))
+ threads.append(hub.spawn(_child, ev2, result))
+ hub.sleep(0.5)
+ ev2.set() # this should wake up the above created two threads
+ hub.joinall(threads)
+ assert len(result) == 2
+
+ def test_spawn_kill_joinall(self):
+ def _child(ev2, result):
+ ev2.wait()
+ result.append(1)
+
+ ev2 = hub.Event()
+ threads = []
+ result = []
+ with hub.Timeout(2):
+ threads.append(hub.spawn(_child, ev2, result))
+ threads.append(hub.spawn(_child, ev2, result))
+ hub.sleep(0.5)
+ for t in threads:
+ hub.kill(t)
+ hub.joinall(threads)
+ assert len(result) == 0
+
+ def test_spawn_kill_nowait_joinall(self):
+ # XXX this test relies on the scheduling behaviour.
+ # the intention here is, killing threads before they get active.
+
+ def _child(result):
+ result.append(1)
+
+ threads = []
+ result = []
+ with hub.Timeout(2):
+ threads.append(hub.spawn(_child, result))
+ for t in threads:
+ hub.kill(t)
+ hub.joinall(threads)
+ assert len(result) == 0
+
+ def test_spawn_kill_die_joinall(self):
+ def _child(result):
+ result.append(1)
+
+ threads = []
+ result = []
+ with hub.Timeout(2):
+ threads.append(hub.spawn(_child, result))
+ threads.append(hub.spawn(_child, result))
+ hub.sleep(0.5)
+ for t in threads:
+ hub.kill(t)
+ hub.joinall(threads)
+ assert len(result) == 2
+
+ def test_spawn_exception_joinall(self):
+ def _child():
+ raise Exception("hoge")
+
+ threads = []
+ with hub.Timeout(2):
+ threads.append(hub.spawn(_child))
+ threads.append(hub.spawn(_child))
+ hub.sleep(0.5)
+ hub.joinall(threads)
+
+ def test_event1(self):
+ ev = hub.Event()
+ ev.set()
+ with hub.Timeout(1):
+ ev.wait() # should return immediately
+
+ def test_event2(self):
+ ev = hub.Event()
+ # allow multiple sets unlike eventlet Event
+ ev.set()
+ ev.set()
diff --git a/tests/unit/lib/test_import_module.py b/tests/unit/lib/test_import_module.py
new file mode 100644
index 00000000..852ee21b
--- /dev/null
+++ b/tests/unit/lib/test_import_module.py
@@ -0,0 +1,66 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from nose.tools import eq_
+
+from ryu.utils import import_module
+
+
+class Test_import_module(unittest.TestCase):
+ """
+ Test case for ryu.utils.import_module
+ """
+
+ @staticmethod
+ def _my_import(name):
+ mod = __import__(name)
+ components = name.split('.')
+ for c in components[1:]:
+ mod = getattr(mod, c)
+ return mod
+
+ def test_import_module_with_same_basename(self):
+ aaa = import_module('tests.unit.lib.test_mod.aaa.mod')
+ eq_("this is aaa", aaa.name)
+ bbb = import_module('tests.unit.lib.test_mod.bbb.mod')
+ eq_("this is bbb", bbb.name)
+
+ def test_import_module_by_filename(self):
+ ccc = import_module('./lib/test_mod/ccc/mod.py')
+ eq_("this is ccc", ccc.name)
+ ddd = import_module('./lib/test_mod/ddd/mod.py')
+ # Note: When importing a module by filename, if module file name
+ # is duplicated, import_module reload (override) a module instance.
+ eq_("this is ddd", ddd.name)
+
+ def test_import_same_module1(self):
+ from tests.unit.lib.test_mod import eee as eee1
+ eq_("this is eee", eee1.name)
+ eee2 = import_module('./lib/test_mod/eee.py')
+ eq_("this is eee", eee2.name)
+
+ def test_import_same_module2(self):
+ fff1 = import_module('./lib/test_mod/fff.py')
+ eq_("this is fff", fff1.name)
+ fff2 = import_module('tests.unit.lib.test_mod.fff')
+ eq_("this is fff", fff2.name)
+
+ def test_import_same_module3(self):
+ ggg1 = import_module('./lib/test_mod/ggg.py')
+ eq_("this is ggg", ggg1.name)
+ ggg2 = self._my_import('tests.unit.lib.test_mod.ggg')
+ eq_("this is ggg", ggg2.name)
diff --git a/tests/unit/lib/test_ip.py b/tests/unit/lib/test_ip.py
new file mode 100644
index 00000000..66d8f0c2
--- /dev/null
+++ b/tests/unit/lib/test_ip.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2015 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+
+import logging
+import struct
+import unittest
+
+from nose.tools import eq_
+from nose.tools import raises
+
+from ryu.lib import ip
+
+LOG = logging.getLogger('test_ip')
+
+
+class Test_ip(unittest.TestCase):
+ """
+ test case for ip address module
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_ipv4_to_bin(self):
+ ipv4_str = '10.28.197.1'
+ val = 0x0a1cc501
+
+ (res,) = struct.unpack('!I', ip.ipv4_to_bin(ipv4_str))
+ eq_(val, res)
+
+ def test_ipv4_to_int(self):
+ ipv4_str = '10.28.197.1'
+ val = 169657601
+
+ res = ip.ipv4_to_int(ipv4_str)
+ eq_(val, res)
+
+ def test_ipv4_to_str_from_bin(self):
+ ipv4_bin = struct.pack('!I', 0x0a1cc501)
+ val = '10.28.197.1'
+
+ res = ip.ipv4_to_str(ipv4_bin)
+ eq_(val, res)
+
+ def test_ipv4_to_str_from_int(self):
+ ipv4_int = 169657601
+ val = '10.28.197.1'
+
+ res = ip.ipv4_to_str(ipv4_int)
+ eq_(val, res)
+
+ def test_ipv6_to_bin(self):
+ ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+ val = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20, 0x66ff,
+ 0xfe4c, 0x9c3c)
+ res = ip.ipv6_to_bin(ipv6_str)
+ eq_(val, res)
+
+ def test_ipv6_to_bin_with_shortcut(self):
+ ipv6_str = '3f:10::1:2'
+ val = struct.pack('!8H', 0x3f, 0x10, 0, 0, 0, 0, 0x1, 0x2)
+
+ res = ip.ipv6_to_bin(ipv6_str)
+ eq_(val, res)
+
+ def test_ipv6_to_int(self):
+ ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+ val = 0x20130da8021508f2aa2066fffe4c9c3c
+
+ res = ip.ipv6_to_int(ipv6_str)
+ eq_(val, res)
+
+ def test_ipv6_to_int_with_shortcut(self):
+ ipv6_str = '3f:10::1:2'
+ val = 0x003f0010000000000000000000010002
+
+ res = ip.ipv6_to_int(ipv6_str)
+ eq_(val, res)
+
+ def test_ipv6_to_str_from_bin(self):
+ ipv6_bin = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20,
+ 0x66ff, 0xfe4c, 0x9c3c)
+ val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+
+ res = ip.ipv6_to_str(ipv6_bin)
+ eq_(val, res)
+
+ def test_ipv6_to_str_from_int(self):
+ ipv6_int = 0x20130da8021508f2aa2066fffe4c9c3c
+ val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+
+ res = ip.ipv6_to_str(ipv6_int)
+ eq_(val, res)
+
+ def test_text_to_bin_from_ipv4_text(self):
+ ipv4_str = '10.28.197.1'
+ val = struct.pack('!4B', 10, 28, 197, 1)
+ res = ip.text_to_bin(ipv4_str)
+ eq_(val, res)
+
+ def test_text_to_bin_from_ipv6_text(self):
+ ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+ val = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20,
+ 0x66ff, 0xfe4c, 0x9c3c)
+ res = ip.text_to_bin(ipv6_str)
+ eq_(val, res)
+
+ def test_text_to_int_from_ipv4_text(self):
+ ipv4_str = '10.28.197.1' # 0a.1c.c5.01
+ val = 0x0a1cc501
+
+ res = ip.text_to_int(ipv4_str)
+ eq_(val, res)
+
+ def test_text_to_int_from_ipv6_text(self):
+ ipv6_str = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+ val = 0x20130da8021508f2aa2066fffe4c9c3c
+
+ res = ip.text_to_int(ipv6_str)
+ eq_(val, res)
+
+ def test_bin_to_text_from_ipv4_bin(self):
+ ipv4_bin = struct.pack('!4B', 10, 28, 197, 1)
+ val = '10.28.197.1'
+ res = ip.bin_to_text(ipv4_bin)
+ eq_(val, res)
+
+ def test_bin_to_text_from_ipv6_bin(self):
+ ipv6_bin = struct.pack('!8H', 0x2013, 0xda8, 0x215, 0x8f2, 0xaa20,
+ 0x66ff, 0xfe4c, 0x9c3c)
+ val = '2013:da8:215:8f2:aa20:66ff:fe4c:9c3c'
+ res = ip.bin_to_text(ipv6_bin)
+ eq_(val, res)
+
+ @raises(struct.error)
+ def test_bin_to_text_with_invalid_bin(self):
+ invalid_bin = b'invalid'
+
+ ip.bin_to_text(invalid_bin)
diff --git a/tests/unit/lib/test_mac.py b/tests/unit/lib/test_mac.py
new file mode 100644
index 00000000..91839ead
--- /dev/null
+++ b/tests/unit/lib/test_mac.py
@@ -0,0 +1,95 @@
+# Copyright (C) 2012 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+import unittest
+import logging
+import struct
+import netaddr
+from struct import *
+from nose.tools import *
+
+from ryu.lib import mac
+
+LOG = logging.getLogger('test_mac')
+
+
+class Test_mac(unittest.TestCase):
+ """ Test case for mac
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_mac_is_multicast(self):
+ addr = b'\x01\x23\x45\x67\x89\x0a'
+ val = True
+
+ res = mac.is_multicast(addr)
+
+ eq_(val, res)
+
+ def test_mac_haddr_to_str(self):
+ addr = 'aa:aa:aa:aa:aa:aa'
+ val = b'\xaa\xaa\xaa\xaa\xaa\xaa'
+
+ res = mac.haddr_to_str(val)
+
+ eq_(addr, res)
+
+ def test_mac_haddr_to_str_none(self):
+ """ addr is None
+ """
+ addr = None
+ val = 'None'
+ res = mac.haddr_to_str(addr)
+
+ eq_(val, res)
+
+ @raises(AssertionError)
+ def test_mac_haddr_to_str_assert(self):
+ val = b'\xaa\xaa\xaa\xaa\xaa'
+
+ res = mac.haddr_to_str(val)
+
+ def test_mac_haddr_to_bin_false(self):
+ """ len(hexes) = 6 (False)
+ """
+ addr = 'aa:aa:aa:aa:aa:aa'
+ val = b'\xaa\xaa\xaa\xaa\xaa\xaa'
+
+ res = mac.haddr_to_bin(addr)
+
+ eq_(val, res)
+
+ @raises(ValueError)
+ def test_mac_haddr_to_bin_true(self):
+ """ len(hexes) != 6 (True)
+ """
+ addr = 'aa:aa:aa:aa:aa'
+ res = mac.haddr_to_bin(addr)
+
+ def test_mac_haddr_bitand(self):
+ addr = b'\xaa\xaa\xaa\xaa\xaa\xaa'
+ mask = b'\xff\xff\xff\x00\x00\x00'
+ val = b'\xaa\xaa\xaa\x00\x00\x00'
+
+ res = mac.haddr_bitand(addr, mask)
+
+ eq_(val, res)
diff --git a/tests/unit/lib/test_mod/__init__.py b/tests/unit/lib/test_mod/__init__.py
new file mode 100644
index 00000000..ca8ef539
--- /dev/null
+++ b/tests/unit/lib/test_mod/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/tests/unit/lib/test_mod/aaa/__init__.py b/tests/unit/lib/test_mod/aaa/__init__.py
new file mode 100644
index 00000000..ca8ef539
--- /dev/null
+++ b/tests/unit/lib/test_mod/aaa/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/tests/unit/lib/test_mod/aaa/mod.py b/tests/unit/lib/test_mod/aaa/mod.py
new file mode 100644
index 00000000..a5eff136
--- /dev/null
+++ b/tests/unit/lib/test_mod/aaa/mod.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is aaa"
diff --git a/tests/unit/lib/test_mod/bbb/__init__.py b/tests/unit/lib/test_mod/bbb/__init__.py
new file mode 100644
index 00000000..ca8ef539
--- /dev/null
+++ b/tests/unit/lib/test_mod/bbb/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/tests/unit/lib/test_mod/bbb/mod.py b/tests/unit/lib/test_mod/bbb/mod.py
new file mode 100644
index 00000000..397c8554
--- /dev/null
+++ b/tests/unit/lib/test_mod/bbb/mod.py
@@ -0,0 +1,17 @@
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is bbb"
diff --git a/tests/unit/lib/test_mod/ccc/__init__.py b/tests/unit/lib/test_mod/ccc/__init__.py
new file mode 100644
index 00000000..ce07156d
--- /dev/null
+++ b/tests/unit/lib/test_mod/ccc/__init__.py
@@ -0,0 +1,14 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/tests/unit/lib/test_mod/ccc/mod.py b/tests/unit/lib/test_mod/ccc/mod.py
new file mode 100644
index 00000000..5be826cf
--- /dev/null
+++ b/tests/unit/lib/test_mod/ccc/mod.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is ccc"
diff --git a/tests/unit/lib/test_mod/ddd/__init__.py b/tests/unit/lib/test_mod/ddd/__init__.py
new file mode 100644
index 00000000..ce07156d
--- /dev/null
+++ b/tests/unit/lib/test_mod/ddd/__init__.py
@@ -0,0 +1,14 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/tests/unit/lib/test_mod/ddd/mod.py b/tests/unit/lib/test_mod/ddd/mod.py
new file mode 100644
index 00000000..31d31d53
--- /dev/null
+++ b/tests/unit/lib/test_mod/ddd/mod.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is ddd"
diff --git a/tests/unit/lib/test_mod/eee.py b/tests/unit/lib/test_mod/eee.py
new file mode 100644
index 00000000..ed21a8aa
--- /dev/null
+++ b/tests/unit/lib/test_mod/eee.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is eee"
diff --git a/tests/unit/lib/test_mod/fff.py b/tests/unit/lib/test_mod/fff.py
new file mode 100644
index 00000000..5a565e38
--- /dev/null
+++ b/tests/unit/lib/test_mod/fff.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is fff"
diff --git a/tests/unit/lib/test_mod/ggg.py b/tests/unit/lib/test_mod/ggg.py
new file mode 100644
index 00000000..29555e56
--- /dev/null
+++ b/tests/unit/lib/test_mod/ggg.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name = "this is ggg"
diff --git a/tests/unit/lib/test_mrtlib.py b/tests/unit/lib/test_mrtlib.py
new file mode 100644
index 00000000..e870f401
--- /dev/null
+++ b/tests/unit/lib/test_mrtlib.py
@@ -0,0 +1,765 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+
+import bz2
+import io
+import logging
+import os
+import sys
+import unittest
+
+try:
+ import mock # Python 2
+except ImportError:
+ from unittest import mock # Python 3
+
+from nose.tools import eq_
+from nose.tools import ok_
+
+from ryu.lib import addrconv
+from ryu.lib import mrtlib
+from ryu.lib.packet import bgp
+from ryu.lib.packet import ospf
+from ryu.utils import binary_str
+
+
+LOG = logging.getLogger(__name__)
+
+MRT_DATA_DIR = os.path.join(
+ os.path.dirname(sys.modules[__name__].__file__), '../../packet_data/mrt/')
+
+
+class TestMrtlib(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.
+ """
+
+ def test_reader(self):
+ files = [
+ 'rib.20161101.0000_pick.bz2',
+ 'updates.20161101.0000.bz2',
+ ]
+
+ for f in files:
+ # print('\n*** testing mrtlib.Reader with %s ...' % f)
+ counter = 0
+ input_file = os.path.join(MRT_DATA_DIR, f)
+ for record in mrtlib.Reader(bz2.BZ2File(input_file, 'rb')):
+ # print('* No.%d\n%s' % (counter, record))
+ ok_(not isinstance(record, mrtlib.UnknownMrtRecord))
+ counter += 1
+
+ def test_writer(self):
+ files = [
+ 'rib.20161101.0000_pick.bz2',
+ 'updates.20161101.0000.bz2',
+ ]
+
+ for f in files:
+ # print('\n*** testing mrtlib.Writer with %s ...' % f)
+ input_file = os.path.join(MRT_DATA_DIR, f)
+ input_buf = bz2.BZ2File(input_file, 'rb').read()
+ input_records = list(mrtlib.Reader(bz2.BZ2File(input_file, 'rb')))
+
+ counter = 0
+ f = io.BytesIO()
+ mrt_writer = mrtlib.Writer(f)
+ for record in input_records:
+ # print('* No.%d\n%s' % (counter, record))
+ mrt_writer.write(record)
+ counter += 1
+
+ output_buf = f.getvalue()
+
+ eq_(binary_str(input_buf), binary_str(output_buf))
+
+ mrt_writer.close()
+
+ eq_(True, mrt_writer._f.closed)
+
+
+class TestMrtlibMrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.MrtRecord.
+ """
+
+ def test_init_without_type_subtype(self):
+ type_ = mrtlib.MrtRecord.TYPE_TABLE_DUMP
+ subtype = mrtlib.TableDumpMrtRecord.SUBTYPE_AFI_IPv4
+
+ message = mrtlib.TableDumpAfiIPv4MrtMessage(
+ view_num=1,
+ seq_num=2,
+ prefix='192.168.1.0',
+ prefix_len=24,
+ status=1,
+ originated_time=0,
+ peer_ip='10.0.0.1',
+ peer_as=65000,
+ bgp_attributes=[],
+ )
+ record = mrtlib.TableDumpMrtRecord(message)
+
+ eq_(type_, record.type)
+ eq_(subtype, record.subtype)
+
+ def test_parse_pre_with_type_et(self):
+ buf = (
+ b'\x00\x00\x00\x00' # timestamp
+ b'\x00\x11\x00\x00' # type=TYPE_BGP4MP_ET(17), subtype
+ b'\x00\x00\x00\xaa' # length
+ )
+
+ required_len = mrtlib.MrtRecord.parse_pre(buf)
+
+ eq_(0xaa + mrtlib.ExtendedTimestampMrtRecord.HEADER_SIZE,
+ required_len)
+
+
+# Note: MrtCommonRecord is tested in TestMrtlibMrtRecord.
+# class TestMrtlibMrtCommonRecord(unittest.TestCase):
+
+
+class TestMrtlibExtendedTimestampMrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.ExtendedTimestampMrtRecord.
+ """
+
+ def test_parse_extended_header(self):
+ body = b'test'
+ buf = (
+ b'\x11\x11\x11\x11' # ms_timestamp
+ + body
+ )
+
+ (headers,
+ rest) = mrtlib.ExtendedTimestampMrtRecord.parse_extended_header(buf)
+
+ ok_(isinstance(headers, list))
+ eq_(1, len(headers))
+ eq_(0x11111111, headers[0])
+ eq_(body, rest)
+
+ def test_serialize(self):
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x22\x22\x33\x33' # type, subtype
+ b'\x00\x00\x00\x04' # length=len(body)
+ b'\x44\x44\x44\x44' # ms_timestamp
+ + body
+ )
+
+ message_mock = mock.MagicMock(spec=mrtlib.MrtMessage)
+ message_mock.serialize.return_value = body
+
+ record = mrtlib.ExtendedTimestampMrtRecord(
+ message=message_mock,
+ timestamp=0x11111111,
+ type_=0x2222, subtype=0x3333,
+ ms_timestamp=0x44444444,
+ length=0x00000004,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibUnknownMrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.UnknownMrtRecord.
+ """
+
+ def test_parse(self):
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x22\x22\x33\x33' # type, subtype
+ b'\x00\x00\x00\x04' # length=len(body)
+ + body
+ )
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(0x2222, record.type)
+ eq_(0x3333, record.subtype)
+ eq_(0x00000004, record.length)
+ eq_(body, record.message.buf)
+ eq_(b'', rest)
+
+ def test_serialize(self):
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x22\x22\x33\x33' # type, subtype
+ b'\x00\x00\x00\x04' # length=len(body)
+ + body
+ )
+
+ message = mrtlib.UnknownMrtMessage(buf=body)
+ record = mrtlib.UnknownMrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ type_=0x2222, subtype=0x3333,
+ length=0x00000004,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibOspf2MrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.Ospf2MrtRecord.
+ """
+
+ @mock.patch('ryu.lib.packet.ospf.ospf.parser')
+ def test_parse(self, mock_ospf_parser):
+ remote_ip = '10.0.0.1'
+ local_ip = '10.0.0.2'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0b\x00\x00' # type=TYPE_OSPFv2(11), subtype
+ b'\x00\x00\x00\x0c' # length=len(remote_ip + local_ip + body)
+ + addrconv.ipv4.text_to_bin(remote_ip) # remote_ip
+ + addrconv.ipv4.text_to_bin(local_ip) # local_ip
+ + body # ospf_message
+ )
+
+ mock_ospf_message = mock.MagicMock(spec=ospf.OSPFMessage)
+ mock_ospf_parser.return_value = (mock_ospf_message, None, '')
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_OSPFv2, record.type)
+ eq_(0x0000, record.subtype)
+ eq_(0x0000000c, record.length)
+ eq_(remote_ip, record.message.remote_ip)
+ eq_(local_ip, record.message.local_ip)
+ eq_(mock_ospf_message, record.message.ospf_message)
+ eq_(b'', rest)
+
+ def test_serialize(self):
+ remote_ip = '10.0.0.1'
+ local_ip = '10.0.0.2'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0b\x00\x00' # type=TYPE_OSPFv2(11), subtype
+ b'\x00\x00\x00\x0c' # length=len(remote_ip + local_ip + body)
+ + addrconv.ipv4.text_to_bin(remote_ip) # remote_ip
+ + addrconv.ipv4.text_to_bin(local_ip) # local_ip
+ + body # ospf_message
+ )
+
+ mock_ospf_message = mock.MagicMock(spec=ospf.OSPFMessage)
+ mock_ospf_message.serialize.return_value = body
+
+ message = mrtlib.Ospf2MrtMessage(
+ remote_ip=remote_ip,
+ local_ip=local_ip,
+ ospf_message=mock_ospf_message,
+ )
+ record = mrtlib.Ospf2MrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibTableDumpMrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.TableDumpMrtRecord.
+ """
+
+ @mock.patch('ryu.lib.packet.bgp._PathAttribute.parser')
+ def test_parse_afi_ipv4(self, mock_bgp_attr_parser):
+ prefix = '10.0.0.0'
+ peer_ip = '172.16.0.1'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0c\x00\x01' # type=TYPE_TABLE_DUMP(12),
+ # subtype=SUBTYPE_AFI_IPv4(1)
+ b'\x00\x00\x00\x1a' # length=26
+ b'\x22\x22\x33\x33' # view_num, seq_num
+ + addrconv.ipv4.text_to_bin(prefix) + # prefix
+ b'\x18\x01' # prefix_len=24, status=1
+ b'\x44\x44\x44\x44' # originated_time
+ + addrconv.ipv4.text_to_bin(peer_ip) + # peer_ip
+ b'\xfd\xe8\x00\x04' # peer_as=65000, attr_len=len(body)
+ + body # bgp_attributes
+ )
+
+ mock_bgp_attr = mock.MagicMock(spec=bgp._PathAttribute)
+ mock_bgp_attr_parser.return_value = (mock_bgp_attr, b'')
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_TABLE_DUMP, record.type)
+ eq_(mrtlib.TableDumpMrtRecord.SUBTYPE_AFI_IPv4, record.subtype)
+ eq_(0x0000001a, record.length)
+ eq_(0x2222, record.message.view_num)
+ eq_(0x3333, record.message.seq_num)
+ eq_(prefix, record.message.prefix)
+ eq_(24, record.message.prefix_len)
+ eq_(1, record.message.status)
+ eq_(0x44444444, record.message.originated_time)
+ eq_(peer_ip, record.message.peer_ip)
+ eq_(65000, record.message.peer_as)
+ eq_(0x0004, record.message.attr_len)
+ eq_([mock_bgp_attr], record.message.bgp_attributes)
+ eq_(b'', rest)
+
+ def test_serialize_afi_ipv4(self):
+ prefix = '10.0.0.0'
+ peer_ip = '172.16.0.1'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0c\x00\x01' # type=TYPE_TABLE_DUMP(12),
+ # subtype=SUBTYPE_AFI_IPv4(1)
+ b'\x00\x00\x00\x1a' # length=26
+ b'\x22\x22\x33\x33' # view_num, seq_num
+ + addrconv.ipv4.text_to_bin(prefix) + # prefix
+ b'\x18\x01' # prefix_len=24, status=1
+ b'\x44\x44\x44\x44' # originated_time
+ + addrconv.ipv4.text_to_bin(peer_ip) + # peer_ip
+ b'\xfd\xe8\x00\x04' # peer_as=65000, attr_len=len(body)
+ + body # bgp_attributes
+ )
+
+ mock_bgp_attr = mock.MagicMock(spec=bgp._PathAttribute)
+ mock_bgp_attr.serialize.return_value = body
+
+ message = mrtlib.TableDumpAfiIPv4MrtMessage(
+ view_num=0x2222,
+ seq_num=0x3333,
+ prefix=prefix,
+ prefix_len=24,
+ status=1,
+ originated_time=0x44444444,
+ peer_ip=peer_ip,
+ peer_as=65000,
+ bgp_attributes=[mock_bgp_attr],
+ # attr_len=4
+ )
+ record = mrtlib.TableDumpMrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+ @mock.patch('ryu.lib.packet.bgp._PathAttribute.parser')
+ def test_parse_afi_ipv6(self, mock_bgp_attr_parser):
+ prefix = '2001:db8::1'
+ peer_ip = 'fe80::1'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0c\x00\x02' # type=TYPE_TABLE_DUMP(12),
+ # subtype=SUBTYPE_AFI_IPv6(2)
+ b'\x00\x00\x00\x32' # length=50
+ b'\x22\x22\x33\x33' # view_num, seq_num
+ + addrconv.ipv6.text_to_bin(prefix) + # prefix
+ b'\x40\x01' # prefix_len=64, status=1
+ b'\x44\x44\x44\x44' # originated_time
+ + addrconv.ipv6.text_to_bin(peer_ip) + # peer_ip
+ b'\xfd\xe8\x00\x04' # peer_as=65000, attr_len=len(body)
+ + body # bgp_attributes
+ )
+
+ mock_bgp_attr = mock.MagicMock(spec=bgp._PathAttribute)
+ mock_bgp_attr_parser.return_value = (mock_bgp_attr, b'')
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_TABLE_DUMP, record.type)
+ eq_(mrtlib.TableDumpMrtRecord.SUBTYPE_AFI_IPv6, record.subtype)
+ eq_(0x00000032, record.length)
+ eq_(0x2222, record.message.view_num)
+ eq_(0x3333, record.message.seq_num)
+ eq_(prefix, record.message.prefix)
+ eq_(64, record.message.prefix_len)
+ eq_(1, record.message.status)
+ eq_(0x44444444, record.message.originated_time)
+ eq_(peer_ip, record.message.peer_ip)
+ eq_(65000, record.message.peer_as)
+ eq_(0x0004, record.message.attr_len)
+ eq_([mock_bgp_attr], record.message.bgp_attributes)
+ eq_(b'', rest)
+
+ def test_serialize_afi_ipv6(self):
+ prefix = '2001:db8::1'
+ peer_ip = 'fe80::1'
+ body = b'test' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0c\x00\x02' # type=TYPE_TABLE_DUMP(12),
+ # subtype=SUBTYPE_AFI_IPv6(2)
+ b'\x00\x00\x00\x32' # length=50
+ b'\x22\x22\x33\x33' # view_num, seq_num
+ + addrconv.ipv6.text_to_bin(prefix) + # prefix
+ b'\x40\x01' # prefix_len=64, status=1
+ b'\x44\x44\x44\x44' # originated_time
+ + addrconv.ipv6.text_to_bin(peer_ip) + # peer_ip
+ b'\xfd\xe8\x00\x04' # peer_as=65000, attr_len=len(body)
+ + body # bgp_attributes
+ )
+
+ mock_bgp_attr = mock.MagicMock(spec=bgp._PathAttribute)
+ mock_bgp_attr.serialize.return_value = body
+
+ message = mrtlib.TableDumpAfiIPv6MrtMessage(
+ view_num=0x2222,
+ seq_num=0x3333,
+ prefix=prefix,
+ prefix_len=64,
+ status=1,
+ originated_time=0x44444444,
+ peer_ip=peer_ip,
+ peer_as=65000,
+ bgp_attributes=[mock_bgp_attr],
+ # attr_len=4
+ )
+ record = mrtlib.TableDumpMrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibTableDump2MrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.TableDump2MrtRecord.
+ """
+
+ # Note: The classes corresponding to the following subtypes are
+ # tested in TestMrtlibMrtRecord.
+ # - SUBTYPE_PEER_INDEX_TABLE = 1
+ # - SUBTYPE_RIB_IPV4_UNICAST = 2
+ # - SUBTYPE_RIB_IPV4_MULTICAST = 3
+ # - SUBTYPE_RIB_IPV6_UNICAST = 4
+ # - SUBTYPE_RIB_IPV6_MULTICAST = 5
+
+ @mock.patch('ryu.lib.mrtlib.MrtRibEntry.parse')
+ @mock.patch('ryu.lib.packet.bgp.BGPNLRI.parser')
+ def test_parse_rib_generic(self, mock_nlri_parser, mock_rib_entry_parser):
+ nlri_bin = b'nlri' # 4 bytes
+ rib_entries_bin = b'ribs' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0d\x00\x06' # type=TYPE_TABLE_DUMP_V2(13),
+ # subtype=SUBTYPE_RIB_GENERIC(6)
+ b'\x00\x00\x00\x11' # length=17
+ b'\x22\x22\x22\x22' # seq_num
+ b'\x33\x33\x44' # afi, safi
+ + nlri_bin + # nlri
+ b'\x00\x01' # entry_count
+ + rib_entries_bin # rib_entries
+ )
+ buf_entries = (
+ b'\x00\x01' # entry_count
+ + rib_entries_bin # rib_entries
+ )
+
+ mock_bgp_nlri = mock.MagicMock(spec=bgp._AddrPrefix)
+ mock_nlri_parser.return_value = (mock_bgp_nlri, buf_entries)
+
+ mock_rib_entry = mock.MagicMock(spec=mrtlib.MrtRibEntry)
+ mock_rib_entry_parser.return_value = (mock_rib_entry, b'')
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_TABLE_DUMP_V2, record.type)
+ eq_(mrtlib.TableDump2MrtRecord.SUBTYPE_RIB_GENERIC, record.subtype)
+ eq_(0x00000011, record.length)
+ eq_(0x22222222, record.message.seq_num)
+ eq_(0x3333, record.message.afi)
+ eq_(0x44, record.message.safi)
+ eq_(mock_bgp_nlri, record.message.nlri)
+ eq_(0x0001, record.message.entry_count)
+ eq_([mock_rib_entry], record.message.rib_entries)
+ eq_(b'', rest)
+
+ def test_serialize_rib_generic(self):
+ nlri_bin = b'nlri' # 4 bytes
+ rib_entries_bin = b'ribs' # 4 bytes
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x0d\x00\x06' # type=TYPE_TABLE_DUMP_V2(13),
+ # subtype=SUBTYPE_RIB_GENERIC(6)
+ b'\x00\x00\x00\x11' # length=17
+ b'\x22\x22\x22\x22' # seq_num
+ b'\x33\x33\x44' # afi, safi
+ + nlri_bin + # nlri
+ b'\x00\x01' # entry_count
+ + rib_entries_bin # rib_entries
+ )
+
+ mock_bgp_nlri = mock.MagicMock(spec=bgp._AddrPrefix)
+ mock_bgp_nlri.serialize.return_value = nlri_bin
+
+ mock_rib_entry = mock.MagicMock(spec=mrtlib.MrtRibEntry)
+ mock_rib_entry.serialize.return_value = rib_entries_bin
+
+ message = mrtlib.TableDump2RibGenericMrtMessage(
+ seq_num=0x22222222,
+ afi=0x3333,
+ safi=0x44,
+ nlri=mock_bgp_nlri,
+ rib_entries=[mock_rib_entry],
+ # entry_count=1,
+ )
+ record = mrtlib.TableDump2MrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibMrtPeer(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.MrtPeer.
+ """
+
+ def test_parse_two_octet_as(self):
+ bgp_id = '1.1.1.1'
+ ip_addr = '10.0.0.1'
+ buf = (
+ b'\x00' # type
+ + addrconv.ipv4.text_to_bin(bgp_id) # bgp_id
+ + addrconv.ipv4.text_to_bin(ip_addr) + # ip_addr
+ b'\xfd\xe8' # as_num
+ )
+
+ peer, rest = mrtlib.MrtPeer.parse(buf)
+
+ eq_(0, peer.type)
+ eq_(bgp_id, peer.bgp_id)
+ eq_(ip_addr, peer.ip_addr)
+ eq_(65000, peer.as_num)
+ eq_(b'', rest)
+
+ def test_serialize_two_octet_as(self):
+ bgp_id = '1.1.1.1'
+ ip_addr = '10.0.0.1'
+ buf = (
+ b'\x00' # type
+ + addrconv.ipv4.text_to_bin(bgp_id) # bgp_id
+ + addrconv.ipv4.text_to_bin(ip_addr) + # ip_addr
+ b'\xfd\xe8' # as_num
+ )
+
+ peer = mrtlib.MrtPeer(
+ bgp_id=bgp_id,
+ ip_addr=ip_addr,
+ as_num=65000,
+ # type_=0,
+ )
+
+ output = peer.serialize()
+
+ eq_(buf, output)
+
+
+class TestMrtlibBgp4MpMrtRecord(unittest.TestCase):
+ """
+ Test case for ryu.lib.mrtlib.Bgp4MpMrtRecord.
+ """
+
+ # Note: The classes corresponding to the following subtypes are
+ # tested in TestMrtlibMrtRecord.
+ # - SUBTYPE_BGP4MP_MESSAGE = 1
+ # - SUBTYPE_BGP4MP_MESSAGE_AS4 = 4
+ # - SUBTYPE_BGP4MP_STATE_CHANGE_AS4 = 5
+ # - SUBTYPE_BGP4MP_MESSAGE_LOCAL = 6
+ # - SUBTYPE_BGP4MP_MESSAGE_AS4_LOCAL = 7
+
+ def test_parse_state_change_afi_ipv4(self):
+ peer_ip = '10.0.0.1'
+ local_ip = '10.0.0.2'
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x10\x00\x00' # type=TYPE_BGP4MP(16),
+ # subtype=SUBTYPE_BGP4MP_STATE_CHANGE(0)
+ b'\x00\x00\x00\x14' # length=20
+ b'\xfd\xe9\xfd\xea' # peer_as=65001, local_as=65002
+ b'\x22\x22\x00\x01' # if_index, addr_family=AFI_IPv4(1)
+ + addrconv.ipv4.text_to_bin(peer_ip) # peer_ip
+ + addrconv.ipv4.text_to_bin(local_ip) + # local_ip
+ b'\x00\x01\x00\x02' # old_state=STATE_IDLE(1),
+ # new_state=STATE_CONNECT(2)
+ )
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_BGP4MP, record.type)
+ eq_(mrtlib.Bgp4MpMrtRecord.SUBTYPE_BGP4MP_STATE_CHANGE, record.subtype)
+ eq_(0x00000014, record.length)
+ eq_(65001, record.message.peer_as)
+ eq_(65002, record.message.local_as)
+ eq_(0x2222, record.message.if_index)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.AFI_IPv4,
+ record.message.afi)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.STATE_IDLE,
+ record.message.old_state)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.STATE_CONNECT,
+ record.message.new_state)
+ eq_(b'', rest)
+
+ def test_serialize_state_change_afi_ipv4(self):
+ peer_ip = '10.0.0.1'
+ local_ip = '10.0.0.2'
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x10\x00\x00' # type=TYPE_BGP4MP(16),
+ # subtype=SUBTYPE_BGP4MP_STATE_CHANGE(0)
+ b'\x00\x00\x00\x14' # length=20
+ b'\xfd\xe9\xfd\xea' # peer_as=65001, local_as=65002
+ b'\x22\x22\x00\x01' # if_index, addr_family=AFI_IPv4(1)
+ + addrconv.ipv4.text_to_bin(peer_ip) # peer_ip
+ + addrconv.ipv4.text_to_bin(local_ip) + # local_ip
+ b'\x00\x01\x00\x02' # old_state=STATE_IDLE(1),
+ # new_state=STATE_CONNECT(2)
+ )
+
+ message = mrtlib.Bgp4MpStateChangeMrtMessage(
+ peer_as=65001,
+ local_as=65002,
+ if_index=0x2222,
+ peer_ip=peer_ip,
+ local_ip=local_ip,
+ old_state=mrtlib.Bgp4MpStateChangeMrtMessage.STATE_IDLE,
+ new_state=mrtlib.Bgp4MpStateChangeMrtMessage.STATE_CONNECT,
+ # afi=mrtlib.Bgp4MpStateChangeMrtMessage.AFI_IPv4,
+ )
+ record = mrtlib.Bgp4MpMrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
+
+ def test_parse_state_change_afi_ipv6(self):
+ peer_ip = 'fe80::1'
+ local_ip = 'fe80::2'
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x10\x00\x00' # type=TYPE_BGP4MP(16),
+ # subtype=SUBTYPE_BGP4MP_STATE_CHANGE(0)
+ b'\x00\x00\x00\x2c' # length=44
+ b'\xfd\xe9\xfd\xea' # peer_as=65001, local_as=65002
+ b'\x22\x22\x00\x02' # if_index, addr_family=AFI_IPv6(2)
+ + addrconv.ipv6.text_to_bin(peer_ip) # peer_ip
+ + addrconv.ipv6.text_to_bin(local_ip) + # local_ip
+ b'\x00\x01\x00\x02' # old_state=STATE_IDLE(1),
+ # new_state=STATE_CONNECT(2)
+ )
+
+ (record, rest) = mrtlib.MrtRecord.parse(buf)
+
+ eq_(0x11111111, record.timestamp)
+ eq_(mrtlib.MrtRecord.TYPE_BGP4MP, record.type)
+ eq_(mrtlib.Bgp4MpMrtRecord.SUBTYPE_BGP4MP_STATE_CHANGE, record.subtype)
+ eq_(0x0000002c, record.length)
+ eq_(65001, record.message.peer_as)
+ eq_(65002, record.message.local_as)
+ eq_(0x2222, record.message.if_index)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.AFI_IPv6,
+ record.message.afi)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.STATE_IDLE,
+ record.message.old_state)
+ eq_(mrtlib.Bgp4MpStateChangeMrtMessage.STATE_CONNECT,
+ record.message.new_state)
+ eq_(b'', rest)
+
+ def test_serialize_state_change_afi_ipv6(self):
+ peer_ip = 'fe80::1'
+ local_ip = 'fe80::2'
+ buf = (
+ b'\x11\x11\x11\x11' # timestamp
+ b'\x00\x10\x00\x00' # type=TYPE_BGP4MP(16),
+ # subtype=SUBTYPE_BGP4MP_STATE_CHANGE(0)
+ b'\x00\x00\x00\x2c' # length=44
+ b'\xfd\xe9\xfd\xea' # peer_as=65001, local_as=65002
+ b'\x22\x22\x00\x02' # if_index, addr_family=AFI_IPv6(2)
+ + addrconv.ipv6.text_to_bin(peer_ip) # peer_ip
+ + addrconv.ipv6.text_to_bin(local_ip) + # local_ip
+ b'\x00\x01\x00\x02' # old_state=STATE_IDLE(1),
+ # new_state=STATE_CONNECT(2)
+ )
+
+ message = mrtlib.Bgp4MpStateChangeMrtMessage(
+ peer_as=65001,
+ local_as=65002,
+ if_index=0x2222,
+ peer_ip=peer_ip,
+ local_ip=local_ip,
+ old_state=mrtlib.Bgp4MpStateChangeMrtMessage.STATE_IDLE,
+ new_state=mrtlib.Bgp4MpStateChangeMrtMessage.STATE_CONNECT,
+ # afi=mrtlib.Bgp4MpStateChangeMrtMessage.AFI_IPv4,
+ )
+ record = mrtlib.Bgp4MpMrtRecord(
+ message=message,
+ timestamp=0x11111111,
+ # type_=None,
+ # subtype=None,
+ # length=None,
+ )
+
+ output = record.serialize()
+
+ eq_(buf, output)
diff --git a/tests/unit/lib/test_of_config_classes.py b/tests/unit/lib/test_of_config_classes.py
new file mode 100644
index 00000000..5b0dd6d3
--- /dev/null
+++ b/tests/unit/lib/test_of_config_classes.py
@@ -0,0 +1,442 @@
+# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from nose.tools import eq_
+from nose.tools import ok_
+
+import sys
+import lxml.etree as ET
+from formencode.doctest_xml_compare import xml_compare
+
+from ryu.lib.of_config import classes as ofc
+
+
+GET = """<ns0:capable-switch xmlns:ns0="urn:onf:of111:config:yang">
+ <ns0:id>CapableSwitch0</ns0:id>
+ <ns0:resources>
+ <ns0:port>
+ <ns0:resource-id>LogicalSwitch9-Port4</ns0:resource-id>
+ <ns0:number>4</ns0:number>
+ <ns0:name>Port4</ns0:name>
+ <ns0:current-rate>5000</ns0:current-rate>
+ <ns0:max-rate>5000</ns0:max-rate>
+ <ns0:configuration>
+ <ns0:admin-state>up</ns0:admin-state>
+ <ns0:no-receive>false</ns0:no-receive>
+ <ns0:no-forward>false</ns0:no-forward>
+ <ns0:no-packet-in>false</ns0:no-packet-in>
+ </ns0:configuration>
+ <ns0:state>
+ <ns0:oper-state>up</ns0:oper-state>
+ <ns0:blocked>false</ns0:blocked>
+ <ns0:live>true</ns0:live>
+ </ns0:state>
+ <ns0:features>
+ <ns0:current>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:current>
+ <ns0:advertised>
+ <ns0:rate>other</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised>
+ <ns0:supported>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:supported>
+ <ns0:advertised-peer>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised-peer>
+ </ns0:features>
+ </ns0:port>
+ <ns0:port>
+ <ns0:resource-id>LogicalSwitch9-Port3</ns0:resource-id>
+ <ns0:number>3</ns0:number>
+ <ns0:name>Port3</ns0:name>
+ <ns0:current-rate>5000</ns0:current-rate>
+ <ns0:max-rate>5000</ns0:max-rate>
+ <ns0:configuration>
+ <ns0:admin-state>up</ns0:admin-state>
+ <ns0:no-receive>false</ns0:no-receive>
+ <ns0:no-forward>false</ns0:no-forward>
+ <ns0:no-packet-in>false</ns0:no-packet-in>
+ </ns0:configuration>
+ <ns0:state>
+ <ns0:oper-state>up</ns0:oper-state>
+ <ns0:blocked>false</ns0:blocked>
+ <ns0:live>true</ns0:live>
+ </ns0:state>
+ <ns0:features>
+ <ns0:current>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:current>
+ <ns0:advertised>
+ <ns0:rate>other</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised>
+ <ns0:supported>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:supported>
+ <ns0:advertised-peer>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised-peer>
+ </ns0:features>
+ </ns0:port>
+ <ns0:port>
+ <ns0:resource-id>LogicalSwitch7-Port2</ns0:resource-id>
+ <ns0:number>2</ns0:number>
+ <ns0:name>Port2</ns0:name>
+ <ns0:current-rate>5000</ns0:current-rate>
+ <ns0:max-rate>5000</ns0:max-rate>
+ <ns0:configuration>
+ <ns0:admin-state>up</ns0:admin-state>
+ <ns0:no-receive>false</ns0:no-receive>
+ <ns0:no-forward>false</ns0:no-forward>
+ <ns0:no-packet-in>false</ns0:no-packet-in>
+ </ns0:configuration>
+ <ns0:state>
+ <ns0:oper-state>up</ns0:oper-state>
+ <ns0:blocked>false</ns0:blocked>
+ <ns0:live>true</ns0:live>
+ </ns0:state>
+ <ns0:features>
+ <ns0:current>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:current>
+ <ns0:advertised>
+ <ns0:rate>other</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised>
+ <ns0:supported>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:supported>
+ <ns0:advertised-peer>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised-peer>
+ </ns0:features>
+ </ns0:port>
+ <ns0:port>
+ <ns0:resource-id>LogicalSwitch7-Port1</ns0:resource-id>
+ <ns0:number>1</ns0:number>
+ <ns0:name>Port1</ns0:name>
+ <ns0:current-rate>5000</ns0:current-rate>
+ <ns0:max-rate>5000</ns0:max-rate>
+ <ns0:configuration>
+ <ns0:admin-state>up</ns0:admin-state>
+ <ns0:no-receive>false</ns0:no-receive>
+ <ns0:no-forward>false</ns0:no-forward>
+ <ns0:no-packet-in>false</ns0:no-packet-in>
+ </ns0:configuration>
+ <ns0:state>
+ <ns0:oper-state>up</ns0:oper-state>
+ <ns0:blocked>false</ns0:blocked>
+ <ns0:live>true</ns0:live>
+ </ns0:state>
+ <ns0:features>
+ <ns0:current>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:current>
+ <ns0:advertised>
+ <ns0:rate>other</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised>
+ <ns0:supported>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:supported>
+ <ns0:advertised-peer>
+ <ns0:rate>100Mb-FD</ns0:rate>
+ <ns0:auto-negotiate>true</ns0:auto-negotiate>
+ <ns0:medium>copper</ns0:medium>
+ <ns0:pause>unsupported</ns0:pause>
+ </ns0:advertised-peer>
+ </ns0:features>
+ </ns0:port>
+ <ns0:queue>
+ <ns0:resource-id>LogicalSwitch9-Port4-Queue992</ns0:resource-id>
+ <ns0:id>992</ns0:id>
+ <ns0:port>4</ns0:port>
+ <ns0:properties>
+ <ns0:min-rate>10</ns0:min-rate>
+ <ns0:max-rate>130</ns0:max-rate>
+ </ns0:properties>
+ </ns0:queue>
+ <ns0:queue>
+ <ns0:resource-id>LogicalSwitch9-Port4-Queue991</ns0:resource-id>
+ <ns0:id>991</ns0:id>
+ <ns0:port>4</ns0:port>
+ <ns0:properties>
+ <ns0:min-rate>10</ns0:min-rate>
+ <ns0:max-rate>120</ns0:max-rate>
+ </ns0:properties>
+ </ns0:queue>
+ <ns0:queue>
+ <ns0:resource-id>LogicalSwitch7-Port2-Queue994</ns0:resource-id>
+ <ns0:id>994</ns0:id>
+ <ns0:port>2</ns0:port>
+ <ns0:properties>
+ <ns0:min-rate>400</ns0:min-rate>
+ <ns0:max-rate>900</ns0:max-rate>
+ </ns0:properties>
+ </ns0:queue>
+ <ns0:queue>
+ <ns0:resource-id>LogicalSwitch7-Port2-Queue993</ns0:resource-id>
+ <ns0:id>993</ns0:id>
+ <ns0:port>2</ns0:port>
+ <ns0:properties>
+ <ns0:min-rate>200</ns0:min-rate>
+ <ns0:max-rate>300</ns0:max-rate>
+ </ns0:properties>
+ </ns0:queue>
+ </ns0:resources>
+ <ns0:logical-switches>
+ <ns0:switch>
+ <ns0:id>LogicalSwitch9</ns0:id>
+ <ns0:capabilities>
+ <ns0:max-buffered-packets>0</ns0:max-buffered-packets>
+ <ns0:max-tables>255</ns0:max-tables>
+ <ns0:max-ports>16777216</ns0:max-ports>
+ <ns0:flow-statistics>true</ns0:flow-statistics>
+ <ns0:table-statistics>true</ns0:table-statistics>
+ <ns0:port-statistics>true</ns0:port-statistics>
+ <ns0:group-statistics>true</ns0:group-statistics>
+ <ns0:queue-statistics>true</ns0:queue-statistics>
+ <ns0:reassemble-ip-fragments>false</ns0:reassemble-ip-fragments>
+ <ns0:block-looping-ports>false</ns0:block-looping-ports>
+ <ns0:reserved-port-types>
+ <ns0:type>all</ns0:type>
+ <ns0:type>controller</ns0:type>
+ <ns0:type>table</ns0:type>
+ <ns0:type>inport</ns0:type>
+ <ns0:type>any</ns0:type>
+ </ns0:reserved-port-types>
+ <ns0:group-types>
+ <ns0:type>all</ns0:type>
+ <ns0:type>select</ns0:type>
+ <ns0:type>indirect</ns0:type>
+ <ns0:type>fast-failover</ns0:type>
+ </ns0:group-types>
+ <ns0:group-capabilities>
+ <ns0:capability>select-weight</ns0:capability>
+ <ns0:capability>select-liveness</ns0:capability>
+ <ns0:capability>chaining</ns0:capability>
+ </ns0:group-capabilities>
+ <ns0:action-types>
+ <ns0:type>output</ns0:type>
+ <ns0:type>group</ns0:type>
+ <ns0:type>set-queue</ns0:type>
+ <ns0:type>set-mpls-ttl</ns0:type>
+ <ns0:type>dec-mpls-ttl</ns0:type>
+ <ns0:type>set-nw-ttl</ns0:type>
+ <ns0:type>dec-nw-ttl</ns0:type>
+ <ns0:type>copy-ttl-out</ns0:type>
+ <ns0:type>copy-ttl-in</ns0:type>
+ <ns0:type>push-vlan</ns0:type>
+ <ns0:type>pop-vlan</ns0:type>
+ <ns0:type>push-mpls</ns0:type>
+ <ns0:type>pop-mpls</ns0:type>
+ <ns0:type>push-pbb</ns0:type>
+ <ns0:type>pop-pbb</ns0:type>
+ <ns0:type>set-field</ns0:type>
+ </ns0:action-types>
+ <ns0:instruction-types>
+ <ns0:type>goto-table</ns0:type>
+ <ns0:type>write-metadata</ns0:type>
+ <ns0:type>write-actions</ns0:type>
+ <ns0:type>apply-actions</ns0:type>
+ <ns0:type>clear-actions</ns0:type>
+ <ns0:type>meter</ns0:type>
+ </ns0:instruction-types>
+ </ns0:capabilities>
+ <ns0:datapath-id>08:60:6E:7F:74:E7:00:09</ns0:datapath-id>
+ <ns0:enabled>true</ns0:enabled>
+ <ns0:check-controller-certificate>false
+ </ns0:check-controller-certificate>
+ <ns0:lost-connection-behavior>failSecureMode
+ </ns0:lost-connection-behavior>
+ <ns0:controllers>
+ <ns0:controller>
+ <ns0:id>Switch9-Controller</ns0:id>
+ <ns0:role>equal</ns0:role>
+ <ns0:ip-address>127.0.0.1</ns0:ip-address>
+ <ns0:port>6633</ns0:port>
+ <ns0:protocol>tcp</ns0:protocol>
+ <ns0:state>
+ <ns0:connection-state>down</ns0:connection-state>
+ <ns0:supported-versions>1.3</ns0:supported-versions>
+ </ns0:state>
+ </ns0:controller>
+ </ns0:controllers>
+ <ns0:resources>
+ <ns0:port>LogicalSwitch9-Port4</ns0:port>
+ <ns0:port>LogicalSwitch9-Port3</ns0:port>
+ <ns0:queue>LogicalSwitch9-Port4-Queue992</ns0:queue>
+ <ns0:queue>LogicalSwitch9-Port4-Queue991</ns0:queue>
+ </ns0:resources>
+ </ns0:switch>
+ <ns0:switch>
+ <ns0:id>LogicalSwitch7</ns0:id>
+ <ns0:capabilities>
+ <ns0:max-buffered-packets>0</ns0:max-buffered-packets>
+ <ns0:max-tables>255</ns0:max-tables>
+ <ns0:max-ports>16777216</ns0:max-ports>
+ <ns0:flow-statistics>true</ns0:flow-statistics>
+ <ns0:table-statistics>true</ns0:table-statistics>
+ <ns0:port-statistics>true</ns0:port-statistics>
+ <ns0:group-statistics>true</ns0:group-statistics>
+ <ns0:queue-statistics>true</ns0:queue-statistics>
+ <ns0:reassemble-ip-fragments>false</ns0:reassemble-ip-fragments>
+ <ns0:block-looping-ports>false</ns0:block-looping-ports>
+ <ns0:reserved-port-types>
+ <ns0:type>all</ns0:type>
+ <ns0:type>controller</ns0:type>
+ <ns0:type>table</ns0:type>
+ <ns0:type>inport</ns0:type>
+ <ns0:type>any</ns0:type>
+ </ns0:reserved-port-types>
+ <ns0:group-types>
+ <ns0:type>all</ns0:type>
+ <ns0:type>select</ns0:type>
+ <ns0:type>indirect</ns0:type>
+ <ns0:type>fast-failover</ns0:type>
+ </ns0:group-types>
+ <ns0:group-capabilities>
+ <ns0:capability>select-weight</ns0:capability>
+ <ns0:capability>select-liveness</ns0:capability>
+ <ns0:capability>chaining</ns0:capability>
+ </ns0:group-capabilities>
+ <ns0:action-types>
+ <ns0:type>output</ns0:type>
+ <ns0:type>group</ns0:type>
+ <ns0:type>set-queue</ns0:type>
+ <ns0:type>set-mpls-ttl</ns0:type>
+ <ns0:type>dec-mpls-ttl</ns0:type>
+ <ns0:type>set-nw-ttl</ns0:type>
+ <ns0:type>dec-nw-ttl</ns0:type>
+ <ns0:type>copy-ttl-out</ns0:type>
+ <ns0:type>copy-ttl-in</ns0:type>
+ <ns0:type>push-vlan</ns0:type>
+ <ns0:type>pop-vlan</ns0:type>
+ <ns0:type>push-mpls</ns0:type>
+ <ns0:type>pop-mpls</ns0:type>
+ <ns0:type>set-field</ns0:type>
+ </ns0:action-types>
+ <ns0:instruction-types>
+ <ns0:type>goto-table</ns0:type>
+ <ns0:type>write-metadata</ns0:type>
+ <ns0:type>write-actions</ns0:type>
+ <ns0:type>apply-actions</ns0:type>
+ <ns0:type>clear-actions</ns0:type>
+ </ns0:instruction-types>
+ </ns0:capabilities>
+ <ns0:datapath-id>08:60:6E:7F:74:E7:00:07</ns0:datapath-id>
+ <ns0:enabled>true</ns0:enabled>
+ <ns0:check-controller-certificate>false
+ </ns0:check-controller-certificate>
+ <ns0:lost-connection-behavior>failSecureMode
+ </ns0:lost-connection-behavior>
+ <ns0:controllers>
+ <ns0:controller>
+ <ns0:id>Switch7-Controller</ns0:id>
+ <ns0:role>equal</ns0:role>
+ <ns0:ip-address>127.0.0.1</ns0:ip-address>
+ <ns0:port>6633</ns0:port>
+ <ns0:protocol>tcp</ns0:protocol>
+ <ns0:state>
+ <ns0:connection-state>down</ns0:connection-state>
+ <ns0:supported-versions>1.2</ns0:supported-versions>
+ </ns0:state>
+ </ns0:controller>
+ </ns0:controllers>
+ <ns0:resources>
+ <ns0:port>LogicalSwitch7-Port2</ns0:port>
+ <ns0:port>LogicalSwitch7-Port1</ns0:port>
+ <ns0:queue>LogicalSwitch7-Port2-Queue994</ns0:queue>
+ <ns0:queue>LogicalSwitch7-Port2-Queue993</ns0:queue>
+ </ns0:resources>
+ </ns0:switch>
+ </ns0:logical-switches>
+</ns0:capable-switch>
+"""
+
+
+class Test_of_config_classes(unittest.TestCase):
+ """ Test case for ryu.lib.of_config.classes
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_parse(self):
+ for xml0 in [GET]:
+ o = ofc.OFCapableSwitchType.from_xml(xml0)
+ xml1 = o.to_xml('capable-switch')
+ ok_(xml_compare(ET.fromstring(xml0), ET.fromstring(xml1),
+ reporter=sys.stderr.write))
+
+ def test_alt_names(self):
+ xml0 = GET
+ o = ofc.OFCapableSwitchType.from_xml(xml0)
+ eq_(o.logical_switches, getattr(o, 'logical_switches'))
+ eq_(o.logical_switches, getattr(o, 'logical-switches'))
+
+ def test_iterate(self):
+ xml0 = GET
+ o = ofc.OFCapableSwitchType.from_xml(xml0)
+ for lsw in o.logical_switches.switch:
+ ok_(str(lsw.id).startswith('LogicalSwitch'))
diff --git a/tests/unit/lib/test_ofctl.py b/tests/unit/lib/test_ofctl.py
new file mode 100644
index 00000000..57fa8355
--- /dev/null
+++ b/tests/unit/lib/test_ofctl.py
@@ -0,0 +1,643 @@
+# Copyright (C) 2015 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import functools
+import json
+import logging
+from nose.tools import eq_
+import os
+import sys
+import unittest
+
+from ryu.lib import ofctl_v1_0
+from ryu.lib import ofctl_v1_2
+from ryu.lib import ofctl_v1_3
+from ryu.lib import ofctl_v1_4
+from ryu.lib import ofctl_v1_5
+from ryu.ofproto import ofproto_parser
+from ryu.ofproto.ofproto_protocol import ProtocolDesc
+
+from tests import test_lib
+
+LOG = logging.getLogger(__name__)
+
+
+class DummyDatapath(ProtocolDesc):
+
+ def __init__(self, version):
+ super(DummyDatapath, self).__init__(version)
+ self.id = 1 # XXX
+ self.request_msg = None
+ self.reply_msg = None
+ self.waiters = None
+
+ @staticmethod
+ def set_xid(msg):
+ msg.set_xid(0)
+ return 0
+
+ def send_msg(self, msg):
+ msg.serialize()
+ self.request_msg = msg
+
+ if self.reply_msg:
+ lock, msgs = self.waiters[self.id][msg.xid]
+ msgs.append(self.reply_msg)
+ del self.waiters[self.id][msg.xid]
+ lock.set()
+
+ def set_reply(self, msg, waiters):
+ self.reply_msg = msg
+ self.waiters = waiters
+
+
+class Test_ofctl(unittest.TestCase):
+
+ def _test(self, name, dp, method, args, request, reply, expected):
+ print('processing %s ...' % name)
+ waiters = {}
+ dp.set_reply(reply, waiters)
+ if reply:
+ output = method(dp=dp, waiters=waiters, **args)
+ else:
+ output = method(dp=dp, **args)
+
+ # expected message <--> sent message
+ request.serialize()
+ try:
+ eq_(json.dumps(request.to_jsondict(), sort_keys=True),
+ json.dumps(dp.request_msg.to_jsondict(), sort_keys=True))
+ except AssertionError as e:
+ # For debugging
+ json.dump(dp.request_msg.to_jsondict(),
+ open('/tmp/' + name + '_request.json', 'w'),
+ indent=3, sort_keys=True)
+ raise e
+
+ # expected output <--> return of ofctl
+ def _remove(d, names):
+ def f(x):
+ return _remove(x, names)
+
+ if isinstance(d, list):
+ return list(map(f, d))
+ if isinstance(d, dict):
+ d2 = {}
+ for k, v in d.items():
+ if k in names:
+ continue
+ d2[k] = f(v)
+ return d2
+ return d
+
+ expected = _remove(expected, ['len', 'length'])
+ output = _remove(output, ['len', 'length'])
+ try:
+ eq_(json.dumps(expected, sort_keys=True),
+ json.dumps(output, sort_keys=True))
+ except AssertionError as e:
+ # For debugging
+ json.dump(output, open('/tmp/' + name + '_reply.json', 'w'),
+ indent=4)
+ raise e
+
+
+def _add_tests():
+ _ofp_vers = {
+ 'of10': 0x01,
+ 'of12': 0x03,
+ 'of13': 0x04,
+ 'of14': 0x05,
+ 'of15': 0x06,
+ }
+
+ _test_cases = {
+ 'of10': [
+ {
+ 'method': ofctl_v1_0.mod_flow_entry,
+ 'request': '1-2-ofp_flow_mod.packet.json',
+ 'reply': None
+ },
+ ],
+ 'of12': [
+ {
+ 'method': ofctl_v1_2.get_desc_stats,
+ 'request': '3-24-ofp_desc_stats_request.packet.json',
+ 'reply': '3-0-ofp_desc_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_stats,
+ 'request': '3-37-ofp_queue_stats_request.packet.json',
+ 'reply': '3-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet1.json',
+ 'reply': '3-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet2.json',
+ 'reply': '3-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet3.json',
+ 'reply': '3-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_config,
+ 'request': '3-35-ofp_queue_get_config_request.packet.json',
+ 'reply': '3-36-ofp_queue_get_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_queue_config,
+ 'request': 'lib-ofctl-ofp_queue_get_config_request.packet.json',
+ 'reply': '3-36-ofp_queue_get_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_flow_stats,
+ 'request': '3-11-ofp_flow_stats_request.packet.json',
+ 'reply': '3-12-ofp_flow_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_aggregate_flow_stats,
+ 'request': '3-25-ofp_aggregate_stats_request.packet.json',
+ 'reply': '3-26-ofp_aggregate_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_table_stats,
+ 'request': '3-27-ofp_table_stats_request.packet.json',
+ 'reply': '3-28-ofp_table_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_port_stats,
+ 'request': '3-29-ofp_port_stats_request.packet.json',
+ 'reply': '3-30-ofp_port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_port_stats,
+ 'request': 'lib-ofctl-ofp_port_stats_request.packet.json',
+ 'reply': '3-30-ofp_port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_group_stats,
+ 'request': '3-61-ofp_group_stats_request.packet.json',
+ 'reply': '3-62-ofp_group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_group_stats,
+ 'request': 'lib-ofctl-ofp_group_stats_request.packet.json',
+ 'reply': '3-62-ofp_group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_group_features,
+ 'request': '3-31-ofp_group_features_stats_request.packet.json',
+ 'reply': '3-32-ofp_group_features_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.get_group_desc,
+ 'request': '3-33-ofp_group_desc_stats_request.packet.json',
+ 'reply': '3-34-ofp_group_desc_stats_reply.packet.json'
+ },
+ # In OpenFlow 1.2, ofp_port_desc is not defined.
+ # We use ofp_features_request to get ports description instead.
+ {
+ 'method': ofctl_v1_2.get_port_desc,
+ 'request': '3-5-ofp_features_request.packet.json',
+ 'reply': '3-6-ofp_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_2.mod_flow_entry,
+ 'request': '3-2-ofp_flow_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_2.mod_group_entry,
+ 'request': '3-21-ofp_group_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_2.mod_port_behavior,
+ 'request': '3-22-ofp_port_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_2.send_experimenter,
+ 'request': '3-16-ofp_experimenter.packet.json',
+ 'reply': None
+ },
+ ],
+ 'of13': [
+ {
+ 'method': ofctl_v1_3.get_desc_stats,
+ 'request': '4-24-ofp_desc_request.packet.json',
+ 'reply': '4-0-ofp_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_stats,
+ 'request': '4-37-ofp_queue_stats_request.packet.json',
+ 'reply': '4-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet1.json',
+ 'reply': '4-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet2.json',
+ 'reply': '4-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet3.json',
+ 'reply': '4-38-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_config,
+ 'request': '4-35-ofp_queue_get_config_request.packet.json',
+ 'reply': '4-36-ofp_queue_get_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_queue_config,
+ 'request': 'lib-ofctl-ofp_queue_get_config_request.packet.json',
+ 'reply': '4-36-ofp_queue_get_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_flow_stats,
+ 'request': '4-11-ofp_flow_stats_request.packet.json',
+ 'reply': '4-12-ofp_flow_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_aggregate_flow_stats,
+ 'request': '4-25-ofp_aggregate_stats_request.packet.json',
+ 'reply': '4-26-ofp_aggregate_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_table_stats,
+ 'request': '4-27-ofp_table_stats_request.packet.json',
+ 'reply': '4-28-ofp_table_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_table_features,
+ 'request': 'lib-ofctl-ofp_table_features_request.packet.json',
+ 'reply': '4-56-ofp_table_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_port_stats,
+ 'request': '4-29-ofp_port_stats_request.packet.json',
+ 'reply': '4-30-ofp_port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_port_stats,
+ 'request': 'lib-ofctl-ofp_port_stats_request.packet.json',
+ 'reply': '4-30-ofp_port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_meter_stats,
+ 'request': '4-49-ofp_meter_stats_request.packet.json',
+ 'reply': '4-50-ofp_meter_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_meter_stats,
+ 'request': 'lib-ofctl-ofp_meter_stats_request.packet.json',
+ 'reply': '4-50-ofp_meter_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_meter_features,
+ 'request': '4-51-ofp_meter_features_request.packet.json',
+ 'reply': '4-52-ofp_meter_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_meter_config,
+ 'request': '4-47-ofp_meter_config_request.packet.json',
+ 'reply': '4-48-ofp_meter_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_meter_config,
+ 'request': 'lib-ofctl-ofp_meter_config_request.packet.json',
+ 'reply': '4-48-ofp_meter_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_group_stats,
+ 'request': '4-57-ofp_group_stats_request.packet.json',
+ 'reply': '4-58-ofp_group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_group_stats,
+ 'request': 'lib-ofctl-ofp_group_stats_request.packet.json',
+ 'reply': '4-58-ofp_group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_group_features,
+ 'request': '4-31-ofp_group_features_request.packet.json',
+ 'reply': '4-32-ofp_group_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_group_desc,
+ 'request': '4-33-ofp_group_desc_request.packet.json',
+ 'reply': '4-34-ofp_group_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.get_port_desc,
+ 'request': '4-53-ofp_port_desc_request.packet.json',
+ 'reply': '4-54-ofp_port_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_3.mod_flow_entry,
+ 'request': '4-2-ofp_flow_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_3.mod_meter_entry,
+ 'request': '4-45-ofp_meter_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_3.mod_group_entry,
+ 'request': '4-21-ofp_group_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_3.mod_port_behavior,
+ 'request': '4-22-ofp_port_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_3.send_experimenter,
+ 'request': '4-16-ofp_experimenter.packet.json',
+ 'reply': None
+ },
+ ],
+ 'of14': [
+ {
+ 'method': ofctl_v1_4.get_desc_stats,
+ 'request': '5-24-ofp_desc_request.packet.json',
+ 'reply': '5-0-ofp_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_queue_stats,
+ 'request': '5-35-ofp_queue_stats_request.packet.json',
+ 'reply': '5-36-ofp_queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_queue_desc,
+ 'request': '5-63-ofp_queue_desc_request.packet.json',
+ 'reply': '5-64-ofp_queue_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_flow_stats,
+ 'request': '5-11-ofp_flow_stats_request.packet.json',
+ 'reply': '5-12-ofp_flow_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_aggregate_flow_stats,
+ 'request': '5-25-ofp_aggregate_stats_request.packet.json',
+ 'reply': '5-26-ofp_aggregate_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_table_stats,
+ 'request': '5-27-ofp_table_stats_request.packet.json',
+ 'reply': '5-28-ofp_table_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_table_features,
+ 'request': 'lib-ofctl-ofp_table_features_request.packet.json',
+ 'reply': '5-54-ofp_table_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_port_stats,
+ 'request': '5-29-ofp_port_stats_request.packet.json',
+ 'reply': '5-30-ofp_port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_meter_stats,
+ 'request': '5-47-ofp_meter_stats_request.packet.json',
+ 'reply': '5-48-ofp_meter_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_meter_features,
+ 'request': '5-49-ofp_meter_features_request.packet.json',
+ 'reply': '5-50-ofp_meter_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_meter_config,
+ 'request': '5-45-ofp_meter_config_request.packet.json',
+ 'reply': '5-46-ofp_meter_config_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_group_stats,
+ 'request': '5-55-ofp_group_stats_request.packet.json',
+ 'reply': '5-56-ofp_group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_group_features,
+ 'request': '5-31-ofp_group_features_request.packet.json',
+ 'reply': '5-32-ofp_group_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_group_desc,
+ 'request': '5-33-ofp_group_desc_request.packet.json',
+ 'reply': '5-34-ofp_group_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.get_port_desc,
+ 'request': '5-51-ofp_port_desc_request.packet.json',
+ 'reply': '5-52-ofp_port_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_4.mod_flow_entry,
+ 'request': '5-2-ofp_flow_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_4.mod_meter_entry,
+ 'request': '5-43-ofp_meter_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_4.mod_group_entry,
+ 'request': '5-21-ofp_group_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_4.mod_port_behavior,
+ 'request': '5-22-ofp_port_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_4.send_experimenter,
+ 'request': '5-16-ofp_experimenter.packet.json',
+ 'reply': None
+ },
+ ],
+ 'of15': [
+ {
+ 'method': ofctl_v1_5.get_desc_stats,
+ 'request': 'libofproto-OFP15-desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_queue_stats,
+ 'request': 'lib-ofctl-ofp_queue_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-queue_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_queue_desc,
+ 'request': 'libofproto-OFP15-queue_desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-queue_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_flow_stats,
+ 'request': 'libofproto-OFP15-flow_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-flow_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_flow_desc_stats,
+ 'request': 'libofproto-OFP15-flow_desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-flow_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_flow_desc_stats,
+ 'request': 'lib-ofctl-OFP15-flow_desc_request.packet.json',
+ 'reply': 'lib-ofctl-OFP15-flow_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_aggregate_flow_stats,
+ 'request': 'libofproto-OFP15-aggregate_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-aggregate_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_table_stats,
+ 'request': 'libofproto-OFP15-table_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-table_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_table_features,
+ 'request': 'lib-ofctl-ofp_table_features_request.packet.json',
+ 'reply': 'libofproto-OFP15-table_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_port_stats,
+ 'request': 'libofproto-OFP15-port_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-port_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_meter_stats,
+ 'request': 'libofproto-OFP15-meter_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-meter_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_meter_features,
+ 'request': 'libofproto-OFP15-meter_features_request.packet.json',
+ 'reply': 'libofproto-OFP15-meter_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_meter_desc,
+ 'request': 'libofproto-OFP15-meter_desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-meter_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_group_stats,
+ 'request': 'libofproto-OFP15-group_stats_request.packet.json',
+ 'reply': 'libofproto-OFP15-group_stats_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_group_features,
+ 'request': 'libofproto-OFP15-group_features_request.packet.json',
+ 'reply': 'libofproto-OFP15-group_features_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_group_desc,
+ 'request': 'libofproto-OFP15-group_desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-group_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.get_port_desc,
+ 'request': 'libofproto-OFP15-port_desc_request.packet.json',
+ 'reply': 'libofproto-OFP15-port_desc_reply.packet.json'
+ },
+ {
+ 'method': ofctl_v1_5.mod_flow_entry,
+ 'request': 'libofproto-OFP15-flow_mod_no_nx.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_5.mod_flow_entry,
+ 'request': 'lib-ofctl-OFP15-flow_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_5.mod_meter_entry,
+ 'request': 'libofproto-OFP15-meter_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_5.mod_group_entry,
+ 'request': 'libofproto-OFP15-group_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_5.mod_port_behavior,
+ 'request': 'libofproto-OFP15-port_mod.packet.json',
+ 'reply': None
+ },
+ {
+ 'method': ofctl_v1_5.send_experimenter,
+ 'request': 'libofproto-OFP15-experimenter.packet.json',
+ 'reply': None
+ }
+ ],
+ }
+
+ def _jsonfile_to_msg(datapath, jsonfile):
+ return ofproto_parser.ofp_msg_from_jsondict(
+ datapath, json.load(open(jsonfile)))
+
+ this_dir = os.path.dirname(sys.modules[__name__].__file__)
+ parser_json_root = os.path.join(this_dir, '../ofproto/json/')
+ ofctl_json_root = os.path.join(this_dir, 'ofctl_json/')
+
+ for ofp_ver, tests in _test_cases.items():
+ dp = DummyDatapath(_ofp_vers[ofp_ver])
+ parser_json_dir = os.path.join(parser_json_root, ofp_ver)
+ ofctl_json_dir = os.path.join(ofctl_json_root, ofp_ver)
+ for test in tests:
+ name = 'test_ofctl_' + ofp_ver + '_' + test['request']
+ print('adding %s ...' % name)
+ args = {}
+ args_json_path = os.path.join(ofctl_json_dir, test['request'])
+ if os.path.exists(args_json_path):
+ args = json.load(open(args_json_path))
+ request = _jsonfile_to_msg(
+ dp, os.path.join(parser_json_dir, test['request']))
+ reply = None
+ expected = None
+ if test['reply']:
+ reply = _jsonfile_to_msg(
+ dp, os.path.join(parser_json_dir, test['reply']))
+ expected = json.load(
+ open(os.path.join(ofctl_json_dir, test['reply'])))
+ f = functools.partial(
+ Test_ofctl._test, name=name, dp=dp, method=test['method'],
+ args=args, request=request, reply=reply, expected=expected)
+ test_lib.add_method(Test_ofctl, name, f)
+
+
+_add_tests()
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/tests/unit/lib/test_ofctl_action_match.py b/tests/unit/lib/test_ofctl_action_match.py
new file mode 100644
index 00000000..2b8707cf
--- /dev/null
+++ b/tests/unit/lib/test_ofctl_action_match.py
@@ -0,0 +1,869 @@
+# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+
+import unittest
+import logging
+import netaddr
+import functools
+import inspect
+
+from nose.tools import *
+
+from ryu.lib import addrconv
+from ryu.lib import ofctl_v1_0
+from ryu.ofproto import ofproto_v1_0, ofproto_v1_0_parser
+from ryu.lib import ofctl_v1_2
+from ryu.ofproto import ofproto_v1_2, ofproto_v1_2_parser
+from ryu.lib import ofctl_v1_3
+from ryu.ofproto import ofproto_v1_3, ofproto_v1_3_parser
+from ryu.ofproto import ofproto_protocol
+from ryu.ofproto import inet
+
+from tests import test_lib
+
+LOG = logging.getLogger('test_ofctl_v1_2, v1_3')
+
+""" Common Functions """
+
+
+def _str_to_int(v):
+ try:
+ return int(v, 0)
+ except (ValueError, TypeError):
+ return v
+
+
+def _to_match_eth(value):
+ if '/' in value:
+ value = value.split('/')
+ return value[0], value[1]
+ else:
+ return value, None
+
+
+def _to_match_ip(value):
+ if '/' in value:
+ ip = netaddr.ip.IPNetwork(value)
+ ip_addr = str(ip.network)
+ ip_mask = str(ip.netmask)
+ return ip_addr, ip_mask
+ else:
+ return value, None
+
+
+def _to_match_masked_int(value):
+ if isinstance(value, str) and '/' in value:
+ value = value.split('/')
+ return _str_to_int(value[0]), _str_to_int(value[1])
+ else:
+ return _str_to_int(value), None
+
+
+def _to_masked_int_str(value):
+ v, m = _to_match_masked_int(value)
+ v &= m
+ return '%d/%d' % (v, m)
+
+
+conv_of10_to_of12_dict = {
+ 'dl_dst': 'eth_dst',
+ 'dl_src': 'eth_src',
+ 'dl_type': 'eth_type',
+ 'dl_vlan': 'vlan_vid',
+ 'nw_src': 'ipv4_src',
+ 'nw_dst': 'ipv4_dst',
+ 'nw_proto': 'ip_proto'
+}
+
+
+conv_of12_to_of10_dict = {
+ 'eth_src': 'dl_src',
+ 'eth_dst': 'dl_dst',
+ 'eth_type': 'dl_type',
+ 'ipv4_dst': 'nw_dst',
+ 'ipv4_src': 'nw_src',
+ 'ip_proto': 'nw_proto',
+ 'vlan_vid': 'dl_vlan',
+ 'tcp_src': 'tp_src',
+ 'tcp_dst': 'tp_dst',
+ 'udp_src': 'tp_src',
+ 'udp_dst': 'tp_dst'
+}
+
+""" Test_ofctl """
+
+
+class Test_ofctl(unittest.TestCase):
+
+ def __init__(self, methodName):
+ super(Test_ofctl, self).__init__(methodName)
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def _test_actions(self, act, test):
+ dp = ofproto_protocol.ProtocolDesc(version=test.ver)
+ act_type = act["type"]
+
+ # str -> action
+ insts = test.to_actions(dp, [act])
+
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ action = insts[0]
+ self._equal_str_to_act(action, act, act_type, test)
+ else:
+ inst = insts[0]
+ self._equal_str_to_inst(inst, act, act_type, test)
+
+ # action -> str
+ inst_str = test.actions_to_str(insts)
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ act_str = inst_str
+ self._equal_act_to_str(act_str, act, act_type, test)
+ else:
+ self._equal_inst_to_str(inst_str, act, act_type, test)
+
+ def _test_match(self, attrs, test):
+ dp = ofproto_protocol.ProtocolDesc(version=test.ver)
+
+ # str -> match
+ match = test.to_match(dp, attrs)
+
+ for key, value in attrs.items():
+ key = self._conv_key(test, key, attrs)
+ self._equal_str_to_match(key, value, match, test)
+
+ # match -> str
+ match_str = test.match_to_str(match)
+
+ for key, value in attrs.items():
+ if key in conv_of12_to_of10_dict:
+ key_old = conv_of12_to_of10_dict[key]
+ else:
+ key_old = key
+ self._equal_match_to_str(key_old, value, match_str, test)
+
+ def _equal_str_to_inst(self, inst, act, act_type, test):
+ if act_type in test.supported_action:
+ cls = test.supported_action[act_type]
+ else:
+ cls = None
+ if act_type == 'GOTO_TABLE':
+ ok_(isinstance(inst, cls))
+ eq_(inst.table_id, act["table_id"])
+ elif act_type == 'WRITE_METADATA':
+ ok_(isinstance(inst, cls))
+ eq_(inst.metadata, act["metadata"])
+ eq_(inst.metadata_mask, act["metadata_mask"])
+ elif act_type == 'METER':
+ ok_(isinstance(inst, cls))
+ eq_(inst.meter_id, act["meter_id"])
+ elif act_type == 'WRITE_ACTIONS':
+ ok_(isinstance(inst, cls))
+ eq_(inst.type, test._ofproto.OFPIT_WRITE_ACTIONS)
+ self._equal_str_to_act(inst.actions[0],
+ act["actions"][0],
+ act["actions"][0]["type"],
+ test)
+ elif act_type == 'CLEAR_ACTIONS':
+ ok_(isinstance(inst, cls))
+ eq_(inst.type, test._ofproto.OFPIT_CLEAR_ACTIONS)
+ else:
+ # APPLY_ACTIONS or Uknown Action Type
+ ok_(isinstance(inst, test._parser.OFPInstructionActions))
+ eq_(inst.type, test._ofproto.OFPIT_APPLY_ACTIONS)
+ self._equal_str_to_act(inst.actions[0], act,
+ act_type, test)
+
+ def _equal_str_to_act(self, action, act, act_type, test):
+ if act_type in test.supported_action:
+ cls = test.supported_action[act_type]
+ else:
+ cls = None
+ ok_(isinstance(action, cls))
+ if act_type == 'OUTPUT':
+ eq_(action.port, act["port"])
+ elif act_type == 'SET_VLAN_VID':
+ eq_(action.vlan_vid, act["vlan_vid"])
+ elif act_type == 'SET_VLAN_PCP':
+ eq_(action.vlan_pcp, act["vlan_pcp"])
+ elif act_type == 'SET_DL_SRC':
+ eq_(addrconv.mac.bin_to_text(action.dl_addr),
+ act["dl_src"])
+ elif act_type == 'SET_DL_DST':
+ eq_(addrconv.mac.bin_to_text(action.dl_addr),
+ act["dl_dst"])
+ elif act_type == 'SET_NW_SRC':
+ ip = netaddr.ip.IPAddress(action.nw_addr)
+ eq_(str(ip), act["nw_src"])
+ elif act_type == 'SET_NW_DST':
+ ip = netaddr.ip.IPAddress(action.nw_addr)
+ eq_(str(ip), act["nw_dst"])
+ elif act_type == 'SET_NW_TOS':
+ eq_(action.tos, act["nw_tos"])
+ elif act_type == 'SET_TP_SRC':
+ eq_(action.tp, act["tp_src"])
+ elif act_type == 'SET_TP_DST':
+ eq_(action.tp, act["tp_dst"])
+ elif act_type == 'ENQUEUE':
+ eq_(action.queue_id, act["queue_id"])
+ eq_(action.port, act["port"])
+ elif act_type == 'SET_MPLS_TTL':
+ eq_(action.mpls_ttl, act["mpls_ttl"])
+ elif act_type in ['PUSH_VLAN', 'PUSH_MPLS',
+ 'POP_MPLS', 'PUSH_PBB']:
+ eq_(action.ethertype, act["ethertype"])
+ elif act_type == 'SET_QUEUE':
+ eq_(action.queue_id, act["queue_id"])
+ elif act_type == 'GROUP':
+ eq_(action.group_id, act["group_id"])
+ elif act_type == 'SET_NW_TTL':
+ eq_(action.nw_ttl, act["nw_ttl"])
+ elif act_type == 'SET_FIELD':
+ eq_(action.key, act['field'])
+ eq_(action.value, act['value'])
+ elif act_type in ['STRIP_VLAN', 'COPY_TTL_OUT',
+ 'COPY_TTL_IN', 'DEC_MPLS_TTL',
+ 'POP_VLAN', 'DEC_NW_TTL', 'POP_PBB']:
+ pass
+ else: # Uknown Action Type
+ assert False
+
+ def _equal_inst_to_str(self, inst_str, act, act_type, test):
+ if act_type == 'WRITE_ACTIONS':
+ act_str = inst_str[0]["WRITE_ACTIONS"]
+ act = act["actions"][0]
+ act_type = act["type"]
+ self._equal_act_to_str(act_str, act, act_type, test)
+ else:
+ inst_str_list = inst_str[0].split(':', 1)
+ eq_(inst_str_list[0], act_type)
+ if act_type == 'GOTO_TABLE':
+ eq_(int(inst_str_list[1]), act["table_id"])
+ elif act_type == 'WRITE_METADATA':
+ met = inst_str_list[1].split('/')
+ eq_(int(met[0], 16), act["metadata"])
+ eq_(int(met[1], 16), act["metadata_mask"])
+ elif act_type == 'METER':
+ eq_(int(inst_str_list[1]), act["meter_id"])
+ elif act_type == 'CLEAR_ACTIONS':
+ pass
+ else:
+ # APPLY_ACTIONS
+ act_str = inst_str
+ self._equal_act_to_str(act_str, act, act_type, test)
+
+ def _equal_act_to_str(self, act_str, act, act_type, test):
+ act_str_list = act_str[0].split(':', 1)
+ eq_(act_str_list[0], act_type)
+ if act_type == 'OUTPUT':
+ eq_(int(act_str_list[1]), act["port"])
+ elif act_type == 'SET_VLAN_VID':
+ eq_(int(act_str_list[1]), act["vlan_vid"])
+ elif act_type == 'SET_VLAN_PCP':
+ eq_(int(act_str_list[1]), act["vlan_pcp"])
+ elif act_type == 'SET_DL_SRC':
+ eq_(act_str_list[1], act["dl_src"])
+ elif act_type == 'SET_DL_DST':
+ eq_(act_str_list[1], act["dl_dst"])
+ elif act_type == 'SET_NW_SRC':
+ eq_(act_str_list[1], act["nw_src"])
+ elif act_type == 'SET_NW_DST':
+ eq_(act_str_list[1], act["nw_dst"])
+ elif act_type == 'SET_NW_TOS':
+ eq_(int(act_str_list[1]), act["nw_tos"])
+ elif act_type == 'SET_TP_SRC':
+ eq_(int(act_str_list[1]), act["tp_src"])
+ elif act_type == 'SET_TP_DST':
+ eq_(int(act_str_list[1]), act["tp_dst"])
+ elif act_type == 'ENQUEUE':
+ enq = act_str_list[1].split(':')
+ eq_(int(enq[0], 10), act["port"])
+ eq_(int(enq[1], 10), act["queue_id"])
+ elif act_type == 'SET_MPLS_TTL':
+ eq_(int(act_str_list[1]), act["mpls_ttl"])
+ elif act_type == 'PUSH_VLAN':
+ eq_(int(act_str_list[1]), act["ethertype"])
+ elif act_type == 'PUSH_MPLS':
+ eq_(int(act_str_list[1]), act["ethertype"])
+ elif act_type == 'POP_MPLS':
+ eq_(int(act_str_list[1]), act["ethertype"])
+ elif act_type == 'SET_QUEUE':
+ eq_(int(act_str_list[1]), act["queue_id"])
+ elif act_type == 'GROUP':
+ eq_(int(act_str_list[1]), act["group_id"])
+ elif act_type == 'SET_NW_TTL':
+ eq_(int(act_str_list[1]), act["nw_ttl"])
+ elif act_type == 'SET_FIELD':
+ field, value = act_str_list[1].split(':')
+ eq_(field.strip(' {'), act["field"])
+ eq_(int(value.strip('} ')), act["value"])
+ elif act_type == 'PUSH_PBB':
+ eq_(int(act_str_list[1]), act["ethertype"])
+ elif act_type in ['STRIP_VLAN', 'COPY_TTL_OUT',
+ 'COPY_TTL_IN', 'DEC_MPLS_TTL',
+ 'POP_VLAN', 'DEC_NW_TTL', 'POP_PBB']:
+ pass
+ else:
+ assert False
+
+ def _equal_str_to_match(self, key, value, match, test):
+ field_value = self._get_field_value(test, key, match)
+
+ if key in ['eth_src', 'eth_dst', 'arp_sha', 'arp_tha']:
+ # MAC address
+ eth, mask = _to_match_eth(value)
+ if mask is not None:
+ # with mask
+ for i in range(0, len(mask)):
+ if mask[i] == 'f':
+ eq_(eth[i], field_value[0][i])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(eth, field_value)
+ return
+ elif key in ['dl_src', 'dl_dst']:
+ eth, mask = _to_match_eth(value)
+ field_value = addrconv.mac.bin_to_text(field_value)
+ eq_(eth, field_value)
+ return
+ elif key in ['ipv4_src', 'ipv4_dst', 'arp_spa', 'arp_tpa']:
+ # IPv4 address
+ ipv4, mask = _to_match_ip(value)
+ if mask is not None:
+ # with mask
+ eq_(ipv4, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv4, field_value)
+ return
+ elif key in ['nw_src', 'nw_dst']:
+ # IPv4 address
+ ipv4, mask = _to_match_ip(value)
+ field_value = _to_match_ip(field_value)
+ if mask is not None:
+ # with mask
+ eq_(ipv4, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv4, field_value[0])
+ return
+ elif key in ['ipv6_src', 'ipv6_dst']:
+ # IPv6 address
+ ipv6, mask = _to_match_ip(value)
+ if mask is not None:
+ # with mask
+ eq_(ipv6, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv6, field_value)
+ return
+ elif key == 'vlan_vid':
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ eq_(value, field_value)
+ else:
+ eq_(test.expected_value['vlan_vid'][
+ value]['to_match'], field_value)
+ return
+ else:
+ if isinstance(value, str) and '/' in value:
+ # with mask
+ value, mask = _to_match_masked_int(value)
+ value &= mask
+ eq_(value, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(_str_to_int(value), field_value)
+ return
+
+ def _equal_match_to_str(self, key, value, match_str, test):
+ field_value = match_str[key]
+ if key in ['dl_src', 'dl_dst', 'arp_sha', 'arp_tha']:
+ # MAC address
+ eth, mask = _to_match_eth(value)
+ if mask is not None:
+ # with mask
+ field_value = field_value.split('/')
+ for i in range(0, len(mask)):
+ if mask[i] == 'f':
+ eq_(eth[i], field_value[0][i])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(eth, field_value)
+ return
+ elif key in['nw_src', 'nw_dst', 'arp_spa', 'arp_tpa']:
+ # IPv4 address
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ ipv4, mask = _to_match_ip(value)
+ field_value = _to_match_ip(field_value)
+ if mask is not None:
+ # with mask
+ eq_(ipv4, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv4, field_value[0])
+ else:
+ ipv4, mask = _to_match_ip(value)
+ if mask is not None:
+ # with mask
+ field_value = field_value.split('/')
+ eq_(ipv4, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv4, field_value)
+ return
+ elif key in ['ipv6_src', 'ipv6_dst']:
+ # IPv6 address
+ ipv6, mask = _to_match_ip(value)
+ if mask is not None:
+ # with mask
+ field_value = field_value.split('/')
+ eq_(ipv6, field_value[0])
+ eq_(mask, field_value[1])
+ else:
+ # without mask
+ eq_(ipv6, field_value)
+ return
+ elif key == 'dl_vlan':
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ eq_(value, field_value)
+ else:
+ eq_(test.expected_value['vlan_vid'][
+ value]['to_str'], field_value)
+ return
+ else:
+ if isinstance(value, str) and '/' in value:
+ # with mask
+ value = _to_masked_int_str(value)
+ eq_(value, field_value)
+ else:
+ # without mask
+ eq_(_str_to_int(value), field_value)
+ return
+
+ def _conv_key(self, test, key, attrs):
+ if test.ver != ofproto_v1_0.OFP_VERSION:
+ if key in conv_of10_to_of12_dict:
+ # For old field name
+ key = conv_of10_to_of12_dict[key]
+ elif key == 'tp_src' or key == 'tp_dst':
+ # TCP/UDP port
+ conv = {inet.IPPROTO_TCP: {'tp_src': 'tcp_src',
+ 'tp_dst': 'tcp_dst'},
+ inet.IPPROTO_UDP: {'tp_src': 'udp_src',
+ 'tp_dst': 'udp_dst'}}
+ ip_proto = attrs.get('nw_proto', attrs.get('ip_proto', 0))
+ key = conv[ip_proto][key]
+
+ return key
+
+ def _get_field_value(self, test, key, match):
+ if test.ver == ofproto_v1_0.OFP_VERSION:
+ members = inspect.getmembers(match)
+ for member in members:
+ if member[0] == key:
+ field_value = member[1]
+ elif member[0] == 'wildcards':
+ wildcards = member[1]
+ if key == 'nw_src':
+ field_value = test.nw_src_to_str(wildcards, field_value)
+ elif key == 'nw_dst':
+ field_value = test.nw_dst_to_str(wildcards, field_value)
+ else:
+ field_value = match[key]
+
+ return field_value
+
+
+class test_data_base(object):
+ # followings must be an attribute of subclass.
+ # _ofctl
+ # _ofproto
+
+ def __init__(self):
+ self.ver = self._ofproto.OFP_VERSION
+ self.to_match = self._ofctl.to_match
+ self.match_to_str = self._ofctl.match_to_str
+ self.to_actions = self._ofctl.to_actions
+ self.actions_to_str = self._ofctl.actions_to_str
+
+
+class test_data_v1_0(test_data_base):
+ """ Test_data for of_v1_0 """
+ _ofctl = ofctl_v1_0
+ _ofproto = ofproto_v1_0
+ _parser = ofproto_v1_0_parser
+
+ def __init__(self):
+ super(test_data_v1_0, self).__init__()
+ self.nw_src_to_str = self._ofctl.nw_src_to_str
+ self.nw_dst_to_str = self._ofctl.nw_dst_to_str
+ self.supported_action = {}
+ self.act_list = [
+ {'type': 'OUTPUT', 'port': 3},
+ {'type': 'SET_VLAN_VID', 'vlan_vid': 5},
+ {'type': 'SET_VLAN_PCP', 'vlan_pcp': 3},
+ {'type': 'STRIP_VLAN'},
+ {'type': 'SET_DL_SRC', 'dl_src': 'aa:bb:cc:11:22:33'},
+ {'type': 'SET_DL_DST', 'dl_dst': 'aa:bb:cc:11:22:33'},
+ {'type': 'SET_NW_SRC', 'nw_src': '10.0.0.1'},
+ {'type': 'SET_NW_DST', 'nw_dst': '10.0.0.1'},
+ {'type': 'SET_NW_TOS', 'nw_tos': 184},
+ {'type': 'SET_TP_SRC', 'tp_src': 8080},
+ {'type': 'SET_TP_DST', 'tp_dst': 8080},
+ {'type': 'ENQUEUE', 'queue_id': 3, 'port': 1}
+ ]
+ self.attr_list = [
+ {'in_port': 7},
+ {'dl_src': 'aa:bb:cc:11:22:33'},
+ {'dl_dst': 'aa:bb:cc:11:22:33'},
+ {'dl_vlan': 5},
+ {'dl_vlan_pcp': 3},
+ {'dl_type': 123},
+ {'nw_tos': 16},
+ {'nw_proto': 5},
+ {'nw_src': '192.168.0.1'},
+ {'nw_src': '192.168.0.1/24'},
+ {'nw_dst': '192.168.0.1'},
+ {'nw_dst': '192.168.0.1/24'},
+ {'tp_src': 1},
+ {'tp_dst': 2}
+ ]
+ self.set_action()
+
+ def set_action(self):
+ self.supported_action.update(
+ {
+ 'OUTPUT': self._parser.OFPActionOutput,
+ 'SET_VLAN_VID': self._parser.OFPActionVlanVid,
+ 'SET_VLAN_PCP': self._parser.OFPActionVlanPcp,
+ 'STRIP_VLAN': self._parser.OFPActionStripVlan,
+ 'SET_DL_SRC': self._parser.OFPActionSetDlSrc,
+ 'SET_DL_DST': self._parser.OFPActionSetDlDst,
+ 'SET_NW_SRC': self._parser.OFPActionSetNwSrc,
+ 'SET_NW_DST': self._parser.OFPActionSetNwDst,
+ 'SET_NW_TOS': self._parser.OFPActionSetNwTos,
+ 'SET_TP_SRC': self._parser.OFPActionSetTpSrc,
+ 'SET_TP_DST': self._parser.OFPActionSetTpDst,
+ 'ENQUEUE': self._parser.OFPActionEnqueue
+ })
+
+
+class test_data_v1_2(test_data_base):
+ """ Test_data for of_v1_2 """
+ _ofctl = ofctl_v1_2
+ _ofproto = ofproto_v1_2
+ _parser = ofproto_v1_2_parser
+
+ def __init__(self):
+ super(test_data_v1_2, self).__init__()
+ self.supported_action = {}
+ self.act_list = [
+ {'type': 'OUTPUT', 'port': 3},
+ {'type': 'COPY_TTL_OUT'},
+ {'type': 'COPY_TTL_IN'},
+ {'type': 'SET_MPLS_TTL', 'mpls_ttl': 64},
+ {'type': 'DEC_MPLS_TTL'},
+ {'type': 'PUSH_VLAN', 'ethertype': 0x0800},
+ {'type': 'POP_VLAN'},
+ {'type': 'PUSH_MPLS', 'ethertype': 0x0800},
+ {'type': 'POP_MPLS', 'ethertype': 0x0800},
+ {'type': 'SET_QUEUE', 'queue_id': 7},
+ {'type': 'GROUP', 'group_id': 5},
+ {'type': 'SET_NW_TTL', 'nw_ttl': 64},
+ {'type': 'DEC_NW_TTL'},
+ {"type": "CLEAR_ACTIONS"},
+ {"type": "WRITE_ACTIONS",
+ "actions": [{"type": "OUTPUT", "port": 4}]},
+ {'type': 'GOTO_TABLE', 'table_id': 8},
+ {'type': 'WRITE_METADATA', 'metadata': 8,
+ 'metadata_mask': (1 << 64) - 1},
+ ]
+ self.attr_list = [
+ {'in_port': 7},
+ {'in_phy_port': 5, 'in_port': 3},
+ {'metadata': 12345},
+ {'metadata': '0x1212121212121212'},
+ {'metadata': '0x19af28be37fa91b/0x1010101010101010'},
+ {'dl_src': "aa:bb:cc:11:22:33"},
+ {'dl_src': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff"},
+ {'dl_dst': "aa:bb:cc:11:22:33"},
+ {'dl_dst': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff"},
+ {'dl_type': 123},
+ {'eth_src': "aa:bb:cc:11:22:33"},
+ {'eth_src': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff"},
+ {'eth_dst': "aa:bb:cc:11:22:33"},
+ {'eth_dst': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff"},
+ {'eth_type': 0x800},
+ {'dl_vlan': 0},
+ {'dl_vlan': 3},
+ {'dl_vlan': 4095},
+ {'dl_vlan': "0"},
+ {'dl_vlan': "3"},
+ {'dl_vlan': "4095"},
+ {'dl_vlan': "0x0000"},
+ {'dl_vlan': "0x0003"},
+ {'dl_vlan': "0x0fff"},
+ {'dl_vlan': "0x1000"},
+ {'dl_vlan': "0x1003"},
+ {'dl_vlan': "0x1fff"},
+ {'dl_vlan': "4096/4096"},
+ {'dl_vlan': "4096/4097"},
+ {'dl_vlan': "2744/2748"},
+ {'dl_vlan': "2748/2748"},
+ {'dl_vlan': "2748/2749"},
+ {'dl_vlan': "0x1000/0x1000"},
+ {'dl_vlan': "0x1000/0x1001"},
+ {'dl_vlan': "0x0ab8/0x0abc"},
+ {'dl_vlan': "0x0abc/0x0abc"},
+ {'dl_vlan': "0x0abc/0x0abd"},
+ {'vlan_pcp': 3, 'vlan_vid': 3},
+ {'ip_dscp': 3, 'eth_type': 0x0800},
+ {'ip_ecn': 4, 'eth_type': 0x86dd},
+ {'nw_src': "192.168.0.1", 'eth_type': 0x0800},
+ {'nw_src': "192.168.0.1/24", 'eth_type': 0x0800},
+ {'nw_src': "192.168.10.10/255.255.0.0", 'eth_type': 0x0800},
+ {'nw_dst': "192.168.0.1", 'eth_type': 0x0800},
+ {'nw_dst': "192.168.0.1/24", 'eth_type': 0x0800},
+ {'nw_dst': "192.168.10.10/255.255.255.0"},
+ {'nw_proto': 5, 'eth_type': 0x0800},
+ {'ip_proto': 5, 'eth_type': 0x86dd},
+ {'ipv4_src': "192.168.0.1", 'eth_type': 0x0800},
+ {'ipv4_src': "192.168.0.1/24", 'eth_type': 0x0800},
+ {'ipv4_src': "192.168.10.10/255.255.0.0", 'eth_type': 0x0800},
+ {'ipv4_dst': "192.168.0.1", 'eth_type': 0x0800},
+ {'ipv4_dst': "192.168.0.1/24", 'eth_type': 0x0800},
+ {'ipv4_dst': "192.168.10.10/255.255.255.0", 'eth_type': 0x0800},
+ {'tp_src': 1, 'ip_proto': 6},
+ {'tp_dst': 2, 'ip_proto': 6},
+ {'tp_src': 3, 'ip_proto': 17},
+ {'tp_dst': 4, 'ip_proto': 17},
+ {'vlan_vid': 0},
+ {'vlan_vid': 3},
+ {'vlan_vid': 4095},
+ {'vlan_vid': "0"},
+ {'vlan_vid': "3"},
+ {'vlan_vid': "4095"},
+ {'vlan_vid': "0x0000"},
+ {'vlan_vid': "0x0003"},
+ {'vlan_vid': "0x0fff"},
+ {'vlan_vid': "0x1000"},
+ {'vlan_vid': "0x1003"},
+ {'vlan_vid': "0x1fff"},
+ {'vlan_vid': "4096/4096"},
+ {'vlan_vid': "4096/4097"},
+ {'vlan_vid': "2744/2748"},
+ {'vlan_vid': "2748/2748"},
+ {'vlan_vid': "2748/2749"},
+ {'vlan_vid': "0x1000/0x1000"},
+ {'vlan_vid': "0x1000/0x1001"},
+ {'vlan_vid': "0x0ab8/0x0abc"},
+ {'vlan_vid': "0x0abc/0x0abc"},
+ {'vlan_vid': "0x0abc/0x0abd"},
+ {'tcp_src': 3, 'ip_proto': 6},
+ {'tcp_dst': 5, 'ip_proto': 6},
+ {'udp_src': 2, 'ip_proto': 17},
+ {'udp_dst': 6, 'ip_proto': 17},
+ {'sctp_src': 99, 'ip_proto': 132},
+ {'sctp_dst': 99, 'ip_proto': 132},
+ {'icmpv4_type': 5, 'ip_proto': 1},
+ {'icmpv4_code': 6, 'ip_proto': 1},
+ {'arp_op': 3, 'eth_type': 0x0806},
+ {'arp_spa': "192.168.0.11", 'eth_type': 0x0806},
+ {'arp_spa': "192.168.0.22/24", 'eth_type': 0x0806},
+ {'arp_tpa': "192.168.0.33", 'eth_type': 0x0806},
+ {'arp_tpa': "192.168.0.44/24", 'eth_type': 0x0806},
+ {'arp_sha': "aa:bb:cc:11:22:33", 'eth_type': 0x0806},
+ {'arp_sha': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff",
+ 'eth_type': 0x0806},
+ {'arp_tha': "aa:bb:cc:11:22:33", 'eth_type': 0x0806},
+ {'arp_tha': "aa:bb:cc:11:22:33/00:00:00:00:ff:ff",
+ 'eth_type': 0x0806},
+ {'ipv6_src': '2001::aaaa:bbbb:cccc:1111', 'eth_type': 0x86dd},
+ {'ipv6_src': '2001::aaaa:bbbb:cccc:1111/64', 'eth_type': 0x86dd},
+ {'ipv6_dst': '2001::ffff:cccc:bbbb:1111', 'eth_type': 0x86dd},
+ {'ipv6_dst': '2001::ffff:cccc:bbbb:1111/64', 'eth_type': 0x86dd},
+ {'ipv6_flabel': 2, 'eth_type': 0x86dd},
+ {'icmpv6_type': 3, 'ip_proto': 58},
+ {'icmpv6_code': 4, 'ip_proto': 58},
+ {'ipv6_nd_target': '2001::ffff:cccc:bbbb:1111',
+ 'icmpv6_type': 135, 'ip_proto': 58},
+ {'ipv6_nd_sll': "aa:bb:cc:11:22:33",
+ 'icmpv6_type': 135, 'ip_proto': 58},
+ {'ipv6_nd_tll': "aa:bb:cc:11:22:33",
+ 'icmpv6_type': 136, 'ip_proto': 58},
+ {'mpls_label': 3, 'eth_type': 0x8848},
+ {'mpls_tc': 2, 'eth_type': 0x8848}
+ ]
+ self.supported_action.update(
+ {
+ 'OUTPUT': self._parser.OFPActionOutput,
+ 'COPY_TTL_OUT': self._parser.OFPActionCopyTtlOut,
+ 'COPY_TTL_IN': self._parser.OFPActionCopyTtlIn,
+ 'SET_MPLS_TTL': self._parser.OFPActionSetMplsTtl,
+ 'DEC_MPLS_TTL': self._parser.OFPActionDecMplsTtl,
+ 'PUSH_VLAN': self._parser.OFPActionPushVlan,
+ 'POP_VLAN': self._parser.OFPActionPopVlan,
+ 'PUSH_MPLS': self._parser.OFPActionPushMpls,
+ 'POP_MPLS': self._parser.OFPActionPopMpls,
+ 'SET_QUEUE': self._parser.OFPActionSetQueue,
+ 'GROUP': self._parser.OFPActionGroup,
+ 'SET_NW_TTL': self._parser.OFPActionSetNwTtl,
+ 'DEC_NW_TTL': self._parser.OFPActionDecNwTtl,
+ 'SET_FIELD': self._parser.OFPActionSetField,
+ 'GOTO_TABLE': self._parser.OFPInstructionGotoTable,
+ 'WRITE_METADATA': self._parser.OFPInstructionWriteMetadata,
+ 'WRITE_ACTIONS': self._parser.OFPInstructionActions,
+ 'CLEAR_ACTIONS': self._parser.OFPInstructionActions,
+ })
+ self.set_expected_value()
+
+ def set_expected_value(self):
+ vid_present = self._ofproto.OFPVID_PRESENT
+ self.expected_value = {
+ "vlan_vid": {
+ 0: {"to_match": 0 | vid_present, "to_str": "0"},
+ 3: {"to_match": 3 | vid_present, "to_str": "3"},
+ 4095: {"to_match": 4095 | vid_present, "to_str": "4095"},
+ "0": {"to_match": 0 | vid_present, "to_str": "0"},
+ "3": {"to_match": 3 | vid_present, "to_str": "3"},
+ "4095": {"to_match": 4095 | vid_present, "to_str": "4095"},
+ "0x0000": {"to_match": 0x0000, "to_str": "0x0000"},
+ "0x0003": {"to_match": 0x0003, "to_str": "0x0003"},
+ "0x0fff": {"to_match": 0x0fff, "to_str": "0x0fff"},
+ "0x1000": {"to_match": 0x1000, "to_str": "0"},
+ "0x1003": {"to_match": 0x1003, "to_str": "3"},
+ "0x1fff": {"to_match": 0x1fff, "to_str": "4095"},
+ "4096/4096": {"to_match": (4096, 4096),
+ "to_str": "0x1000/0x1000"},
+ "4096/4097": {"to_match": (4096, 4097),
+ "to_str": "0x1000/0x1001"},
+ "2744/2748": {"to_match": (2744, 2748),
+ "to_str": "0x0ab8/0x0abc"},
+ "2748/2748": {"to_match": (2748, 2748),
+ "to_str": "0x0abc/0x0abc"},
+ "2748/2749": {"to_match": (2748, 2749),
+ "to_str": "0x0abc/0x0abd"},
+ "0x1000/0x1000": {"to_match": (0x1000, 0x1000),
+ "to_str": "0x1000/0x1000"},
+ "0x1000/0x1001": {"to_match": (0x1000, 0x1001),
+ "to_str": "0x1000/0x1001"},
+ "0x0ab8/0x0abc": {"to_match": (0x0ab8, 0x0abc),
+ "to_str": "0x0ab8/0x0abc"},
+ "0x0abc/0x0abc": {"to_match": (0x0abc, 0x0abc),
+ "to_str": "0x0abc/0x0abc"},
+ "0x0abc/0x0abd": {"to_match": (0x0abc, 0x0abd),
+ "to_str": "0x0abc/0x0abd"}
+ }
+ }
+
+
+class test_data_v1_3(test_data_v1_2):
+ """ Test_data for of_v1_3 """
+ _ofctl = ofctl_v1_3
+ _ofproto = ofproto_v1_3
+ _parser = ofproto_v1_3_parser
+
+ def __init__(self):
+ super(test_data_v1_3, self).__init__()
+ self.act_list.extend(
+ [
+ {'type': 'PUSH_PBB', 'ethertype': 0x0800},
+ {'type': 'POP_PBB'},
+ {'type': 'METER', 'meter_id': 3},
+ ]
+ )
+ self.attr_list.extend(
+ [
+ {'mpls_bos': 3, 'eth_type': 0x8848},
+ {'pbb_isid': 5, 'eth_type': 0x88E7},
+ {'pbb_isid': "0x05", 'eth_type': 0x88E7},
+ {'pbb_isid': "0x05/0xff", 'eth_type': 0x88E7},
+ {'tunnel_id': 7},
+ {'tunnel_id': "0x07"},
+ {'tunnel_id': "0x07/0xff"},
+ {'ipv6_exthdr': 3, 'eth_type': 0x86dd},
+ {'ipv6_exthdr': "0x40", 'eth_type': 0x86dd},
+ {'ipv6_exthdr': "0x40/0x1F0", 'eth_type': 0x86dd},
+ ]
+ )
+ self.supported_action.update(
+ {
+ 'PUSH_PBB': self._parser.OFPActionPushPbb,
+ 'POP_PBB': self._parser.OFPActionPopPbb,
+ 'METER': self._parser.OFPInstructionMeter,
+ })
+ self.set_expected_value()
+
+
+def _add_tests_actions(cls):
+ for act in cls.act_list:
+ method_name = 'test_' + str(cls.ver) + '_' + act["type"] + '_action'
+
+ def _run(self, name, act, cls):
+ print('processing %s ...' % name)
+ cls_ = Test_ofctl(name)
+ cls_._test_actions(act, cls)
+ print('adding %s ...' % method_name)
+ func = functools.partial(_run, name=method_name, act=act, cls=cls)
+ test_lib.add_method(Test_ofctl, method_name, func)
+
+
+def _add_tests_match(cls):
+ for attr in cls.attr_list:
+ for key, value in attr.items():
+ method_name = 'test_' + \
+ str(cls.ver) + '_' + key + '_' + str(
+ value) + str(type(value)) + '_match'
+
+ def _run(self, name, attr, cls):
+ print('processing %s ...' % name)
+ cls_ = Test_ofctl(name)
+ cls_._test_match(attr, cls)
+ print('adding %s ...' % method_name)
+ func = functools.partial(
+ _run, name=method_name, attr=attr, cls=cls)
+ test_lib.add_method(Test_ofctl, method_name, func)
+
+
+""" Test case """
+
+# for of10
+cls = test_data_v1_0()
+_add_tests_actions(cls)
+_add_tests_match(cls)
+
+# for of12
+cls = test_data_v1_2()
+_add_tests_actions(cls)
+_add_tests_match(cls)
+
+# for of13
+cls = test_data_v1_3()
+_add_tests_actions(cls)
+_add_tests_match(cls)
diff --git a/tests/unit/lib/test_ofctl_string.py b/tests/unit/lib/test_ofctl_string.py
new file mode 100644
index 00000000..fb491e39
--- /dev/null
+++ b/tests/unit/lib/test_ofctl_string.py
@@ -0,0 +1,151 @@
+# Copyright (C) 2017 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from ryu.lib import ofctl_string
+from ryu.ofproto import ofproto_parser
+from ryu.ofproto.ofproto_protocol import ProtocolDesc
+from ryu.ofproto import ofproto_v1_5
+
+
+class Test_OfctlString(unittest.TestCase):
+ """Test cases for ryu.ofproto.ofp_instruction_from_str.
+ """
+
+ def __init__(self, methodName):
+ print('init %s' % methodName)
+ self.fake_dp_of15 = ProtocolDesc(ofproto_v1_5.OFP_VERSION)
+ self.maxDiff = None
+ super(Test_OfctlString, self).__init__(methodName)
+
+ def _test_str(self, dp, ofctl_str, *jsondict):
+ json = ofctl_string.ofp_instruction_from_str(
+ ofproto_v1_5, ofctl_str)
+ inst = ofproto_parser.ofp_instruction_from_jsondict(dp, json)
+ self.assertEqual(len(inst), len(jsondict))
+ for i in range(len(inst)):
+ self.assertEqual(jsondict[i], inst[i].to_jsondict())
+
+ def test_drop(self):
+ inst = ofctl_string.ofp_instruction_from_str(
+ ofproto_v1_5, 'drop')
+ self.assertEqual(inst, [])
+
+ def test_conjunction(self):
+ self._test_str(self.fake_dp_of15,
+ 'conjunction(0x234, 1/3),conjunction(0xdea, 2/2)',
+ {'OFPInstructionActions': {
+ 'actions': [
+ {'NXActionConjunction': {'clause': 0,
+ 'experimenter': 8992,
+ 'id': 0x234,
+ 'len': None,
+ 'n_clauses': 3,
+ 'subtype': 34,
+ 'type': 65535}},
+ {'NXActionConjunction': {'clause': 1,
+ 'experimenter': 8992,
+ 'id': 0xdea,
+ 'len': None,
+ 'n_clauses': 2,
+ 'subtype': 34,
+ 'type': 65535}}],
+ 'type': 4}})
+
+ def test_ct(self):
+ self._test_str(self.fake_dp_of15,
+ 'ct(commit)',
+ {'OFPInstructionActions': {
+ 'actions': [{'NXActionCT': {'actions': [],
+ 'alg': 0,
+ 'experimenter': 8992,
+ 'flags': 1,
+ 'len': None,
+ 'recirc_table': 255,
+ 'subtype': 35,
+ 'type': 65535,
+ 'zone_ofs_nbits': 0,
+ 'zone_src': u''}}],
+ 'type': 4}})
+
+ def test_ct_2(self):
+ self._test_str(self.fake_dp_of15,
+ 'ct(commit,zone=NXM_NX_REG8[0..15],'
+ 'exec(set_field:1->ct_mark))',
+ {'OFPInstructionActions': {
+ 'actions': [{'NXActionCT': {
+ 'actions': [
+ {'OFPActionSetField': {
+ 'field': {'OXMTlv': {'field': 'ct_mark',
+ 'mask': None,
+ 'value': 1}},
+ 'len': 8,
+ 'type': 25}}],
+ 'alg': 0,
+ 'experimenter': 8992,
+ 'flags': 1,
+ 'len': None,
+ 'recirc_table': 255,
+ 'subtype': 35,
+ 'type': 65535,
+ 'zone_ofs_nbits': 15,
+ 'zone_src': u'reg8'}}],
+ 'type': 4}})
+
+ def test_resubmit(self):
+ self._test_str(self.fake_dp_of15,
+ 'resubmit(,10)',
+ {'OFPInstructionActions':
+ {'actions': [{'NXActionResubmitTable': {
+ 'experimenter': 8992,
+ 'in_port': 65528,
+ 'len': None,
+ 'subtype': 14,
+ 'table_id': 10,
+ 'type': 65535}}],
+ 'type': 4}})
+
+ def test_set_field(self):
+ self._test_str(self.fake_dp_of15,
+ 'set_field:10/0xff->tun_id',
+ {'OFPInstructionActions':
+ {'actions': [{'OFPActionSetField': {
+ 'field': {'OXMTlv': {'field': 'tunnel_id',
+ 'mask': 255,
+ 'value': 10}},
+ 'len': 8,
+ 'type': 25}}],
+ 'type': 4}})
+
+ def test_pop_vlan(self):
+ self._test_str(self.fake_dp_of15,
+ 'pop_vlan',
+ {'OFPInstructionActions':
+ {'actions': [{'OFPActionPopVlan': {'len': 8,
+ 'type': 18}}],
+ 'type': 4}})
+
+ def test_multi(self):
+ self._test_str(self.fake_dp_of15,
+ 'pop_vlan,goto_table:33',
+ {'OFPInstructionActions':
+ {'actions': [{'OFPActionPopVlan': {'len': 8,
+ 'type': 18}}],
+ 'type': 4}},
+ {'OFPInstructionGotoTable':
+ {'len': 8,
+ 'table_id': 33,
+ 'type': 1}})
diff --git a/tests/unit/lib/test_ofctl_utils.py b/tests/unit/lib/test_ofctl_utils.py
new file mode 100644
index 00000000..2f02f43b
--- /dev/null
+++ b/tests/unit/lib/test_ofctl_utils.py
@@ -0,0 +1,142 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import unittest
+
+from ryu.lib import ofctl_utils
+from ryu.ofproto import ofproto_v1_3
+
+
+LOG = logging.getLogger(__name__)
+
+
+class Test_ofctl_utils(unittest.TestCase):
+ # prepare test target
+ util = ofctl_utils.OFCtlUtil(ofproto_v1_3)
+
+ def _test_str_to_int(self, input_value, expected_value):
+ output_value = ofctl_utils.str_to_int(input_value)
+ self.assertEqual(expected_value, output_value)
+
+ def test_str_to_int(self):
+ self._test_str_to_int(1, 1) # int
+ self._test_str_to_int('0b10', 2) # binary digit
+ self._test_str_to_int('0o10', 8) # octal digit
+ self._test_str_to_int('0x10', 16) # hexadecimal digit
+
+ def test_ofp_port_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPP_CONTROLLER,
+ self.util.ofp_port_from_user(ofproto_v1_3.OFPP_CONTROLLER) # int
+ )
+ self.assertEqual(
+ ofproto_v1_3.OFPP_CONTROLLER,
+ self.util.ofp_port_from_user('CONTROLLER') # str without prefix
+ )
+ self.assertEqual(
+ ofproto_v1_3.OFPP_CONTROLLER,
+ self.util.ofp_port_from_user('OFPP_CONTROLLER') # str with prefix
+ )
+
+ def test_ofp_port_to_user(self):
+ self.assertEqual(
+ 'CONTROLLER',
+ self.util.ofp_port_to_user(ofproto_v1_3.OFPP_CONTROLLER)
+ )
+ self.assertEqual(
+ 1,
+ self.util.ofp_port_to_user(1) # not matched
+ )
+
+ def test_ofp_table_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPTT_ALL,
+ self.util.ofp_table_from_user('ALL')
+ )
+
+ def test_ofp_table_to_user(self):
+ self.assertEqual(
+ 'ALL',
+ self.util.ofp_table_to_user(ofproto_v1_3.OFPTT_ALL)
+ )
+
+ def test_ofp_cml_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPCML_NO_BUFFER,
+ self.util.ofp_cml_from_user('NO_BUFFER')
+ )
+
+ def test_ofp_cml_to_user(self):
+ self.assertEqual(
+ 'NO_BUFFER',
+ self.util.ofp_cml_to_user(ofproto_v1_3.OFPCML_NO_BUFFER)
+ )
+
+ def test_ofp_group_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPG_ANY,
+ self.util.ofp_group_from_user('ANY')
+ )
+
+ def test_ofp_group_to_user(self):
+ self.assertEqual(
+ 'ANY',
+ self.util.ofp_group_to_user(ofproto_v1_3.OFPG_ANY)
+ )
+
+ def test_ofp_buffer_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFP_NO_BUFFER,
+ self.util.ofp_buffer_from_user('NO_BUFFER')
+ )
+ self.assertEqual(
+ 1,
+ self.util.ofp_buffer_from_user(1) # not matched
+ )
+
+ def test_ofp_buffer_to_user(self):
+ self.assertEqual(
+ 'NO_BUFFER',
+ self.util.ofp_buffer_to_user(ofproto_v1_3.OFP_NO_BUFFER)
+ )
+ self.assertEqual(
+ 1,
+ self.util.ofp_buffer_to_user(1) # not matched
+ )
+
+ def test_ofp_meter_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPM_ALL,
+ self.util.ofp_meter_from_user('ALL')
+ )
+
+ def test_ofp_meter_to_user(self):
+ self.assertEqual(
+ 'ALL',
+ self.util.ofp_meter_to_user(ofproto_v1_3.OFPM_ALL)
+ )
+
+ def test_ofp_queue_from_user(self):
+ self.assertEqual(
+ ofproto_v1_3.OFPQ_ALL,
+ self.util.ofp_queue_from_user('ALL')
+ )
+
+ def test_ofp_queue_to_user(self):
+ self.assertEqual(
+ 'ALL',
+ self.util.ofp_queue_to_user(ofproto_v1_3.OFPQ_ALL)
+ )
diff --git a/tests/unit/lib/test_ofctl_v1_3.py b/tests/unit/lib/test_ofctl_v1_3.py
new file mode 100644
index 00000000..81cfacbf
--- /dev/null
+++ b/tests/unit/lib/test_ofctl_v1_3.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2013 Stratosphere Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+import unittest
+import logging
+from nose.tools import *
+
+from ryu.lib import ofctl_v1_3
+from ryu.ofproto import ofproto_v1_3, ofproto_v1_3_parser
+from ryu.ofproto import ofproto_protocol
+from ryu.ofproto.ofproto_v1_3_parser import OFPActionPopMpls
+
+LOG = logging.getLogger('test_ofctl_v1_3')
+
+
+class Test_ofctl_v1_3(unittest.TestCase):
+
+ """ Test case for ofctl_v1_3
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_to_actions_pop_mpls(self):
+ dp = ofproto_protocol.ProtocolDesc(version=ofproto_v1_3.OFP_VERSION)
+
+ acts = [
+ {
+ 'type': 'POP_MPLS',
+ 'ethertype': 0x0800
+ }
+ ]
+ result = ofctl_v1_3.to_actions(dp, acts)
+ insts = result[0]
+ act = insts.actions[0]
+ ok_(isinstance(act, OFPActionPopMpls))
+ eq_(act.ethertype, 0x0800)
diff --git a/tests/unit/lib/test_ofp_pktinfilter.py b/tests/unit/lib/test_ofp_pktinfilter.py
new file mode 100644
index 00000000..2c037737
--- /dev/null
+++ b/tests/unit/lib/test_ofp_pktinfilter.py
@@ -0,0 +1,92 @@
+# Copyright (C) 2013 Stratosphere Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+import unittest
+import logging
+import six
+
+from nose.tools import *
+
+from ryu.controller import ofp_event
+from ryu.controller.handler import (
+ set_ev_cls,
+ MAIN_DISPATCHER,
+)
+from ryu.lib.packet import vlan, ethernet, ipv4
+from ryu.lib.ofp_pktinfilter import packet_in_filter, RequiredTypeFilter
+from ryu.lib import mac
+from ryu.ofproto import ether, ofproto_v1_3, ofproto_v1_3_parser
+from ryu.ofproto.ofproto_protocol import ProtocolDesc
+
+
+LOG = logging.getLogger('test_pktinfilter')
+
+
+class _PacketInFilterApp(object):
+ @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
+ @packet_in_filter(RequiredTypeFilter, {'types': [
+ vlan.vlan,
+ ]})
+ def packet_in_handler(self, ev):
+ return True
+
+
+class Test_packet_in_filter(unittest.TestCase):
+
+ """ Test case for pktinfilter
+ """
+
+ def setUp(self):
+ self.app = _PacketInFilterApp()
+
+ def tearDown(self):
+ pass
+
+ def test_pkt_in_filter_pass(self):
+ datapath = ProtocolDesc(version=ofproto_v1_3.OFP_VERSION)
+ e = ethernet.ethernet(mac.BROADCAST_STR,
+ mac.BROADCAST_STR,
+ ether.ETH_TYPE_8021Q)
+ v = vlan.vlan()
+ i = ipv4.ipv4()
+ pkt = (e / v / i)
+ pkt.serialize()
+ pkt_in = ofproto_v1_3_parser.OFPPacketIn(datapath,
+ data=six.binary_type(pkt.data))
+ ev = ofp_event.EventOFPPacketIn(pkt_in)
+ ok_(self.app.packet_in_handler(ev))
+
+ def test_pkt_in_filter_discard(self):
+ datapath = ProtocolDesc(version=ofproto_v1_3.OFP_VERSION)
+ e = ethernet.ethernet(mac.BROADCAST_STR,
+ mac.BROADCAST_STR,
+ ether.ETH_TYPE_IP)
+ i = ipv4.ipv4()
+ pkt = (e / i)
+ pkt.serialize()
+ pkt_in = ofproto_v1_3_parser.OFPPacketIn(datapath,
+ data=six.binary_type(pkt.data))
+ ev = ofp_event.EventOFPPacketIn(pkt_in)
+ ok_(not self.app.packet_in_handler(ev))
+
+ def test_pkt_in_filter_truncated(self):
+ datapath = ProtocolDesc(version=ofproto_v1_3.OFP_VERSION)
+ truncated_data = ''
+ pkt_in = ofproto_v1_3_parser.OFPPacketIn(datapath,
+ data=truncated_data)
+ ev = ofp_event.EventOFPPacketIn(pkt_in)
+ ok_(not self.app.packet_in_handler(ev))
diff --git a/tests/unit/lib/test_pack_utils.py b/tests/unit/lib/test_pack_utils.py
new file mode 100644
index 00000000..5bc99513
--- /dev/null
+++ b/tests/unit/lib/test_pack_utils.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2012 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import six
+import struct
+
+from nose.tools import ok_, eq_
+
+from ryu.lib import pack_utils
+
+
+class TestMsgPackInto(unittest.TestCase):
+ """ Test case for msg_pack_into
+ """
+
+ def _test_msg_pack_into(self, offset_type='e'):
+ fmt = '!HH'
+ len_ = struct.calcsize(fmt)
+ buf = bytearray(len_)
+ offset = len_
+ arg1 = 1
+ arg2 = 2
+
+ if offset_type == 'l':
+ offset += 1
+ elif offset_type == 'g':
+ offset -= 1
+
+ pack_utils.msg_pack_into(fmt, buf, offset, arg1, arg2)
+
+ check_offset = len(buf) - len_
+ res = struct.unpack_from(fmt, six.binary_type(buf), check_offset)
+
+ eq_(arg1, res[0])
+ eq_(arg2, res[1])
+
+ return True
+
+ def test_msg_pack_into(self):
+ ok_(self._test_msg_pack_into())
+
+ def test_msg_pack_into_less(self):
+ ok_(self._test_msg_pack_into('l'))
+
+ def test_msg_pack_into_greater(self):
+ ok_(self._test_msg_pack_into('g'))
diff --git a/tests/unit/lib/test_pcaplib.py b/tests/unit/lib/test_pcaplib.py
new file mode 100644
index 00000000..ac86904e
--- /dev/null
+++ b/tests/unit/lib/test_pcaplib.py
@@ -0,0 +1,230 @@
+# Copyright (C) 2016 Nippon Telegraph and Telephone Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+
+import logging
+import os
+import struct
+import sys
+import unittest
+
+try:
+ import mock # Python 2
+except ImportError:
+ from unittest import mock # Python 3
+
+from nose.tools import eq_
+from nose.tools import raises
+
+from ryu.utils import binary_str
+from ryu.lib import pcaplib
+
+LOG = logging.getLogger(__name__)
+
+PCAP_PACKET_DATA_DIR = os.path.join(
+ os.path.dirname(sys.modules[__name__].__file__),
+ '../../packet_data/pcap/')
+
+
+class Test_PcapFileHdr(unittest.TestCase):
+ """
+ Test case for pcaplib.PcapFileHdr class
+ """
+ hdr = pcaplib.PcapFileHdr(
+ magic=None, # temporary default
+ version_major=2,
+ version_minor=4,
+ thiszone=0x11223344,
+ sigfigs=0x22334455,
+ snaplen=0x33445566,
+ network=0x44556677,
+ )
+
+ buf_big = (
+ b'\xa1\xb2\xc3\xd4' # magic (Big Endian)
+ b'\x00\x02\x00\x04' # version_major, version_minor
+ b'\x11\x22\x33\x44' # thiszone
+ b'\x22\x33\x44\x55' # sigfigs
+ b'\x33\x44\x55\x66' # snaplen
+ b'\x44\x55\x66\x77' # network
+ )
+
+ buf_little = (
+ b'\xd4\xc3\xb2\xa1' # magic (Little Endian)
+ b'\x02\x00\x04\x00' # version_major, version_minor
+ b'\x44\x33\x22\x11' # thiszone
+ b'\x55\x44\x33\x22' # sigfigs
+ b'\x66\x55\x44\x33' # snaplen
+ b'\x77\x66\x55\x44' # network
+ )
+
+ buf_invalid = (
+ b'\xff\xff\xff\xff' # magic (Invalid)
+ b'\x02\x00\x04\x00' # version_major, version_minor
+ b'\x44\x33\x22\x11' # thiszone
+ b'\x55\x44\x33\x22' # sigfigs
+ b'\x66\x55\x44\x33' # snaplen
+ b'\x77\x66\x55\x44' # network
+ )
+
+ def _assert(self, magic, ret):
+ self.hdr.magic = magic
+ eq_(self.hdr.__dict__, ret.__dict__)
+
+ def test_parser_with_big_endian(self):
+ ret, byteorder = pcaplib.PcapFileHdr.parser(self.buf_big)
+ self._assert(pcaplib.PcapFileHdr.MAGIC_NUMBER_IDENTICAL, ret)
+ eq_('big', byteorder)
+
+ def test_parser_with_little_endian(self):
+ ret, byteorder = pcaplib.PcapFileHdr.parser(self.buf_little)
+ self._assert(pcaplib.PcapFileHdr.MAGIC_NUMBER_SWAPPED, ret)
+ eq_('little', byteorder)
+
+ @mock.patch('sys.byteorder', 'big')
+ def test_serialize_with_big_endian(self):
+ buf = self.hdr.serialize()
+ eq_(binary_str(self.buf_big), binary_str(buf))
+
+ @mock.patch('sys.byteorder', 'little')
+ def test_serialize_with_little_endian(self):
+ buf = self.hdr.serialize()
+ eq_(binary_str(self.buf_little), binary_str(buf))
+
+ @raises(struct.error)
+ def test_parser_with_invalid_magic_number(self):
+ pcaplib.PcapFileHdr.parser(self.buf_invalid)
+
+
+class Test_PcapPktHdr(unittest.TestCase):
+ """
+ Test case for pcaplib.PcapPktHdr class
+ """
+ expected_buf = b'test_data'
+
+ hdr = pcaplib.PcapPktHdr(
+ ts_sec=0x11223344,
+ ts_usec=0x22334455,
+ incl_len=len(expected_buf),
+ orig_len=0x44556677,
+ )
+
+ buf_big = (
+ b'\x11\x22\x33\x44' # ts_sec
+ b'\x22\x33\x44\x55' # ts_usec
+ b'\x00\x00\x00\x09' # incl_len = len(expected_buf)
+ b'\x44\x55\x66\x77' # orig_len
+ )
+
+ buf_little = (
+ b'\x44\x33\x22\x11' # ts_sec
+ b'\x55\x44\x33\x22' # ts_usec
+ b'\x09\x00\x00\x00' # incl_len = len(expected_buf)
+ b'\x77\x66\x55\x44' # orig_len
+ )
+
+ def test_parser_with_big_endian(self):
+ ret, buf = pcaplib.PcapPktHdr.parser(
+ self.buf_big + self.expected_buf, 'big')
+ eq_(self.hdr.__dict__, ret.__dict__)
+ eq_(self.expected_buf, buf)
+
+ def test_parser_with_little_endian(self):
+ ret, buf = pcaplib.PcapPktHdr.parser(
+ self.buf_little + self.expected_buf, 'little')
+ eq_(self.hdr.__dict__, ret.__dict__)
+ eq_(self.expected_buf, buf)
+
+ @mock.patch('sys.byteorder', 'big')
+ def test_serialize_with_big_endian(self):
+ buf = self.hdr.serialize()
+ eq_(binary_str(self.buf_big), binary_str(buf))
+
+ @mock.patch('sys.byteorder', 'little')
+ def test_serialize_with_little_endian(self):
+ buf = self.hdr.serialize()
+ eq_(binary_str(self.buf_little), binary_str(buf))
+
+
+class Test_pcaplib_Reader(unittest.TestCase):
+ """
+ Test case for pcaplib.Reader class
+ """
+
+ expected_outputs = [
+ (0x1234 + (0x5678 / 1e6), b'test_data_1'), # sec=0x1234, usec=0x5678
+ (0x2345 + (0x6789 / 1e6), b'test_data_2'), # sec=0x2345, usec=0x6789
+ ]
+
+ def _test(self, file_name):
+ outputs = []
+ for ts, buf in pcaplib.Reader(open(file_name, 'rb')):
+ outputs.append((ts, buf))
+
+ eq_(self.expected_outputs, outputs)
+
+ def test_with_big_endian(self):
+ self._test(os.path.join(PCAP_PACKET_DATA_DIR, 'big_endian.pcap'))
+
+ def test_with_little_endian(self):
+ self._test(os.path.join(PCAP_PACKET_DATA_DIR, 'little_endian.pcap'))
+
+
+class DummyFile(object):
+
+ def __init__(self):
+ self.buf = b''
+
+ def write(self, buf):
+ self.buf += buf
+
+ def close(self):
+ pass
+
+
+class Test_pcaplib_Writer(unittest.TestCase):
+ """
+ Test case for pcaplib.Writer class
+ """
+
+ @staticmethod
+ def _test(file_name):
+ expected_buf = open(file_name, 'rb').read()
+ f = DummyFile()
+ w = pcaplib.Writer(f)
+ w.write_pkt(b'test_data_1', ts=(0x1234 + (0x5678 / 1e6)))
+ w.write_pkt(b'test_data_2', ts=(0x2345 + (0x6789 / 1e6)))
+ eq_(expected_buf, f.buf)
+
+ @mock.patch('sys.byteorder', 'big')
+ def test_with_big_endian(self):
+ self._test(os.path.join(PCAP_PACKET_DATA_DIR, 'big_endian.pcap'))
+
+ @mock.patch('sys.byteorder', 'little')
+ def test_with_little_endian(self):
+ self._test(os.path.join(PCAP_PACKET_DATA_DIR, 'little_endian.pcap'))
+
+ @staticmethod
+ @mock.patch.object(pcaplib.Writer, '_write_pcap_file_hdr', mock.MagicMock)
+ @mock.patch.object(pcaplib.Writer, '_write_pkt_hdr', mock.MagicMock)
+ def test_with_longer_buf():
+ f = DummyFile()
+ snaplen = 4
+ w = pcaplib.Writer(f, snaplen=snaplen)
+ w.write_pkt(b'hogehoge', ts=0)
+ expected_buf = b'hoge' # b'hogehoge'[:snaplen]
+ eq_(expected_buf, f.buf)
+ eq_(snaplen, len(f.buf))
diff --git a/tests/unit/lib/test_rpc.py b/tests/unit/lib/test_rpc.py
new file mode 100644
index 00000000..2df123ee
--- /dev/null
+++ b/tests/unit/lib/test_rpc.py
@@ -0,0 +1,360 @@
+# Copyright (C) 2013-2015 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013-2015 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import numbers
+import socket
+import struct
+import unittest
+
+from nose.tools import raises
+import six
+
+from ryu.lib import hub
+from ryu.lib import rpc
+
+
+class MyException(BaseException):
+ pass
+
+
+class Test_rpc(unittest.TestCase):
+ """ Test case for ryu.lib.rpc
+ """
+
+ def _handle_request(self, m):
+ e = self._server_endpoint
+ msgid, method, params = m
+ if method == 'resp':
+ e.send_response(msgid, result=params[0])
+ elif method == 'err':
+ e.send_response(msgid, error=params[0])
+ elif method == 'callback':
+ n, cb, v = params
+ assert n > 0
+ self._requests.add(e.send_request(cb, [msgid, n, cb, v]))
+ elif method == 'notify1':
+ e.send_notification(params[1], params[2])
+ e.send_response(msgid, result=params[0])
+ elif method == 'shutdown':
+ how = getattr(socket, params[0])
+ self._server_sock.shutdown(how)
+ e.send_response(msgid, result=method)
+ else:
+ raise Exception("unknown method %s" % method)
+
+ def _handle_notification(self, m):
+ e = self._server_endpoint
+ method, params = m
+ if method == 'notify2':
+ e.send_notification(params[0], params[1])
+
+ def _handle_response(self, m):
+ e = self._server_endpoint
+ msgid, error, result = m
+ assert error is None
+ self._requests.remove(msgid)
+ omsgid, n, cb, v = result
+ assert n >= 0
+ if n == 0:
+ e.send_response(omsgid, result=v)
+ else:
+ self._requests.add(e.send_request(cb, [omsgid, n, cb, v]))
+
+ def setUp(self):
+ self._server_sock, self._client_sock = socket.socketpair()
+ table = {
+ rpc.MessageType.REQUEST: self._handle_request,
+ rpc.MessageType.RESPONSE: self._handle_response,
+ rpc.MessageType.NOTIFY: self._handle_notification
+ }
+ self._requests = set()
+ self._server_sock.setblocking(0)
+ self._server_endpoint = rpc.EndPoint(self._server_sock,
+ disp_table=table)
+ self._server_thread = hub.spawn(self._server_endpoint.serve)
+
+ def tearDown(self):
+ hub.kill(self._server_thread)
+ hub.joinall([self._server_thread])
+
+ def test_0_call_str(self):
+ c = rpc.Client(self._client_sock)
+ obj = 'hoge'
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, str)
+
+ def test_0_call_int(self):
+ c = rpc.Client(self._client_sock)
+ obj = 12345
+ assert isinstance(obj, int)
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, numbers.Integral)
+
+ def test_0_call_int2(self):
+ c = rpc.Client(self._client_sock)
+ obj = six.MAXSIZE
+ assert isinstance(obj, int)
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, numbers.Integral)
+
+ def test_0_call_int3(self):
+ c = rpc.Client(self._client_sock)
+ obj = - six.MAXSIZE - 1
+ assert isinstance(obj, int)
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, numbers.Integral)
+
+ def test_0_call_long(self):
+ c = rpc.Client(self._client_sock)
+ obj = 0xffffffffffffffff # max value for msgpack
+ assert isinstance(obj, numbers.Integral)
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, numbers.Integral)
+
+ def test_0_call_long2(self):
+ c = rpc.Client(self._client_sock)
+ # Note: the python type of this value is int for 64-bit arch
+ obj = -0x8000000000000000 # min value for msgpack
+ assert isinstance(obj, numbers.Integral)
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, numbers.Integral)
+
+ @raises(TypeError)
+ def test_0_call_bytearray(self):
+ c = rpc.Client(self._client_sock)
+ obj = bytearray(b'foo')
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, str)
+
+ def test_1_shutdown_wr(self):
+ # test if the server shutdown on disconnect
+ self._client_sock.shutdown(socket.SHUT_WR)
+ hub.joinall([self._server_thread])
+
+ @raises(EOFError)
+ def test_1_client_shutdown_wr(self):
+ c = rpc.Client(self._client_sock)
+ c.call('shutdown', ['SHUT_WR'])
+
+ def test_1_call_True(self):
+ c = rpc.Client(self._client_sock)
+ obj = True
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_None(self):
+ c = rpc.Client(self._client_sock)
+ obj = None
+ assert c.call('resp', [obj]) is None
+
+ def test_2_call_False(self):
+ c = rpc.Client(self._client_sock)
+ obj = False
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_dict(self):
+ c = rpc.Client(self._client_sock)
+ obj = {'hoge': 1, 'fuga': 2}
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_empty_dict(self):
+ c = rpc.Client(self._client_sock)
+ obj = {}
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_array(self):
+ c = rpc.Client(self._client_sock)
+ obj = [1, 2, 3, 4]
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_empty_array(self):
+ c = rpc.Client(self._client_sock)
+ obj = []
+ assert c.call('resp', [obj]) == obj
+
+ def test_2_call_tuple(self):
+ c = rpc.Client(self._client_sock)
+ # Note: msgpack library implicitly convert a tuple into a list
+ obj = (1, 2, 3)
+ assert c.call('resp', [obj]) == list(obj)
+
+ def test_2_call_unicode(self):
+ c = rpc.Client(self._client_sock)
+ # Note: We use encoding='utf-8' option in msgpack.Packer/Unpacker
+ # in order to support Python 3.
+ # With this option, utf-8 encoded bytes will be decoded into unicode
+ # type in Python 2 and str type in Python 3.
+ obj = u"hoge"
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, six.text_type)
+
+ def test_2_call_small_binary(self):
+ c = rpc.Client(self._client_sock)
+ obj = struct.pack("100x")
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, six.binary_type)
+
+ def test_3_call_complex(self):
+ c = rpc.Client(self._client_sock)
+ obj = [1, 'hoge', {'foo': 1, 3: 'bar'}]
+ assert c.call('resp', [obj]) == obj
+
+ @unittest.skip("doesn't work with eventlet 0.18 and later")
+ def test_4_call_large_binary(self):
+ c = rpc.Client(self._client_sock)
+ obj = struct.pack("10000000x")
+ result = c.call('resp', [obj])
+ assert result == obj
+ assert isinstance(result, six.binary_type)
+
+ def test_0_notification1(self):
+ l = []
+
+ def callback(n):
+ l.append(n)
+ c = rpc.Client(self._client_sock, notification_callback=callback)
+ obj = 'hogehoge'
+ robj = 'fugafuga'
+ assert c.call('notify1', [robj, 'notify_hoge', [obj]]) == robj
+ c.receive_notification()
+ assert len(l) == 1
+ n = l.pop(0)
+ assert n is not None
+ method, params = n
+ assert method == 'notify_hoge'
+ assert params[0] == obj
+
+ def test_0_notification2(self):
+ l = []
+
+ def callback(n):
+ l.append(n)
+ c = rpc.Client(self._client_sock, notification_callback=callback)
+ obj = 'hogehogehoge'
+ c.send_notification('notify2', ['notify_hoge', [obj]])
+ c.receive_notification()
+ assert len(l) == 1
+ n = l.pop(0)
+ assert n is not None
+ method, params = n
+ assert method == 'notify_hoge'
+ assert params[0] == obj
+
+ def test_0_call_error(self):
+ c = rpc.Client(self._client_sock)
+ obj = 'hoge'
+ try:
+ c.call('err', [obj])
+ raise Exception("unexpected")
+ except rpc.RPCError as e:
+ assert e.get_value() == obj
+
+ def test_0_call_error_notification(self):
+ l = []
+
+ def callback(n):
+ l.append(n)
+ c = rpc.Client(self._client_sock, notification_callback=callback)
+ c.send_notification('notify2', ['notify_foo', []])
+ hub.sleep(0.5) # give the peer a chance to run
+ obj = 'hoge'
+ try:
+ c.call('err', [obj])
+ raise Exception("unexpected")
+ except rpc.RPCError as e:
+ assert e.get_value() == obj
+ assert len(l) == 1
+ n = l.pop(0)
+ method, params = n
+ assert method == 'notify_foo'
+ assert params == []
+
+ def test_4_async_call(self):
+ """send a bunch of requests and then wait for responses
+ """
+ num_calls = 9999
+ old_blocking = self._client_sock.setblocking(0)
+ try:
+ e = rpc.EndPoint(self._client_sock)
+ s = set()
+ for i in range(1, num_calls + 1):
+ s.add(e.send_request('resp', [i]))
+ sum = 0
+ while s:
+ e.block()
+ e.process()
+ done = set()
+ for x in s:
+ r = e.get_response(x)
+ if r is None:
+ continue
+ res, error = r
+ assert error is None
+ sum += res
+ done.add(x)
+ assert done.issubset(s)
+ s -= done
+ assert sum == (1 + num_calls) * num_calls / 2
+ finally:
+ self._client_sock.setblocking(old_blocking)
+
+ def test_4_async_call2(self):
+ """both sides act as rpc client and server
+ """
+ assert not self._requests
+ num_calls = 100
+ old_blocking = self._client_sock.setblocking(0)
+ try:
+ e = rpc.EndPoint(self._client_sock)
+ s = set()
+ for i in range(1, num_calls + 1):
+ s.add(e.send_request('callback', [i, 'ourcallback', 0]))
+ sum = 0
+ while s:
+ e.block()
+ e.process()
+ done = set()
+ for x in s:
+ r = e.get_response(x)
+ if r is None:
+ continue
+ res, error = r
+ assert error is None
+ sum += res
+ done.add(x)
+ assert done.issubset(s)
+ s -= done
+ r = e.get_request()
+ if r is not None:
+ msgid, method, params = r
+ assert method == 'ourcallback'
+ omsgid, n, cb, v = params
+ assert omsgid in s
+ assert cb == 'ourcallback'
+ assert n > 0
+ e.send_response(msgid, result=[omsgid, n - 1, cb, v + 1])
+ assert sum == (1 + num_calls) * num_calls / 2
+ finally:
+ self._client_sock.setblocking(old_blocking)
+ assert not self._requests
diff --git a/tests/unit/lib/test_stringify.py b/tests/unit/lib/test_stringify.py
new file mode 100644
index 00000000..46fb21f0
--- /dev/null
+++ b/tests/unit/lib/test_stringify.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2013-2015 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013-2015 YAMAMOTO Takashi <yamamoto at valinux co jp>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+
+import base64
+import six
+import unittest
+from nose.tools import eq_
+
+from ryu.lib import stringify
+
+
+class C1(stringify.StringifyMixin):
+ def __init__(self, a, c):
+ print("init %s %s" % (a, c))
+ self.a = a
+ self._b = 'B'
+ self.c = c
+
+
+class Test_stringify(unittest.TestCase):
+ """ Test case for ryu.lib.stringify
+ """
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def test_jsondict(self):
+ if six.PY3:
+ def b64encode(s):
+ return base64.b64encode(s).decode('ascii')
+ else:
+ b64encode = base64.b64encode
+ j = {'C1': {'a': 'QUFB', 'c': 'Q0ND'}}
+ eq_(j['C1']['a'], b64encode(b'AAA'))
+ eq_(j['C1']['c'], b64encode(b'CCC'))
+ c = C1(a=b'AAA', c=b'CCC')
+ c2 = C1.from_jsondict(j['C1'])
+ eq_(c.__class__, c2.__class__)
+ eq_(c.__dict__, c2.__dict__)
+ eq_(j, c.to_jsondict())
+
+ def test_jsondict2(self):
+
+ def my_encode(x):
+ return x.lower()
+
+ def my_decode(x):
+ return x.upper()
+
+ j = {'C1': {'a': 'aaa', 'c': 'ccc'}}
+ eq_(j['C1']['a'], my_encode('AAA'))
+ eq_(j['C1']['c'], my_encode('CCC'))
+ c = C1(a='AAA', c='CCC')
+ c2 = C1.from_jsondict(j['C1'], decode_string=my_decode)
+ eq_(c.__class__, c2.__class__)
+ eq_(c.__dict__, c2.__dict__)
+ eq_(j, c.to_jsondict(encode_string=my_encode))