diff --git a/BUILD.md b/BUILD.md
index 9c72f0b..718b693 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -378,3 +378,26 @@
 ```
 
 After this, much or all of the things you can do inside the Vagrant box should also work natively on the Mac.
+
+
+### Test Issues and Workarounds
+
+ 1. The dreaded "Need to install scapy for packet parsing" error when running
+ olt-oftest based tests. This is due to a missing dnet package which scapy
+ needs. Workaround:
+ 
+    ```
+    brew uninstall libdnet
+    brew install --with-python libdnet
+    cd $VOLTHA_BASE
+    echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' \
+        >> venv-darwin/lib/python2.7/site-packages/homebrew.pth
+    pip install pcapy
+    pip install scapy
+    pip install pypcap
+    ```
+
+ 2. Missing mininet.topo module (used by oftest):
+  
+  Unfortunately I was not yet able to resolve this on the Mac.
+
diff --git a/Dockerfile.chameleon b/Dockerfile.chameleon
index fdf8c8c..6a14b69 100644
--- a/Dockerfile.chameleon
+++ b/Dockerfile.chameleon
@@ -36,6 +36,7 @@
 
 # Bundle app source
 COPY chameleon /chameleon
+COPY common /common
 
 # Exposing process and default entry point
 # EXPOSE 8000
diff --git a/Dockerfile.voltha b/Dockerfile.voltha
index 4783d64..405f499 100644
--- a/Dockerfile.voltha
+++ b/Dockerfile.voltha
@@ -23,6 +23,7 @@
 
 # Bundle app source
 COPY voltha /voltha
+COPY common /common
 
 # Exposing process and default entry point
 # EXPOSE 8000
diff --git a/Makefile b/Makefile
index 865c255..e43ec51 100644
--- a/Makefile
+++ b/Makefile
@@ -73,7 +73,7 @@
 	@echo "utest        : Run all unit tests"
 	@echo
 
-build: utest protos docker-base
+build: protos docker-base
 	docker build -t cord/voltha -f Dockerfile.voltha .
 	docker build -t cord/chameleon -f Dockerfile.chameleon .
 
@@ -86,6 +86,7 @@
 protos:
 	make -C voltha/protos
 	make -C chameleon/protos
+	make -C ofagent/protos
 
 install-protoc:
 	make -C voltha/protos install-protoc
diff --git a/chameleon/grpc_client/grpc_client.py b/chameleon/grpc_client/grpc_client.py
index 790bab3..9129b2e 100644
--- a/chameleon/grpc_client/grpc_client.py
+++ b/chameleon/grpc_client/grpc_client.py
@@ -33,7 +33,7 @@
 from twisted.internet.defer import inlineCallbacks
 from werkzeug.exceptions import ServiceUnavailable
 
-from chameleon.asleep import asleep
+from common.utils.asleep import asleep
 from chameleon.protos.schema_pb2 import NullMessage, SchemaServiceStub
 
 log = get_logger()
diff --git a/chameleon/main.py b/chameleon/main.py
index 3892dac..14c854b 100755
--- a/chameleon/main.py
+++ b/chameleon/main.py
@@ -28,11 +28,11 @@
 sys.path.append(base_dir)
 sys.path.append(os.path.join(base_dir, '/chameleon/protos/third_party'))
 
-from chameleon.structlog_setup import setup_logging
-from chameleon.nethelpers import get_my_primary_local_ipv4
-from chameleon.dockerhelpers import get_my_containers_name
 from chameleon.grpc_client.grpc_client import GrpcClient
 from chameleon.web_server.web_server import WebServer
+from common.utils.dockerhelpers import get_my_containers_name
+from common.utils.nethelpers import get_my_primary_local_ipv4
+from common.utils.structlog_setup import setup_logging
 
 
 defs = dict(
diff --git a/chameleon/protoc_plugins/gw_gen.py b/chameleon/protoc_plugins/gw_gen.py
index 77f74fa..5398c32 100755
--- a/chameleon/protoc_plugins/gw_gen.py
+++ b/chameleon/protoc_plugins/gw_gen.py
@@ -40,6 +40,8 @@
 
 def add_routes(app, grpc_client):
 
+    pass  # so that if no endpoints are defined, Python is still happy
+
     {% for method in methods %}
     {% set method_name = method['service'] + '_' + method['method'] %}
     {% set path = method['path'].replace('{', '<string:').replace('}', '>') %}
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/common/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to common/__init__.py
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/common/utils/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to common/utils/__init__.py
diff --git a/chameleon/asleep.py b/common/utils/asleep.py
similarity index 82%
rename from chameleon/asleep.py
rename to common/utils/asleep.py
index e1868ab..e27d313 100644
--- a/chameleon/asleep.py
+++ b/common/utils/asleep.py
@@ -21,7 +21,11 @@
 
 
 def asleep(dt):
-    assert isinstance(dt, (int, float))
+    """
+    Async (event driven) wait for given time period (in seconds)
+    :param dt: Delay in seconds
+    :return: Deferred to be fired with value None when time expires.
+    """
     d = Deferred()
     reactor.callLater(dt, lambda: d.callback(None))
     return d
diff --git a/voltha/consulhelpers.py b/common/utils/consulhelpers.py
similarity index 100%
rename from voltha/consulhelpers.py
rename to common/utils/consulhelpers.py
diff --git a/chameleon/dockerhelpers.py b/common/utils/dockerhelpers.py
similarity index 100%
rename from chameleon/dockerhelpers.py
rename to common/utils/dockerhelpers.py
diff --git a/common/utils/message_queue.py b/common/utils/message_queue.py
new file mode 100644
index 0000000..74b763f
--- /dev/null
+++ b/common/utils/message_queue.py
@@ -0,0 +1,89 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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 twisted.internet.defer import Deferred
+from twisted.internet.defer import succeed
+
+
+class MessageQueue(object):
+    """
+    An event driven queue, similar to twisted.internet.defer.DeferredQueue
+    but which allows selective dequeing based on a predicate function.
+    Unlike DeferredQueue, there is no limit on backlog, and there is no queue
+    limit.
+    """
+
+    def __init__(self):
+        self.waiting = []  # tuples of (d, predicate)
+        self.queue = []  # messages piling up here if no one is waiting
+
+    def reset(self):
+        """
+        Purge all content as well as waiters (by errback-ing their entries).
+        :return: None
+        """
+        for d, _ in self.waiting:
+            d.errback(Exception('mesage queue reset() was called'))
+        self.waiting = []
+        self.queue = []
+
+    def _cancelGet(self, d):
+        """
+        Remove a deferred from our waiting list.
+        :param d: The deferred that was been canceled.
+        :return: None
+        """
+        for i in range(len(self.waiting)):
+            if self.waiting[i][0] is d:
+                self.waiting.pop(i)
+
+    def put(self, obj):
+        """
+        Add an object to this queue
+        :param obj: arbitrary object that will be added to the queue
+        :return:
+        """
+
+        # if someone is waiting for this, return right away
+        for i in range(len(self.waiting)):
+            d, predicate = self.waiting[i]
+            if predicate is None or predicate(obj):
+                self.waiting.pop(i)
+                d.callback(obj)
+                return
+
+        # otherwise...
+        self.queue.append(obj)
+
+    def get(self, predicate=None):
+        """
+        Attempt to retrieve and remove an object from the queue that
+        matches the optional predicate.
+        :return: Deferred which fires with the next object available.
+        If predicate was provided, only objects for which
+        predicate(obj) is True will be considered.
+        """
+        for i in range(len(self.queue)):
+            msg = self.queue[i]
+            if predicate is None or predicate(msg):
+                self.queue.pop(i)
+                return succeed(msg)
+
+        # there were no matching entries if we got here, so we wait
+        d = Deferred(canceller=self._cancelGet)
+        self.waiting.append((d, predicate))
+        return d
+
+
diff --git a/chameleon/nethelpers.py b/common/utils/nethelpers.py
similarity index 100%
rename from chameleon/nethelpers.py
rename to common/utils/nethelpers.py
diff --git a/chameleon/structlog_setup.py b/common/utils/structlog_setup.py
similarity index 100%
rename from chameleon/structlog_setup.py
rename to common/utils/structlog_setup.py
diff --git a/env.sh b/env.sh
index 4c73088..9efac4d 100644
--- a/env.sh
+++ b/env.sh
@@ -13,10 +13,10 @@
 . $VENVDIR/bin/activate
 
 # add top-level voltha dir to pythonpath
-export PYTHONPATH=$PYTHONPATH:$VOLTHA_BASE:$VOLTHA_BASE/voltha/protos/third_party
+export PYTHONPATH=$VENVDIR/lib/python2.7/site-packages:$PYTHONPATH:$VOLTHA_BASE:$VOLTHA_BASE/voltha/protos/third_party
 
 # assign DOCKER_HOST_IP to be the main ip address of this host
-export DOCKER_HOST_IP=$(python voltha/nethelpers.py)
+export DOCKER_HOST_IP=$(python common/utils/nethelpers.py)
 
 # to avoid permission issues, create a dir for fluentd logs
 # of if it exists make sure we can write to it
diff --git a/experiments/openflow_13.proto b/experiments/openflow_13.proto
deleted file mode 100644
index 664c0d2..0000000
--- a/experiments/openflow_13.proto
+++ /dev/null
@@ -1,2286 +0,0 @@
-/* Copyright (c) 2008 The Board of Trustees of The Leland Stanford
- * Junior University
- * Copyright (c) 2011, 2012 Open Networking Foundation
- *
- * We are making the OpenFlow specification and associated documentation
- * (Software) available for public use and benefit with the expectation
- * that others will use, modify and enhance the Software and contribute
- * those enhancements back to the community. However, since we would
- * like to make the Software available for broadest use, with as few
- * restrictions as possible permission is hereby granted, free of
- * charge, to any person obtaining a copy of this Software to deal in
- * the Software under the copyrights without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * The name and trademarks of copyright holder(s) may NOT be used in
- * advertising or publicity pertaining to the Software or any
- * derivatives without specific, written prior permission.
- */
-
-/* OpenFlow: protocol between controller and datapath. */
-
-/*
- * - all pad fields dropped
- * - for each enum value above 0x7fffffff the MSB is dropped. For example,
- *   0xffffffff is now 0x7fffffff.
- * - '<type> thing[...]' is replaced with 'repeated <type> thing'
- * - 'char thing[...]' is replaced with 'string thing'
- * - 'uint8_t data[...]' is replaced with 'bytes data'
- * - the following systematic changes are done to various integer types:
- *   uint8_t  -> uint32
- *   uint16_t -> uint32
- *   uint32_t -> uint32
- *   uint64_t -> uint64
- *
- */
-syntax = "proto3";
-
-package openflow.v13;
-
-
-/* Version number:
- * OpenFlow versions released: 0x01 = 1.0 ; 0x02 = 1.1 ; 0x03 = 1.2
- *     0x04 = 1.3
- */
-/* The most significant bit in the version field is reserved and must
- * be set to zero.
- */
-//#define OFP_VERSION   0x04
-//#define PIPELINE_TABLES 64
-//#define OFP_MAX_TABLE_NAME_LEN 32
-//#define OFP_MAX_PORT_NAME_LEN  16
-/* Official IANA registered port for OpenFlow. */
-//#define OFP_TCP_PORT  6653
-//#define OFP_SSL_PORT  6653
-
-//#define OFP_ETH_ALEN 6          /* Bytes in an Ethernet address. */
-
-/* Port numbering. Ports are numbered starting from 1. */
-enum ofp_port_no {
-    OFPP_INVALID    = 0;
-
-    /* Maximum number of physical and logical switch ports. */
-    OFPP_MAX        = 0x7fffff00;
-
-    /* Reserved OpenFlow Port (fake output "ports"). */
-    OFPP_IN_PORT    = 0x7ffffff8;  /* Send the packet out the input port.  This
-                                      reserved port must be explicitly used
-                                      in order to send back out of the input
-                                      port. */
-    OFPP_TABLE      = 0x7ffffff9;  /* Submit the packet to the first flow table
-                                      NB: This destination port can only be
-                                      used in packet-out messages. */
-    OFPP_NORMAL     = 0x7ffffffa;  /* Forward using non-OpenFlow pipeline. */
-    OFPP_FLOOD      = 0x7ffffffb;  /* Flood using non-OpenFlow pipeline. */
-    OFPP_ALL        = 0x7ffffffc;  /* All standard ports except input port. */
-    OFPP_CONTROLLER = 0x7ffffffd;  /* Send to controller. */
-    OFPP_LOCAL      = 0x7ffffffe;  /* Local openflow "port". */
-    OFPP_ANY        = 0x7fffffff;  /* Special value used in some requests when
-                                      no port is specified (i.e. wildcarded). */
-};
-
-enum ofp_type {
-    /* Immutable messages. */
-    OFPT_HELLO              = 0;  /* Symmetric message */
-    OFPT_ERROR              = 1;  /* Symmetric message */
-    OFPT_ECHO_REQUEST       = 2;  /* Symmetric message */
-    OFPT_ECHO_REPLY         = 3;  /* Symmetric message */
-    OFPT_EXPERIMENTER       = 4;  /* Symmetric message */
-
-    /* Switch configuration messages. */
-    OFPT_FEATURES_REQUEST   = 5;  /* Controller/switch message */
-    OFPT_FEATURES_REPLY     = 6;  /* Controller/switch message */
-    OFPT_GET_CONFIG_REQUEST = 7;  /* Controller/switch message */
-    OFPT_GET_CONFIG_REPLY   = 8;  /* Controller/switch message */
-    OFPT_SET_CONFIG         = 9;  /* Controller/switch message */
-
-    /* Asynchronous messages. */
-    OFPT_PACKET_IN          = 10; /* Async message */
-    OFPT_FLOW_REMOVED       = 11; /* Async message */
-    OFPT_PORT_STATUS        = 12; /* Async message */
-
-    /* Controller command messages. */
-    OFPT_PACKET_OUT         = 13; /* Controller/switch message */
-    OFPT_FLOW_MOD           = 14; /* Controller/switch message */
-    OFPT_GROUP_MOD          = 15; /* Controller/switch message */
-    OFPT_PORT_MOD           = 16; /* Controller/switch message */
-    OFPT_TABLE_MOD          = 17; /* Controller/switch message */
-
-    /* Multipart messages. */
-    OFPT_MULTIPART_REQUEST      = 18; /* Controller/switch message */
-    OFPT_MULTIPART_REPLY        = 19; /* Controller/switch message */
-
-    /* Barrier messages. */
-    OFPT_BARRIER_REQUEST    = 20; /* Controller/switch message */
-    OFPT_BARRIER_REPLY      = 21; /* Controller/switch message */
-
-    /* Queue Configuration messages. */
-    OFPT_QUEUE_GET_CONFIG_REQUEST = 22;  /* Controller/switch message */
-    OFPT_QUEUE_GET_CONFIG_REPLY   = 23;  /* Controller/switch message */
-
-    /* Controller role change request messages. */
-    OFPT_ROLE_REQUEST       = 24; /* Controller/switch message */
-    OFPT_ROLE_REPLY         = 25; /* Controller/switch message */
-
-    /* Asynchronous message configuration. */
-    OFPT_GET_ASYNC_REQUEST  = 26; /* Controller/switch message */
-    OFPT_GET_ASYNC_REPLY    = 27; /* Controller/switch message */
-    OFPT_SET_ASYNC          = 28; /* Controller/switch message */
-
-    /* Meters and rate limiters configuration messages. */
-    OFPT_METER_MOD          = 29; /* Controller/switch message */
-};
-
-/* Header on all OpenFlow packets. */
-message ofp_header {
-    uint32 version = 1;    /* OFP_VERSION. */
-    uint32 type = 2;       /* One of the OFPT_ constants. */
-    uint32 length = 3;    /* Length including this ofp_header. */
-    uint32 xid = 4;       /* Transaction id associated with this packet.
-                           Replies use the same id as was in the request
-                           to facilitate pairing. */
-};
-
-/* Hello elements types.
- */
-enum ofp_hello_elem_type {
-    OFPHET_INVALID                = 0;
-    OFPHET_VERSIONBITMAP          = 1;  /* Bitmap of version supported. */
-};
-
-/* Common header for all Hello Elements */
-message ofp_hello_elem_header {
-    uint32         type = 1;    /* One of OFPHET_*. */
-    uint32         length = 2;  /* Length in bytes of the element,
-                                   including this header, excluding padding. */
-};
-
-/* Version bitmap Hello Element */
-message ofp_hello_elem_versionbitmap {
-    uint32         type = 1;    /* OFPHET_VERSIONBITMAP. */
-    uint32         length = 2;  /* Length in bytes of this element,
-                                 including this header, excluding padding. */
-    /* Followed by:
-     *   - Exactly (length - 4) bytes containing the bitmaps, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated uint32 bitmaps = 3;   /* List of bitmaps - supported versions */
-};
-
-/* OFPT_HELLO.  This message includes zero or more hello elements having
- * variable size. Unknown elements types must be ignored/skipped, to allow
- * for future extensions. */
-message ofp_hello {
-    ofp_header header = 1;
-
-    /* Hello element list */
-    repeated ofp_hello_elem_header elements = 2; /* List of elements - 0 or more */
-};
-
-//#define OFP_DEFAULT_MISS_SEND_LEN   128
-
-enum ofp_config_flags {
-    /* Handling of IP fragments. */
-    OFPC_FRAG_NORMAL   = 0;       /* No special handling for fragments. */
-    OFPC_FRAG_DROP     = 1;       /* Drop fragments. */
-    OFPC_FRAG_REASM    = 2;       /* Reassemble (only if OFPC_IP_REASM set). */
-    OFPC_FRAG_MASK     = 3;       /* Bitmask of flags dealing with frag. */
-};
-
-/* Switch configuration. */
-message ofp_switch_config {
-    ofp_header header = 1;
-    uint32 flags = 2;             /* Bitmap of OFPC_* flags. */
-    uint32 miss_send_len = 3;     /* Max bytes of packet that datapath
-                                       should send to the controller. See
-                                       ofp_controller_max_len for valid values.
-                                     */
-};
-
-/* Flags to configure the table. Reserved for future use. */
-enum ofp_table_config {
-    OFPTC_INVALID = 0;
-    OFPTC_DEPRECATED_MASK       = 3;  /* Deprecated bits */
-};
-
-/* Table numbering. Tables can use any number up to OFPT_MAX. */
-enum ofp_table {
-    OFPTT_INVALID = 0;
-    /* Last usable table number. */
-    OFPTT_MAX        = 0xfe;
-
-    /* Fake tables. */
-    OFPTT_ALL        = 0xff;   /* Wildcard table used for table config,
-                                 flow stats and flow deletes. */
-};
-
-
-/* Configure/Modify behavior of a flow table */
-message ofp_table_mod {
-    ofp_header header = 1;
-    uint32 table_id = 2;       /* ID of the table, OFPTT_ALL indicates all tables */
-    uint32 config = 3;        /* Bitmap of OFPTC_* flags */
-};
-
-/* Capabilities supported by the datapath. */
-enum ofp_capabilities {
-    OFPC_INVALID        = 0;
-    OFPC_FLOW_STATS     = 1;  /* Flow statistics. */
-    OFPC_TABLE_STATS    = 2;  /* Table statistics. */
-    OFPC_PORT_STATS     = 4;  /* Port statistics. */
-    OFPC_GROUP_STATS    = 8;  /* Group statistics. */
-    OFPC_IP_REASM       = 32;  /* Can reassemble IP fragments. */
-    OFPC_QUEUE_STATS    = 64;  /* Queue statistics. */
-    OFPC_PORT_BLOCKED   = 256;   /* Switch will block looping ports. */
-};
-
-/* Flags to indicate behavior of the physical port.  These flags are
- * used in ofp_port to describe the current configuration.  They are
- * used in the ofp_port_mod message to configure the port's behavior.
- */
-enum ofp_port_config {
-    OFPPC_INVALID      = 0;
-    OFPPC_PORT_DOWN    = 1;  /* Port is administratively down. */
-
-    OFPPC_NO_RECV      = 4;  /* Drop all packets received by port. */
-    OFPPC_NO_FWD       = 32;  /* Drop packets forwarded to port. */
-    OFPPC_NO_PACKET_IN = 64;   /* Do not send packet-in msgs for port. */
-};
-
-/* Current state of the physical port.  These are not configurable from
- * the controller.
- */
-enum ofp_port_state {
-    OFPPS_INVALID      = 0;
-    OFPPS_LINK_DOWN    = 1;  /* No physical link present. */
-    OFPPS_BLOCKED      = 2;  /* Port is blocked */
-    OFPPS_LIVE         = 4;  /* Live for Fast Failover Group. */
-};
-
-/* Features of ports available in a datapath. */
-enum ofp_port_features {
-    OFPPF_INVALID    = 0;
-    OFPPF_10MB_HD    = 1;  /* 10 Mb half-duplex rate support. */
-    OFPPF_10MB_FD    = 2;  /* 10 Mb full-duplex rate support. */
-    OFPPF_100MB_HD   = 4;  /* 100 Mb half-duplex rate support. */
-    OFPPF_100MB_FD   = 8;  /* 100 Mb full-duplex rate support. */
-    OFPPF_1GB_HD     = 16;  /* 1 Gb half-duplex rate support. */
-    OFPPF_1GB_FD     = 32;  /* 1 Gb full-duplex rate support. */
-    OFPPF_10GB_FD    = 64;  /* 10 Gb full-duplex rate support. */
-    OFPPF_40GB_FD    = 128;  /* 40 Gb full-duplex rate support. */
-    OFPPF_100GB_FD   = 256;  /* 100 Gb full-duplex rate support. */
-    OFPPF_1TB_FD     = 512;  /* 1 Tb full-duplex rate support. */
-    OFPPF_OTHER      = 1024; /* Other rate, not in the list. */
-
-    OFPPF_COPPER     = 2048; /* Copper medium. */
-    OFPPF_FIBER      = 4096; /* Fiber medium. */
-    OFPPF_AUTONEG    = 8192; /* Auto-negotiation. */
-    OFPPF_PAUSE      = 16384; /* Pause. */
-    OFPPF_PAUSE_ASYM = 32768;  /* Asymmetric pause. */
-};
-
-/* Description of a port */
-message ofp_port {
-    uint32 port_no = 1;
-    repeated uint32 hw_addr = 2; // [OFP_ETH_ALEN];
-    string name = 3;        /* Null-terminated */
-
-    uint32 config = 4;        /* Bitmap of OFPPC_* flags. */
-    uint32 state = 5;         /* Bitmap of OFPPS_* flags. */
-
-    /* Bitmaps of OFPPF_* that describe features.  All bits zeroed if
-     * unsupported or unavailable. */
-    uint32 curr = 6;          /* Current features. */
-    uint32 advertised = 7;    /* Features being advertised by the port. */
-    uint32 supported = 8;     /* Features supported by the port. */
-    uint32 peer = 9;          /* Features advertised by peer. */
-
-    uint32 curr_speed = 10;    /* Current port bitrate in kbps. */
-    uint32 max_speed = 11;     /* Max port bitrate in kbps */
-};
-
-/* Switch features. */
-message ofp_switch_features {
-    ofp_header header = 1;
-    uint64 datapath_id = 2;   /* Datapath unique ID.  The lower 48-bits are for
-                               a MAC address, while the upper 16-bits are
-                               implementer-defined. */
-
-    uint32 n_buffers = 3;     /* Max packets buffered at once. */
-
-    uint32 n_tables = 4;       /* Number of tables supported by datapath. */
-    uint32 auxiliary_id = 5;   /* Identify auxiliary connections */
-
-    /* Features. */
-    uint32 capabilities = 6;  /* Bitmap of support "ofp_capabilities". */
-};
-
-/* What changed about the physical port */
-enum ofp_port_reason {
-    OFPPR_ADD     = 0;         /* The port was added. */
-    OFPPR_DELETE  = 1;         /* The port was removed. */
-    OFPPR_MODIFY  = 2;         /* Some attribute of the port has changed. */
-};
-
-/* A physical port has changed in the datapath */
-message ofp_port_status {
-    ofp_header header = 1;
-    uint32 reason = 2;          /* One of OFPPR_*. */
-    ofp_port desc = 3;
-};
-
-/* Modify behavior of the physical port */
-message ofp_port_mod {
-    ofp_header header = 1;
-    uint32 port_no = 2;
-    repeated uint32 hw_addr = 3; //[OFP_ETH_ALEN];
-                                      /* The hardware address is not
-                                      configurable.  This is used to
-                                      sanity-check the request, so it must
-                                      be the same as returned in an
-                                      ofp_port struct. */
-    uint32 config = 4;        /* Bitmap of OFPPC_* flags. */
-    uint32 mask = 5;          /* Bitmap of OFPPC_* flags to be changed. */
-
-    uint32 advertise = 6;     /* Bitmap of OFPPF_*.  Zero all bits to prevent
-                               any action taking place. */
-};
-
-/* ## -------------------------- ## */
-/* ## OpenFlow Extensible Match. ## */
-/* ## -------------------------- ## */
-
-/* The match type indicates the match structure (set of fields that compose the
- * match) in use. The match type is placed in the type field at the beginning
- * of all match structures. The "OpenFlow Extensible Match" type corresponds
- * to OXM TLV format described below and must be supported by all OpenFlow
- * switches. Extensions that define other match types may be published on the
- * ONF wiki. Support for extensions is optional.
- */
-enum ofp_match_type {
-    OFPMT_STANDARD = 0;       /* Deprecated. */
-    OFPMT_OXM      = 1;       /* OpenFlow Extensible Match */
-};
-
-/* Fields to match against flows */
-message ofp_match {
-    uint32 type = 1;             /* One of OFPMT_* */
-    uint32 length = 2;           /* Length of ofp_match (excluding padding) */
-    /* Followed by:
-     *   - Exactly (length - 4) (possibly 0) bytes containing OXM TLVs, then
-     *   - Exactly ((length + 7)/8*8 - length) (between 0 and 7) bytes of
-     *     all-zero bytes
-     * In summary, ofp_match is padded as needed, to make its overall size
-     * a multiple of 8, to preserve alignment in structures using it.
-     */
-    repeated uint32 oxm_fields = 3;     /* 0 or more OXM match fields */
-};
-
-/* Components of a OXM TLV header.
- * Those macros are not valid for the experimenter class, macros for the
- * experimenter class will depend on the experimenter header used. */
-//#define OXM_HEADER__(CLASS, FIELD, HASMASK, LENGTH) \
-//    (((CLASS) << 16) | ((FIELD) << 9) | ((HASMASK) << 8) | (LENGTH))
-//#define OXM_HEADER(CLASS, FIELD, LENGTH) \
-//    OXM_HEADER__(CLASS, FIELD, 0, LENGTH)
-//#define OXM_HEADER_W(CLASS, FIELD, LENGTH) \
-//    OXM_HEADER__(CLASS, FIELD, 1, (LENGTH) * 2)
-//#define OXM_CLASS(HEADER) ((HEADER) >> 16)
-//#define OXM_FIELD(HEADER) (((HEADER) >> 9) & 0x7f)
-//#define OXM_TYPE(HEADER) (((HEADER) >> 9) & 0x7fffff)
-//#define OXM_HASMASK(HEADER) (((HEADER) >> 8) & 1)
-//#define OXM_LENGTH(HEADER) ((HEADER) & 0xff)
-//
-//#define OXM_MAKE_WILD_HEADER(HEADER) \
-//        OXM_HEADER_W(OXM_CLASS(HEADER), OXM_FIELD(HEADER), OXM_LENGTH(HEADER))
-
-/* OXM Class IDs.
- * The high order bit differentiate reserved classes from member classes.
- * Classes 0x0000 to 0x7FFF are member classes, allocated by ONF.
- * Classes 0x8000 to 0xFFFE are reserved classes, reserved for standardisation.
- */
-enum ofp_oxm_class {
-    OFPXMC_NXM_0          = 0x0000;    /* Backward compatibility with NXM */
-    OFPXMC_NXM_1          = 0x0001;    /* Backward compatibility with NXM */
-    OFPXMC_OPENFLOW_BASIC = 0x8000;    /* Basic class for OpenFlow */
-    OFPXMC_EXPERIMENTER   = 0xFFFF;    /* Experimenter class */
-};
-
-/* OXM Flow match field types for OpenFlow basic class. */
-enum oxm_ofb_match_fields {
-    OFPXMT_OFB_IN_PORT        = 0;  /* Switch input port. */
-    OFPXMT_OFB_IN_PHY_PORT    = 1;  /* Switch physical input port. */
-    OFPXMT_OFB_METADATA       = 2;  /* Metadata passed between tables. */
-    OFPXMT_OFB_ETH_DST        = 3;  /* Ethernet destination address. */
-    OFPXMT_OFB_ETH_SRC        = 4;  /* Ethernet source address. */
-    OFPXMT_OFB_ETH_TYPE       = 5;  /* Ethernet frame type. */
-    OFPXMT_OFB_VLAN_VID       = 6;  /* VLAN id. */
-    OFPXMT_OFB_VLAN_PCP       = 7;  /* VLAN priority. */
-    OFPXMT_OFB_IP_DSCP        = 8;  /* IP DSCP (6 bits in ToS field). */
-    OFPXMT_OFB_IP_ECN         = 9;  /* IP ECN (2 bits in ToS field). */
-    OFPXMT_OFB_IP_PROTO       = 10; /* IP protocol. */
-    OFPXMT_OFB_IPV4_SRC       = 11; /* IPv4 source address. */
-    OFPXMT_OFB_IPV4_DST       = 12; /* IPv4 destination address. */
-    OFPXMT_OFB_TCP_SRC        = 13; /* TCP source port. */
-    OFPXMT_OFB_TCP_DST        = 14; /* TCP destination port. */
-    OFPXMT_OFB_UDP_SRC        = 15; /* UDP source port. */
-    OFPXMT_OFB_UDP_DST        = 16; /* UDP destination port. */
-    OFPXMT_OFB_SCTP_SRC       = 17; /* SCTP source port. */
-    OFPXMT_OFB_SCTP_DST       = 18; /* SCTP destination port. */
-    OFPXMT_OFB_ICMPV4_TYPE    = 19; /* ICMP type. */
-    OFPXMT_OFB_ICMPV4_CODE    = 20; /* ICMP code. */
-    OFPXMT_OFB_ARP_OP         = 21; /* ARP opcode. */
-    OFPXMT_OFB_ARP_SPA        = 22; /* ARP source IPv4 address. */
-    OFPXMT_OFB_ARP_TPA        = 23; /* ARP target IPv4 address. */
-    OFPXMT_OFB_ARP_SHA        = 24; /* ARP source hardware address. */
-    OFPXMT_OFB_ARP_THA        = 25; /* ARP target hardware address. */
-    OFPXMT_OFB_IPV6_SRC       = 26; /* IPv6 source address. */
-    OFPXMT_OFB_IPV6_DST       = 27; /* IPv6 destination address. */
-    OFPXMT_OFB_IPV6_FLABEL    = 28; /* IPv6 Flow Label */
-    OFPXMT_OFB_ICMPV6_TYPE    = 29; /* ICMPv6 type. */
-    OFPXMT_OFB_ICMPV6_CODE    = 30; /* ICMPv6 code. */
-    OFPXMT_OFB_IPV6_ND_TARGET = 31; /* Target address for ND. */
-    OFPXMT_OFB_IPV6_ND_SLL    = 32; /* Source link-layer for ND. */
-    OFPXMT_OFB_IPV6_ND_TLL    = 33; /* Target link-layer for ND. */
-    OFPXMT_OFB_MPLS_LABEL     = 34; /* MPLS label. */
-    OFPXMT_OFB_MPLS_TC        = 35; /* MPLS TC. */
-    OFPXMT_OFB_MPLS_BOS       = 36; /* MPLS BoS bit. */
-    OFPXMT_OFB_PBB_ISID       = 37; /* PBB I-SID. */
-    OFPXMT_OFB_TUNNEL_ID      = 38; /* Logical Port Metadata. */
-    OFPXMT_OFB_IPV6_EXTHDR    = 39; /* IPv6 Extension Header pseudo-field */
-};
-
-//#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 40) - 1)
-
-/* OpenFlow port on which the packet was received.
- * May be a physical port, a logical port, or the reserved port OFPP_LOCAL
- *
- * Prereqs: None.
- *
- * Format: 32-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IN_PORT    OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PORT, 4)
-
-/* Physical port on which the packet was received.
- *
- * Consider a packet received on a tunnel interface defined over a link
- * aggregation group (LAG) with two physical port members.  If the tunnel
- * interface is the logical port bound to OpenFlow.  In this case,
- * OFPXMT_OF_IN_PORT is the tunnel's port number and OFPXMT_OF_IN_PHY_PORT is
- * the physical port number of the LAG on which the tunnel is configured.
- *
- * When a packet is received directly on a physical port and not processed by a
- * logical port, OFPXMT_OF_IN_PORT and OFPXMT_OF_IN_PHY_PORT have the same
- * value.
- *
- * This field is usually not available in a regular match and only available
- * in ofp_packet_in messages when it's different from OXM_OF_IN_PORT.
- *
- * Prereqs: OXM_OF_IN_PORT must be present.
- *
- * Format: 32-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IN_PHY_PORT OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PHY_PORT, 4)
-
-/* Table metadata.
- *
- * Prereqs: None.
- *
- * Format: 64-bit integer in network byte order.
- *
- * Masking: Arbitrary masks.
- */
-//#define OXM_OF_METADATA   OXM_HEADER  (0x8000, OFPXMT_OFB_METADATA, 8)
-//#define OXM_OF_METADATA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_METADATA, 8)
-
-/* Source or destination address in Ethernet header.
- *
- * Prereqs: None.
- *
- * Format: 48-bit Ethernet MAC address.
- *
- * Masking: Arbitrary masks. */
-//#define OXM_OF_ETH_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_DST, 6)
-//#define OXM_OF_ETH_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_DST, 6)
-//#define OXM_OF_ETH_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_SRC, 6)
-//#define OXM_OF_ETH_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_SRC, 6)
-
-/* Packet's Ethernet type.
- *
- * Prereqs: None.
- *
- * Format: 16-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_ETH_TYPE   OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_TYPE, 2)
-
-/* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
- * special conditions.
- */
-enum ofp_vlan_id {
-    OFPVID_NONE    = 0x0000; /* No VLAN id was set. */
-    OFPVID_PRESENT = 0x1000; /* Bit that indicate that a VLAN id is set */
-};
-/* Define for compatibility */
-//#define OFP_VLAN_NONE      OFPVID_NONE
-
-/* 802.1Q VID.
- *
- * For a packet with an 802.1Q header, this is the VLAN-ID (VID) from the
- * outermost tag, with the CFI bit forced to 1. For a packet with no 802.1Q
- * header, this has value OFPVID_NONE.
- *
- * Prereqs: None.
- *
- * Format: 16-bit integer in network byte order with bit 13 indicating
- * presence of VLAN header and 3 most-significant bits forced to 0.
- * Only the lower 13 bits have meaning.
- *
- * Masking: Arbitrary masks.
- *
- * This field can be used in various ways:
- *
- *   - If it is not constrained at all, the nx_match matches packets without
- *     an 802.1Q header or with an 802.1Q header that has any VID value.
- *
- *   - Testing for an exact match with 0x0 matches only packets without
- *     an 802.1Q header.
- *
- *   - Testing for an exact match with a VID value with CFI=1 matches packets
- *     that have an 802.1Q header with a specified VID.
- *
- *   - Testing for an exact match with a nonzero VID value with CFI=0 does
- *     not make sense.  The switch may reject this combination.
- *
- *   - Testing with nxm_value=0, nxm_mask=0x0fff matches packets with no 802.1Q
- *     header or with an 802.1Q header with a VID of 0.
- *
- *   - Testing with nxm_value=0x1000, nxm_mask=0x1000 matches packets with
- *     an 802.1Q header that has any VID value.
- */
-//#define OXM_OF_VLAN_VID   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_VID, 2)
-//#define OXM_OF_VLAN_VID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_VLAN_VID, 2)
-
-/* 802.1Q PCP.
- *
- * For a packet with an 802.1Q header, this is the VLAN-PCP from the
- * outermost tag.  For a packet with no 802.1Q header, this has value
- * 0.
- *
- * Prereqs: OXM_OF_VLAN_VID must be different from OFPVID_NONE.
- *
- * Format: 8-bit integer with 5 most-significant bits forced to 0.
- * Only the lower 3 bits have meaning.
- *
- * Masking: Not maskable.
- */
-//#define OXM_OF_VLAN_PCP   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_PCP, 1)
-
-/* The Diff Serv Code Point (DSCP) bits of the IP header.
- * Part of the IPv4 ToS field or the IPv6 Traffic Class field.
- *
- * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
- *
- * Format: 8-bit integer with 2 most-significant bits forced to 0.
- * Only the lower 6 bits have meaning.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IP_DSCP     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_DSCP, 1)
-
-/* The ECN bits of the IP header.
- * Part of the IPv4 ToS field or the IPv6 Traffic Class field.
- *
- * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
- *
- * Format: 8-bit integer with 6 most-significant bits forced to 0.
- * Only the lower 2 bits have meaning.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IP_ECN     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_ECN, 1)
-
-/* The "protocol" byte in the IP header.
- *
- * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
- *
- * Format: 8-bit integer.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IP_PROTO   OXM_HEADER  (0x8000, OFPXMT_OFB_IP_PROTO, 1)
-
-/* The source or destination address in the IP header.
- *
- * Prereqs: OXM_OF_ETH_TYPE must match 0x0800 exactly.
- *
- * Format: 32-bit integer in network byte order.
- *
- * Masking: Arbitrary masks.
- */
-//#define OXM_OF_IPV4_SRC     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_SRC, 4)
-//#define OXM_OF_IPV4_SRC_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_SRC, 4)
-//#define OXM_OF_IPV4_DST     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_DST, 4)
-//#define OXM_OF_IPV4_DST_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_DST, 4)
-
-/* The source or destination port in the TCP header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
- *   OXM_OF_IP_PROTO must match 6 exactly.
- *
- * Format: 16-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_TCP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_SRC, 2)
-//#define OXM_OF_TCP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_DST, 2)
-
-/* The source or destination port in the UDP header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
- *   OXM_OF_IP_PROTO must match 17 exactly.
- *
- * Format: 16-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_UDP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_SRC, 2)
-//#define OXM_OF_UDP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_DST, 2)
-
-/* The source or destination port in the SCTP header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
- *   OXM_OF_IP_PROTO must match 132 exactly.
- *
- * Format: 16-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_SCTP_SRC   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_SRC, 2)
-//#define OXM_OF_SCTP_DST   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_DST, 2)
-
-/* The type or code in the ICMP header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x0800 exactly.
- *   OXM_OF_IP_PROTO must match 1 exactly.
- *
- * Format: 8-bit integer.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_ICMPV4_TYPE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_TYPE, 1)
-//#define OXM_OF_ICMPV4_CODE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_CODE, 1)
-
-/* ARP opcode.
- *
- * For an Ethernet+IP ARP packet, the opcode in the ARP header.  Always 0
- * otherwise.
- *
- * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
- *
- * Format: 16-bit integer in network byte order.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_ARP_OP     OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_OP, 2)
-
-/* For an Ethernet+IP ARP packet, the source or target protocol address
- * in the ARP header.  Always 0 otherwise.
- *
- * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
- *
- * Format: 32-bit integer in network byte order.
- *
- * Masking: Arbitrary masks.
- */
-//#define OXM_OF_ARP_SPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_SPA, 4)
-//#define OXM_OF_ARP_SPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_SPA, 4)
-//#define OXM_OF_ARP_TPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_TPA, 4)
-//#define OXM_OF_ARP_TPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_TPA, 4)
-
-/* For an Ethernet+IP ARP packet, the source or target hardware address
- * in the ARP header.  Always 0 otherwise.
- *
- * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
- *
- * Format: 48-bit Ethernet MAC address.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_ARP_SHA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_SHA, 6)
-//#define OXM_OF_ARP_SHA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_SHA, 6)
-//#define OXM_OF_ARP_THA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_THA, 6)
-//#define OXM_OF_ARP_THA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_THA, 6)
-
-
-/* The source or destination address in the IPv6 header.
- *
- * Prereqs: OXM_OF_ETH_TYPE must match 0x86dd exactly.
- *
- * Format: 128-bit IPv6 address.
- *
- * Masking: Arbitrary masks.
- */
-//#define OXM_OF_IPV6_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_SRC, 16)
-//#define OXM_OF_IPV6_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_SRC, 16)
-//#define OXM_OF_IPV6_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_DST, 16)
-//#define OXM_OF_IPV6_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_DST, 16)
-
-/* The IPv6 Flow Label
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly
- *
- * Format: 32-bit integer with 12 most-significant bits forced to 0.
- * Only the lower 20 bits have meaning.
- *
- * Masking: Arbitrary masks.
- */
-//#define OXM_OF_IPV6_FLABEL   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
-//#define OXM_OF_IPV6_FLABEL_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
-
-/* The type or code in the ICMPv6 header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
- *   OXM_OF_IP_PROTO must match 58 exactly.
- *
- * Format: 8-bit integer.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_ICMPV6_TYPE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_TYPE, 1)
-//#define OXM_OF_ICMPV6_CODE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_CODE, 1)
-
-/* The target address in an IPv6 Neighbor Discovery message.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
- *   OXM_OF_IP_PROTO must match 58 exactly.
- *   OXM_OF_ICMPV6_TYPE must be either 135 or 136.
- *
- * Format: 128-bit IPv6 address.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IPV6_ND_TARGET OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_ND_TARGET, 16)
-
-/* The source link-layer address option in an IPv6 Neighbor Discovery
- * message.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
- *   OXM_OF_IP_PROTO must match 58 exactly.
- *   OXM_OF_ICMPV6_TYPE must be exactly 135.
- *
- * Format: 48-bit Ethernet MAC address.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IPV6_ND_SLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_SLL, 6)
-
-/* The target link-layer address option in an IPv6 Neighbor Discovery
- * message.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
- *   OXM_OF_IP_PROTO must match 58 exactly.
- *   OXM_OF_ICMPV6_TYPE must be exactly 136.
- *
- * Format: 48-bit Ethernet MAC address.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_IPV6_ND_TLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_TLL, 6)
-
-/* The LABEL in the first MPLS shim header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
- *
- * Format: 32-bit integer in network byte order with 12 most-significant
- * bits forced to 0. Only the lower 20 bits have meaning.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_MPLS_LABEL  OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_LABEL, 4)
-
-/* The TC in the first MPLS shim header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
- *
- * Format: 8-bit integer with 5 most-significant bits forced to 0.
- * Only the lower 3 bits have meaning.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_MPLS_TC     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_TC, 1)
-
-/* The BoS bit in the first MPLS shim header.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
- *
- * Format: 8-bit integer with 7 most-significant bits forced to 0.
- * Only the lowest bit have a meaning.
- *
- * Masking: Not maskable. */
-//#define OXM_OF_MPLS_BOS     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_BOS, 1)
-
-/* IEEE 802.1ah I-SID.
- *
- * For a packet with a PBB header, this is the I-SID from the
- * outermost service tag.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x88E7 exactly.
- *
- * Format: 24-bit integer in network byte order.
- *
- * Masking: Arbitrary masks. */
-//#define OXM_OF_PBB_ISID   OXM_HEADER  (0x8000, OFPXMT_OFB_PBB_ISID, 3)
-//#define OXM_OF_PBB_ISID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_PBB_ISID, 3)
-
-/* Logical Port Metadata.
- *
- * Metadata associated with a logical port.
- * If the logical port performs encapsulation and decapsulation, this
- * is the demultiplexing field from the encapsulation header.
- * For example, for a packet received via GRE tunnel including a (32-bit) key,
- * the key is stored in the low 32-bits and the high bits are zeroed.
- * For a MPLS logical port, the low 20 bits represent the MPLS Label.
- * For a VxLAN logical port, the low 24 bits represent the VNI.
- * If the packet is not received through a logical port, the value is 0.
- *
- * Prereqs: None.
- *
- * Format: 64-bit integer in network byte order.
- *
- * Masking: Arbitrary masks. */
-//#define OXM_OF_TUNNEL_ID    OXM_HEADER  (0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
-//#define OXM_OF_TUNNEL_ID_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
-
-/* The IPv6 Extension Header pseudo-field.
- *
- * Prereqs:
- *   OXM_OF_ETH_TYPE must match 0x86dd exactly
- *
- * Format: 16-bit integer with 7 most-significant bits forced to 0.
- * Only the lower 9 bits have meaning.
- *
- * Masking: Maskable. */
-//#define OXM_OF_IPV6_EXTHDR   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
-//#define OXM_OF_IPV6_EXTHDR_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
-
-/* Bit definitions for IPv6 Extension Header pseudo-field. */
-enum ofp_ipv6exthdr_flags {
-    OFPIEH_INVALID = 0;
-    OFPIEH_NONEXT  = 1;     /* "No next header" encountered. */
-    OFPIEH_ESP     = 2;     /* Encrypted Sec Payload header present. */
-    OFPIEH_AUTH    = 4;     /* Authentication header present. */
-    OFPIEH_DEST    = 8;     /* 1 or 2 dest headers present. */
-    OFPIEH_FRAG    = 16;     /* Fragment header present. */
-    OFPIEH_ROUTER  = 32;     /* Router header present. */
-    OFPIEH_HOP     = 64;     /* Hop-by-hop header present. */
-    OFPIEH_UNREP   = 128;     /* Unexpected repeats encountered. */
-    OFPIEH_UNSEQ   = 256;     /* Unexpected sequencing encountered. */
-};
-
-/* Header for OXM experimenter match fields.
- * The experimenter class should not use OXM_HEADER() macros for defining
- * fields due to this extra header. */
-message ofp_oxm_experimenter_header {
-    uint32 oxm_header = 1;       /* oxm_class = OFPXMC_EXPERIMENTER */
-    uint32 experimenter = 2;     /* Experimenter ID which takes the same
-                                   form as in struct ofp_experimenter_header. */
-};
-
-/* ## ----------------- ## */
-/* ## OpenFlow Actions. ## */
-/* ## ----------------- ## */
-
-enum ofp_action_type {
-    OFPAT_OUTPUT       = 0;  /* Output to switch port. */
-    OFPAT_COPY_TTL_OUT = 11; /* Copy TTL "outwards" -- from next-to-outermost
-                                to outermost */
-    OFPAT_COPY_TTL_IN  = 12; /* Copy TTL "inwards" -- from outermost to
-                               next-to-outermost */
-    OFPAT_SET_MPLS_TTL = 15; /* MPLS TTL */
-    OFPAT_DEC_MPLS_TTL = 16; /* Decrement MPLS TTL */
-
-    OFPAT_PUSH_VLAN    = 17; /* Push a new VLAN tag */
-    OFPAT_POP_VLAN     = 18; /* Pop the outer VLAN tag */
-    OFPAT_PUSH_MPLS    = 19; /* Push a new MPLS tag */
-    OFPAT_POP_MPLS     = 20; /* Pop the outer MPLS tag */
-    OFPAT_SET_QUEUE    = 21; /* Set queue id when outputting to a port */
-    OFPAT_GROUP        = 22; /* Apply group. */
-    OFPAT_SET_NW_TTL   = 23; /* IP TTL. */
-    OFPAT_DEC_NW_TTL   = 24; /* Decrement IP TTL. */
-    OFPAT_SET_FIELD    = 25; /* Set a header field using OXM TLV format. */
-    OFPAT_PUSH_PBB     = 26; /* Push a new PBB service tag (I-TAG) */
-    OFPAT_POP_PBB      = 27; /* Pop the outer PBB service tag (I-TAG) */
-    OFPAT_EXPERIMENTER = 0xffff;
-};
-
-/* Action header that is common to all actions.  The length includes the
- * header and any padding used to make the action 64-bit aligned.
- * NB: The length of an action *must* always be a multiple of eight. */
-message ofp_action_header {
-    uint32 type = 1;                 /* One of OFPAT_*. */
-    uint32 len = 2;                  /* Length of action, including this
-                                       header.  This is the length of action,
-                                       including any padding to make it
-                                       64-bit aligned. */
-};
-
-enum ofp_controller_max_len {
-    OFPCML_INVALID   = 0;
-    OFPCML_MAX       = 0xffe5; /* maximum max_len value which can be used
-                                  to request a specific byte length. */
-    OFPCML_NO_BUFFER = 0xffff;  /* indicates that no buffering should be
-                                  applied and the whole packet is to be
-                                  sent to the controller. */
-};
-
-/* Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
- * When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
- * number of bytes to send.  A 'max_len' of zero means no bytes of the
- * packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
- * the packet is not buffered and the complete packet is to be sent to
- * the controller. */
-message ofp_action_output {
-    uint32 type = 1;                 /* OFPAT_OUTPUT. */
-    uint32 len = 2;                  /* Length is 16. */
-    uint32 port = 3;                 /* Output port. */
-    uint32 max_len = 4;              /* Max length to send to controller. */
-};
-
-/* Action structure for OFPAT_SET_MPLS_TTL. */
-message ofp_action_mpls_ttl {
-    uint32 type = 1;                 /* OFPAT_SET_MPLS_TTL. */
-    uint32 len = 2;                  /* Length is 8. */
-    uint32 mpls_ttl = 3;              /* MPLS TTL */
-};
-
-/* Action structure for OFPAT_PUSH_VLAN/MPLS/PBB. */
-message ofp_action_push {
-    uint32 type = 1;                 /* OFPAT_PUSH_VLAN/MPLS/PBB. */
-    uint32 len = 2;                  /* Length is 8. */
-    uint32 ethertype = 3;            /* Ethertype */
-};
-
-/* Action structure for OFPAT_POP_MPLS. */
-message ofp_action_pop_mpls {
-    uint32 type = 1;                 /* OFPAT_POP_MPLS. */
-    uint32 len = 2;                  /* Length is 8. */
-    uint32 ethertype = 3;            /* Ethertype */
-};
-
-/* Action structure for OFPAT_GROUP. */
-message ofp_action_group {
-    uint32 type = 1;                 /* OFPAT_GROUP. */
-    uint32 len = 2;                  /* Length is 8. */
-    uint32 group_id = 3;             /* Group identifier. */
-};
-
-/* Action structure for OFPAT_SET_NW_TTL. */
-message ofp_action_nw_ttl {
-    uint32 type = 1;                 /* OFPAT_SET_NW_TTL. */
-    uint32 len = 2;                  /* Length is 8. */
-    uint32 nw_ttl = 3;                /* IP TTL */
-};
-
-/* Action structure for OFPAT_SET_FIELD. */
-message ofp_action_set_field {
-    uint32 type = 1;                 /* OFPAT_SET_FIELD. */
-    uint32 len = 2;                  /* Length is padded to 64 bits. */
-    /* Followed by:
-     *   - Exactly (4 + oxm_length) bytes containing a single OXM TLV, then
-     *   - Exactly ((8 + oxm_length) + 7)/8*8 - (8 + oxm_length)
-     *     (between 0 and 7) bytes of all-zero bytes
-     */
-    repeated uint32 field = 3;  //[4];               /* OXM TLV - Make compiler happy */
-};
-
-/* Action header for OFPAT_EXPERIMENTER.
- * The rest of the body is experimenter-defined. */
-message ofp_action_experimenter_header {
-    uint32 type = 1;                 /* OFPAT_EXPERIMENTER. */
-    uint32 len = 2;                  /* Length is a multiple of 8. */
-    uint32 experimenter = 3;         /* Experimenter ID which takes the same
-                                       form as in struct
-                                       ofp_experimenter_header. */
-};
-
-/* ## ---------------------- ## */
-/* ## OpenFlow Instructions. ## */
-/* ## ---------------------- ## */
-
-enum ofp_instruction_type {
-    OFPIT_INVALID    = 0;
-    OFPIT_GOTO_TABLE = 1;       /* Setup the next table in the lookup
-                                   pipeline */
-    OFPIT_WRITE_METADATA = 2;   /* Setup the metadata field for use later in
-                                   pipeline */
-    OFPIT_WRITE_ACTIONS = 3;    /* Write the action(s) onto the datapath action
-                                   set */
-    OFPIT_APPLY_ACTIONS = 4;    /* Applies the action(s) immediately */
-    OFPIT_CLEAR_ACTIONS = 5;    /* Clears all actions from the datapath
-                                   action set */
-    OFPIT_METER = 6;            /* Apply meter (rate limiter) */
-
-    OFPIT_EXPERIMENTER = 0xFFFF;  /* Experimenter instruction */
-};
-
-/* Instruction header that is common to all instructions.  The length includes
- * the header and any padding used to make the instruction 64-bit aligned.
- * NB: The length of an instruction *must* always be a multiple of eight. */
-message ofp_instruction {
-    uint32 type = 1;               /* Instruction type */
-    uint32 len = 2;                /* Length of this struct in bytes. */
-};
-
-/* Instruction structure for OFPIT_GOTO_TABLE */
-message ofp_instruction_goto_table {
-    uint32 type = 1;               /* OFPIT_GOTO_TABLE */
-    uint32 len = 2;                /* Length of this struct in bytes. */
-    uint32 table_id = 3;            /* Set next table in the lookup pipeline */
-};
-
-/* Instruction structure for OFPIT_WRITE_METADATA */
-message ofp_instruction_write_metadata {
-    uint32 type = 1;               /* OFPIT_WRITE_METADATA */
-    uint32 len = 2;                /* Length of this struct in bytes. */
-    uint64 metadata = 3;           /* Metadata value to write */
-    uint64 metadata_mask = 4;      /* Metadata write bitmask */
-};
-
-/* Instruction structure for OFPIT_WRITE/APPLY/CLEAR_ACTIONS */
-message ofp_instruction_actions {
-    uint32 type = 1;             /* One of OFPIT_*_ACTIONS */
-    uint32 len = 2;              /* Length of this struct in bytes. */
-    repeated ofp_action_header actions = 3;  /* 0 or more actions associated with
-                                             OFPIT_WRITE_ACTIONS and
-                                             OFPIT_APPLY_ACTIONS */
-};
-
-/* Instruction structure for OFPIT_METER */
-message ofp_instruction_meter {
-    uint32 type = 1;               /* OFPIT_METER */
-    uint32 len = 2;                /* Length is 8. */
-    uint32 meter_id = 3;           /* Meter instance. */
-};
-
-/* Instruction structure for experimental instructions */
-message ofp_instruction_experimenter {
-    uint32 type = 1;     /* OFPIT_EXPERIMENTER */
-    uint32 len = 2;              /* Length of this struct in bytes */
-    uint32 experimenter = 3;     /* Experimenter ID which takes the same form
-                                   as in struct ofp_experimenter_header. */
-    /* Experimenter-defined arbitrary additional data. */
-};
-
-/* ## --------------------------- ## */
-/* ## OpenFlow Flow Modification. ## */
-/* ## --------------------------- ## */
-
-enum ofp_flow_mod_command {
-    OFPFC_ADD           = 0; /* New flow. */
-    OFPFC_MODIFY        = 1; /* Modify all matching flows. */
-    OFPFC_MODIFY_STRICT = 2; /* Modify entry strictly matching wildcards and
-                                priority. */
-    OFPFC_DELETE        = 3; /* Delete all matching flows. */
-    OFPFC_DELETE_STRICT = 4; /* Delete entry strictly matching wildcards and
-                                priority. */
-};
-
-/* Value used in "idle_timeout" and "hard_timeout" to indicate that the entry
- * is permanent. */
-//#define OFP_FLOW_PERMANENT 0
-
-/* By default, choose a priority in the middle. */
-//#define OFP_DEFAULT_PRIORITY 0x8000
-
-enum ofp_flow_mod_flags {
-    OFPFF_INVALID       = 0;
-    OFPFF_SEND_FLOW_REM = 1;  /* Send flow removed message when flow
-                                    * expires or is deleted. */
-    OFPFF_CHECK_OVERLAP = 2;  /* Check for overlapping entries first. */
-    OFPFF_RESET_COUNTS  = 4;  /* Reset flow packet and byte counts. */
-    OFPFF_NO_PKT_COUNTS = 8;  /* Don't keep track of packet count. */
-    OFPFF_NO_BYT_COUNTS = 16;  /* Don't keep track of byte count. */
-};
-
-/* Flow setup and teardown (controller -> datapath). */
-message ofp_flow_mod {
-    ofp_header header = 1;
-    uint64 cookie = 2;             /* Opaque controller-issued identifier. */
-    uint64 cookie_mask = 3;        /* Mask used to restrict the cookie bits
-                                     that must match when the command is
-                                     OFPFC_MODIFY* or OFPFC_DELETE*. A value
-                                     of 0 indicates no restriction. */
-    uint32 table_id = 4;            /* ID of the table to put the flow in.
-                                     For OFPFC_DELETE_* commands, OFPTT_ALL
-                                     can also be used to delete matching
-                                     flows from all tables. */
-    uint32 command = 5;             /* One of OFPFC_*. */
-    uint32 idle_timeout = 6;       /* Idle time before discarding (seconds). */
-    uint32 hard_timeout = 7;       /* Max time before discarding (seconds). */
-    uint32 priority = 8;           /* Priority level of flow entry. */
-    uint32 buffer_id = 9;          /* Buffered packet to apply to, or
-                                     OFP_NO_BUFFER.
-                                     Not meaningful for OFPFC_DELETE*. */
-    uint32 out_port = 10;           /* For OFPFC_DELETE* commands, require
-                                     matching entries to include this as an
-                                     output port.  A value of OFPP_ANY
-                                     indicates no restriction. */
-    uint32 out_group = 11;          /* For OFPFC_DELETE* commands, require
-                                     matching entries to include this as an
-                                     output group.  A value of OFPG_ANY
-                                     indicates no restriction. */
-    uint32 flags = 12;              /* Bitmap of OFPFF_* flags. */
-    ofp_match match = 13;      /* Fields to match. Variable size. */
-    /* The variable size and padded match is always followed by instructions. */
-    /*struct ofp_instruction instructions[0];*/ /* Instruction set - 0 or more.
-                                                 The length of the instruction
-                                                 set is inferred from the
-                                                 length field in the header. */
-};
-
-/* Group numbering. Groups can use any number up to OFPG_MAX. */
-enum ofp_group {
-    OFPG_INVALID = 0;
-    /* Last usable group number. */
-    OFPG_MAX        = 0x7fffff00;
-
-    /* Fake groups. */
-    OFPG_ALL        = 0x7ffffffc;  /* Represents all groups for group delete
-                                      commands. */
-    OFPG_ANY        = 0x7fffffff;   /* Special wildcard: no group specified. */
-};
-
-/* Group commands */
-enum ofp_group_mod_command {
-    OFPGC_ADD    = 0;       /* New group. */
-    OFPGC_MODIFY = 1;       /* Modify all matching groups. */
-    OFPGC_DELETE = 2;       /* Delete all matching groups. */
-};
-
-/* Bucket for use in groups. */
-message ofp_bucket {
-    uint32 len = 1;                  /* Length of the bucket in bytes, including
-                                       this header and any padding to make it
-                                       64-bit aligned. */
-    uint32 weight = 2;               /* Relative weight of bucket.  Only
-                                       defined for select groups. */
-    uint32 watch_port = 3;           /* Port whose state affects whether this
-                                       bucket is live.  Only required for fast
-                                       failover groups. */
-    uint32 watch_group = 4;          /* Group whose state affects whether this
-                                       bucket is live.  Only required for fast
-                                       failover groups. */
-    repeated ofp_action_header actions = 5; /* 0 or more actions associated with
-                                            the bucket - The action list length
-                                            is inferred from the length
-                                            of the bucket. */
-};
-
-/* Group setup and teardown (controller -> datapath). */
-message ofp_group_mod {
-    ofp_header header = 1;
-    uint32 command = 2;            /* One of OFPGC_*. */
-    uint32 type = 3;                /* One of OFPGT_*. */
-    uint32 group_id = 4;           /* Group identifier. */
-    repeated ofp_bucket buckets = 5; /* The length of the bucket array is inferred
-                                     from the length field in the header. */
-};
-
-/* Group types.  Values in the range [128; 255] are reserved for experimental
- * use. */
-enum ofp_group_type {
-    OFPGT_ALL      = 0; /* All (multicast/broadcast) group.  */
-    OFPGT_SELECT   = 1; /* Select group. */
-    OFPGT_INDIRECT = 2; /* Indirect group. */
-    OFPGT_FF       = 3; /* Fast failover group. */
-};
-
-/* Special buffer-id to indicate 'no buffer' */
-//#define OFP_NO_BUFFER 0xffffffff
-
-/* Send packet (controller -> datapath). */
-message ofp_packet_out {
-    ofp_header header = 1;
-    uint32 buffer_id = 2;          /* ID assigned by datapath (OFP_NO_BUFFER
-                                     if none). */
-    uint32 in_port = 3;            /* Packet's input port or OFPP_CONTROLLER. */
-    uint32 actions_len = 4;        /* Size of action array in bytes. */
-    repeated ofp_action_header actions = 5; /* Action list - 0 or more. */
-    /* The variable size action list is optionally followed by packet data.
-     * This data is only present and meaningful if buffer_id == -1.
-     * uint32 data[0];              Packet data.  The length is inferred
-                                     from the length field in the header. */
-};
-
-/* Why is this packet being sent to the controller? */
-enum ofp_packet_in_reason {
-    OFPR_NO_MATCH    = 0;   /* No matching flow (table-miss flow entry). */
-    OFPR_ACTION      = 1;   /* Action explicitly output to controller. */
-    OFPR_INVALID_TTL = 2;   /* Packet has invalid TTL */
-};
-
-/* Packet received on port (datapath -> controller). */
-message ofp_packet_in {
-    ofp_header header = 1;
-    uint32 buffer_id = 2;    /* ID assigned by datapath. */
-    uint32 total_len = 3;    /* Full length of frame. */
-    uint32 reason = 4;        /* Reason packet is being sent (one of OFPR_*) */
-    uint32 table_id = 5;      /* ID of the table that was looked up */
-    uint64 cookie = 6;       /* Cookie of the flow entry that was looked up. */
-    ofp_match match = 7;/* Packet metadata. Variable size. */
-    /* The variable size and padded match is always followed by:
-     *   - Exactly 2 all-zero padding bytes, then
-     *   - An Ethernet frame whose length is inferred from header.length.
-     * The padding bytes preceding the Ethernet frame ensure that the IP
-     * header (if any) following the Ethernet header is 32-bit aligned.
-     */
-    //uint32 pad[2];       /* Align to 64 bit + 16 bit */
-    //uint32 data[0];      /* Ethernet frame */
-};
-
-/* Why was this flow removed? */
-enum ofp_flow_removed_reason {
-    OFPRR_IDLE_TIMEOUT = 0;     /* Flow idle time exceeded idle_timeout. */
-    OFPRR_HARD_TIMEOUT = 1;     /* Time exceeded hard_timeout. */
-    OFPRR_DELETE       = 2;     /* Evicted by a DELETE flow mod. */
-    OFPRR_GROUP_DELETE = 3;     /* Group was removed. */
-    OFPRR_METER_DELETE = 4;     /* Meter was removed */
-};
-
-/* Flow removed (datapath -> controller). */
-message ofp_flow_removed {
-    ofp_header header = 1;
-    uint64 cookie = 2;         /* Opaque controller-issued identifier. */
-
-    uint32 priority = 3;       /* Priority level of flow entry. */
-    uint32 reason = 4;          /* One of OFPRR_*. */
-    uint32 table_id = 5;        /* ID of the table */
-
-    uint32 duration_sec = 6;   /* Time flow was alive in seconds. */
-    uint32 duration_nsec = 7;  /* Time flow was alive in nanoseconds beyond
-                                 duration_sec. */
-    uint32 idle_timeout = 8;   /* Idle timeout from original flow mod. */
-    uint32 hard_timeout = 9;   /* Hard timeout from original flow mod. */
-    uint64 packet_count = 10;
-    uint64 byte_count = 11;
-    ofp_match match = 12;  /* Description of fields. Variable size. */
-};
-
-/* Meter numbering. Flow meters can use any number up to OFPM_MAX. */
-enum ofp_meter {
-    OFPM_ZERO       = 0;
-    /* Last usable meter. */
-    OFPM_MAX        = 0x7fff0000;
-
-    /* Virtual meters. */
-    OFPM_SLOWPATH   = 0x7ffffffd;  /* Meter for slow datapath. */
-    OFPM_CONTROLLER = 0x7ffffffe;  /* Meter for controller connection. */
-    OFPM_ALL        = 0x7fffffff;  /* Represents all meters for stat requests
-                                      commands. */
-};
-
-/* Meter band types */
-enum ofp_meter_band_type {
-    OFPMBT_INVALID         = 0;
-    OFPMBT_DROP            = 1;      /* Drop packet. */
-    OFPMBT_DSCP_REMARK     = 2;      /* Remark DSCP in the IP header. */
-    OFPMBT_EXPERIMENTER    = 0xFFFF; /* Experimenter meter band. */
-};
-
-/* Common header for all meter bands */
-message ofp_meter_band_header {
-    uint32        type = 1;   /* One of OFPMBT_*. */
-    uint32        len = 2;    /* Length in bytes of this band. */
-    uint32        rate = 3;   /* Rate for this band. */
-    uint32        burst_size = 4;/* Size of bursts. */
-};
-
-/* OFPMBT_DROP band - drop packets */
-message ofp_meter_band_drop {
-    uint32        type = 1;   /* OFPMBT_DROP. */
-    uint32        len = 2;   /* Length in bytes of this band. */
-    uint32        rate = 3;   /* Rate for dropping packets. */
-    uint32        burst_size = 4;/* Size of bursts. */
-};
-
-/* OFPMBT_DSCP_REMARK band - Remark DSCP in the IP header */
-message ofp_meter_band_dscp_remark {
-    uint32        type = 1;   /* OFPMBT_DSCP_REMARK. */
-    uint32        len = 2;    /* Length in bytes of this band. */
-    uint32        rate = 3;   /* Rate for remarking packets. */
-    uint32        burst_size = 4;/* Size of bursts. */
-    uint32         prec_level = 5;/* Number of drop precedence level to add. */
-};
-
-/* OFPMBT_EXPERIMENTER band - Experimenter type.
- * The rest of the band is experimenter-defined. */
-message ofp_meter_band_experimenter {
-    uint32        type = 1;   /* One of OFPMBT_*. */
-    uint32        len = 2;    /* Length in bytes of this band. */
-    uint32        rate = 3;   /* Rate for this band. */
-    uint32        burst_size = 4;  /* Size of bursts. */
-    uint32        experimenter = 5;/* Experimenter ID which takes the same
-                                     form as in struct
-                                     ofp_experimenter_header. */
-};
-
-/* Meter commands */
-enum ofp_meter_mod_command {
-    OFPMC_ADD = 0;              /* New meter. */
-    OFPMC_MODIFY = 1;           /* Modify specified meter. */
-    OFPMC_DELETE = 2;           /* Delete specified meter. */
-};
-
-/* Meter configuration flags */
-enum ofp_meter_flags {
-    OFPMF_INVALID = 0;
-    OFPMF_KBPS    = 1;     /* Rate value in kb/s (kilo-bit per second). */
-    OFPMF_PKTPS   = 2;     /* Rate value in packet/sec. */
-    OFPMF_BURST   = 4;     /* Do burst size. */
-    OFPMF_STATS   = 8;     /* Collect statistics. */
-};
-
-/* Meter configuration. OFPT_METER_MOD. */
-message ofp_meter_mod {
-    ofp_header   header = 1;
-    uint32            command = 2;       /* One of OFPMC_*. */
-    uint32            flags = 3;         /* Bitmap of OFPMF_* flags. */
-    uint32            meter_id = 4;      /* Meter instance. */
-    repeated ofp_meter_band_header bands = 5; /* The band list length is
-                                           inferred from the length field
-                                           in the header. */
-};
-
-/* Values for 'type' in ofp_error_message.  These values are immutable: they
- * will not change in future versions of the protocol (although new values may
- * be added). */
-enum ofp_error_type {
-    OFPET_HELLO_FAILED         = 0;  /* Hello protocol failed. */
-    OFPET_BAD_REQUEST          = 1;  /* Request was not understood. */
-    OFPET_BAD_ACTION           = 2;  /* Error in action description. */
-    OFPET_BAD_INSTRUCTION      = 3;  /* Error in instruction list. */
-    OFPET_BAD_MATCH            = 4;  /* Error in match. */
-    OFPET_FLOW_MOD_FAILED      = 5;  /* Problem modifying flow entry. */
-    OFPET_GROUP_MOD_FAILED     = 6;  /* Problem modifying group entry. */
-    OFPET_PORT_MOD_FAILED      = 7;  /* Port mod request failed. */
-    OFPET_TABLE_MOD_FAILED     = 8;  /* Table mod request failed. */
-    OFPET_QUEUE_OP_FAILED      = 9;  /* Queue operation failed. */
-    OFPET_SWITCH_CONFIG_FAILED = 10; /* Switch config request failed. */
-    OFPET_ROLE_REQUEST_FAILED  = 11; /* Controller Role request failed. */
-    OFPET_METER_MOD_FAILED     = 12; /* Error in meter. */
-    OFPET_TABLE_FEATURES_FAILED = 13; /* Setting table features failed. */
-    OFPET_EXPERIMENTER = 0xffff;      /* Experimenter error messages. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_HELLO_FAILED.  'data' contains an
- * ASCII text string that may give failure details. */
-enum ofp_hello_failed_code {
-    OFPHFC_INCOMPATIBLE = 0;    /* No compatible version. */
-    OFPHFC_EPERM        = 1;    /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_BAD_REQUEST.  'data' contains at least
- * the first 64 bytes of the failed request. */
-enum ofp_bad_request_code {
-    OFPBRC_BAD_VERSION      = 0;  /* ofp_header.version not supported. */
-    OFPBRC_BAD_TYPE         = 1;  /* ofp_header.type not supported. */
-    OFPBRC_BAD_MULTIPART    = 2;  /* ofp_multipart_request.type not supported. */
-    OFPBRC_BAD_EXPERIMENTER = 3;  /* Experimenter id not supported
-                                   * (in ofp_experimenter_header or
-                                   * ofp_multipart_request or
-                                   * ofp_multipart_reply). */
-    OFPBRC_BAD_EXP_TYPE     = 4;  /* Experimenter type not supported. */
-    OFPBRC_EPERM            = 5;  /* Permissions error. */
-    OFPBRC_BAD_LEN          = 6;  /* Wrong request length for type. */
-    OFPBRC_BUFFER_EMPTY     = 7;  /* Specified buffer has already been used. */
-    OFPBRC_BUFFER_UNKNOWN   = 8;  /* Specified buffer does not exist. */
-    OFPBRC_BAD_TABLE_ID     = 9;  /* Specified table-id invalid or does not
-                                   * exist. */
-    OFPBRC_IS_SLAVE         = 10; /* Denied because controller is slave. */
-    OFPBRC_BAD_PORT         = 11; /* Invalid port. */
-    OFPBRC_BAD_PACKET       = 12; /* Invalid packet in packet-out. */
-    OFPBRC_MULTIPART_BUFFER_OVERFLOW    = 13; /* ofp_multipart_request
-                                     overflowed the assigned buffer. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_BAD_ACTION.  'data' contains at least
- * the first 64 bytes of the failed request. */
-enum ofp_bad_action_code {
-    OFPBAC_BAD_TYPE           = 0;  /* Unknown or unsupported action type. */
-    OFPBAC_BAD_LEN            = 1;  /* Length problem in actions. */
-    OFPBAC_BAD_EXPERIMENTER   = 2;  /* Unknown experimenter id specified. */
-    OFPBAC_BAD_EXP_TYPE       = 3;  /* Unknown action for experimenter id. */
-    OFPBAC_BAD_OUT_PORT       = 4;  /* Problem validating output port. */
-    OFPBAC_BAD_ARGUMENT       = 5;  /* Bad action argument. */
-    OFPBAC_EPERM              = 6;  /* Permissions error. */
-    OFPBAC_TOO_MANY           = 7;  /* Can't handle this many actions. */
-    OFPBAC_BAD_QUEUE          = 8;  /* Problem validating output queue. */
-    OFPBAC_BAD_OUT_GROUP      = 9;  /* Invalid group id in forward action. */
-    OFPBAC_MATCH_INCONSISTENT = 10; /* Action can't apply for this match,
-                                       or Set-Field missing prerequisite. */
-    OFPBAC_UNSUPPORTED_ORDER  = 11; /* Action order is unsupported for the
-                                 action list in an Apply-Actions instruction */
-    OFPBAC_BAD_TAG            = 12; /* Actions uses an unsupported
-                                       tag/encap. */
-    OFPBAC_BAD_SET_TYPE       = 13; /* Unsupported type in SET_FIELD action. */
-    OFPBAC_BAD_SET_LEN        = 14; /* Length problem in SET_FIELD action. */
-    OFPBAC_BAD_SET_ARGUMENT   = 15; /* Bad argument in SET_FIELD action. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_BAD_INSTRUCTION.  'data' contains at least
- * the first 64 bytes of the failed request. */
-enum ofp_bad_instruction_code {
-    OFPBIC_UNKNOWN_INST     = 0; /* Unknown instruction. */
-    OFPBIC_UNSUP_INST       = 1; /* Switch or table does not support the
-                                    instruction. */
-    OFPBIC_BAD_TABLE_ID     = 2; /* Invalid Table-ID specified. */
-    OFPBIC_UNSUP_METADATA   = 3; /* Metadata value unsupported by datapath. */
-    OFPBIC_UNSUP_METADATA_MASK = 4; /* Metadata mask value unsupported by
-                                       datapath. */
-    OFPBIC_BAD_EXPERIMENTER = 5; /* Unknown experimenter id specified. */
-    OFPBIC_BAD_EXP_TYPE     = 6; /* Unknown instruction for experimenter id. */
-    OFPBIC_BAD_LEN          = 7; /* Length problem in instructions. */
-    OFPBIC_EPERM            = 8; /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_BAD_MATCH.  'data' contains at least
- * the first 64 bytes of the failed request. */
-enum ofp_bad_match_code {
-    OFPBMC_BAD_TYPE         = 0;  /* Unsupported match type specified by the
-                                     match */
-    OFPBMC_BAD_LEN          = 1;  /* Length problem in match. */
-    OFPBMC_BAD_TAG          = 2;  /* Match uses an unsupported tag/encap. */
-    OFPBMC_BAD_DL_ADDR_MASK = 3;  /* Unsupported datalink addr mask - switch
-                                     does not support arbitrary datalink
-                                     address mask. */
-    OFPBMC_BAD_NW_ADDR_MASK = 4;  /* Unsupported network addr mask - switch
-                                     does not support arbitrary network
-                                     address mask. */
-    OFPBMC_BAD_WILDCARDS    = 5;  /* Unsupported combination of fields masked
-                                     or omitted in the match. */
-    OFPBMC_BAD_FIELD        = 6;  /* Unsupported field type in the match. */
-    OFPBMC_BAD_VALUE        = 7;  /* Unsupported value in a match field. */
-    OFPBMC_BAD_MASK         = 8;  /* Unsupported mask specified in the match,
-                                     field is not dl-address or nw-address. */
-    OFPBMC_BAD_PREREQ       = 9;  /* A prerequisite was not met. */
-    OFPBMC_DUP_FIELD        = 10; /* A field type was duplicated. */
-    OFPBMC_EPERM            = 11; /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_FLOW_MOD_FAILED.  'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_flow_mod_failed_code {
-    OFPFMFC_UNKNOWN      = 0;   /* Unspecified error. */
-    OFPFMFC_TABLE_FULL   = 1;   /* Flow not added because table was full. */
-    OFPFMFC_BAD_TABLE_ID = 2;   /* Table does not exist */
-    OFPFMFC_OVERLAP      = 3;   /* Attempted to add overlapping flow with
-                                   CHECK_OVERLAP flag set. */
-    OFPFMFC_EPERM        = 4;   /* Permissions error. */
-    OFPFMFC_BAD_TIMEOUT  = 5;   /* Flow not added because of unsupported
-                                   idle/hard timeout. */
-    OFPFMFC_BAD_COMMAND  = 6;   /* Unsupported or unknown command. */
-    OFPFMFC_BAD_FLAGS    = 7;   /* Unsupported or unknown flags. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_GROUP_MOD_FAILED.  'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_group_mod_failed_code {
-    OFPGMFC_GROUP_EXISTS         = 0;  /* Group not added because a group ADD
-                                          attempted to replace an
-                                          already-present group. */
-    OFPGMFC_INVALID_GROUP        = 1;  /* Group not added because Group
-                                          specified is invalid. */
-    OFPGMFC_WEIGHT_UNSUPPORTED   = 2;  /* Switch does not support unequal load
-                                          sharing with select groups. */
-    OFPGMFC_OUT_OF_GROUPS        = 3;  /* The group table is full. */
-    OFPGMFC_OUT_OF_BUCKETS       = 4;  /* The maximum number of action buckets
-                                          for a group has been exceeded. */
-    OFPGMFC_CHAINING_UNSUPPORTED = 5;  /* Switch does not support groups that
-                                          forward to groups. */
-    OFPGMFC_WATCH_UNSUPPORTED    = 6;  /* This group cannot watch the watch_port
-                                          or watch_group specified. */
-    OFPGMFC_LOOP                 = 7;  /* Group entry would cause a loop. */
-    OFPGMFC_UNKNOWN_GROUP        = 8;  /* Group not modified because a group
-                                          MODIFY attempted to modify a
-                                          non-existent group. */
-    OFPGMFC_CHAINED_GROUP        = 9;  /* Group not deleted because another
-                                          group is forwarding to it. */
-    OFPGMFC_BAD_TYPE             = 10; /* Unsupported or unknown group type. */
-    OFPGMFC_BAD_COMMAND          = 11; /* Unsupported or unknown command. */
-    OFPGMFC_BAD_BUCKET           = 12; /* Error in bucket. */
-    OFPGMFC_BAD_WATCH            = 13; /* Error in watch port/group. */
-    OFPGMFC_EPERM                = 14; /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_PORT_MOD_FAILED.  'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_port_mod_failed_code {
-    OFPPMFC_BAD_PORT      = 0;   /* Specified port number does not exist. */
-    OFPPMFC_BAD_HW_ADDR   = 1;   /* Specified hardware address does not
-                                  * match the port number. */
-    OFPPMFC_BAD_CONFIG    = 2;   /* Specified config is invalid. */
-    OFPPMFC_BAD_ADVERTISE = 3;   /* Specified advertise is invalid. */
-    OFPPMFC_EPERM         = 4;   /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_TABLE_MOD_FAILED.  'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_table_mod_failed_code {
-    OFPTMFC_BAD_TABLE  = 0;      /* Specified table does not exist. */
-    OFPTMFC_BAD_CONFIG = 1;      /* Specified config is invalid. */
-    OFPTMFC_EPERM      = 2;      /* Permissions error. */
-};
-
-/* ofp_error msg 'code' values for OFPET_QUEUE_OP_FAILED. 'data' contains
- * at least the first 64 bytes of the failed request */
-enum ofp_queue_op_failed_code {
-    OFPQOFC_BAD_PORT   = 0;     /* Invalid port (or port does not exist). */
-    OFPQOFC_BAD_QUEUE  = 1;     /* Queue does not exist. */
-    OFPQOFC_EPERM      = 2;     /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_SWITCH_CONFIG_FAILED. 'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_switch_config_failed_code {
-    OFPSCFC_BAD_FLAGS  = 0;      /* Specified flags is invalid. */
-    OFPSCFC_BAD_LEN    = 1;      /* Specified len is invalid. */
-    OFPSCFC_EPERM      = 2;      /* Permissions error. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_ROLE_REQUEST_FAILED. 'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_role_request_failed_code {
-    OFPRRFC_STALE      = 0;      /* Stale Message: old generation_id. */
-    OFPRRFC_UNSUP      = 1;      /* Controller role change unsupported. */
-    OFPRRFC_BAD_ROLE   = 2;      /* Invalid role. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_METER_MOD_FAILED.  'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_meter_mod_failed_code {
-    OFPMMFC_UNKNOWN       = 0;  /* Unspecified error. */
-    OFPMMFC_METER_EXISTS  = 1;  /* Meter not added because a Meter ADD
-                                 * attempted to replace an existing Meter. */
-    OFPMMFC_INVALID_METER = 2;  /* Meter not added because Meter specified
-                                 * is invalid,
-                                 * or invalid meter in meter action. */
-    OFPMMFC_UNKNOWN_METER = 3;  /* Meter not modified because a Meter MODIFY
-                                 * attempted to modify a non-existent Meter,
-                                 * or bad meter in meter action. */
-    OFPMMFC_BAD_COMMAND   = 4;  /* Unsupported or unknown command. */
-    OFPMMFC_BAD_FLAGS     = 5;  /* Flag configuration unsupported. */
-    OFPMMFC_BAD_RATE      = 6;  /* Rate unsupported. */
-    OFPMMFC_BAD_BURST     = 7;  /* Burst size unsupported. */
-    OFPMMFC_BAD_BAND      = 8;  /* Band unsupported. */
-    OFPMMFC_BAD_BAND_VALUE = 9; /* Band value unsupported. */
-    OFPMMFC_OUT_OF_METERS = 10; /* No more meters available. */
-    OFPMMFC_OUT_OF_BANDS  = 11; /* The maximum number of properties
-                                 * for a meter has been exceeded. */
-};
-
-/* ofp_error_msg 'code' values for OFPET_TABLE_FEATURES_FAILED. 'data' contains
- * at least the first 64 bytes of the failed request. */
-enum ofp_table_features_failed_code {
-    OFPTFFC_BAD_TABLE    = 0;      /* Specified table does not exist. */
-    OFPTFFC_BAD_METADATA = 1;      /* Invalid metadata mask. */
-    OFPTFFC_BAD_TYPE     = 2;      /* Unknown property type. */
-    OFPTFFC_BAD_LEN      = 3;      /* Length problem in properties. */
-    OFPTFFC_BAD_ARGUMENT = 4;      /* Unsupported property value. */
-    OFPTFFC_EPERM        = 5;      /* Permissions error. */
-};
-
-/* OFPT_ERROR: Error message (datapath -> controller). */
-message ofp_error_msg {
-    ofp_header header = 1;
-
-    uint32 type = 2;
-    uint32 code = 3;
-    bytes data = 4;          /* Variable-length data.  Interpreted based
-                                 on the type and code.  No padding. */
-};
-
-/* OFPET_EXPERIMENTER: Error message (datapath -> controller). */
-message ofp_error_experimenter_msg {
-    ofp_header header = 1;
-
-    uint32 type = 2;           /* OFPET_EXPERIMENTER. */
-    uint32 exp_type = 3;       /* Experimenter defined. */
-    uint32 experimenter = 4;   /* Experimenter ID which takes the same form
-                                    as in struct ofp_experimenter_header. */
-    bytes data = 5;              /* Variable-length data.  Interpreted based
-                                    on the type and code.  No padding. */
-};
-
-enum ofp_multipart_type {
-    /* Description of this OpenFlow switch.
-     * The request body is empty.
-     * The reply body is struct ofp_desc. */
-    OFPMP_DESC = 0;
-
-    /* Individual flow statistics.
-     * The request body is struct ofp_flow_stats_request.
-     * The reply body is an array of struct ofp_flow_stats. */
-    OFPMP_FLOW = 1;
-
-    /* Aggregate flow statistics.
-     * The request body is struct ofp_aggregate_stats_request.
-     * The reply body is struct ofp_aggregate_stats_reply. */
-    OFPMP_AGGREGATE = 2;
-
-    /* Flow table statistics.
-     * The request body is empty.
-     * The reply body is an array of struct ofp_table_stats. */
-    OFPMP_TABLE = 3;
-
-    /* Port statistics.
-     * The request body is struct ofp_port_stats_request.
-     * The reply body is an array of struct ofp_port_stats. */
-    OFPMP_PORT_STATS = 4;
-
-    /* Queue statistics for a port
-     * The request body is struct ofp_queue_stats_request.
-     * The reply body is an array of struct ofp_queue_stats */
-    OFPMP_QUEUE = 5;
-
-    /* Group counter statistics.
-     * The request body is struct ofp_group_stats_request.
-     * The reply is an array of struct ofp_group_stats. */
-    OFPMP_GROUP = 6;
-
-    /* Group description.
-     * The request body is empty.
-     * The reply body is an array of struct ofp_group_desc. */
-    OFPMP_GROUP_DESC = 7;
-
-    /* Group features.
-     * The request body is empty.
-     * The reply body is struct ofp_group_features. */
-    OFPMP_GROUP_FEATURES = 8;
-
-    /* Meter statistics.
-     * The request body is struct ofp_meter_multipart_requests.
-     * The reply body is an array of struct ofp_meter_stats. */
-    OFPMP_METER = 9;
-
-    /* Meter configuration.
-     * The request body is struct ofp_meter_multipart_requests.
-     * The reply body is an array of struct ofp_meter_config. */
-    OFPMP_METER_CONFIG = 10;
-
-    /* Meter features.
-     * The request body is empty.
-     * The reply body is struct ofp_meter_features. */
-    OFPMP_METER_FEATURES = 11;
-
-    /* Table features.
-     * The request body is either empty or contains an array of
-     * struct ofp_table_features containing the controller's
-     * desired view of the switch. If the switch is unable to
-     * set the specified view an error is returned.
-     * The reply body is an array of struct ofp_table_features. */
-    OFPMP_TABLE_FEATURES = 12;
-
-    /* Port description.
-     * The request body is empty.
-     * The reply body is an array of struct ofp_port. */
-    OFPMP_PORT_DESC = 13;
-
-    /* Experimenter extension.
-     * The request and reply bodies begin with
-     * struct ofp_experimenter_multipart_header.
-     * The request and reply bodies are otherwise experimenter-defined. */
-    OFPMP_EXPERIMENTER = 0xffff;
-};
-
-/* Backward compatibility with 1.3.1 - avoid breaking the API. */
-//#define ofp_multipart_types ofp_multipart_type
-
-enum ofp_multipart_request_flags {
-    OFPMPF_REQ_INVALID = 0;
-    OFPMPF_REQ_MORE  = 1;  /* More requests to follow. */
-};
-
-message ofp_multipart_request {
-    ofp_header header = 1;
-    uint32 type = 2;             /* One of the OFPMP_* constants. */
-    uint32 flags = 3;            /* OFPMPF_REQ_* flags. */
-    bytes body = 4;            /* Body of the request. 0 or more bytes. */
-};
-
-enum ofp_multipart_reply_flags {
-    OFPMPF_REPLY_INVALID = 0;
-    OFPMPF_REPLY_MORE  = 1;  /* More replies to follow. */
-};
-
-message ofp_multipart_reply {
-    ofp_header header = 1;
-    uint32 type = 2;             /* One of the OFPMP_* constants. */
-    uint32 flags = 3;            /* OFPMPF_REPLY_* flags. */
-    bytes body = 4;                /* Body of the reply. 0 or more bytes. */
-};
-
-//#define DESC_STR_LEN   256
-//#define SERIAL_NUM_LEN 32
-/* Body of reply to OFPMP_DESC request.  Each entry is a NULL-terminated
- * ASCII string. */
-message ofp_desc {
-    string mfr_desc = 1;       /* Manufacturer description. */
-    string hw_desc = 2;        /* Hardware description. */
-    string sw_desc = 3;        /* Software description. */
-    string serial_num = 4;   /* Serial number. */
-    string dp_desc = 5;        /* Human readable description of datapath. */
-};
-
-/* Body for ofp_multipart_request of type OFPMP_FLOW. */
-message ofp_flow_stats_request {
-    uint32 table_id = 1;        /* ID of table to read (from ofp_table_stats),
-                                    OFPTT_ALL for all tables. */
-    uint32 out_port = 2;       /* Require matching entries to include this
-                                    as an output port.  A value of OFPP_ANY
-                                    indicates no restriction. */
-    uint32 out_group = 3;      /* Require matching entries to include this
-                                    as an output group.  A value of OFPG_ANY
-                                    indicates no restriction. */
-    uint64 cookie = 4;         /* Require matching entries to contain this
-                                    cookie value */
-    uint64 cookie_mask = 5;    /* Mask used to restrict the cookie bits that
-                                    must match. A value of 0 indicates
-                                    no restriction. */
-    ofp_match match = 6;         /* Fields to match. Variable size. */
-};
-
-/* Body of reply to OFPMP_FLOW request. */
-message ofp_flow_stats {
-    uint32 length = 1;         /* Length of this entry. */
-    uint32 table_id = 2;        /* ID of table flow came from. */
-    uint32 duration_sec = 3;   /* Time flow has been alive in seconds. */
-    uint32 duration_nsec = 4;  /* Time flow has been alive in nanoseconds beyond
-                                 duration_sec. */
-    uint32 priority = 5;       /* Priority of the entry. */
-    uint32 idle_timeout = 6;   /* Number of seconds idle before expiration. */
-    uint32 hard_timeout = 7;   /* Number of seconds before expiration. */
-    uint32 flags = 8;          /* Bitmap of OFPFF_* flags. */
-    uint64 cookie = 9;         /* Opaque controller-issued identifier. */
-    uint64 packet_count = 10;   /* Number of packets in flow. */
-    uint64 byte_count = 11;     /* Number of bytes in flow. */
-    ofp_match match = 12;  /* Description of fields. Variable size. */
-    /* The variable size and padded match is always followed by instructions. */
-    //struct ofp_instruction instructions[0]; /* Instruction set - 0 or more. */
-};
-
-/* Body for ofp_multipart_request of type OFPMP_AGGREGATE. */
-message ofp_aggregate_stats_request {
-    uint32 table_id = 1;        /* ID of table to read (from ofp_table_stats)
-                                 OFPTT_ALL for all tables. */
-    uint32 out_port = 2;       /* Require matching entries to include this
-                                 as an output port.  A value of OFPP_ANY
-                                 indicates no restriction. */
-    uint32 out_group = 3;      /* Require matching entries to include this
-                                 as an output group.  A value of OFPG_ANY
-                                 indicates no restriction. */
-    uint64 cookie = 4;         /* Require matching entries to contain this
-                                 cookie value */
-    uint64 cookie_mask = 5;    /* Mask used to restrict the cookie bits that
-                                 must match. A value of 0 indicates
-                                 no restriction. */
-    ofp_match match = 6;  /* Fields to match. Variable size. */
-};
-
-/* Body of reply to OFPMP_AGGREGATE request. */
-message ofp_aggregate_stats_reply {
-    uint64 packet_count = 1;   /* Number of packets in flows. */
-    uint64 byte_count = 2;     /* Number of bytes in flows. */
-    uint32 flow_count = 3;     /* Number of flows. */
-};
-
-/* Table Feature property types.
- * Low order bit cleared indicates a property for a regular Flow Entry.
- * Low order bit set indicates a property for the Table-Miss Flow Entry.
- */
-enum ofp_table_feature_prop_type {
-    OFPTFPT_INSTRUCTIONS           = 0;  /* Instructions property. */
-    OFPTFPT_INSTRUCTIONS_MISS      = 1;  /* Instructions for table-miss. */
-    OFPTFPT_NEXT_TABLES            = 2;  /* Next Table property. */
-    OFPTFPT_NEXT_TABLES_MISS       = 3;  /* Next Table for table-miss. */
-    OFPTFPT_WRITE_ACTIONS          = 4;  /* Write Actions property. */
-    OFPTFPT_WRITE_ACTIONS_MISS     = 5;  /* Write Actions for table-miss. */
-    OFPTFPT_APPLY_ACTIONS          = 6;  /* Apply Actions property. */
-    OFPTFPT_APPLY_ACTIONS_MISS     = 7;  /* Apply Actions for table-miss. */
-    OFPTFPT_MATCH                  = 8;  /* Match property. */
-    OFPTFPT_WILDCARDS              = 10; /* Wildcards property. */
-    OFPTFPT_WRITE_SETFIELD         = 12; /* Write Set-Field property. */
-    OFPTFPT_WRITE_SETFIELD_MISS    = 13; /* Write Set-Field for table-miss. */
-    OFPTFPT_APPLY_SETFIELD         = 14; /* Apply Set-Field property. */
-    OFPTFPT_APPLY_SETFIELD_MISS    = 15; /* Apply Set-Field for table-miss. */
-    OFPTFPT_EXPERIMENTER           = 0xFFFE; /* Experimenter property. */
-    OFPTFPT_EXPERIMENTER_MISS      = 0xFFFF; /* Experimenter for table-miss. */
-};
-
-/* Common header for all Table Feature Properties */
-message ofp_table_feature_prop_header {
-    uint32         type = 1;   /* One of OFPTFPT_*. */
-    uint32         length = 2; /* Length in bytes of this property. */
-};
-
-/* Instructions property */
-message ofp_table_feature_prop_instructions {
-    uint32         type = 1;   /* One of OFPTFPT_INSTRUCTIONS,
-                                 OFPTFPT_INSTRUCTIONS_MISS. */
-    uint32         length = 2; /* Length in bytes of this property. */
-    /* Followed by:
-     *   - Exactly (length - 4) bytes containing the instruction ids, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated ofp_instruction instruction_ids = 3;   /* List of instructions */
-};
-
-/* Next Tables property */
-message ofp_table_feature_prop_next_tables {
-    uint32         type = 1;   /* One of OFPTFPT_NEXT_TABLES,
-                                 OFPTFPT_NEXT_TABLES_MISS. */
-    uint32         length = 2; /* Length in bytes of this property. */
-    /* Followed by:
-     *   - Exactly (length - 4) bytes containing the table_ids, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated uint32 next_table_ids = 3;        /* List of table ids. */
-};
-
-/* Actions property */
-message ofp_table_feature_prop_actions {
-    uint32         type = 1;   /* One of OFPTFPT_WRITE_ACTIONS,
-                                 OFPTFPT_WRITE_ACTIONS_MISS,
-                                 OFPTFPT_APPLY_ACTIONS,
-                                 OFPTFPT_APPLY_ACTIONS_MISS. */
-    uint32         length = 2; /* Length in bytes of this property. */
-    /* Followed by:
-     *   - Exactly (length - 4) bytes containing the action_ids, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated ofp_action_header action_ids = 3;      /* List of actions */
-};
-
-/* Match, Wildcard or Set-Field property */
-message ofp_table_feature_prop_oxm {
-    uint32         type = 1;   /* One of OFPTFPT_MATCH,
-                                 OFPTFPT_WILDCARDS,
-                                 OFPTFPT_WRITE_SETFIELD,
-                                 OFPTFPT_WRITE_SETFIELD_MISS,
-                                 OFPTFPT_APPLY_SETFIELD,
-                                 OFPTFPT_APPLY_SETFIELD_MISS. */
-    uint32         length = 2; /* Length in bytes of this property. */
-    /* Followed by:
-     *   - Exactly (length - 4) bytes containing the oxm_ids, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated uint32         oxm_ids = 3;   /* Array of OXM headers */
-};
-
-/* Experimenter table feature property */
-message ofp_table_feature_prop_experimenter {
-    uint32         type = 1;   /* One of OFPTFPT_EXPERIMENTER,
-                                 OFPTFPT_EXPERIMENTER_MISS. */
-    uint32         length = 2; /* Length in bytes of this property. */
-    uint32         experimenter = 3; /* Experimenter ID which takes the same
-                                       form as in struct
-                                       ofp_experimenter_header. */
-    uint32         exp_type = 4;     /* Experimenter defined. */
-    /* Followed by:
-     *   - Exactly (length - 12) bytes containing the experimenter data, then
-     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
-     *     bytes of all-zero bytes */
-    repeated uint32 experimenter_data = 5;
-};
-
-/* Body for ofp_multipart_request of type OFPMP_TABLE_FEATURES./
- * Body of reply to OFPMP_TABLE_FEATURES request. */
-message ofp_table_features {
-    uint32 length = 1;        /* Length is padded to 64 bits. */
-    uint32 table_id = 2;       /* Identifier of table.  Lower numbered tables
-                                are consulted first. */
-    string name = 3;
-    uint64 metadata_match = 4;/* Bits of metadata table can match. */
-    uint64 metadata_write = 5;/* Bits of metadata table can write. */
-    uint32 config = 6;        /* Bitmap of OFPTC_* values */
-    uint32 max_entries = 7;   /* Max number of entries supported. */
-
-    /* Table Feature Property list */
-    repeated ofp_table_feature_prop_header properties = 8; /* List of properties */
-};
-
-/* Body of reply to OFPMP_TABLE request. */
-message ofp_table_stats {
-    uint32 table_id = 1;       /* Identifier of table.  Lower numbered tables
-                                are consulted first. */
-    uint32 active_count = 2;  /* Number of active entries. */
-    uint64 lookup_count = 3;  /* Number of packets looked up in table. */
-    uint64 matched_count = 4; /* Number of packets that hit table. */
-};
-
-/* Body for ofp_multipart_request of type OFPMP_PORT. */
-message ofp_port_stats_request {
-    uint32 port_no = 1;       /* OFPMP_PORT message must request statistics
-                              * either for a single port (specified in
-                              * port_no) or for all ports (if port_no ==
-                              * OFPP_ANY). */
-};
-
-/* Body of reply to OFPMP_PORT request. If a counter is unsupported, set
- * the field to all ones. */
-message ofp_port_stats {
-    uint32 port_no = 1;
-    uint64 rx_packets = 2;    /* Number of received packets. */
-    uint64 tx_packets = 3;    /* Number of transmitted packets. */
-    uint64 rx_bytes = 4;      /* Number of received bytes. */
-    uint64 tx_bytes = 5;      /* Number of transmitted bytes. */
-    uint64 rx_dropped = 6;    /* Number of packets dropped by RX. */
-    uint64 tx_dropped = 7;    /* Number of packets dropped by TX. */
-    uint64 rx_errors = 8;     /* Number of receive errors.  This is a super-set
-                                of more specific receive errors and should be
-                                greater than or equal to the sum of all
-                                rx_*_err values. */
-    uint64 tx_errors = 9;     /* Number of transmit errors.  This is a super-set
-                                of more specific transmit errors and should be
-                                greater than or equal to the sum of all
-                                tx_*_err values (none currently defined.) */
-    uint64 rx_frame_err = 10;  /* Number of frame alignment errors. */
-    uint64 rx_over_err = 11;   /* Number of packets with RX overrun. */
-    uint64 rx_crc_err = 12;    /* Number of CRC errors. */
-    uint64 collisions = 13;    /* Number of collisions. */
-    uint32 duration_sec = 14;  /* Time port has been alive in seconds. */
-    uint32 duration_nsec = 15; /* Time port has been alive in nanoseconds beyond
-                                    duration_sec. */
-};
-
-/* Body of OFPMP_GROUP request. */
-message ofp_group_stats_request {
-    uint32 group_id = 1;      /* All groups if OFPG_ALL. */
-};
-
-/* Used in group stats replies. */
-message ofp_bucket_counter {
-    uint64 packet_count = 1;  /* Number of packets processed by bucket. */
-    uint64 byte_count = 2;    /* Number of bytes processed by bucket. */
-};
-
-/* Body of reply to OFPMP_GROUP request. */
-message ofp_group_stats {
-    uint32 length = 1;        /* Length of this entry. */
-    uint32 group_id = 2;      /* Group identifier. */
-    uint32 ref_count = 3;     /* Number of flows or groups that directly forward
-                                to this group. */
-    uint64 packet_count = 4;  /* Number of packets processed by group. */
-    uint64 byte_count = 5;    /* Number of bytes processed by group. */
-    uint32 duration_sec = 6;  /* Time group has been alive in seconds. */
-    uint32 duration_nsec = 7; /* Time group has been alive in nanoseconds beyond
-                                duration_sec. */
-    repeated ofp_bucket_counter bucket_stats = 8; /* One counter set per bucket. */
-};
-
-/* Body of reply to OFPMP_GROUP_DESC request. */
-message ofp_group_desc {
-    uint32 length = 1;             /* Length of this entry. */
-    uint32 type = 2;                /* One of OFPGT_*. */
-    uint32 pad = 3;                 /* Pad to 64 bits. */
-    uint32 group_id = 4;           /* Group identifier. */
-    repeated ofp_bucket buckets = 5;   /* List of buckets - 0 or more. */
-};
-
-/* Backward compatibility with 1.3.1 - avoid breaking the API. */
-//#define ofp_group_desc_stats ofp_group_desc
-
-/* Group configuration flags */
-enum ofp_group_capabilities {
-    OFPGFC_INVALID         = 0;
-    OFPGFC_SELECT_WEIGHT   = 1;  /* Support weight for select groups */
-    OFPGFC_SELECT_LIVENESS = 2;  /* Support liveness for select groups */
-    OFPGFC_CHAINING        = 4;  /* Support chaining groups */
-    OFPGFC_CHAINING_CHECKS = 8;  /* Check chaining for loops and delete */
-};
-
-/* Body of reply to OFPMP_GROUP_FEATURES request. Group features. */
-message ofp_group_features {
-    uint32  types = 1;          /* Bitmap of (1 << OFPGT_*) values supported. */
-    uint32  capabilities = 2;   /* Bitmap of OFPGFC_* capability supported. */
-    repeated uint32  max_groups = 3;   /* Maximum number of groups for each type. */
-    repeated uint32  actions = 4;      /* Bitmaps of (1 << OFPAT_*) values supported. */
-};
-
-/* Body of OFPMP_METER and OFPMP_METER_CONFIG requests. */
-message ofp_meter_multipart_request {
-    uint32 meter_id = 1;      /* Meter instance, or OFPM_ALL. */
-};
-
-/* Statistics for each meter band */
-message ofp_meter_band_stats {
-    uint64        packet_band_count = 1;  /* Number of packets in band. */
-    uint64        byte_band_count = 2;    /* Number of bytes in band. */
-};
-
-/* Body of reply to OFPMP_METER request. Meter statistics. */
-message ofp_meter_stats {
-    uint32        meter_id = 1;        /* Meter instance. */
-    uint32        len = 2;             /* Length in bytes of this stats. */
-    uint32        flow_count = 3;      /* Number of flows bound to meter. */
-    uint64        packet_in_count = 4; /* Number of packets in input. */
-    uint64        byte_in_count = 5;   /* Number of bytes in input. */
-    uint32   duration_sec = 6; /* Time meter has been alive in seconds. */
-    uint32   duration_nsec = 7;/* Time meter has been alive in nanoseconds beyond
-                                 duration_sec. */
-    repeated ofp_meter_band_stats band_stats = 8; /* The band_stats length is
-                                         inferred from the length field. */
-};
-
-/* Body of reply to OFPMP_METER_CONFIG request. Meter configuration. */
-message ofp_meter_config {
-    uint32        length = 1;          /* Length of this entry. */
-    uint32        flags = 2;           /* All OFPMF_* that apply. */
-    uint32        meter_id = 3;        /* Meter instance. */
-    repeated ofp_meter_band_header bands = 4; /* The bands length is
-                                         inferred from the length field. */
-};
-
-/* Body of reply to OFPMP_METER_FEATURES request. Meter features. */
-message ofp_meter_features {
-    uint32    max_meter = 1;   /* Maximum number of meters. */
-    uint32    band_types = 2;  /* Bitmaps of (1 << OFPMBT_*) values supported. */
-    uint32    capabilities = 3;/* Bitmaps of "ofp_meter_flags". */
-    uint32     max_bands = 4;   /* Maximum bands per meters */
-    uint32     max_color = 5;   /* Maximum color value */
-};
-
-/* Body for ofp_multipart_request/reply of type OFPMP_EXPERIMENTER. */
-message ofp_experimenter_multipart_header {
-    uint32 experimenter = 1;   /* Experimenter ID which takes the same form
-                                 as in struct ofp_experimenter_header. */
-    uint32 exp_type = 2;       /* Experimenter defined. */
-    bytes data = 3; /* Experimenter-defined arbitrary additional data. */
-};
-
-/* Experimenter extension. */
-message ofp_experimenter_header {
-    ofp_header header = 1;  /* Type OFPT_EXPERIMENTER. */
-    uint32 experimenter = 2;     /* Experimenter ID:
-                                 * - MSB 0: low-order bytes are IEEE OUI.
-                                 * - MSB != 0: defined by ONF. */
-    uint32 exp_type = 3;         /* Experimenter defined. */
-    bytes data = 4; /* Experimenter-defined arbitrary additional data. */
-};
-
-/* All ones is used to indicate all queues in a port (for stats retrieval). */
-//#define OFPQ_ALL      0xffffffff
-
-/* Min rate > 1000 means not configured. */
-//#define OFPQ_MIN_RATE_UNCFG      0xffff
-
-/* Max rate > 1000 means not configured. */
-//#define OFPQ_MAX_RATE_UNCFG      0xffff
-
-enum ofp_queue_properties {
-    OFPQT_INVALID       = 0;
-    OFPQT_MIN_RATE      = 1;      /* Minimum datarate guaranteed. */
-    OFPQT_MAX_RATE      = 2;      /* Maximum datarate. */
-    OFPQT_EXPERIMENTER  = 0xffff; /* Experimenter defined property. */
-};
-
-/* Common description for a queue. */
-message ofp_queue_prop_header {
-    uint32 property = 1;   /* One of OFPQT_. */
-    uint32 len = 2;        /* Length of property, including this header. */
-};
-
-/* Min-Rate queue property description. */
-message ofp_queue_prop_min_rate {
-    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_MIN, len: 16. */
-    uint32 rate = 2;       /* In 1/10 of a percent = 0;>1000 -> disabled. */
-};
-
-/* Max-Rate queue property description. */
-message ofp_queue_prop_max_rate {
-    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_MAX, len: 16. */
-    uint32 rate = 2;       /* In 1/10 of a percent = 0;>1000 -> disabled. */
-};
-
-/* Experimenter queue property description. */
-message ofp_queue_prop_experimenter {
-    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_EXPERIMENTER, len: 16. */
-    uint32 experimenter = 2;         /* Experimenter ID which takes the same
-                                          form as in struct
-                                          ofp_experimenter_header. */
-    bytes data = 3;                    /* Experimenter defined data. */
-};
-
-/* Full description for a queue. */
-message ofp_packet_queue {
-    uint32 queue_id = 1;    /* id for the specific queue. */
-    uint32 port = 2;        /* Port this queue is attached to. */
-    uint32 len = 3;         /* Length in bytes of this queue desc. */
-    repeated ofp_queue_prop_header properties = 4; /* List of properties. */
-};
-
-/* Query for port queue configuration. */
-message ofp_queue_get_config_request {
-    ofp_header header = 1;
-    uint32 port = 2;        /* Port to be queried. Should refer
-                              to a valid physical port (i.e. <= OFPP_MAX),
-                              or OFPP_ANY to request all configured
-                              queues.*/
-};
-
-/* Queue configuration for a given port. */
-message ofp_queue_get_config_reply {
-    ofp_header header = 1;
-    uint32 port = 2;
-    repeated ofp_packet_queue queues = 3; /* List of configured queues. */
-};
-
-/* OFPAT_SET_QUEUE action struct: send packets to given queue on port. */
-message ofp_action_set_queue {
-    uint32 type = 1;           /* OFPAT_SET_QUEUE. */
-    uint32 len = 2;            /* Len is 8. */
-    uint32 queue_id = 3;       /* Queue id for the packets. */
-};
-
-message ofp_queue_stats_request {
-    uint32 port_no = 1;       /* All ports if OFPP_ANY. */
-    uint32 queue_id = 2;      /* All queues if OFPQ_ALL. */
-};
-
-message ofp_queue_stats {
-    uint32 port_no = 1;
-    uint32 queue_id = 2;      /* Queue i.d */
-    uint64 tx_bytes = 3;      /* Number of transmitted bytes. */
-    uint64 tx_packets = 4;    /* Number of transmitted packets. */
-    uint64 tx_errors = 5;     /* Number of packets dropped due to overrun. */
-    uint32 duration_sec = 6;  /* Time queue has been alive in seconds. */
-    uint32 duration_nsec = 7; /* Time queue has been alive in nanoseconds beyond
-                                duration_sec. */
-};
-
-/* Configures the "role" of the sending controller.  The default role is:
- *
- *    - Equal (OFPCR_ROLE_EQUAL), which allows the controller access to all
- *      OpenFlow features. All controllers have equal responsibility.
- *
- * The other possible roles are a related pair:
- *
- *    - Master (OFPCR_ROLE_MASTER) is equivalent to Equal, except that there
- *      may be at most one Master controller at a time: when a controller
- *      configures itself as Master, any existing Master is demoted to the
- *      Slave role.
- *
- *    - Slave (OFPCR_ROLE_SLAVE) allows the controller read-only access to
- *      OpenFlow features.  In particular attempts to modify the flow table
- *      will be rejected with an OFPBRC_EPERM error.
- *
- *      Slave controllers do not receive OFPT_PACKET_IN or OFPT_FLOW_REMOVED
- *      messages, but they do receive OFPT_PORT_STATUS messages.
- */
-
-/* Controller roles. */
-enum ofp_controller_role {
-    OFPCR_ROLE_NOCHANGE = 0;    /* Don't change current role. */
-    OFPCR_ROLE_EQUAL    = 1;    /* Default role, full access. */
-    OFPCR_ROLE_MASTER   = 2;    /* Full access, at most one master. */
-    OFPCR_ROLE_SLAVE    = 3;    /* Read-only access. */
-};
-
-/* Role request and reply message. */
-message ofp_role_request {
-    ofp_header header = 1;  /* Type OFPT_ROLE_REQUEST/OFPT_ROLE_REPLY. */
-    uint32 role = 2;             /* One of OFPCR_ROLE_*. */
-    uint64 generation_id = 3;    /* Master Election Generation Id */
-};
-
-/* Asynchronous message configuration. */
-message ofp_async_config {
-    ofp_header header = 1;    /* OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC. */
-    repeated uint32 packet_in_mask = 2;   /* Bitmasks of OFPR_* values. */
-    repeated uint32 port_status_mask = 3; /* Bitmasks of OFPPR_* values. */
-    repeated uint32 flow_removed_mask = 4;/* Bitmasks of OFPRR_* values. */
-};
-
-/*
- * Service API definitions and additional message types needed for it
- */
-
-service OpenFlow {
-
-    /*
-     * Hello message handshake, initiated by the client (controller)
-     */
-    rpc GetHello(ofp_hello)
-        returns(ofp_hello) {
-        // TODO http option
-    }
-
-    /*
-     * Echo request / reply, initiated by the client (controller)
-     */
-    rpc EchoRequest(ofp_header)
-        returns(ofp_header) {
-        // TODO http option
-    }
-
-    /*
-     * Experimental (extension) RPC
-     */
-    rpc ExperimenterRequest(ofp_experimenter_header)
-        returns(ofp_experimenter_header) {
-        // TODO http option
-    }
-
-    /*
-     * Get Switch Features
-     */
-    rpc GetSwitchFeatures(ofp_header) returns(ofp_switch_features) {
-        // TODO http option
-    }
-
-    /*
-     * Get Switch Config
-     */
-    rpc GetSwitchConfig(ofp_header) returns(ofp_switch_config) {
-        // TODO http option
-    }
-
-    /*
-     * Set Config
-     */
-    rpc SetConfig(ofp_switch_config) returns(ofp_header) {
-        // TODO http option
-    }
-
-    /*
-     * Receive Packet-In messages
-     */
-    rpc ReceivePacketInMessages(ofp_header) returns(stream ofp_packet_in) {
-        // TODO http option
-    }
-
-    /*
-     * Send Packet-Out messages
-     */
-    rpc SendPacketOutMessages(ofp_packet_out) returns(ofp_header) {
-        // TODO http option
-    }
-
-    // TODO continue
-    
-}
diff --git a/experiments/streaming_client.py b/experiments/streaming_client.py
index e7593f9..3d93092 100644
--- a/experiments/streaming_client.py
+++ b/experiments/streaming_client.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 import time
 
 import grpc
@@ -6,14 +8,10 @@
 from twisted.internet import threads
 from twisted.internet.defer import Deferred, inlineCallbacks, DeferredQueue
 
+from common.utils.asleep import asleep
 from streaming_pb2 import ExperimentalServiceStub, Echo
 
 
-def asleep(t):
-    d = Deferred()
-    reactor.callLater(t, d.callback, None)
-    return d
-
 t0 = time.time()
 
 
diff --git a/experiments/streaming_server.py b/experiments/streaming_server.py
index a207477..588d4b3 100644
--- a/experiments/streaming_server.py
+++ b/experiments/streaming_server.py
@@ -1,11 +1,13 @@
+#!/usr/bin/env python
+
 import grpc
 from concurrent import futures
 from concurrent.futures import Future
 from twisted.internet import reactor
 from twisted.internet.defer import Deferred, inlineCallbacks, returnValue
 
-from openflow_13_pb2 import add_OpenFlowServicer_to_server, \
-    OpenFlowServicer
+from common.utils.asleep import asleep
+
 from streaming_pb2 import add_ExperimentalServiceServicer_to_server, \
     AsyncEvent, ExperimentalServiceServicer, Echo
 
@@ -14,12 +16,6 @@
     stop = False  # semaphore for all loops to stop when this flag is set
 
 
-def asleep(t):
-    d = Deferred()
-    reactor.callLater(t, d.callback, None)
-    return d
-
-
 class ShuttingDown(Exception): pass
 
 
@@ -92,7 +88,7 @@
     @inlineCallbacks
     def get_next_event(self):
         """called on the twisted thread"""
-        yield asleep(0.000001)
+        yield asleep(0.0001)
         event = AsyncEvent(seq=self.event_seq, details='foo')
         self.event_seq += 1
         returnValue(event)
@@ -112,23 +108,10 @@
         pass
 
 
-class OpenFlow(OpenFlowServicer):
-
-    def EchoRequest(self, request, context):
-        pass
-
-    def SendPacketsOutMessages(self, request, context):
-        pass
-
-    def ReceivePacketInMessages(self, request, context):
-        pass
-
-
 if __name__ == '__main__':
     thread_pool = futures.ThreadPoolExecutor(max_workers=10)
     server = grpc.server(thread_pool)
     add_ExperimentalServiceServicer_to_server(Service(), server)
-    add_OpenFlowServicer_to_server(OpenFlow(), server)
     server.add_insecure_port('[::]:50050')
     server.start()
     def shutdown():
diff --git a/kafka/kafka-consumer.py b/kafka/kafka-consumer.py
index 5be6c39..47d788e 100644
--- a/kafka/kafka-consumer.py
+++ b/kafka/kafka-consumer.py
@@ -5,16 +5,16 @@
 import logging
 from argparse import ArgumentParser
 
+from afkak.client import KafkaClient
+from afkak.common import (
+    KafkaUnavailableError,
+    OFFSET_LATEST)
+from afkak.consumer import Consumer
 from twisted.internet import reactor
 from twisted.internet.defer import DeferredList, inlineCallbacks
 from twisted.python.failure import Failure
-from afkak.client import KafkaClient
-from afkak.consumer import Consumer
-from voltha.consulhelpers import get_endpoint_from_consul
-from afkak.common import (
-    KafkaUnavailableError,
-    OFFSET_EARLIEST,
-    OFFSET_LATEST)
+
+from common.utils.consulhelpers import get_endpoint_from_consul
 
 log = logging.getLogger(__name__)
 
diff --git a/voltha/northbound/openflow/Makefile b/obsolete/Makefile
similarity index 100%
rename from voltha/northbound/openflow/Makefile
rename to obsolete/Makefile
diff --git a/voltha/northbound/openflow/README.md b/obsolete/README.md
similarity index 100%
rename from voltha/northbound/openflow/README.md
rename to obsolete/README.md
diff --git a/voltha/northbound/openflow/agent/agent.py b/obsolete/agent.py
similarity index 84%
rename from voltha/northbound/openflow/agent/agent.py
rename to obsolete/agent.py
index 337fdb3..a0a14fc 100644
--- a/voltha/northbound/openflow/agent/agent.py
+++ b/obsolete/agent.py
@@ -5,7 +5,7 @@
 import time
 
 from loxi.connection import Connection
-from utils import pp
+from ofagent.utils import pp
 
 
 class Agent(object):
@@ -36,7 +36,8 @@
                 soc.connect((self.ip, self.port))
             except socket.error, e:
                 logging.info(
-                    "Cannot connect to controller (errno=%d), retrying in %s secs" %
+                    "Cannot connect to controller (errno=%d), "
+                    "retrying in %s secs" %
                     (e.errno, self.retry_interval))
             else:
                 logging.info("Connected to controller")
@@ -155,58 +156,69 @@
 
                 elif req.stats_type == ofp.OFPST_FLOW:
                     # flow stats requested
-                    msg = ofp.message.flow_stats_reply(xid=req.xid, entries=self.store.flow_list())
+                    msg = ofp.message.flow_stats_reply(
+                        xid=req.xid, entries=self.store.flow_list())
                     cxn.send(msg)
 
                 elif req.stats_type == ofp.OFPST_TABLE:
                     # table stats requested
-                    msg = ofp.message.table_stats_reply(xid=req.xid, entries=self.store.table_stats())
+                    msg = ofp.message.table_stats_reply(
+                        xid=req.xid, entries=self.store.table_stats())
                     cxn.send(msg)
 
                 elif req.stats_type == ofp.OFPST_PORT:
                     # port list
-                    msg = ofp.message.port_stats_reply(xid=req.xid, entries=self.store.port_stats())
+                    msg = ofp.message.port_stats_reply(
+                        xid=req.xid, entries=self.store.port_stats())
                     cxn.send(msg)
 
                 elif req.stats_type == ofp.OFPST_GROUP:
-                    msg = ofp.message.group_stats_reply(xid=req.xid, entries=self.store.group_stats())
+                    msg = ofp.message.group_stats_reply(
+                        xid=req.xid, entries=self.store.group_stats())
                     cxn.send(msg)
 
                 elif req.stats_type == ofp.OFPST_GROUP_DESC:
-                    msg = ofp.message.group_desc_stats_reply(xid=req.xid, entries=self.store.group_list())
+                    msg = ofp.message.group_desc_stats_reply(
+                        xid=req.xid, entries=self.store.group_list())
                     cxn.send(msg)
 
                 elif req.stats_type == ofp.OFPST_METER:
-                    msg = ofp.message.meter_stats_reply(xid=req.xid, entries=[])
+                    msg = ofp.message.meter_stats_reply(
+                        xid=req.xid, entries=[])
                     cxn.send(msg)
 
                 else:
-                    logging.error("Unhandled stats type: %d in request:" % req.stats_type)
+                    logging.error("Unhandled stats type: %d in request:"
+                                  % req.stats_type)
                     logging.error(pp(req))
 
-
             elif req.type == ofp.OFPT_SET_CONFIG:
                 # TODO ignored for now
                 pass
 
             elif req.type == ofp.OFPT_BARRIER_REQUEST:
-                # TODO this will be the place to commit all changes before replying
+                # TODO this will be the place to commit all changes before
+                # replying
                 # but now we send a reply right away
                 msg = ofp.message.barrier_reply(xid=req.xid)
                 cxn.send(msg)
 
             elif req.type == ofp.OFPT_GET_CONFIG_REQUEST:
                 # send back configuration reply
-                msg = ofp.message.get_config_reply(xid=req.xid, miss_send_len=ofp.OFPCML_NO_BUFFER)
+                msg = ofp.message.get_config_reply(
+                    xid=req.xid, miss_send_len=ofp.OFPCML_NO_BUFFER)
                 cxn.send(msg)
 
             elif req.type == ofp.OFPT_ROLE_REQUEST:
                 # TODO this is where we shall manage which connection is active
-                # now we simply verify that the role request is for active and reply
+                # now we simply verify that the role request is for active and
+                # reply
                 if req.role != ofp.OFPCR_ROLE_MASTER:
                     self.stop()
                     sys.exit(1)
-                msg = ofp.message.role_reply(xid=req.xid, role=req.role, generation_id=req.generation_id)
+                msg = ofp.message.role_reply(
+                    xid=req.xid, role=req.role,
+                    generation_id=req.generation_id)
                 cxn.send(msg)
 
             elif req.type == ofp.OFPT_PACKET_OUT:
@@ -217,7 +229,8 @@
                         port = action.port
                         self.backend.packet_out(in_port, port, data)
                     else:
-                        logging.warn("Unhandled packet out action type %s" % action.type)
+                        logging.warn("Unhandled packet out action type %s"
+                                     % action.type)
 
             elif req.type == ofp.OFPT_FLOW_MOD:
 
@@ -239,7 +252,8 @@
                     self.store.flow_modify_strict(req)
 
                 else:
-                    logging.warn("Unhandled flow mod command %s in message:" % command)
+                    logging.warn("Unhandled flow mod command %s in message:"
+                                 % command)
                     logging.warn(pp(req))
 
             elif req.type == ofp.OFPT_GROUP_MOD:
@@ -256,7 +270,8 @@
                     self.store.group_modify(req)
 
                 else:
-                    logging.warn("Unhandled group command %s in message:" % command)
+                    logging.warn("Unhandled group command %s in message:"
+                                 % command)
                     logging.warn(pp(req))
 
             else:
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/obsolete/backends/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/backends/__init__.py
rename to obsolete/backends/__init__.py
diff --git a/voltha/northbound/openflow/agent/backends/mock.py b/obsolete/backends/mock.py
similarity index 98%
rename from voltha/northbound/openflow/agent/backends/mock.py
rename to obsolete/backends/mock.py
index d95e835..75c9c5a 100644
--- a/voltha/northbound/openflow/agent/backends/mock.py
+++ b/obsolete/backends/mock.py
@@ -23,7 +23,7 @@
 sys.path.insert(1, os.path.join(sys.path[0], '..'))
 
 import loxi.of13 as ofp
-from utils import mac_str_to_tuple
+from ofagent.utils import mac_str_to_tuple
 
 
 class MockBackend(object):
diff --git a/obsolete/loxi b/obsolete/loxi
new file mode 120000
index 0000000..1badc33
--- /dev/null
+++ b/obsolete/loxi
@@ -0,0 +1 @@
+../ofagent/loxi
\ No newline at end of file
diff --git a/voltha/northbound/openflow/agent/main.py b/obsolete/main.py
similarity index 100%
rename from voltha/northbound/openflow/agent/main.py
rename to obsolete/main.py
diff --git a/voltha/northbound/openflow/oftest/Makefile b/obsolete/oftest/Makefile
similarity index 100%
rename from voltha/northbound/openflow/oftest/Makefile
rename to obsolete/oftest/Makefile
diff --git a/voltha/northbound/openflow/oftest/README.md b/obsolete/oftest/README.md
similarity index 100%
rename from voltha/northbound/openflow/oftest/README.md
rename to obsolete/oftest/README.md
diff --git a/voltha/northbound/openflow/oftest/agenttest.py b/obsolete/oftest/agenttest.py
similarity index 100%
rename from voltha/northbound/openflow/oftest/agenttest.py
rename to obsolete/oftest/agenttest.py
diff --git a/voltha/northbound/openflow/agent/store.py b/obsolete/store.py
similarity index 98%
rename from voltha/northbound/openflow/agent/store.py
rename to obsolete/store.py
index 642ef36..0bd04d6 100644
--- a/voltha/northbound/openflow/agent/store.py
+++ b/obsolete/store.py
@@ -3,7 +3,7 @@
 """
 
 import logging
-from utils import pp
+from ofagent.utils import pp
 import loxi.of13 as ofp
 
 
@@ -102,7 +102,7 @@
 
         check_overlap = flow_add.flags & ofp.OFPFF_CHECK_OVERLAP
         if check_overlap:
-            if self._flow_find_overlapping_flows(self, flow_add, return_on_first_hit=True):
+            if self._flow_find_overlapping_flows(flow_add, return_on_first_hit=True):
                 self.signal_flow_mod_error(ofp.OFPFMFC_OVERLAP, flow_add)
             else:
                 # free to add as new flow
@@ -291,7 +291,7 @@
         if group_modify.group_id not in self.groups:
             self.signal_group_mod_error(ofp.OFPGMFC_INVALID_GROUP, group_modify)
         else:
-            # replace existing group entry witj new group definition
+            # replace existing group entry with new group definition
             group_entry = group_entry_from_group_mod_message(group_modify)
             self.groups[group_modify.group_id] = group_entry
 
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/ofagent/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to ofagent/__init__.py
diff --git a/ofagent/agent.py b/ofagent/agent.py
new file mode 100644
index 0000000..5196e6d
--- /dev/null
+++ b/ofagent/agent.py
@@ -0,0 +1,145 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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 sys
+
+import structlog
+from twisted.internet import protocol
+from twisted.internet import reactor
+from twisted.internet.defer import Deferred, inlineCallbacks
+
+import loxi.of13 as of13
+from common.utils.asleep import asleep
+from of_connection import OpenFlowConnection
+from of_protocol_handler import OpenFlowProtocolHandler
+
+
+log = structlog.get_logger()
+
+
+class Agent(protocol.ClientFactory):
+
+    def __init__(self, controller_endpoint, datapath_id, rpc_stub,
+                 conn_retry_interval=1):
+        self.controller_endpoint = controller_endpoint
+        self.datapath_id = datapath_id
+        self.rpc_stub = rpc_stub
+        self.retry_interval = conn_retry_interval
+
+        self.running = False
+        self.connector = None # will be a Connector instance once connected
+        self.d_disconnected = None  # a deferred to signal reconnect loop when
+                                    # TCP connection is lost
+        self.connected = False
+        self.exiting = False
+
+    def run(self):
+        if self.running:
+            return
+        self.running = True
+        reactor.callLater(0, self.keep_connected)
+        return self
+
+    def resolve_endpoint(self, endpoint):
+        # TODO allow resolution via consul
+        host, port = endpoint.split(':', 2)
+        return host, int(port)
+
+    @inlineCallbacks
+    def keep_connected(self):
+        """Keep reconnecting to the controller"""
+        while not self.exiting:
+            host, port = self.resolve_endpoint(self.controller_endpoint)
+            log.info('connecting', host=host, port=port)
+            self.connector = reactor.connectTCP(host, port, self)
+            self.d_disconnected = Deferred()
+            yield self.d_disconnected
+            log.debug('reconnect', after_delay=self.retry_interval)
+            yield asleep(self.retry_interval)
+
+    def stop(self):
+        self.connected = False
+        self.exiting = True
+        self.connector.disconnect()
+        log.info('stopped')
+
+    def enter_disconnected(self, event, reason):
+        """Internally signal entering disconnected state"""
+        log.error(event, reason=reason)
+        self.connected = False
+        self.d_disconnected.callback(None)
+
+    def enter_connected(self):
+        """Handle transitioning from disconnected to connected state"""
+        log.info('connected')
+        self.connected = True
+        self.read_buffer = None
+        reactor.callLater(0, self.proto_handler.run)
+
+    # protocol.ClientFactory methods
+
+    def protocol(self):
+        cxn = OpenFlowConnection(self)  # Low level message handler
+        self.proto_handler = OpenFlowProtocolHandler(
+            self.datapath_id, self, cxn, self.rpc_stub)
+        return cxn
+
+    def clientConnectionFailed(self, connector, reason):
+        self.enter_disconnected('connection-failed', reason)
+
+    def clientConnectionLost(self, connector, reason):
+        log.error('client-connection-lost',
+                  reason=reason, connector=connector)
+
+
+if __name__ == '__main__':
+    """Run this to test the agent for N concurrent sessions:
+       python agent [<number-of-desired-instances>]
+    """
+
+    n = 1 if len(sys.argv) < 2 else int(sys.argv[1])
+
+    from utils import mac_str_to_tuple
+
+    class MockRpc(object):
+        @staticmethod
+        def get_port_list(_):
+            ports = []
+            cap = of13.OFPPF_1GB_FD | of13.OFPPF_FIBER
+            for pno, mac, nam, cur, adv, sup, spe in (
+                    (1, '00:00:00:00:00:01', 'onu1', cap, cap, cap,
+                     of13.OFPPF_1GB_FD),
+                    (2, '00:00:00:00:00:02', 'onu2', cap, cap, cap,
+                     of13.OFPPF_1GB_FD),
+                    (129, '00:00:00:00:00:81', 'olt', cap, cap, cap,
+                     of13.OFPPF_1GB_FD)
+            ):
+                port = of13.common.port_desc(pno, mac_str_to_tuple(mac), nam,
+                                             curr=cur, advertised=adv,
+                                             supported=sup,
+                                             curr_speed=spe, max_speed=spe)
+                ports.append(port)
+            return ports
+
+    stub = MockRpc()
+    agents = [Agent('localhost:6633', 256 + i, stub).run() for i in range(n)]
+
+    def shutdown():
+        [a.stop() for a in agents]
+
+    reactor.addSystemEventTrigger('before', 'shutdown', shutdown)
+    reactor.run()
+
diff --git a/ofagent/converter.py b/ofagent/converter.py
new file mode 100644
index 0000000..772e5d7
--- /dev/null
+++ b/ofagent/converter.py
@@ -0,0 +1,161 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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.
+#
+
+"""
+Convert loxi objects to openflow_13 messages and back.
+"""
+from copy import copy
+
+from google.protobuf.descriptor import FieldDescriptor
+
+import loxi.of13 as of13
+from protobuf_to_dict import protobuf_to_dict, TYPE_CALLABLE_MAP
+from protos import openflow_13_pb2 as pb2
+
+
+type_callable_map = copy(TYPE_CALLABLE_MAP)
+type_callable_map.update({
+    FieldDescriptor.TYPE_STRING: str
+})
+
+def pb2dict(pb):
+    """
+    Convert protobuf to a dict of values good for instantiating
+    loxi objects (or any other objects). We specialize the protobuf_to_dict
+    library call with our modified decoders.
+    :param pb: protobuf as loaded into Python
+    :return: dict of values
+    """
+    return protobuf_to_dict(pb, type_callable_map)
+
+def to_loxi(grpc_object):
+    cls = grpc_object.__class__
+    converter = to_loxi_converters[cls]
+    return converter(grpc_object)
+
+def to_grpc(loxi_object):
+    cls = loxi_object.__class__
+    converter = to_grpc_converters[cls]
+    return converter(loxi_object)
+
+def ofp_port_to_loxi_port_desc(pb):
+    kw = pb2dict(pb)
+    return of13.common.port_desc(**kw)
+
+def ofp_flow_stats_to_loxi_flow_stats(pb):
+    kw = pb2dict(pb)
+    print 'QQQQQQQQQQQ', kw
+
+    def make_loxi_match(match):
+        assert match['type'] == pb2.OFPMT_OXM
+        loxi_match_fields = []
+        for oxm_field in match['oxm_fields']:
+            assert oxm_field['oxm_class'] == pb2.OFPXMC_OPENFLOW_BASIC
+            ofb_field = oxm_field['ofb_field']
+            field_type = ofb_field.get('type', 0)
+            if field_type == pb2.OFPXMT_OFB_ETH_TYPE:
+                loxi_match_fields.append(
+                    of13.oxm.eth_type(value=ofb_field['eth_type']))
+            else:
+                raise NotImplementedError(
+                    'OXM match field for type %s' % field_type)
+        return of13.match_v3(oxm_list=loxi_match_fields)
+
+    def make_loxi_action(a):
+        print 'AAAAAAAAAA', a
+        type = a.get('type', 0)
+        if type == pb2.OFPAT_OUTPUT:
+            output = a['output']
+            return of13.action.output(**output)
+        else:
+            raise NotImplementedError(
+                'Action decoder for action OFPAT_* %d' % type)
+
+    def make_loxi_instruction(inst):
+        print 'IIIIIIIIIIIIIIII', inst
+        type = inst['type']
+        if type == pb2.OFPIT_APPLY_ACTIONS:
+            return of13.instruction.apply_actions(
+                actions=[make_loxi_action(a)
+                         for a in inst['actions']['actions']])
+        else:
+            raise NotImplementedError('Instruction type %d' % type)
+
+    kw['match'] = make_loxi_match(kw['match'])
+    kw['instructions'] = [make_loxi_instruction(i) for i in kw['instructions']]
+    return of13.flow_stats_entry(**kw)
+
+to_loxi_converters = {
+    pb2.ofp_port: ofp_port_to_loxi_port_desc,
+    pb2.ofp_flow_stats: ofp_flow_stats_to_loxi_flow_stats
+}
+
+def loxi_flow_mod_to_ofp_flow_mod(loxi_flow_mod):
+    return pb2.ofp_flow_mod(
+        cookie=loxi_flow_mod.cookie,
+        cookie_mask=loxi_flow_mod.cookie_mask,
+        table_id=loxi_flow_mod.table_id,
+        command=loxi_flow_mod._command,
+        idle_timeout=loxi_flow_mod.idle_timeout,
+        hard_timeout=loxi_flow_mod.hard_timeout,
+        priority=loxi_flow_mod.priority,
+        buffer_id=loxi_flow_mod.buffer_id,
+        out_port=loxi_flow_mod.out_port,
+        out_group=loxi_flow_mod.out_group,
+        flags=loxi_flow_mod.flags,
+        match=to_grpc(loxi_flow_mod.match),
+        instructions=[to_grpc(i) for i in loxi_flow_mod.instructions]
+    )
+
+def loxi_match_v3_to_ofp_match(loxi_match):
+    return pb2.ofp_match(
+        type=pb2.OFPMT_OXM,
+        oxm_fields=[to_grpc(f) for f in loxi_match.oxm_list]
+    )
+
+def loxi_oxm_eth_type_to_ofp_oxm(lo):
+    return pb2.ofp_oxm_field(
+        oxm_class=pb2.OFPXMC_OPENFLOW_BASIC,
+        ofb_field=pb2.ofp_oxm_ofb_field(
+            type=pb2.OFPXMT_OFB_ETH_TYPE,
+            eth_type=lo.value
+        )
+    )
+
+def loxi_apply_actions_to_ofp_instruction(lo):
+    return pb2.ofp_instruction(
+        type=pb2.OFPIT_APPLY_ACTIONS,
+        actions=pb2.ofp_instruction_actions(
+            actions=[to_grpc(a) for a in lo.actions]
+        )
+    )
+
+def loxi_output_action_to_ofp_action(lo):
+    return pb2.ofp_action(
+        type=pb2.OFPAT_OUTPUT,
+        output=pb2.ofp_action_output(
+            port=lo.port,
+            max_len=lo.max_len
+        )
+    )
+
+to_grpc_converters = {
+    of13.message.flow_add: loxi_flow_mod_to_ofp_flow_mod,
+    of13.common.match_v3: loxi_match_v3_to_ofp_match,
+    of13.oxm.eth_type: loxi_oxm_eth_type_to_ofp_oxm,
+    of13.instruction.apply_actions: loxi_apply_actions_to_ofp_instruction,
+    of13.action.output: loxi_output_action_to_ofp_action
+}
diff --git a/ofagent/grpc_client.py b/ofagent/grpc_client.py
new file mode 100644
index 0000000..e3a64d1
--- /dev/null
+++ b/ofagent/grpc_client.py
@@ -0,0 +1,66 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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.
+#
+
+"""
+The gRPC client layer for the OpenFlow agent
+"""
+from twisted.internet import threads
+from twisted.internet.defer import inlineCallbacks, returnValue
+
+from protos.voltha_pb2 import ID, VolthaLogicalLayerStub, FlowTableUpdate
+
+
+class GrpcClient(object):
+
+    def __init__(self, channel, device_id_map):
+        self.channel = channel
+        self.device_id_map = device_id_map
+        self.logical_stub = VolthaLogicalLayerStub(channel)
+
+    @inlineCallbacks
+    def get_port_list(self, datapath_id):
+        device_id = self.device_id_map[datapath_id]
+        req = ID(id=device_id)
+        res = yield threads.deferToThread(
+            self.logical_stub.ListLogicalDevicePorts, req)
+        returnValue(res.items)
+
+    @inlineCallbacks
+    def get_device_info(self, datapath_id):
+        device_id = self.device_id_map[datapath_id]
+        req = ID(id=device_id)
+        res = yield threads.deferToThread(
+            self.logical_stub.GetLogicalDevice, req)
+        returnValue(res)
+
+    @inlineCallbacks
+    def update_flow_table(self, datapath_id, flow_mod):
+        device_id = self.device_id_map[datapath_id]
+        req = FlowTableUpdate(
+            id=device_id,
+            flow_mod=flow_mod
+        )
+        res = yield threads.deferToThread(
+            self.logical_stub.UpdateFlowTable, req)
+        returnValue(res)
+
+    @inlineCallbacks
+    def list_flows(self, datapath_id):
+        device_id = self.device_id_map[datapath_id]
+        req = ID(id=device_id)
+        res = yield threads.deferToThread(
+            self.logical_stub.ListDeviceFlows, req)
+        returnValue(res.items)
diff --git a/voltha/northbound/openflow/agent/loxi/__init__.py b/ofagent/loxi/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/__init__.py
rename to ofagent/loxi/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/connection.py b/ofagent/loxi/connection.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/connection.py
rename to ofagent/loxi/connection.py
diff --git a/voltha/northbound/openflow/agent/loxi/generic_util.py b/ofagent/loxi/generic_util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/generic_util.py
rename to ofagent/loxi/generic_util.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/__init__.py b/ofagent/loxi/of10/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/__init__.py
rename to ofagent/loxi/of10/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/action.py b/ofagent/loxi/of10/action.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/action.py
rename to ofagent/loxi/of10/action.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/common.py b/ofagent/loxi/of10/common.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/common.py
rename to ofagent/loxi/of10/common.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/const.py b/ofagent/loxi/of10/const.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/const.py
rename to ofagent/loxi/of10/const.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/message.py b/ofagent/loxi/of10/message.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/message.py
rename to ofagent/loxi/of10/message.py
diff --git a/voltha/northbound/openflow/agent/loxi/of10/util.py b/ofagent/loxi/of10/util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of10/util.py
rename to ofagent/loxi/of10/util.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/__init__.py b/ofagent/loxi/of11/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/__init__.py
rename to ofagent/loxi/of11/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/action.py b/ofagent/loxi/of11/action.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/action.py
rename to ofagent/loxi/of11/action.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/common.py b/ofagent/loxi/of11/common.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/common.py
rename to ofagent/loxi/of11/common.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/const.py b/ofagent/loxi/of11/const.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/const.py
rename to ofagent/loxi/of11/const.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/instruction.py b/ofagent/loxi/of11/instruction.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/instruction.py
rename to ofagent/loxi/of11/instruction.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/message.py b/ofagent/loxi/of11/message.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/message.py
rename to ofagent/loxi/of11/message.py
diff --git a/voltha/northbound/openflow/agent/loxi/of11/util.py b/ofagent/loxi/of11/util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of11/util.py
rename to ofagent/loxi/of11/util.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/__init__.py b/ofagent/loxi/of12/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/__init__.py
rename to ofagent/loxi/of12/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/action.py b/ofagent/loxi/of12/action.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/action.py
rename to ofagent/loxi/of12/action.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/common.py b/ofagent/loxi/of12/common.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/common.py
rename to ofagent/loxi/of12/common.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/const.py b/ofagent/loxi/of12/const.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/const.py
rename to ofagent/loxi/of12/const.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/instruction.py b/ofagent/loxi/of12/instruction.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/instruction.py
rename to ofagent/loxi/of12/instruction.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/message.py b/ofagent/loxi/of12/message.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/message.py
rename to ofagent/loxi/of12/message.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/oxm.py b/ofagent/loxi/of12/oxm.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/oxm.py
rename to ofagent/loxi/of12/oxm.py
diff --git a/voltha/northbound/openflow/agent/loxi/of12/util.py b/ofagent/loxi/of12/util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of12/util.py
rename to ofagent/loxi/of12/util.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/__init__.py b/ofagent/loxi/of13/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/__init__.py
rename to ofagent/loxi/of13/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/action.py b/ofagent/loxi/of13/action.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/action.py
rename to ofagent/loxi/of13/action.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/action_id.py b/ofagent/loxi/of13/action_id.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/action_id.py
rename to ofagent/loxi/of13/action_id.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/bsn_tlv.py b/ofagent/loxi/of13/bsn_tlv.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/bsn_tlv.py
rename to ofagent/loxi/of13/bsn_tlv.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/common.py b/ofagent/loxi/of13/common.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/common.py
rename to ofagent/loxi/of13/common.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/const.py b/ofagent/loxi/of13/const.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/const.py
rename to ofagent/loxi/of13/const.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/instruction.py b/ofagent/loxi/of13/instruction.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/instruction.py
rename to ofagent/loxi/of13/instruction.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/instruction_id.py b/ofagent/loxi/of13/instruction_id.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/instruction_id.py
rename to ofagent/loxi/of13/instruction_id.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/message.py b/ofagent/loxi/of13/message.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/message.py
rename to ofagent/loxi/of13/message.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/meter_band.py b/ofagent/loxi/of13/meter_band.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/meter_band.py
rename to ofagent/loxi/of13/meter_band.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/oxm.py b/ofagent/loxi/of13/oxm.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/oxm.py
rename to ofagent/loxi/of13/oxm.py
diff --git a/voltha/northbound/openflow/agent/loxi/of13/util.py b/ofagent/loxi/of13/util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of13/util.py
rename to ofagent/loxi/of13/util.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/__init__.py b/ofagent/loxi/of14/__init__.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/__init__.py
rename to ofagent/loxi/of14/__init__.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/action.py b/ofagent/loxi/of14/action.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/action.py
rename to ofagent/loxi/of14/action.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/action_id.py b/ofagent/loxi/of14/action_id.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/action_id.py
rename to ofagent/loxi/of14/action_id.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/async_config_prop.py b/ofagent/loxi/of14/async_config_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/async_config_prop.py
rename to ofagent/loxi/of14/async_config_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/bsn_tlv.py b/ofagent/loxi/of14/bsn_tlv.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/bsn_tlv.py
rename to ofagent/loxi/of14/bsn_tlv.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/bundle_prop.py b/ofagent/loxi/of14/bundle_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/bundle_prop.py
rename to ofagent/loxi/of14/bundle_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/common.py b/ofagent/loxi/of14/common.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/common.py
rename to ofagent/loxi/of14/common.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/const.py b/ofagent/loxi/of14/const.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/const.py
rename to ofagent/loxi/of14/const.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/instruction.py b/ofagent/loxi/of14/instruction.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/instruction.py
rename to ofagent/loxi/of14/instruction.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/instruction_id.py b/ofagent/loxi/of14/instruction_id.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/instruction_id.py
rename to ofagent/loxi/of14/instruction_id.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/message.py b/ofagent/loxi/of14/message.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/message.py
rename to ofagent/loxi/of14/message.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/meter_band.py b/ofagent/loxi/of14/meter_band.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/meter_band.py
rename to ofagent/loxi/of14/meter_band.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/oxm.py b/ofagent/loxi/of14/oxm.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/oxm.py
rename to ofagent/loxi/of14/oxm.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/port_desc_prop.py b/ofagent/loxi/of14/port_desc_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/port_desc_prop.py
rename to ofagent/loxi/of14/port_desc_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/port_mod_prop.py b/ofagent/loxi/of14/port_mod_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/port_mod_prop.py
rename to ofagent/loxi/of14/port_mod_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/port_stats_prop.py b/ofagent/loxi/of14/port_stats_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/port_stats_prop.py
rename to ofagent/loxi/of14/port_stats_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/queue_desc_prop.py b/ofagent/loxi/of14/queue_desc_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/queue_desc_prop.py
rename to ofagent/loxi/of14/queue_desc_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/queue_stats_prop.py b/ofagent/loxi/of14/queue_stats_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/queue_stats_prop.py
rename to ofagent/loxi/of14/queue_stats_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/role_prop.py b/ofagent/loxi/of14/role_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/role_prop.py
rename to ofagent/loxi/of14/role_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/table_mod_prop.py b/ofagent/loxi/of14/table_mod_prop.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/table_mod_prop.py
rename to ofagent/loxi/of14/table_mod_prop.py
diff --git a/voltha/northbound/openflow/agent/loxi/of14/util.py b/ofagent/loxi/of14/util.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/of14/util.py
rename to ofagent/loxi/of14/util.py
diff --git a/voltha/northbound/openflow/agent/loxi/pp.py b/ofagent/loxi/pp.py
similarity index 100%
rename from voltha/northbound/openflow/agent/loxi/pp.py
rename to ofagent/loxi/pp.py
diff --git a/ofagent/main.py b/ofagent/main.py
new file mode 100755
index 0000000..a8bfe7f
--- /dev/null
+++ b/ofagent/main.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 the original author or authors.
+#
+# 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.
+#
+
+"""TODO This is a POC placeholder """
+import grpc
+from twisted.internet import reactor
+
+from agent import Agent
+from protos import voltha_pb2
+
+from grpc_client import GrpcClient
+
+
+if __name__ == '__main__':
+
+    # Create grpc channel to Voltha and grab client stub
+    channel = grpc.insecure_channel('localhost:50055')
+
+    # Connect to voltha using grpc and fetch the list of logical devices
+    stub = voltha_pb2.VolthaLogicalLayerStub(channel)
+    devices = stub.ListLogicalDevices(voltha_pb2.NullMessage()).items
+    print 'device id and datapaht_id list:'
+    for device in devices:
+        print '\t{} -> {}'.format(device.id, device.datapath_id)
+
+    # make a device.datapath_id -> device.id map (this will need to be actively
+    # managed in the real agent based on devices coming and going
+    device_id_map = dict((device.datapath_id, device.id) for device in devices)
+
+    # Create shared gRPC API object
+    grpc_client = GrpcClient(channel, device_id_map)
+
+    # Instantiate an OpenFlow agent for each logical device
+    agents = [
+        Agent('localhost:6633', device.datapath_id, grpc_client).run()
+        for device in devices
+    ]
+
+    def shutdown():
+        [a.stop() for a in agents]
+
+    reactor.addSystemEventTrigger('before', 'shutdown', shutdown)
+    reactor.run()
diff --git a/ofagent/of_connection.py b/ofagent/of_connection.py
new file mode 100644
index 0000000..ab05011
--- /dev/null
+++ b/ofagent/of_connection.py
@@ -0,0 +1,126 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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 structlog
+from hexdump import hexdump
+from twisted.internet import protocol
+
+import loxi.of14
+from common.utils.message_queue import MessageQueue
+
+log = structlog.get_logger()
+
+
+class OpenFlowConnection(protocol.Protocol):
+
+    def __init__(self, agent):
+        self.agent = agent  # the protocol will call agent.enter_disconnected()
+                            # and agent.enter_connected() methods to indicate
+                            # when state change is necessary
+        self.next_xid = 1
+        self.read_buffer = None
+        self.rx = MessageQueue()
+
+    def connectionLost(self, reason):
+        self.agent.enter_disconnected('connection-lost', reason)
+
+    def connectionMade(self):
+        self.agent.enter_connected()
+
+    def dataReceived(self, data):
+        log.debug('data-received', len=len(data),
+                  received=hexdump(data, result='return'))
+
+        assert len(data)  # connection close shall be handled by the protocol
+        buf = self.read_buffer
+        if buf:
+            buf += data
+        else:
+            buf = data
+
+        offset = 0
+        while offset < len(buf):
+            if offset + 8 > len(buf):
+                break  # not enough data for the OpenFlow header
+
+            # parse the header to get type
+            _version, _type, _len, _xid = \
+                loxi.of14.message.parse_header(buf[offset:])
+
+            ofp = loxi.protocol(_version)
+
+            if (offset + _len) > len(buf):
+                break  # not enough data to cover whole message
+
+            rawmsg = buf[offset : offset + _len]
+            offset += _len
+
+            msg = ofp.message.parse_message(rawmsg)
+            if not msg:
+                log.warn('could-not-parse',
+                         data=hexdump(rawmsg, result='return'))
+            log.debug('received-msg', module=type(msg).__module__,
+                  name=type(msg).__name__, xid=msg.xid, len=len(buf))
+            self.rx.put(msg)
+
+        if offset == len(buf):
+            self.read_buffer = None
+        else:
+            self.read_buffer = buf[offset:]
+            log.debug('remaining', len=len(self.read_buffer))
+
+    def send_raw(self, buf):
+        """
+        Send raw bytes on the socket
+        :param buf: bytes buffer
+        :return: None
+        """
+        assert self.connected
+        log.debug('sending-raw', len=len(buf))
+        self.transport.write(buf)
+
+    def send(self, msg):
+        """
+        Send a message
+        :param msg: An OpenFlow protocol message
+        :return: None
+        """
+        assert self.connected
+
+        if msg.xid is None:
+            msg.xid = self._gen_xid()
+        buf = msg.pack()
+        log.debug('sending', module=type(msg).__module__,
+                  name=type(msg).__name__, xid=msg.xid, len=len(buf))
+        self.transport.write(buf)
+        log.debug('data-sent', sent=hexdump(buf, result='return'))
+
+    def recv(self, predicate):
+        assert self.connected
+        return self.rx.get(predicate)
+
+    def recv_any(self):
+        return self.recv(lambda _: True)
+
+    def recv_xid(self, xid):
+        return self.recv(lambda msg: msg.xid == xid)
+
+    def recv_class(self, klass):
+        return self.recv(lambda msg: isinstance(msg, klass))
+
+    def _gen_xid(self):
+        xid = self.next_xid
+        self.next_xid += 1
+        return xid
diff --git a/ofagent/of_protocol_handler.py b/ofagent/of_protocol_handler.py
new file mode 100644
index 0000000..5d1191a
--- /dev/null
+++ b/ofagent/of_protocol_handler.py
@@ -0,0 +1,247 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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 structlog
+from twisted.internet.defer import inlineCallbacks
+
+import loxi.of13 as ofp
+from converter import to_loxi, pb2dict, to_grpc
+
+log = structlog.get_logger()
+
+
+class OpenFlowProtocolError(Exception): pass
+
+
+class OpenFlowProtocolHandler(object):
+
+    def __init__(self, datapath_id, agent, cxn, rpc):
+        """
+        The upper half of the OpenFlow protocol, focusing on message
+        exchanges.
+        :param agent: Reference to the Agent() instance, can be used to
+          indicate critical errors to break the connection.
+        :param cxn: The lower level message serdes part of the OF protocol.
+        :param rpc: The application level stub on which RPC calls
+          are made as result of processing incoming OpenFlow request messages.
+        """
+        self.datapath_id = datapath_id
+        self.agent = agent
+        self.cxn = cxn
+        self.rpc = rpc
+
+    @inlineCallbacks
+    def run(self):
+        """A new call is made after a fresh reconnect"""
+
+        try:
+            # send initial hello message
+            self.cxn.send(ofp.message.hello())
+
+            # expect to receive a hello message
+            msg = yield self.cxn.recv_class(ofp.message.hello)
+            # TODO verify version compatibility (must list version 1.3)
+
+            while True:
+                req = yield self.cxn.recv_any()
+                handler = self.main_handlers.get(req.type, None)
+                if handler:
+                    handler(self, req)
+                else:
+                    log.error('cannot-handle',
+                              request=req, xid=req.xid, type=req.type)
+
+        except Exception, e:
+            log.exception('exception', e=e)
+
+    def handle_echo_request(self, req):
+        self.cxn.send(ofp.message.echo_reply(xid=req.xid))
+
+    @inlineCallbacks
+    def handle_feature_request(self, req):
+        device_info = yield self.rpc.get_device_info(self.datapath_id)
+        kw = pb2dict(device_info.switch_features)
+        self.cxn.send(ofp.message.features_reply(
+            xid=req.xid,
+            datapath_id=self.datapath_id,
+            **kw))
+
+    def handle_stats_request(self, req):
+        handler = self.stats_handlers.get(req.stats_type, None)
+        if handler:
+            handler(self, req)
+        else:
+            raise OpenFlowProtocolError(
+                'Cannot handle stats request type "{}"'.format(req.stats_type))
+
+    def handle_barrier_request(self, req):
+        # TODO not really doing barrier yet, but we respond
+        self.cxn.send(ofp.message.barrier_reply(xid=req.xid))
+
+    def handle_experimenter_request(self, req):
+        raise NotImplementedError()
+
+    @inlineCallbacks
+    def handle_flow_mod_request(self, req):
+        yield self.rpc.update_flow_table(self.datapath_id, to_grpc(req))
+
+    def handle_get_async_request(self, req):
+        raise NotImplementedError()
+
+    def handle_get_config_request(self, req):
+        self.cxn.send(ofp.message.get_config_reply(
+            xid=req.xid,
+            miss_send_len=ofp.OFPCML_NO_BUFFER
+        ))
+
+    def handle_group_mod_request(self, req):
+        # TODO do not do anything yet
+        pass
+
+    def handle_meter_mod_request(self, req):
+        raise NotImplementedError()
+
+    def handle_role_request(self, req):
+        # TODO this is where we need to manage which connection is active
+        if req.role != ofp.OFPCR_ROLE_MASTER:
+            raise NotImplementedError()
+        self.cxn.send(ofp.message.role_reply(
+            xid=req.xid, role=req.role, generation_id=req.generation_id))
+
+    def handle_packet_out_request(self, req):
+        # TODO send packet out
+        pass
+
+    def handle_set_config_request(self, req):
+        # TODO ignore for now
+        pass
+
+    def handle_port_mod_request(self, req):
+        raise NotImplementedError()
+
+    def handle_table_mod_request(self, req):
+        raise NotImplementedError()
+
+    def handle_queue_get_config_request(self, req):
+        raise NotImplementedError()
+
+    def handle_set_async_request(self, req):
+        raise NotImplementedError()
+
+    def handle_aggregate_request(self, req):
+        raise NotImplementedError
+
+    @inlineCallbacks
+    def handle_device_description_request(self, req):
+        device_info = yield self.rpc.get_device_info(self.datapath_id)
+        kw = pb2dict(device_info.desc)
+        self.cxn.send(ofp.message.desc_stats_reply(xid=req.xid, **kw))
+
+    def handle_experimenter_stats_request(self, req):
+        raise NotImplementedError()
+
+    @inlineCallbacks
+    def handle_flow_stats_request(self, req):
+        flow_stats = yield self.rpc.list_flows(self.datapath_id)
+        self.cxn.send(ofp.message.flow_stats_reply(
+            xid=req.xid, entries=[to_loxi(f) for f in flow_stats]))
+
+    def handle_group_stats_request(self, req):
+        group_stats = []  # TODO
+        self.cxn.send(ofp.message.group_stats_reply(
+            xid=req.xid, entries=group_stats))
+
+    def handle_group_descriptor_request(self, req):
+        group_list = []  # TODO
+        self.cxn.send(ofp.message.group_desc_stats_reply(
+            xid=req.xid, entries=group_list))
+
+    def handle_group_features_request(self, req):
+        raise NotImplementedError()
+
+    def handle_meter_stats_request(self, req):
+        meter_stats = []  # TODO
+        self.cxn.send(ofp.message.meter_stats_reply(
+            xid=req.xid, entries=meter_stats))
+
+    def handle_meter_config_request(self, req):
+        raise NotImplementedError()
+
+    def handle_meter_features_request(self, req):
+        raise NotImplementedError()
+
+    def handle_port_stats_request(self, req):
+        port_stats = []  # TODO
+        self.cxn.send(ofp.message.port_stats_reply(
+            xid=req.xid,entries=port_stats))
+
+    @inlineCallbacks
+    def handle_port_desc_request(self, req):
+        port_list = yield self.rpc.get_port_list(self.datapath_id)
+        self.cxn.send(ofp.message.port_desc_stats_reply(
+            xid=req.xid,
+            #flags=None,
+            entries=[to_loxi(port) for port in port_list]
+        ))
+
+    def handle_queue_stats_request(self, req):
+        raise NotImplementedError()
+
+    def handle_table_stats_request(self, req):
+        table_stats = []  # TODO
+        self.cxn.send(ofp.message.table_stats_reply(
+            xid=req.xid, entries=table_stats))
+
+    def handle_table_features_request(self, req):
+        raise NotImplementedError()
+
+    stats_handlers = {
+        ofp.OFPST_AGGREGATE: handle_aggregate_request,
+        ofp.OFPST_DESC: handle_device_description_request,
+        ofp.OFPST_EXPERIMENTER: handle_experimenter_stats_request,
+        ofp.OFPST_FLOW: handle_flow_stats_request,
+        ofp.OFPST_GROUP: handle_group_stats_request,
+        ofp.OFPST_GROUP_DESC: handle_group_descriptor_request,
+        ofp.OFPST_GROUP_FEATURES: handle_group_features_request,
+        ofp.OFPST_METER: handle_meter_stats_request,
+        ofp.OFPST_METER_CONFIG: handle_meter_config_request,
+        ofp.OFPST_METER_FEATURES: handle_meter_features_request,
+        ofp.OFPST_PORT: handle_port_stats_request,
+        ofp.OFPST_PORT_DESC: handle_port_desc_request,
+        ofp.OFPST_QUEUE: handle_queue_stats_request,
+        ofp.OFPST_TABLE: handle_table_stats_request,
+        ofp.OFPST_TABLE_FEATURES: handle_table_features_request
+    }
+
+    main_handlers = {
+        ofp.OFPT_BARRIER_REQUEST: handle_barrier_request,
+        ofp.OFPT_ECHO_REQUEST: handle_echo_request,
+        ofp.OFPT_FEATURES_REQUEST: handle_feature_request,
+        ofp.OFPT_EXPERIMENTER: handle_experimenter_request,
+        ofp.OFPT_FLOW_MOD: handle_flow_mod_request,
+        ofp.OFPT_GET_ASYNC_REQUEST: handle_get_async_request,
+        ofp.OFPT_GET_CONFIG_REQUEST: handle_get_config_request,
+        ofp.OFPT_GROUP_MOD: handle_group_mod_request,
+        ofp.OFPT_METER_MOD: handle_meter_mod_request,
+        ofp.OFPT_PACKET_OUT: handle_packet_out_request,
+        ofp.OFPT_PORT_MOD: handle_port_mod_request,
+        ofp.OFPT_QUEUE_GET_CONFIG_REQUEST: handle_queue_get_config_request,
+        ofp.OFPT_ROLE_REQUEST: handle_role_request,
+        ofp.OFPT_SET_ASYNC: handle_set_async_request,
+        ofp.OFPT_SET_CONFIG: handle_set_config_request,
+        ofp.OFPT_STATS_REQUEST: handle_stats_request,
+        ofp.OFPT_TABLE_MOD: handle_table_mod_request,
+    }
+
diff --git a/ofagent/protos/Makefile b/ofagent/protos/Makefile
new file mode 100644
index 0000000..157052d
--- /dev/null
+++ b/ofagent/protos/Makefile
@@ -0,0 +1,37 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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.
+#
+
+# Makefile to build all protobuf and gRPC related artifacts
+
+ifeq ($(VOLTHA_BASE)_set,_set)
+  $(error To get started, please source the env.sh file from Voltha top level directory)
+endif
+
+# This makefile is used only to copy relevant *_pb2.py files from Voltha
+# to allow ofagent to function properly.
+
+PB2_FILES := \
+    voltha_pb2.py \
+    openflow_13_pb2.py
+
+TARGET_PROTO_DIR := $(VOLTHA_BASE)/ofagent/protos
+SOURCE_PROTO_DIR := $(VOLTHA_BASE)/voltha/protos
+
+build: copyfiles
+
+copyfiles:
+	rsync -av --include '*/' --include '*.py' --exclude='*' $(SOURCE_PROTO_DIR)/ $(TARGET_PROTO_DIR)
+
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/ofagent/protos/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to ofagent/protos/__init__.py
diff --git a/ofagent/protos/openflow_13_pb2.py b/ofagent/protos/openflow_13_pb2.py
new file mode 100644
index 0000000..4839318
--- /dev/null
+++ b/ofagent/protos/openflow_13_pb2.py
@@ -0,0 +1,8294 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: openflow_13.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='openflow_13.proto',
+  package='openflow_13',
+  syntax='proto3',
+  serialized_pb=_b('\n\x11openflow_13.proto\x12\x0bopenflow_13\"O\n\nofp_header\x12\x0f\n\x07version\x18\x01 \x01(\r\x12#\n\x04type\x18\x02 \x01(\x0e\x32\x15.openflow_13.ofp_type\x12\x0b\n\x03xid\x18\x03 \x01(\r\"\x96\x01\n\x15ofp_hello_elem_header\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_hello_elem_type\x12\x42\n\rversionbitmap\x18\x02 \x01(\x0b\x32).openflow_13.ofp_hello_elem_versionbitmapH\x00\x42\t\n\x07\x65lement\"/\n\x1cofp_hello_elem_versionbitmap\x12\x0f\n\x07\x62itmaps\x18\x02 \x03(\r\"A\n\tofp_hello\x12\x34\n\x08\x65lements\x18\x02 \x03(\x0b\x32\".openflow_13.ofp_hello_elem_header\"9\n\x11ofp_switch_config\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x15\n\rmiss_send_len\x18\x03 \x01(\r\"1\n\rofp_table_mod\x12\x10\n\x08table_id\x18\x02 \x01(\r\x12\x0e\n\x06\x63onfig\x18\x03 \x01(\r\"\xc3\x01\n\x08ofp_port\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x0f\n\x07hw_addr\x18\x02 \x03(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06\x63onfig\x18\x04 \x01(\r\x12\r\n\x05state\x18\x05 \x01(\r\x12\x0c\n\x04\x63urr\x18\x06 \x01(\r\x12\x12\n\nadvertised\x18\x07 \x01(\r\x12\x11\n\tsupported\x18\x08 \x01(\r\x12\x0c\n\x04peer\x18\t \x01(\r\x12\x12\n\ncurr_speed\x18\n \x01(\r\x12\x11\n\tmax_speed\x18\x0b \x01(\r\"{\n\x13ofp_switch_features\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12\x11\n\tn_buffers\x18\x03 \x01(\r\x12\x10\n\x08n_tables\x18\x04 \x01(\r\x12\x14\n\x0c\x61uxiliary_id\x18\x05 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x06 \x01(\r\"d\n\x0fofp_port_status\x12,\n\x06reason\x18\x02 \x01(\x0e\x32\x1c.openflow_13.ofp_port_reason\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_port\"a\n\x0cofp_port_mod\x12\x0f\n\x07port_no\x18\x02 \x01(\r\x12\x0f\n\x07hw_addr\x18\x03 \x03(\r\x12\x0e\n\x06\x63onfig\x18\x04 \x01(\r\x12\x0c\n\x04mask\x18\x05 \x01(\r\x12\x11\n\tadvertise\x18\x06 \x01(\r\"f\n\tofp_match\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openflow_13.ofp_match_type\x12.\n\noxm_fields\x18\x02 \x03(\x0b\x32\x1a.openflow_13.ofp_oxm_field\"\xc3\x01\n\rofp_oxm_field\x12-\n\toxm_class\x18\x01 \x01(\x0e\x32\x1a.openflow_13.ofp_oxm_class\x12\x33\n\tofb_field\x18\x04 \x01(\x0b\x32\x1e.openflow_13.ofp_oxm_ofb_fieldH\x00\x12\x45\n\x12\x65xperimenter_field\x18\x05 \x01(\x0b\x32\'.openflow_13.ofp_oxm_experimenter_fieldH\x00\x42\x07\n\x05\x66ield\"\x8b\n\n\x11ofp_oxm_ofb_field\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.oxm_ofb_field_types\x12\x10\n\x08has_mask\x18\x02 \x01(\x08\x12\x0e\n\x04port\x18\x03 \x01(\rH\x00\x12\x17\n\rphysical_port\x18\x04 \x01(\rH\x00\x12\x18\n\x0etable_metadata\x18\x05 \x01(\x04H\x00\x12\x11\n\x07\x65th_dst\x18\x06 \x01(\x0cH\x00\x12\x11\n\x07\x65th_src\x18\x07 \x01(\x0cH\x00\x12\x12\n\x08\x65th_type\x18\x08 \x01(\rH\x00\x12\x12\n\x08vlan_vid\x18\t \x01(\rH\x00\x12\x12\n\x08vlan_pcp\x18\n \x01(\rH\x00\x12\x11\n\x07ip_dscp\x18\x0b \x01(\rH\x00\x12\x10\n\x06ip_ecn\x18\x0c \x01(\rH\x00\x12\x12\n\x08ip_proto\x18\r \x01(\rH\x00\x12\x12\n\x08ipv4_src\x18\x0e \x01(\rH\x00\x12\x12\n\x08ipv4_dst\x18\x0f \x01(\rH\x00\x12\x11\n\x07tcp_src\x18\x10 \x01(\rH\x00\x12\x11\n\x07tcp_dst\x18\x11 \x01(\rH\x00\x12\x11\n\x07udp_src\x18\x12 \x01(\rH\x00\x12\x11\n\x07udp_dst\x18\x13 \x01(\rH\x00\x12\x12\n\x08sctp_src\x18\x14 \x01(\rH\x00\x12\x12\n\x08sctp_dst\x18\x15 \x01(\rH\x00\x12\x15\n\x0bicmpv4_type\x18\x16 \x01(\rH\x00\x12\x15\n\x0bicmpv4_code\x18\x17 \x01(\rH\x00\x12\x10\n\x06\x61rp_op\x18\x18 \x01(\rH\x00\x12\x11\n\x07\x61rp_spa\x18\x19 \x01(\rH\x00\x12\x11\n\x07\x61rp_tpa\x18\x1a \x01(\rH\x00\x12\x11\n\x07\x61rp_sha\x18\x1b \x01(\x0cH\x00\x12\x11\n\x07\x61rp_tha\x18\x1c \x01(\x0cH\x00\x12\x12\n\x08ipv6_src\x18\x1d \x01(\x0cH\x00\x12\x12\n\x08ipv6_dst\x18\x1e \x01(\x0cH\x00\x12\x15\n\x0bipv6_flabel\x18\x1f \x01(\rH\x00\x12\x15\n\x0bicmpv6_type\x18  \x01(\rH\x00\x12\x15\n\x0bicmpv6_code\x18! \x01(\rH\x00\x12\x18\n\x0eipv6_nd_target\x18\" \x01(\x0cH\x00\x12\x15\n\x0bipv6_nd_ssl\x18# \x01(\x0cH\x00\x12\x15\n\x0bipv6_nd_tll\x18$ \x01(\x0cH\x00\x12\x14\n\nmpls_label\x18% \x01(\rH\x00\x12\x11\n\x07mpls_tc\x18& \x01(\rH\x00\x12\x12\n\x08mpls_bos\x18\' \x01(\rH\x00\x12\x12\n\x08pbb_isid\x18( \x01(\rH\x00\x12\x13\n\ttunnel_id\x18) \x01(\x04H\x00\x12\x15\n\x0bipv6_exthdr\x18* \x01(\rH\x00\x12\x1d\n\x13table_metadata_mask\x18i \x01(\x04H\x01\x12\x16\n\x0c\x65th_dst_mask\x18j \x01(\x0cH\x01\x12\x16\n\x0c\x65th_src_mask\x18k \x01(\x0cH\x01\x12\x17\n\rvlan_vid_mask\x18m \x01(\rH\x01\x12\x17\n\ripv4_src_mask\x18r \x01(\rH\x01\x12\x17\n\ripv4_dst_mask\x18s \x01(\rH\x01\x12\x16\n\x0c\x61rp_spa_mask\x18} \x01(\rH\x01\x12\x16\n\x0c\x61rp_tpa_mask\x18~ \x01(\rH\x01\x12\x18\n\ripv6_src_mask\x18\x81\x01 \x01(\x0cH\x01\x12\x18\n\ripv6_dst_mask\x18\x82\x01 \x01(\x0cH\x01\x12\x1b\n\x10ipv6_flabel_mask\x18\x83\x01 \x01(\rH\x01\x12\x18\n\rpbb_isid_mask\x18\x8c\x01 \x01(\rH\x01\x12\x19\n\x0etunnel_id_mask\x18\x8d\x01 \x01(\x04H\x01\x12\x1b\n\x10ipv6_exthdr_mask\x18\x8e\x01 \x01(\rH\x01\x42\x07\n\x05valueB\x06\n\x04mask\"F\n\x1aofp_oxm_experimenter_field\x12\x12\n\noxm_header\x18\x01 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\"\xe6\x03\n\nofp_action\x12*\n\x04type\x18\x01 \x01(\x0e\x32\x1c.openflow_13.ofp_action_type\x12\x30\n\x06output\x18\x02 \x01(\x0b\x32\x1e.openflow_13.ofp_action_outputH\x00\x12\x34\n\x08mpls_ttl\x18\x03 \x01(\x0b\x32 .openflow_13.ofp_action_mpls_ttlH\x00\x12,\n\x04push\x18\x04 \x01(\x0b\x32\x1c.openflow_13.ofp_action_pushH\x00\x12\x34\n\x08pop_mpls\x18\x05 \x01(\x0b\x32 .openflow_13.ofp_action_pop_mplsH\x00\x12.\n\x05group\x18\x06 \x01(\x0b\x32\x1d.openflow_13.ofp_action_groupH\x00\x12\x30\n\x06nw_ttl\x18\x07 \x01(\x0b\x32\x1e.openflow_13.ofp_action_nw_ttlH\x00\x12\x36\n\tset_field\x18\x08 \x01(\x0b\x32!.openflow_13.ofp_action_set_fieldH\x00\x12<\n\x0c\x65xperimenter\x18\t \x01(\x0b\x32$.openflow_13.ofp_action_experimenterH\x00\x42\x08\n\x06\x61\x63tion\"2\n\x11ofp_action_output\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x0f\n\x07max_len\x18\x02 \x01(\r\"\'\n\x13ofp_action_mpls_ttl\x12\x10\n\x08mpls_ttl\x18\x01 \x01(\r\"$\n\x0fofp_action_push\x12\x11\n\tethertype\x18\x01 \x01(\r\"(\n\x13ofp_action_pop_mpls\x12\x11\n\tethertype\x18\x01 \x01(\r\"$\n\x10ofp_action_group\x12\x10\n\x08group_id\x18\x01 \x01(\r\"#\n\x11ofp_action_nw_ttl\x12\x0e\n\x06nw_ttl\x18\x01 \x01(\r\"A\n\x14ofp_action_set_field\x12)\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1a.openflow_13.ofp_oxm_field\"=\n\x17ofp_action_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xde\x02\n\x0fofp_instruction\x12\x0c\n\x04type\x18\x01 \x01(\r\x12=\n\ngoto_table\x18\x02 \x01(\x0b\x32\'.openflow_13.ofp_instruction_goto_tableH\x00\x12\x45\n\x0ewrite_metadata\x18\x03 \x01(\x0b\x32+.openflow_13.ofp_instruction_write_metadataH\x00\x12\x37\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32$.openflow_13.ofp_instruction_actionsH\x00\x12\x33\n\x05meter\x18\x05 \x01(\x0b\x32\".openflow_13.ofp_instruction_meterH\x00\x12\x41\n\x0c\x65xperimenter\x18\x06 \x01(\x0b\x32).openflow_13.ofp_instruction_experimenterH\x00\x42\x06\n\x04\x64\x61ta\".\n\x1aofp_instruction_goto_table\x12\x10\n\x08table_id\x18\x01 \x01(\r\"I\n\x1eofp_instruction_write_metadata\x12\x10\n\x08metadata\x18\x01 \x01(\x04\x12\x15\n\rmetadata_mask\x18\x02 \x01(\x04\"C\n\x17ofp_instruction_actions\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.openflow_13.ofp_action\")\n\x15ofp_instruction_meter\x12\x10\n\x08meter_id\x18\x01 \x01(\r\"B\n\x1cofp_instruction_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xd9\x02\n\x0cofp_flow_mod\x12\x0e\n\x06\x63ookie\x18\x02 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x03 \x01(\x04\x12\x10\n\x08table_id\x18\x04 \x01(\r\x12\x32\n\x07\x63ommand\x18\x05 \x01(\x0e\x32!.openflow_13.ofp_flow_mod_command\x12\x14\n\x0cidle_timeout\x18\x06 \x01(\r\x12\x14\n\x0chard_timeout\x18\x07 \x01(\r\x12\x10\n\x08priority\x18\x08 \x01(\r\x12\x11\n\tbuffer_id\x18\t \x01(\r\x12\x10\n\x08out_port\x18\n \x01(\r\x12\x11\n\tout_group\x18\x0b \x01(\r\x12\r\n\x05\x66lags\x18\x0c \x01(\r\x12%\n\x05match\x18\r \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x32\n\x0cinstructions\x18\x0e \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"o\n\nofp_bucket\x12\x0e\n\x06weight\x18\x01 \x01(\r\x12\x12\n\nwatch_port\x18\x02 \x01(\r\x12\x13\n\x0bwatch_group\x18\x03 \x01(\r\x12(\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x17.openflow_13.ofp_action\"\xab\x01\n\rofp_group_mod\x12\x33\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\".openflow_13.ofp_group_mod_command\x12)\n\x04type\x18\x03 \x01(\x0e\x32\x1b.openflow_13.ofp_group_type\x12\x10\n\x08group_id\x18\x04 \x01(\r\x12(\n\x07\x62uckets\x18\x05 \x03(\x0b\x32\x17.openflow_13.ofp_bucket\"\x81\x01\n\x0eofp_packet_out\x12\x11\n\tbuffer_id\x18\x02 \x01(\r\x12\x0f\n\x07in_port\x18\x03 \x01(\r\x12\x13\n\x0b\x61\x63tions_len\x18\x04 \x01(\r\x12(\n\x07\x61\x63tions\x18\x05 \x03(\x0b\x32\x17.openflow_13.ofp_action\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\"\xbf\x01\n\rofp_packet_in\x12\x11\n\tbuffer_id\x18\x02 \x01(\r\x12\x11\n\ttotal_len\x18\x03 \x01(\r\x12\x31\n\x06reason\x18\x04 \x01(\x0e\x32!.openflow_13.ofp_packet_in_reason\x12\x10\n\x08table_id\x18\x05 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x06 \x01(\x04\x12%\n\x05match\x18\x07 \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x0c\n\x04\x64\x61ta\x18\x08 \x01(\x0c\"\xa6\x02\n\x10ofp_flow_removed\x12\x0e\n\x06\x63ookie\x18\x02 \x01(\x04\x12\x10\n\x08priority\x18\x03 \x01(\r\x12\x34\n\x06reason\x18\x04 \x01(\x0e\x32$.openflow_13.ofp_flow_removed_reason\x12\x10\n\x08table_id\x18\x05 \x01(\r\x12\x14\n\x0c\x64uration_sec\x18\x06 \x01(\r\x12\x15\n\rduration_nsec\x18\x07 \x01(\r\x12\x14\n\x0cidle_timeout\x18\x08 \x01(\r\x12\x14\n\x0chard_timeout\x18\t \x01(\r\x12\x14\n\x0cpacket_count\x18\n \x01(\x04\x12\x12\n\nbyte_count\x18\x0b \x01(\x04\x12%\n\x05match\x18\x0c \x01(\x0b\x32\x16.openflow_13.ofp_match\"v\n\x15ofp_meter_band_header\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_meter_band_type\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\"R\n\x13ofp_meter_band_drop\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\"m\n\x1aofp_meter_band_dscp_remark\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\x12\x12\n\nprec_level\x18\x05 \x01(\r\"\x92\x01\n\x1bofp_meter_band_experimenter\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_meter_band_type\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x05 \x01(\r\"\xc1\x01\n\rofp_meter_mod\x12\'\n\x06header\x18\x01 \x01(\x0b\x32\x17.openflow_13.ofp_header\x12\x33\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\".openflow_13.ofp_meter_mod_command\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x10\n\x08meter_id\x18\x04 \x01(\r\x12\x31\n\x05\x62\x61nds\x18\x05 \x03(\x0b\x32\".openflow_13.ofp_meter_band_header\"9\n\rofp_error_msg\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x63ode\x18\x03 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"`\n\x1aofp_error_experimenter_msg\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x04 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"c\n\x15ofp_multipart_request\x12-\n\x04type\x18\x02 \x01(\x0e\x32\x1f.openflow_13.ofp_multipart_type\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04\x62ody\x18\x04 \x01(\x0c\"a\n\x13ofp_multipart_reply\x12-\n\x04type\x18\x02 \x01(\x0e\x32\x1f.openflow_13.ofp_multipart_type\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04\x62ody\x18\x04 \x01(\x0c\"c\n\x08ofp_desc\x12\x10\n\x08mfr_desc\x18\x01 \x01(\t\x12\x0f\n\x07hw_desc\x18\x02 \x01(\t\x12\x0f\n\x07sw_desc\x18\x03 \x01(\t\x12\x12\n\nserial_num\x18\x04 \x01(\t\x12\x0f\n\x07\x64p_desc\x18\x05 \x01(\t\"\x9b\x01\n\x16ofp_flow_stats_request\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x10\n\x08out_port\x18\x02 \x01(\r\x12\x11\n\tout_group\x18\x03 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x05 \x01(\x04\x12%\n\x05match\x18\x06 \x01(\x0b\x32\x16.openflow_13.ofp_match\"\xb1\x02\n\x0eofp_flow_stats\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x14\n\x0c\x64uration_sec\x18\x02 \x01(\r\x12\x15\n\rduration_nsec\x18\x03 \x01(\r\x12\x10\n\x08priority\x18\x04 \x01(\r\x12\x14\n\x0cidle_timeout\x18\x05 \x01(\r\x12\x14\n\x0chard_timeout\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x08 \x01(\x04\x12\x14\n\x0cpacket_count\x18\t \x01(\x04\x12\x12\n\nbyte_count\x18\n \x01(\x04\x12%\n\x05match\x18\x0c \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x32\n\x0cinstructions\x18\r \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"\xa0\x01\n\x1bofp_aggregate_stats_request\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x10\n\x08out_port\x18\x02 \x01(\r\x12\x11\n\tout_group\x18\x03 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x05 \x01(\x04\x12%\n\x05match\x18\x06 \x01(\x0b\x32\x16.openflow_13.ofp_match\"Y\n\x19ofp_aggregate_stats_reply\x12\x14\n\x0cpacket_count\x18\x01 \x01(\x04\x12\x12\n\nbyte_count\x18\x02 \x01(\x04\x12\x12\n\nflow_count\x18\x03 \x01(\r\"\xb1\x03\n\x1aofp_table_feature_property\x12\x36\n\x04type\x18\x01 \x01(\x0e\x32(.openflow_13.ofp_table_feature_prop_type\x12H\n\x0cinstructions\x18\x02 \x01(\x0b\x32\x30.openflow_13.ofp_table_feature_prop_instructionsH\x00\x12\x46\n\x0bnext_tables\x18\x03 \x01(\x0b\x32/.openflow_13.ofp_table_feature_prop_next_tablesH\x00\x12>\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32+.openflow_13.ofp_table_feature_prop_actionsH\x00\x12\x36\n\x03oxm\x18\x05 \x01(\x0b\x32\'.openflow_13.ofp_table_feature_prop_oxmH\x00\x12H\n\x0c\x65xperimenter\x18\x06 \x01(\x0b\x32\x30.openflow_13.ofp_table_feature_prop_experimenterH\x00\x42\x07\n\x05value\"Y\n#ofp_table_feature_prop_instructions\x12\x32\n\x0cinstructions\x18\x01 \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"<\n\"ofp_table_feature_prop_next_tables\x12\x16\n\x0enext_table_ids\x18\x01 \x03(\r\"J\n\x1eofp_table_feature_prop_actions\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.openflow_13.ofp_action\"-\n\x1aofp_table_feature_prop_oxm\x12\x0f\n\x07oxm_ids\x18\x03 \x03(\r\"h\n#ofp_table_feature_prop_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x19\n\x11\x65xperimenter_data\x18\x04 \x03(\r\"\xc6\x01\n\x12ofp_table_features\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0emetadata_match\x18\x03 \x01(\x04\x12\x16\n\x0emetadata_write\x18\x04 \x01(\x04\x12\x0e\n\x06\x63onfig\x18\x05 \x01(\r\x12\x13\n\x0bmax_entries\x18\x06 \x01(\r\x12;\n\nproperties\x18\x07 \x03(\x0b\x32\'.openflow_13.ofp_table_feature_property\"f\n\x0fofp_table_stats\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63tive_count\x18\x02 \x01(\r\x12\x14\n\x0clookup_count\x18\x03 \x01(\x04\x12\x15\n\rmatched_count\x18\x04 \x01(\x04\")\n\x16ofp_port_stats_request\x12\x0f\n\x07port_no\x18\x01 \x01(\r\"\xbb\x02\n\x0eofp_port_stats\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x12\n\nrx_packets\x18\x02 \x01(\x04\x12\x12\n\ntx_packets\x18\x03 \x01(\x04\x12\x10\n\x08rx_bytes\x18\x04 \x01(\x04\x12\x10\n\x08tx_bytes\x18\x05 \x01(\x04\x12\x12\n\nrx_dropped\x18\x06 \x01(\x04\x12\x12\n\ntx_dropped\x18\x07 \x01(\x04\x12\x11\n\trx_errors\x18\x08 \x01(\x04\x12\x11\n\ttx_errors\x18\t \x01(\x04\x12\x14\n\x0crx_frame_err\x18\n \x01(\x04\x12\x13\n\x0brx_over_err\x18\x0b \x01(\x04\x12\x12\n\nrx_crc_err\x18\x0c \x01(\x04\x12\x12\n\ncollisions\x18\r \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x0e \x01(\r\x12\x15\n\rduration_nsec\x18\x0f \x01(\r\"+\n\x17ofp_group_stats_request\x12\x10\n\x08group_id\x18\x01 \x01(\r\">\n\x12ofp_bucket_counter\x12\x14\n\x0cpacket_count\x18\x01 \x01(\x04\x12\x12\n\nbyte_count\x18\x02 \x01(\x04\"\xc4\x01\n\x0fofp_group_stats\x12\x10\n\x08group_id\x18\x01 \x01(\r\x12\x11\n\tref_count\x18\x02 \x01(\r\x12\x14\n\x0cpacket_count\x18\x03 \x01(\x04\x12\x12\n\nbyte_count\x18\x04 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x05 \x01(\r\x12\x15\n\rduration_nsec\x18\x06 \x01(\r\x12\x35\n\x0c\x62ucket_stats\x18\x07 \x03(\x0b\x32\x1f.openflow_13.ofp_bucket_counter\"\x84\x01\n\x0eofp_group_desc\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openflow_13.ofp_group_type\x12\x0b\n\x03pad\x18\x02 \x01(\r\x12\x10\n\x08group_id\x18\x03 \x01(\r\x12(\n\x07\x62uckets\x18\x04 \x03(\x0b\x32\x17.openflow_13.ofp_bucket\"^\n\x12ofp_group_features\x12\r\n\x05types\x18\x01 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x02 \x01(\r\x12\x12\n\nmax_groups\x18\x03 \x03(\r\x12\x0f\n\x07\x61\x63tions\x18\x04 \x03(\r\"/\n\x1bofp_meter_multipart_request\x12\x10\n\x08meter_id\x18\x01 \x01(\r\"J\n\x14ofp_meter_band_stats\x12\x19\n\x11packet_band_count\x18\x01 \x01(\x04\x12\x17\n\x0f\x62yte_band_count\x18\x02 \x01(\x04\"\xcb\x01\n\x0fofp_meter_stats\x12\x10\n\x08meter_id\x18\x01 \x01(\r\x12\x12\n\nflow_count\x18\x02 \x01(\r\x12\x17\n\x0fpacket_in_count\x18\x03 \x01(\x04\x12\x15\n\rbyte_in_count\x18\x04 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x05 \x01(\r\x12\x15\n\rduration_nsec\x18\x06 \x01(\r\x12\x35\n\nband_stats\x18\x07 \x03(\x0b\x32!.openflow_13.ofp_meter_band_stats\"f\n\x10ofp_meter_config\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x10\n\x08meter_id\x18\x02 \x01(\r\x12\x31\n\x05\x62\x61nds\x18\x03 \x03(\x0b\x32\".openflow_13.ofp_meter_band_header\"w\n\x12ofp_meter_features\x12\x11\n\tmax_meter\x18\x01 \x01(\r\x12\x12\n\nband_types\x18\x02 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x03 \x01(\r\x12\x11\n\tmax_bands\x18\x04 \x01(\r\x12\x11\n\tmax_color\x18\x05 \x01(\r\"Y\n!ofp_experimenter_multipart_header\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"O\n\x17ofp_experimenter_header\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"6\n\x15ofp_queue_prop_header\x12\x10\n\x08property\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\"`\n\x17ofp_queue_prop_min_rate\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x0c\n\x04rate\x18\x02 \x01(\r\"`\n\x17ofp_queue_prop_max_rate\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x0c\n\x04rate\x18\x02 \x01(\r\"z\n\x1bofp_queue_prop_experimenter\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"j\n\x10ofp_packet_queue\x12\x10\n\x08queue_id\x18\x01 \x01(\r\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x36\n\nproperties\x18\x04 \x03(\x0b\x32\".openflow_13.ofp_queue_prop_header\",\n\x1cofp_queue_get_config_request\x12\x0c\n\x04port\x18\x02 \x01(\r\"Y\n\x1aofp_queue_get_config_reply\x12\x0c\n\x04port\x18\x02 \x01(\r\x12-\n\x06queues\x18\x03 \x03(\x0b\x32\x1d.openflow_13.ofp_packet_queue\"6\n\x14ofp_action_set_queue\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x03 \x01(\r\"<\n\x17ofp_queue_stats_request\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x02 \x01(\r\"\x9a\x01\n\x0fofp_queue_stats\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x02 \x01(\r\x12\x10\n\x08tx_bytes\x18\x03 \x01(\x04\x12\x12\n\ntx_packets\x18\x04 \x01(\x04\x12\x11\n\ttx_errors\x18\x05 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x06 \x01(\r\x12\x15\n\rduration_nsec\x18\x07 \x01(\r\"Y\n\x10ofp_role_request\x12.\n\x04role\x18\x02 \x01(\x0e\x32 .openflow_13.ofp_controller_role\x12\x15\n\rgeneration_id\x18\x03 \x01(\x04\"_\n\x10ofp_async_config\x12\x16\n\x0epacket_in_mask\x18\x02 \x03(\r\x12\x18\n\x10port_status_mask\x18\x03 \x03(\r\x12\x19\n\x11\x66low_removed_mask\x18\x04 \x03(\r*\xd5\x01\n\x0bofp_port_no\x12\x10\n\x0cOFPP_INVALID\x10\x00\x12\x10\n\x08OFPP_MAX\x10\x80\xfe\xff\xff\x07\x12\x14\n\x0cOFPP_IN_PORT\x10\xf8\xff\xff\xff\x07\x12\x12\n\nOFPP_TABLE\x10\xf9\xff\xff\xff\x07\x12\x13\n\x0bOFPP_NORMAL\x10\xfa\xff\xff\xff\x07\x12\x12\n\nOFPP_FLOOD\x10\xfb\xff\xff\xff\x07\x12\x10\n\x08OFPP_ALL\x10\xfc\xff\xff\xff\x07\x12\x17\n\x0fOFPP_CONTROLLER\x10\xfd\xff\xff\xff\x07\x12\x12\n\nOFPP_LOCAL\x10\xfe\xff\xff\xff\x07\x12\x10\n\x08OFPP_ANY\x10\xff\xff\xff\xff\x07*\xc8\x05\n\x08ofp_type\x12\x0e\n\nOFPT_HELLO\x10\x00\x12\x0e\n\nOFPT_ERROR\x10\x01\x12\x15\n\x11OFPT_ECHO_REQUEST\x10\x02\x12\x13\n\x0fOFPT_ECHO_REPLY\x10\x03\x12\x15\n\x11OFPT_EXPERIMENTER\x10\x04\x12\x19\n\x15OFPT_FEATURES_REQUEST\x10\x05\x12\x17\n\x13OFPT_FEATURES_REPLY\x10\x06\x12\x1b\n\x17OFPT_GET_CONFIG_REQUEST\x10\x07\x12\x19\n\x15OFPT_GET_CONFIG_REPLY\x10\x08\x12\x13\n\x0fOFPT_SET_CONFIG\x10\t\x12\x12\n\x0eOFPT_PACKET_IN\x10\n\x12\x15\n\x11OFPT_FLOW_REMOVED\x10\x0b\x12\x14\n\x10OFPT_PORT_STATUS\x10\x0c\x12\x13\n\x0fOFPT_PACKET_OUT\x10\r\x12\x11\n\rOFPT_FLOW_MOD\x10\x0e\x12\x12\n\x0eOFPT_GROUP_MOD\x10\x0f\x12\x11\n\rOFPT_PORT_MOD\x10\x10\x12\x12\n\x0eOFPT_TABLE_MOD\x10\x11\x12\x1a\n\x16OFPT_MULTIPART_REQUEST\x10\x12\x12\x18\n\x14OFPT_MULTIPART_REPLY\x10\x13\x12\x18\n\x14OFPT_BARRIER_REQUEST\x10\x14\x12\x16\n\x12OFPT_BARRIER_REPLY\x10\x15\x12!\n\x1dOFPT_QUEUE_GET_CONFIG_REQUEST\x10\x16\x12\x1f\n\x1bOFPT_QUEUE_GET_CONFIG_REPLY\x10\x17\x12\x15\n\x11OFPT_ROLE_REQUEST\x10\x18\x12\x13\n\x0fOFPT_ROLE_REPLY\x10\x19\x12\x1a\n\x16OFPT_GET_ASYNC_REQUEST\x10\x1a\x12\x18\n\x14OFPT_GET_ASYNC_REPLY\x10\x1b\x12\x12\n\x0eOFPT_SET_ASYNC\x10\x1c\x12\x12\n\x0eOFPT_METER_MOD\x10\x1d*C\n\x13ofp_hello_elem_type\x12\x12\n\x0eOFPHET_INVALID\x10\x00\x12\x18\n\x14OFPHET_VERSIONBITMAP\x10\x01*e\n\x10ofp_config_flags\x12\x14\n\x10OFPC_FRAG_NORMAL\x10\x00\x12\x12\n\x0eOFPC_FRAG_DROP\x10\x01\x12\x13\n\x0fOFPC_FRAG_REASM\x10\x02\x12\x12\n\x0eOFPC_FRAG_MASK\x10\x03*@\n\x10ofp_table_config\x12\x11\n\rOFPTC_INVALID\x10\x00\x12\x19\n\x15OFPTC_DEPRECATED_MASK\x10\x03*>\n\tofp_table\x12\x11\n\rOFPTT_INVALID\x10\x00\x12\x0e\n\tOFPTT_MAX\x10\xfe\x01\x12\x0e\n\tOFPTT_ALL\x10\xff\x01*\xbb\x01\n\x10ofp_capabilities\x12\x10\n\x0cOFPC_INVALID\x10\x00\x12\x13\n\x0fOFPC_FLOW_STATS\x10\x01\x12\x14\n\x10OFPC_TABLE_STATS\x10\x02\x12\x13\n\x0fOFPC_PORT_STATS\x10\x04\x12\x14\n\x10OFPC_GROUP_STATS\x10\x08\x12\x11\n\rOFPC_IP_REASM\x10 \x12\x14\n\x10OFPC_QUEUE_STATS\x10@\x12\x16\n\x11OFPC_PORT_BLOCKED\x10\x80\x02*v\n\x0fofp_port_config\x12\x11\n\rOFPPC_INVALID\x10\x00\x12\x13\n\x0fOFPPC_PORT_DOWN\x10\x01\x12\x11\n\rOFPPC_NO_RECV\x10\x04\x12\x10\n\x0cOFPPC_NO_FWD\x10 \x12\x16\n\x12OFPPC_NO_PACKET_IN\x10@*[\n\x0eofp_port_state\x12\x11\n\rOFPPS_INVALID\x10\x00\x12\x13\n\x0fOFPPS_LINK_DOWN\x10\x01\x12\x11\n\rOFPPS_BLOCKED\x10\x02\x12\x0e\n\nOFPPS_LIVE\x10\x04*\xdd\x02\n\x11ofp_port_features\x12\x11\n\rOFPPF_INVALID\x10\x00\x12\x11\n\rOFPPF_10MB_HD\x10\x01\x12\x11\n\rOFPPF_10MB_FD\x10\x02\x12\x12\n\x0eOFPPF_100MB_HD\x10\x04\x12\x12\n\x0eOFPPF_100MB_FD\x10\x08\x12\x10\n\x0cOFPPF_1GB_HD\x10\x10\x12\x10\n\x0cOFPPF_1GB_FD\x10 \x12\x11\n\rOFPPF_10GB_FD\x10@\x12\x12\n\rOFPPF_40GB_FD\x10\x80\x01\x12\x13\n\x0eOFPPF_100GB_FD\x10\x80\x02\x12\x11\n\x0cOFPPF_1TB_FD\x10\x80\x04\x12\x10\n\x0bOFPPF_OTHER\x10\x80\x08\x12\x11\n\x0cOFPPF_COPPER\x10\x80\x10\x12\x10\n\x0bOFPPF_FIBER\x10\x80 \x12\x12\n\rOFPPF_AUTONEG\x10\x80@\x12\x11\n\x0bOFPPF_PAUSE\x10\x80\x80\x01\x12\x16\n\x10OFPPF_PAUSE_ASYM\x10\x80\x80\x02*D\n\x0fofp_port_reason\x12\r\n\tOFPPR_ADD\x10\x00\x12\x10\n\x0cOFPPR_DELETE\x10\x01\x12\x10\n\x0cOFPPR_MODIFY\x10\x02*3\n\x0eofp_match_type\x12\x12\n\x0eOFPMT_STANDARD\x10\x00\x12\r\n\tOFPMT_OXM\x10\x01*k\n\rofp_oxm_class\x12\x10\n\x0cOFPXMC_NXM_0\x10\x00\x12\x10\n\x0cOFPXMC_NXM_1\x10\x01\x12\x1b\n\x15OFPXMC_OPENFLOW_BASIC\x10\x80\x80\x02\x12\x19\n\x13OFPXMC_EXPERIMENTER\x10\xff\xff\x03*\x90\x08\n\x13oxm_ofb_field_types\x12\x16\n\x12OFPXMT_OFB_IN_PORT\x10\x00\x12\x1a\n\x16OFPXMT_OFB_IN_PHY_PORT\x10\x01\x12\x17\n\x13OFPXMT_OFB_METADATA\x10\x02\x12\x16\n\x12OFPXMT_OFB_ETH_DST\x10\x03\x12\x16\n\x12OFPXMT_OFB_ETH_SRC\x10\x04\x12\x17\n\x13OFPXMT_OFB_ETH_TYPE\x10\x05\x12\x17\n\x13OFPXMT_OFB_VLAN_VID\x10\x06\x12\x17\n\x13OFPXMT_OFB_VLAN_PCP\x10\x07\x12\x16\n\x12OFPXMT_OFB_IP_DSCP\x10\x08\x12\x15\n\x11OFPXMT_OFB_IP_ECN\x10\t\x12\x17\n\x13OFPXMT_OFB_IP_PROTO\x10\n\x12\x17\n\x13OFPXMT_OFB_IPV4_SRC\x10\x0b\x12\x17\n\x13OFPXMT_OFB_IPV4_DST\x10\x0c\x12\x16\n\x12OFPXMT_OFB_TCP_SRC\x10\r\x12\x16\n\x12OFPXMT_OFB_TCP_DST\x10\x0e\x12\x16\n\x12OFPXMT_OFB_UDP_SRC\x10\x0f\x12\x16\n\x12OFPXMT_OFB_UDP_DST\x10\x10\x12\x17\n\x13OFPXMT_OFB_SCTP_SRC\x10\x11\x12\x17\n\x13OFPXMT_OFB_SCTP_DST\x10\x12\x12\x1a\n\x16OFPXMT_OFB_ICMPV4_TYPE\x10\x13\x12\x1a\n\x16OFPXMT_OFB_ICMPV4_CODE\x10\x14\x12\x15\n\x11OFPXMT_OFB_ARP_OP\x10\x15\x12\x16\n\x12OFPXMT_OFB_ARP_SPA\x10\x16\x12\x16\n\x12OFPXMT_OFB_ARP_TPA\x10\x17\x12\x16\n\x12OFPXMT_OFB_ARP_SHA\x10\x18\x12\x16\n\x12OFPXMT_OFB_ARP_THA\x10\x19\x12\x17\n\x13OFPXMT_OFB_IPV6_SRC\x10\x1a\x12\x17\n\x13OFPXMT_OFB_IPV6_DST\x10\x1b\x12\x1a\n\x16OFPXMT_OFB_IPV6_FLABEL\x10\x1c\x12\x1a\n\x16OFPXMT_OFB_ICMPV6_TYPE\x10\x1d\x12\x1a\n\x16OFPXMT_OFB_ICMPV6_CODE\x10\x1e\x12\x1d\n\x19OFPXMT_OFB_IPV6_ND_TARGET\x10\x1f\x12\x1a\n\x16OFPXMT_OFB_IPV6_ND_SLL\x10 \x12\x1a\n\x16OFPXMT_OFB_IPV6_ND_TLL\x10!\x12\x19\n\x15OFPXMT_OFB_MPLS_LABEL\x10\"\x12\x16\n\x12OFPXMT_OFB_MPLS_TC\x10#\x12\x17\n\x13OFPXMT_OFB_MPLS_BOS\x10$\x12\x17\n\x13OFPXMT_OFB_PBB_ISID\x10%\x12\x18\n\x14OFPXMT_OFB_TUNNEL_ID\x10&\x12\x1a\n\x16OFPXMT_OFB_IPV6_EXTHDR\x10\'*3\n\x0bofp_vlan_id\x12\x0f\n\x0bOFPVID_NONE\x10\x00\x12\x13\n\x0eOFPVID_PRESENT\x10\x80 *\xc9\x01\n\x14ofp_ipv6exthdr_flags\x12\x12\n\x0eOFPIEH_INVALID\x10\x00\x12\x11\n\rOFPIEH_NONEXT\x10\x01\x12\x0e\n\nOFPIEH_ESP\x10\x02\x12\x0f\n\x0bOFPIEH_AUTH\x10\x04\x12\x0f\n\x0bOFPIEH_DEST\x10\x08\x12\x0f\n\x0bOFPIEH_FRAG\x10\x10\x12\x11\n\rOFPIEH_ROUTER\x10 \x12\x0e\n\nOFPIEH_HOP\x10@\x12\x11\n\x0cOFPIEH_UNREP\x10\x80\x01\x12\x11\n\x0cOFPIEH_UNSEQ\x10\x80\x02*\xfc\x02\n\x0fofp_action_type\x12\x10\n\x0cOFPAT_OUTPUT\x10\x00\x12\x16\n\x12OFPAT_COPY_TTL_OUT\x10\x0b\x12\x15\n\x11OFPAT_COPY_TTL_IN\x10\x0c\x12\x16\n\x12OFPAT_SET_MPLS_TTL\x10\x0f\x12\x16\n\x12OFPAT_DEC_MPLS_TTL\x10\x10\x12\x13\n\x0fOFPAT_PUSH_VLAN\x10\x11\x12\x12\n\x0eOFPAT_POP_VLAN\x10\x12\x12\x13\n\x0fOFPAT_PUSH_MPLS\x10\x13\x12\x12\n\x0eOFPAT_POP_MPLS\x10\x14\x12\x13\n\x0fOFPAT_SET_QUEUE\x10\x15\x12\x0f\n\x0bOFPAT_GROUP\x10\x16\x12\x14\n\x10OFPAT_SET_NW_TTL\x10\x17\x12\x14\n\x10OFPAT_DEC_NW_TTL\x10\x18\x12\x13\n\x0fOFPAT_SET_FIELD\x10\x19\x12\x12\n\x0eOFPAT_PUSH_PBB\x10\x1a\x12\x11\n\rOFPAT_POP_PBB\x10\x1b\x12\x18\n\x12OFPAT_EXPERIMENTER\x10\xff\xff\x03*V\n\x16ofp_controller_max_len\x12\x12\n\x0eOFPCML_INVALID\x10\x00\x12\x10\n\nOFPCML_MAX\x10\xe5\xff\x03\x12\x16\n\x10OFPCML_NO_BUFFER\x10\xff\xff\x03*\xcf\x01\n\x14ofp_instruction_type\x12\x11\n\rOFPIT_INVALID\x10\x00\x12\x14\n\x10OFPIT_GOTO_TABLE\x10\x01\x12\x18\n\x14OFPIT_WRITE_METADATA\x10\x02\x12\x17\n\x13OFPIT_WRITE_ACTIONS\x10\x03\x12\x17\n\x13OFPIT_APPLY_ACTIONS\x10\x04\x12\x17\n\x13OFPIT_CLEAR_ACTIONS\x10\x05\x12\x0f\n\x0bOFPIT_METER\x10\x06\x12\x18\n\x12OFPIT_EXPERIMENTER\x10\xff\xff\x03*{\n\x14ofp_flow_mod_command\x12\r\n\tOFPFC_ADD\x10\x00\x12\x10\n\x0cOFPFC_MODIFY\x10\x01\x12\x17\n\x13OFPFC_MODIFY_STRICT\x10\x02\x12\x10\n\x0cOFPFC_DELETE\x10\x03\x12\x17\n\x13OFPFC_DELETE_STRICT\x10\x04*\xa3\x01\n\x12ofp_flow_mod_flags\x12\x11\n\rOFPFF_INVALID\x10\x00\x12\x17\n\x13OFPFF_SEND_FLOW_REM\x10\x01\x12\x17\n\x13OFPFF_CHECK_OVERLAP\x10\x02\x12\x16\n\x12OFPFF_RESET_COUNTS\x10\x04\x12\x17\n\x13OFPFF_NO_PKT_COUNTS\x10\x08\x12\x17\n\x13OFPFF_NO_BYT_COUNTS\x10\x10*S\n\tofp_group\x12\x10\n\x0cOFPG_INVALID\x10\x00\x12\x10\n\x08OFPG_MAX\x10\x80\xfe\xff\xff\x07\x12\x10\n\x08OFPG_ALL\x10\xfc\xff\xff\xff\x07\x12\x10\n\x08OFPG_ANY\x10\xff\xff\xff\xff\x07*J\n\x15ofp_group_mod_command\x12\r\n\tOFPGC_ADD\x10\x00\x12\x10\n\x0cOFPGC_MODIFY\x10\x01\x12\x10\n\x0cOFPGC_DELETE\x10\x02*S\n\x0eofp_group_type\x12\r\n\tOFPGT_ALL\x10\x00\x12\x10\n\x0cOFPGT_SELECT\x10\x01\x12\x12\n\x0eOFPGT_INDIRECT\x10\x02\x12\x0c\n\x08OFPGT_FF\x10\x03*P\n\x14ofp_packet_in_reason\x12\x11\n\rOFPR_NO_MATCH\x10\x00\x12\x0f\n\x0bOFPR_ACTION\x10\x01\x12\x14\n\x10OFPR_INVALID_TTL\x10\x02*\x8b\x01\n\x17ofp_flow_removed_reason\x12\x16\n\x12OFPRR_IDLE_TIMEOUT\x10\x00\x12\x16\n\x12OFPRR_HARD_TIMEOUT\x10\x01\x12\x10\n\x0cOFPRR_DELETE\x10\x02\x12\x16\n\x12OFPRR_GROUP_DELETE\x10\x03\x12\x16\n\x12OFPRR_METER_DELETE\x10\x04*n\n\tofp_meter\x12\r\n\tOFPM_ZERO\x10\x00\x12\x10\n\x08OFPM_MAX\x10\x80\x80\xfc\xff\x07\x12\x15\n\rOFPM_SLOWPATH\x10\xfd\xff\xff\xff\x07\x12\x17\n\x0fOFPM_CONTROLLER\x10\xfe\xff\xff\xff\x07\x12\x10\n\x08OFPM_ALL\x10\xff\xff\xff\xff\x07*m\n\x13ofp_meter_band_type\x12\x12\n\x0eOFPMBT_INVALID\x10\x00\x12\x0f\n\x0bOFPMBT_DROP\x10\x01\x12\x16\n\x12OFPMBT_DSCP_REMARK\x10\x02\x12\x19\n\x13OFPMBT_EXPERIMENTER\x10\xff\xff\x03*J\n\x15ofp_meter_mod_command\x12\r\n\tOFPMC_ADD\x10\x00\x12\x10\n\x0cOFPMC_MODIFY\x10\x01\x12\x10\n\x0cOFPMC_DELETE\x10\x02*g\n\x0fofp_meter_flags\x12\x11\n\rOFPMF_INVALID\x10\x00\x12\x0e\n\nOFPMF_KBPS\x10\x01\x12\x0f\n\x0bOFPMF_PKTPS\x10\x02\x12\x0f\n\x0bOFPMF_BURST\x10\x04\x12\x0f\n\x0bOFPMF_STATS\x10\x08*\xa4\x03\n\x0eofp_error_type\x12\x16\n\x12OFPET_HELLO_FAILED\x10\x00\x12\x15\n\x11OFPET_BAD_REQUEST\x10\x01\x12\x14\n\x10OFPET_BAD_ACTION\x10\x02\x12\x19\n\x15OFPET_BAD_INSTRUCTION\x10\x03\x12\x13\n\x0fOFPET_BAD_MATCH\x10\x04\x12\x19\n\x15OFPET_FLOW_MOD_FAILED\x10\x05\x12\x1a\n\x16OFPET_GROUP_MOD_FAILED\x10\x06\x12\x19\n\x15OFPET_PORT_MOD_FAILED\x10\x07\x12\x1a\n\x16OFPET_TABLE_MOD_FAILED\x10\x08\x12\x19\n\x15OFPET_QUEUE_OP_FAILED\x10\t\x12\x1e\n\x1aOFPET_SWITCH_CONFIG_FAILED\x10\n\x12\x1d\n\x19OFPET_ROLE_REQUEST_FAILED\x10\x0b\x12\x1a\n\x16OFPET_METER_MOD_FAILED\x10\x0c\x12\x1f\n\x1bOFPET_TABLE_FEATURES_FAILED\x10\r\x12\x18\n\x12OFPET_EXPERIMENTER\x10\xff\xff\x03*B\n\x15ofp_hello_failed_code\x12\x17\n\x13OFPHFC_INCOMPATIBLE\x10\x00\x12\x10\n\x0cOFPHFC_EPERM\x10\x01*\xed\x02\n\x14ofp_bad_request_code\x12\x16\n\x12OFPBRC_BAD_VERSION\x10\x00\x12\x13\n\x0fOFPBRC_BAD_TYPE\x10\x01\x12\x18\n\x14OFPBRC_BAD_MULTIPART\x10\x02\x12\x1b\n\x17OFPBRC_BAD_EXPERIMENTER\x10\x03\x12\x17\n\x13OFPBRC_BAD_EXP_TYPE\x10\x04\x12\x10\n\x0cOFPBRC_EPERM\x10\x05\x12\x12\n\x0eOFPBRC_BAD_LEN\x10\x06\x12\x17\n\x13OFPBRC_BUFFER_EMPTY\x10\x07\x12\x19\n\x15OFPBRC_BUFFER_UNKNOWN\x10\x08\x12\x17\n\x13OFPBRC_BAD_TABLE_ID\x10\t\x12\x13\n\x0fOFPBRC_IS_SLAVE\x10\n\x12\x13\n\x0fOFPBRC_BAD_PORT\x10\x0b\x12\x15\n\x11OFPBRC_BAD_PACKET\x10\x0c\x12$\n OFPBRC_MULTIPART_BUFFER_OVERFLOW\x10\r*\x9c\x03\n\x13ofp_bad_action_code\x12\x13\n\x0fOFPBAC_BAD_TYPE\x10\x00\x12\x12\n\x0eOFPBAC_BAD_LEN\x10\x01\x12\x1b\n\x17OFPBAC_BAD_EXPERIMENTER\x10\x02\x12\x17\n\x13OFPBAC_BAD_EXP_TYPE\x10\x03\x12\x17\n\x13OFPBAC_BAD_OUT_PORT\x10\x04\x12\x17\n\x13OFPBAC_BAD_ARGUMENT\x10\x05\x12\x10\n\x0cOFPBAC_EPERM\x10\x06\x12\x13\n\x0fOFPBAC_TOO_MANY\x10\x07\x12\x14\n\x10OFPBAC_BAD_QUEUE\x10\x08\x12\x18\n\x14OFPBAC_BAD_OUT_GROUP\x10\t\x12\x1d\n\x19OFPBAC_MATCH_INCONSISTENT\x10\n\x12\x1c\n\x18OFPBAC_UNSUPPORTED_ORDER\x10\x0b\x12\x12\n\x0eOFPBAC_BAD_TAG\x10\x0c\x12\x17\n\x13OFPBAC_BAD_SET_TYPE\x10\r\x12\x16\n\x12OFPBAC_BAD_SET_LEN\x10\x0e\x12\x1b\n\x17OFPBAC_BAD_SET_ARGUMENT\x10\x0f*\xfa\x01\n\x18ofp_bad_instruction_code\x12\x17\n\x13OFPBIC_UNKNOWN_INST\x10\x00\x12\x15\n\x11OFPBIC_UNSUP_INST\x10\x01\x12\x17\n\x13OFPBIC_BAD_TABLE_ID\x10\x02\x12\x19\n\x15OFPBIC_UNSUP_METADATA\x10\x03\x12\x1e\n\x1aOFPBIC_UNSUP_METADATA_MASK\x10\x04\x12\x1b\n\x17OFPBIC_BAD_EXPERIMENTER\x10\x05\x12\x17\n\x13OFPBIC_BAD_EXP_TYPE\x10\x06\x12\x12\n\x0eOFPBIC_BAD_LEN\x10\x07\x12\x10\n\x0cOFPBIC_EPERM\x10\x08*\xa5\x02\n\x12ofp_bad_match_code\x12\x13\n\x0fOFPBMC_BAD_TYPE\x10\x00\x12\x12\n\x0eOFPBMC_BAD_LEN\x10\x01\x12\x12\n\x0eOFPBMC_BAD_TAG\x10\x02\x12\x1b\n\x17OFPBMC_BAD_DL_ADDR_MASK\x10\x03\x12\x1b\n\x17OFPBMC_BAD_NW_ADDR_MASK\x10\x04\x12\x18\n\x14OFPBMC_BAD_WILDCARDS\x10\x05\x12\x14\n\x10OFPBMC_BAD_FIELD\x10\x06\x12\x14\n\x10OFPBMC_BAD_VALUE\x10\x07\x12\x13\n\x0fOFPBMC_BAD_MASK\x10\x08\x12\x15\n\x11OFPBMC_BAD_PREREQ\x10\t\x12\x14\n\x10OFPBMC_DUP_FIELD\x10\n\x12\x10\n\x0cOFPBMC_EPERM\x10\x0b*\xd2\x01\n\x18ofp_flow_mod_failed_code\x12\x13\n\x0fOFPFMFC_UNKNOWN\x10\x00\x12\x16\n\x12OFPFMFC_TABLE_FULL\x10\x01\x12\x18\n\x14OFPFMFC_BAD_TABLE_ID\x10\x02\x12\x13\n\x0fOFPFMFC_OVERLAP\x10\x03\x12\x11\n\rOFPFMFC_EPERM\x10\x04\x12\x17\n\x13OFPFMFC_BAD_TIMEOUT\x10\x05\x12\x17\n\x13OFPFMFC_BAD_COMMAND\x10\x06\x12\x15\n\x11OFPFMFC_BAD_FLAGS\x10\x07*\xa1\x03\n\x19ofp_group_mod_failed_code\x12\x18\n\x14OFPGMFC_GROUP_EXISTS\x10\x00\x12\x19\n\x15OFPGMFC_INVALID_GROUP\x10\x01\x12\x1e\n\x1aOFPGMFC_WEIGHT_UNSUPPORTED\x10\x02\x12\x19\n\x15OFPGMFC_OUT_OF_GROUPS\x10\x03\x12\x1a\n\x16OFPGMFC_OUT_OF_BUCKETS\x10\x04\x12 \n\x1cOFPGMFC_CHAINING_UNSUPPORTED\x10\x05\x12\x1d\n\x19OFPGMFC_WATCH_UNSUPPORTED\x10\x06\x12\x10\n\x0cOFPGMFC_LOOP\x10\x07\x12\x19\n\x15OFPGMFC_UNKNOWN_GROUP\x10\x08\x12\x19\n\x15OFPGMFC_CHAINED_GROUP\x10\t\x12\x14\n\x10OFPGMFC_BAD_TYPE\x10\n\x12\x17\n\x13OFPGMFC_BAD_COMMAND\x10\x0b\x12\x16\n\x12OFPGMFC_BAD_BUCKET\x10\x0c\x12\x15\n\x11OFPGMFC_BAD_WATCH\x10\r\x12\x11\n\rOFPGMFC_EPERM\x10\x0e*\x8f\x01\n\x18ofp_port_mod_failed_code\x12\x14\n\x10OFPPMFC_BAD_PORT\x10\x00\x12\x17\n\x13OFPPMFC_BAD_HW_ADDR\x10\x01\x12\x16\n\x12OFPPMFC_BAD_CONFIG\x10\x02\x12\x19\n\x15OFPPMFC_BAD_ADVERTISE\x10\x03\x12\x11\n\rOFPPMFC_EPERM\x10\x04*]\n\x19ofp_table_mod_failed_code\x12\x15\n\x11OFPTMFC_BAD_TABLE\x10\x00\x12\x16\n\x12OFPTMFC_BAD_CONFIG\x10\x01\x12\x11\n\rOFPTMFC_EPERM\x10\x02*Z\n\x18ofp_queue_op_failed_code\x12\x14\n\x10OFPQOFC_BAD_PORT\x10\x00\x12\x15\n\x11OFPQOFC_BAD_QUEUE\x10\x01\x12\x11\n\rOFPQOFC_EPERM\x10\x02*^\n\x1dofp_switch_config_failed_code\x12\x15\n\x11OFPSCFC_BAD_FLAGS\x10\x00\x12\x13\n\x0fOFPSCFC_BAD_LEN\x10\x01\x12\x11\n\rOFPSCFC_EPERM\x10\x02*Z\n\x1cofp_role_request_failed_code\x12\x11\n\rOFPRRFC_STALE\x10\x00\x12\x11\n\rOFPRRFC_UNSUP\x10\x01\x12\x14\n\x10OFPRRFC_BAD_ROLE\x10\x02*\xc4\x02\n\x19ofp_meter_mod_failed_code\x12\x13\n\x0fOFPMMFC_UNKNOWN\x10\x00\x12\x18\n\x14OFPMMFC_METER_EXISTS\x10\x01\x12\x19\n\x15OFPMMFC_INVALID_METER\x10\x02\x12\x19\n\x15OFPMMFC_UNKNOWN_METER\x10\x03\x12\x17\n\x13OFPMMFC_BAD_COMMAND\x10\x04\x12\x15\n\x11OFPMMFC_BAD_FLAGS\x10\x05\x12\x14\n\x10OFPMMFC_BAD_RATE\x10\x06\x12\x15\n\x11OFPMMFC_BAD_BURST\x10\x07\x12\x14\n\x10OFPMMFC_BAD_BAND\x10\x08\x12\x1a\n\x16OFPMMFC_BAD_BAND_VALUE\x10\t\x12\x19\n\x15OFPMMFC_OUT_OF_METERS\x10\n\x12\x18\n\x14OFPMMFC_OUT_OF_BANDS\x10\x0b*\xa9\x01\n\x1eofp_table_features_failed_code\x12\x15\n\x11OFPTFFC_BAD_TABLE\x10\x00\x12\x18\n\x14OFPTFFC_BAD_METADATA\x10\x01\x12\x14\n\x10OFPTFFC_BAD_TYPE\x10\x02\x12\x13\n\x0fOFPTFFC_BAD_LEN\x10\x03\x12\x18\n\x14OFPTFFC_BAD_ARGUMENT\x10\x04\x12\x11\n\rOFPTFFC_EPERM\x10\x05*\xce\x02\n\x12ofp_multipart_type\x12\x0e\n\nOFPMP_DESC\x10\x00\x12\x0e\n\nOFPMP_FLOW\x10\x01\x12\x13\n\x0fOFPMP_AGGREGATE\x10\x02\x12\x0f\n\x0bOFPMP_TABLE\x10\x03\x12\x14\n\x10OFPMP_PORT_STATS\x10\x04\x12\x0f\n\x0bOFPMP_QUEUE\x10\x05\x12\x0f\n\x0bOFPMP_GROUP\x10\x06\x12\x14\n\x10OFPMP_GROUP_DESC\x10\x07\x12\x18\n\x14OFPMP_GROUP_FEATURES\x10\x08\x12\x0f\n\x0bOFPMP_METER\x10\t\x12\x16\n\x12OFPMP_METER_CONFIG\x10\n\x12\x18\n\x14OFPMP_METER_FEATURES\x10\x0b\x12\x18\n\x14OFPMP_TABLE_FEATURES\x10\x0c\x12\x13\n\x0fOFPMP_PORT_DESC\x10\r\x12\x18\n\x12OFPMP_EXPERIMENTER\x10\xff\xff\x03*J\n\x1bofp_multipart_request_flags\x12\x16\n\x12OFPMPF_REQ_INVALID\x10\x00\x12\x13\n\x0fOFPMPF_REQ_MORE\x10\x01*L\n\x19ofp_multipart_reply_flags\x12\x18\n\x14OFPMPF_REPLY_INVALID\x10\x00\x12\x15\n\x11OFPMPF_REPLY_MORE\x10\x01*\xe4\x03\n\x1bofp_table_feature_prop_type\x12\x18\n\x14OFPTFPT_INSTRUCTIONS\x10\x00\x12\x1d\n\x19OFPTFPT_INSTRUCTIONS_MISS\x10\x01\x12\x17\n\x13OFPTFPT_NEXT_TABLES\x10\x02\x12\x1c\n\x18OFPTFPT_NEXT_TABLES_MISS\x10\x03\x12\x19\n\x15OFPTFPT_WRITE_ACTIONS\x10\x04\x12\x1e\n\x1aOFPTFPT_WRITE_ACTIONS_MISS\x10\x05\x12\x19\n\x15OFPTFPT_APPLY_ACTIONS\x10\x06\x12\x1e\n\x1aOFPTFPT_APPLY_ACTIONS_MISS\x10\x07\x12\x11\n\rOFPTFPT_MATCH\x10\x08\x12\x15\n\x11OFPTFPT_WILDCARDS\x10\n\x12\x1a\n\x16OFPTFPT_WRITE_SETFIELD\x10\x0c\x12\x1f\n\x1bOFPTFPT_WRITE_SETFIELD_MISS\x10\r\x12\x1a\n\x16OFPTFPT_APPLY_SETFIELD\x10\x0e\x12\x1f\n\x1bOFPTFPT_APPLY_SETFIELD_MISS\x10\x0f\x12\x1a\n\x14OFPTFPT_EXPERIMENTER\x10\xfe\xff\x03\x12\x1f\n\x19OFPTFPT_EXPERIMENTER_MISS\x10\xff\xff\x03*\x93\x01\n\x16ofp_group_capabilities\x12\x12\n\x0eOFPGFC_INVALID\x10\x00\x12\x18\n\x14OFPGFC_SELECT_WEIGHT\x10\x01\x12\x1a\n\x16OFPGFC_SELECT_LIVENESS\x10\x02\x12\x13\n\x0fOFPGFC_CHAINING\x10\x04\x12\x1a\n\x16OFPGFC_CHAINING_CHECKS\x10\x08*k\n\x14ofp_queue_properties\x12\x11\n\rOFPQT_INVALID\x10\x00\x12\x12\n\x0eOFPQT_MIN_RATE\x10\x01\x12\x12\n\x0eOFPQT_MAX_RATE\x10\x02\x12\x18\n\x12OFPQT_EXPERIMENTER\x10\xff\xff\x03*q\n\x13ofp_controller_role\x12\x17\n\x13OFPCR_ROLE_NOCHANGE\x10\x00\x12\x14\n\x10OFPCR_ROLE_EQUAL\x10\x01\x12\x15\n\x11OFPCR_ROLE_MASTER\x10\x02\x12\x14\n\x10OFPCR_ROLE_SLAVE\x10\x03\x62\x06proto3')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+_OFP_PORT_NO = _descriptor.EnumDescriptor(
+  name='ofp_port_no',
+  full_name='openflow_13.ofp_port_no',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_MAX', index=1, number=2147483392,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_IN_PORT', index=2, number=2147483640,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_TABLE', index=3, number=2147483641,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_NORMAL', index=4, number=2147483642,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_FLOOD', index=5, number=2147483643,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_ALL', index=6, number=2147483644,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_CONTROLLER', index=7, number=2147483645,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_LOCAL', index=8, number=2147483646,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_ANY', index=9, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=11141,
+  serialized_end=11354,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_NO)
+
+ofp_port_no = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_NO)
+_OFP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_type',
+  full_name='openflow_13.ofp_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_HELLO', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ERROR', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ECHO_REQUEST', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ECHO_REPLY', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_EXPERIMENTER', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FEATURES_REQUEST', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FEATURES_REPLY', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_CONFIG_REQUEST', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_CONFIG_REPLY', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_SET_CONFIG', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PACKET_IN', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FLOW_REMOVED', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PORT_STATUS', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PACKET_OUT', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FLOW_MOD', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GROUP_MOD', index=15, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PORT_MOD', index=16, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_TABLE_MOD', index=17, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_MULTIPART_REQUEST', index=18, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_MULTIPART_REPLY', index=19, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_BARRIER_REQUEST', index=20, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_BARRIER_REPLY', index=21, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_QUEUE_GET_CONFIG_REQUEST', index=22, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_QUEUE_GET_CONFIG_REPLY', index=23, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ROLE_REQUEST', index=24, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ROLE_REPLY', index=25, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_ASYNC_REQUEST', index=26, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_ASYNC_REPLY', index=27, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_SET_ASYNC', index=28, number=28,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_METER_MOD', index=29, number=29,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=11357,
+  serialized_end=12069,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TYPE)
+
+ofp_type = enum_type_wrapper.EnumTypeWrapper(_OFP_TYPE)
+_OFP_HELLO_ELEM_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_hello_elem_type',
+  full_name='openflow_13.ofp_hello_elem_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPHET_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPHET_VERSIONBITMAP', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12071,
+  serialized_end=12138,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_HELLO_ELEM_TYPE)
+
+ofp_hello_elem_type = enum_type_wrapper.EnumTypeWrapper(_OFP_HELLO_ELEM_TYPE)
+_OFP_CONFIG_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_config_flags',
+  full_name='openflow_13.ofp_config_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_NORMAL', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_DROP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_REASM', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_MASK', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12140,
+  serialized_end=12241,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONFIG_FLAGS)
+
+ofp_config_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_CONFIG_FLAGS)
+_OFP_TABLE_CONFIG = _descriptor.EnumDescriptor(
+  name='ofp_table_config',
+  full_name='openflow_13.ofp_table_config',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTC_DEPRECATED_MASK', index=1, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12243,
+  serialized_end=12307,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_CONFIG)
+
+ofp_table_config = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_CONFIG)
+_OFP_TABLE = _descriptor.EnumDescriptor(
+  name='ofp_table',
+  full_name='openflow_13.ofp_table',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_MAX', index=1, number=254,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_ALL', index=2, number=255,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12309,
+  serialized_end=12371,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE)
+
+ofp_table = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE)
+_OFP_CAPABILITIES = _descriptor.EnumDescriptor(
+  name='ofp_capabilities',
+  full_name='openflow_13.ofp_capabilities',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FLOW_STATS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_TABLE_STATS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_PORT_STATS', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_GROUP_STATS', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_IP_REASM', index=5, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_QUEUE_STATS', index=6, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_PORT_BLOCKED', index=7, number=256,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12374,
+  serialized_end=12561,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CAPABILITIES)
+
+ofp_capabilities = enum_type_wrapper.EnumTypeWrapper(_OFP_CAPABILITIES)
+_OFP_PORT_CONFIG = _descriptor.EnumDescriptor(
+  name='ofp_port_config',
+  full_name='openflow_13.ofp_port_config',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_PORT_DOWN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_RECV', index=2, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_FWD', index=3, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_PACKET_IN', index=4, number=64,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12563,
+  serialized_end=12681,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_CONFIG)
+
+ofp_port_config = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_CONFIG)
+_OFP_PORT_STATE = _descriptor.EnumDescriptor(
+  name='ofp_port_state',
+  full_name='openflow_13.ofp_port_state',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_LINK_DOWN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_BLOCKED', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_LIVE', index=3, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12683,
+  serialized_end=12774,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_STATE)
+
+ofp_port_state = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_STATE)
+_OFP_PORT_FEATURES = _descriptor.EnumDescriptor(
+  name='ofp_port_features',
+  full_name='openflow_13.ofp_port_features',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10MB_HD', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10MB_FD', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100MB_HD', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100MB_FD', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1GB_HD', index=5, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1GB_FD', index=6, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10GB_FD', index=7, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_40GB_FD', index=8, number=128,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100GB_FD', index=9, number=256,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1TB_FD', index=10, number=512,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_OTHER', index=11, number=1024,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_COPPER', index=12, number=2048,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_FIBER', index=13, number=4096,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_AUTONEG', index=14, number=8192,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_PAUSE', index=15, number=16384,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_PAUSE_ASYM', index=16, number=32768,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12777,
+  serialized_end=13126,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_FEATURES)
+
+ofp_port_features = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_FEATURES)
+_OFP_PORT_REASON = _descriptor.EnumDescriptor(
+  name='ofp_port_reason',
+  full_name='openflow_13.ofp_port_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_DELETE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_MODIFY', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13128,
+  serialized_end=13196,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_REASON)
+
+ofp_port_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_REASON)
+_OFP_MATCH_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_match_type',
+  full_name='openflow_13.ofp_match_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMT_STANDARD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMT_OXM', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13198,
+  serialized_end=13249,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MATCH_TYPE)
+
+ofp_match_type = enum_type_wrapper.EnumTypeWrapper(_OFP_MATCH_TYPE)
+_OFP_OXM_CLASS = _descriptor.EnumDescriptor(
+  name='ofp_oxm_class',
+  full_name='openflow_13.ofp_oxm_class',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_NXM_0', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_NXM_1', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_OPENFLOW_BASIC', index=2, number=32768,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13251,
+  serialized_end=13358,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_OXM_CLASS)
+
+ofp_oxm_class = enum_type_wrapper.EnumTypeWrapper(_OFP_OXM_CLASS)
+_OXM_OFB_FIELD_TYPES = _descriptor.EnumDescriptor(
+  name='oxm_ofb_field_types',
+  full_name='openflow_13.oxm_ofb_field_types',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IN_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IN_PHY_PORT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_METADATA', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_DST', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_SRC', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_TYPE', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_VLAN_VID', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_VLAN_PCP', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_DSCP', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_ECN', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_PROTO', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV4_SRC', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV4_DST', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TCP_SRC', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TCP_DST', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_UDP_SRC', index=15, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_UDP_DST', index=16, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_SCTP_SRC', index=17, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_SCTP_DST', index=18, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV4_TYPE', index=19, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV4_CODE', index=20, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_OP', index=21, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_SPA', index=22, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_TPA', index=23, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_SHA', index=24, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_THA', index=25, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_SRC', index=26, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_DST', index=27, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_FLABEL', index=28, number=28,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV6_TYPE', index=29, number=29,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV6_CODE', index=30, number=30,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_TARGET', index=31, number=31,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_SLL', index=32, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_TLL', index=33, number=33,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_LABEL', index=34, number=34,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_TC', index=35, number=35,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_BOS', index=36, number=36,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_PBB_ISID', index=37, number=37,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TUNNEL_ID', index=38, number=38,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_EXTHDR', index=39, number=39,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13361,
+  serialized_end=14401,
+)
+_sym_db.RegisterEnumDescriptor(_OXM_OFB_FIELD_TYPES)
+
+oxm_ofb_field_types = enum_type_wrapper.EnumTypeWrapper(_OXM_OFB_FIELD_TYPES)
+_OFP_VLAN_ID = _descriptor.EnumDescriptor(
+  name='ofp_vlan_id',
+  full_name='openflow_13.ofp_vlan_id',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPVID_NONE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPVID_PRESENT', index=1, number=4096,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14403,
+  serialized_end=14454,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_VLAN_ID)
+
+ofp_vlan_id = enum_type_wrapper.EnumTypeWrapper(_OFP_VLAN_ID)
+_OFP_IPV6EXTHDR_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_ipv6exthdr_flags',
+  full_name='openflow_13.ofp_ipv6exthdr_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_NONEXT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_ESP', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_AUTH', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_DEST', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_FRAG', index=5, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_ROUTER', index=6, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_HOP', index=7, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_UNREP', index=8, number=128,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_UNSEQ', index=9, number=256,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14457,
+  serialized_end=14658,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_IPV6EXTHDR_FLAGS)
+
+ofp_ipv6exthdr_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_IPV6EXTHDR_FLAGS)
+_OFP_ACTION_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_action_type',
+  full_name='openflow_13.ofp_action_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_OUTPUT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_COPY_TTL_OUT', index=1, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_COPY_TTL_IN', index=2, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_MPLS_TTL', index=3, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_DEC_MPLS_TTL', index=4, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_VLAN', index=5, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_VLAN', index=6, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_MPLS', index=7, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_MPLS', index=8, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_QUEUE', index=9, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_GROUP', index=10, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_NW_TTL', index=11, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_DEC_NW_TTL', index=12, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_FIELD', index=13, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_PBB', index=14, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_PBB', index=15, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_EXPERIMENTER', index=16, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14661,
+  serialized_end=15041,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ACTION_TYPE)
+
+ofp_action_type = enum_type_wrapper.EnumTypeWrapper(_OFP_ACTION_TYPE)
+_OFP_CONTROLLER_MAX_LEN = _descriptor.EnumDescriptor(
+  name='ofp_controller_max_len',
+  full_name='openflow_13.ofp_controller_max_len',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_MAX', index=1, number=65509,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_NO_BUFFER', index=2, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15043,
+  serialized_end=15129,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONTROLLER_MAX_LEN)
+
+ofp_controller_max_len = enum_type_wrapper.EnumTypeWrapper(_OFP_CONTROLLER_MAX_LEN)
+_OFP_INSTRUCTION_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_instruction_type',
+  full_name='openflow_13.ofp_instruction_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_GOTO_TABLE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_WRITE_METADATA', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_WRITE_ACTIONS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_APPLY_ACTIONS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_CLEAR_ACTIONS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_METER', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_EXPERIMENTER', index=7, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15132,
+  serialized_end=15339,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_INSTRUCTION_TYPE)
+
+ofp_instruction_type = enum_type_wrapper.EnumTypeWrapper(_OFP_INSTRUCTION_TYPE)
+_OFP_FLOW_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_command',
+  full_name='openflow_13.ofp_flow_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_MODIFY_STRICT', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_DELETE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_DELETE_STRICT', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15341,
+  serialized_end=15464,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_COMMAND)
+
+ofp_flow_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_COMMAND)
+_OFP_FLOW_MOD_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_flags',
+  full_name='openflow_13.ofp_flow_mod_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_SEND_FLOW_REM', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_CHECK_OVERLAP', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_RESET_COUNTS', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_NO_PKT_COUNTS', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_NO_BYT_COUNTS', index=5, number=16,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15467,
+  serialized_end=15630,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_FLAGS)
+
+ofp_flow_mod_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_FLAGS)
+_OFP_GROUP = _descriptor.EnumDescriptor(
+  name='ofp_group',
+  full_name='openflow_13.ofp_group',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_MAX', index=1, number=2147483392,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_ALL', index=2, number=2147483644,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_ANY', index=3, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15632,
+  serialized_end=15715,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP)
+
+ofp_group = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP)
+_OFP_GROUP_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_group_mod_command',
+  full_name='openflow_13.ofp_group_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15717,
+  serialized_end=15791,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_MOD_COMMAND)
+
+ofp_group_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_MOD_COMMAND)
+_OFP_GROUP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_group_type',
+  full_name='openflow_13.ofp_group_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_ALL', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_SELECT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_INDIRECT', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_FF', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15793,
+  serialized_end=15876,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_TYPE)
+
+ofp_group_type = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_TYPE)
+_OFP_PACKET_IN_REASON = _descriptor.EnumDescriptor(
+  name='ofp_packet_in_reason',
+  full_name='openflow_13.ofp_packet_in_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_NO_MATCH', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_ACTION', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_INVALID_TTL', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15878,
+  serialized_end=15958,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PACKET_IN_REASON)
+
+ofp_packet_in_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_PACKET_IN_REASON)
+_OFP_FLOW_REMOVED_REASON = _descriptor.EnumDescriptor(
+  name='ofp_flow_removed_reason',
+  full_name='openflow_13.ofp_flow_removed_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_IDLE_TIMEOUT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_HARD_TIMEOUT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_GROUP_DELETE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_METER_DELETE', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15961,
+  serialized_end=16100,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_REMOVED_REASON)
+
+ofp_flow_removed_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_REMOVED_REASON)
+_OFP_METER = _descriptor.EnumDescriptor(
+  name='ofp_meter',
+  full_name='openflow_13.ofp_meter',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_ZERO', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_MAX', index=1, number=2147418112,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_SLOWPATH', index=2, number=2147483645,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_CONTROLLER', index=3, number=2147483646,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_ALL', index=4, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16102,
+  serialized_end=16212,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER)
+
+ofp_meter = enum_type_wrapper.EnumTypeWrapper(_OFP_METER)
+_OFP_METER_BAND_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_meter_band_type',
+  full_name='openflow_13.ofp_meter_band_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_DROP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_DSCP_REMARK', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16214,
+  serialized_end=16323,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_BAND_TYPE)
+
+ofp_meter_band_type = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_BAND_TYPE)
+_OFP_METER_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_meter_mod_command',
+  full_name='openflow_13.ofp_meter_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16325,
+  serialized_end=16399,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_MOD_COMMAND)
+
+ofp_meter_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_MOD_COMMAND)
+_OFP_METER_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_meter_flags',
+  full_name='openflow_13.ofp_meter_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_KBPS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_PKTPS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_BURST', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_STATS', index=4, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16401,
+  serialized_end=16504,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_FLAGS)
+
+ofp_meter_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_FLAGS)
+_OFP_ERROR_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_error_type',
+  full_name='openflow_13.ofp_error_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_HELLO_FAILED', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_REQUEST', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_ACTION', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_INSTRUCTION', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_MATCH', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_FLOW_MOD_FAILED', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_GROUP_MOD_FAILED', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_PORT_MOD_FAILED', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_TABLE_MOD_FAILED', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_QUEUE_OP_FAILED', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_SWITCH_CONFIG_FAILED', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_ROLE_REQUEST_FAILED', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_METER_MOD_FAILED', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_TABLE_FEATURES_FAILED', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_EXPERIMENTER', index=14, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16507,
+  serialized_end=16927,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ERROR_TYPE)
+
+ofp_error_type = enum_type_wrapper.EnumTypeWrapper(_OFP_ERROR_TYPE)
+_OFP_HELLO_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_hello_failed_code',
+  full_name='openflow_13.ofp_hello_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPHFC_INCOMPATIBLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPHFC_EPERM', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16929,
+  serialized_end=16995,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_HELLO_FAILED_CODE)
+
+ofp_hello_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_HELLO_FAILED_CODE)
+_OFP_BAD_REQUEST_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_request_code',
+  full_name='openflow_13.ofp_bad_request_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_VERSION', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_TYPE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_MULTIPART', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_EXPERIMENTER', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_EXP_TYPE', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_EPERM', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_LEN', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BUFFER_EMPTY', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BUFFER_UNKNOWN', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_TABLE_ID', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_IS_SLAVE', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_PORT', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_PACKET', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_MULTIPART_BUFFER_OVERFLOW', index=13, number=13,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16998,
+  serialized_end=17363,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_REQUEST_CODE)
+
+ofp_bad_request_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_REQUEST_CODE)
+_OFP_BAD_ACTION_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_action_code',
+  full_name='openflow_13.ofp_bad_action_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_TYPE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_EXPERIMENTER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_EXP_TYPE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_OUT_PORT', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_ARGUMENT', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_EPERM', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_TOO_MANY', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_QUEUE', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_OUT_GROUP', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_MATCH_INCONSISTENT', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_UNSUPPORTED_ORDER', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_TAG', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_TYPE', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_LEN', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_ARGUMENT', index=15, number=15,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=17366,
+  serialized_end=17778,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_ACTION_CODE)
+
+ofp_bad_action_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_ACTION_CODE)
+_OFP_BAD_INSTRUCTION_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_instruction_code',
+  full_name='openflow_13.ofp_bad_instruction_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNKNOWN_INST', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_INST', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_TABLE_ID', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_METADATA', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_METADATA_MASK', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_EXPERIMENTER', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_EXP_TYPE', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_LEN', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_EPERM', index=8, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=17781,
+  serialized_end=18031,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_INSTRUCTION_CODE)
+
+ofp_bad_instruction_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_INSTRUCTION_CODE)
+_OFP_BAD_MATCH_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_match_code',
+  full_name='openflow_13.ofp_bad_match_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_TYPE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_TAG', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_DL_ADDR_MASK', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_NW_ADDR_MASK', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_WILDCARDS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_FIELD', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_VALUE', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_MASK', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_PREREQ', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_DUP_FIELD', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_EPERM', index=11, number=11,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18034,
+  serialized_end=18327,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_MATCH_CODE)
+
+ofp_bad_match_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_MATCH_CODE)
+_OFP_FLOW_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_failed_code',
+  full_name='openflow_13.ofp_flow_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_UNKNOWN', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_TABLE_FULL', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_TABLE_ID', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_OVERLAP', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_EPERM', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_TIMEOUT', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_COMMAND', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_FLAGS', index=7, number=7,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18330,
+  serialized_end=18540,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_FAILED_CODE)
+
+ofp_flow_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_FAILED_CODE)
+_OFP_GROUP_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_group_mod_failed_code',
+  full_name='openflow_13.ofp_group_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_GROUP_EXISTS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_INVALID_GROUP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_WEIGHT_UNSUPPORTED', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_OUT_OF_GROUPS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_OUT_OF_BUCKETS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_CHAINING_UNSUPPORTED', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_WATCH_UNSUPPORTED', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_LOOP', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_UNKNOWN_GROUP', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_CHAINED_GROUP', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_TYPE', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_COMMAND', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_BUCKET', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_WATCH', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_EPERM', index=14, number=14,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18543,
+  serialized_end=18960,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_MOD_FAILED_CODE)
+
+ofp_group_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_MOD_FAILED_CODE)
+_OFP_PORT_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_port_mod_failed_code',
+  full_name='openflow_13.ofp_port_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_HW_ADDR', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_CONFIG', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_ADVERTISE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_EPERM', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18963,
+  serialized_end=19106,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_MOD_FAILED_CODE)
+
+ofp_port_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_MOD_FAILED_CODE)
+_OFP_TABLE_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_table_mod_failed_code',
+  full_name='openflow_13.ofp_table_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_BAD_TABLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_BAD_CONFIG', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19108,
+  serialized_end=19201,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_MOD_FAILED_CODE)
+
+ofp_table_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_MOD_FAILED_CODE)
+_OFP_QUEUE_OP_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_queue_op_failed_code',
+  full_name='openflow_13.ofp_queue_op_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_BAD_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_BAD_QUEUE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19203,
+  serialized_end=19293,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_QUEUE_OP_FAILED_CODE)
+
+ofp_queue_op_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_QUEUE_OP_FAILED_CODE)
+_OFP_SWITCH_CONFIG_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_switch_config_failed_code',
+  full_name='openflow_13.ofp_switch_config_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_BAD_FLAGS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19295,
+  serialized_end=19389,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_SWITCH_CONFIG_FAILED_CODE)
+
+ofp_switch_config_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_SWITCH_CONFIG_FAILED_CODE)
+_OFP_ROLE_REQUEST_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_role_request_failed_code',
+  full_name='openflow_13.ofp_role_request_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_STALE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_UNSUP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_BAD_ROLE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19391,
+  serialized_end=19481,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ROLE_REQUEST_FAILED_CODE)
+
+ofp_role_request_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_ROLE_REQUEST_FAILED_CODE)
+_OFP_METER_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_meter_mod_failed_code',
+  full_name='openflow_13.ofp_meter_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_UNKNOWN', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_METER_EXISTS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_INVALID_METER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_UNKNOWN_METER', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_COMMAND', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_FLAGS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_RATE', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BURST', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BAND', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BAND_VALUE', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_OUT_OF_METERS', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_OUT_OF_BANDS', index=11, number=11,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19484,
+  serialized_end=19808,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_MOD_FAILED_CODE)
+
+ofp_meter_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_MOD_FAILED_CODE)
+_OFP_TABLE_FEATURES_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_table_features_failed_code',
+  full_name='openflow_13.ofp_table_features_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_TABLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_METADATA', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_TYPE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_LEN', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_ARGUMENT', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_EPERM', index=5, number=5,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19811,
+  serialized_end=19980,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_FEATURES_FAILED_CODE)
+
+ofp_table_features_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_FEATURES_FAILED_CODE)
+_OFP_MULTIPART_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_multipart_type',
+  full_name='openflow_13.ofp_multipart_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_DESC', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_FLOW', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_AGGREGATE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_TABLE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_PORT_STATS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_QUEUE', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP_DESC', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP_FEATURES', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER_CONFIG', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER_FEATURES', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_TABLE_FEATURES', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_PORT_DESC', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_EXPERIMENTER', index=14, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19983,
+  serialized_end=20317,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_TYPE)
+
+ofp_multipart_type = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_TYPE)
+_OFP_MULTIPART_REQUEST_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_multipart_request_flags',
+  full_name='openflow_13.ofp_multipart_request_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REQ_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REQ_MORE', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20319,
+  serialized_end=20393,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_REQUEST_FLAGS)
+
+ofp_multipart_request_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_REQUEST_FLAGS)
+_OFP_MULTIPART_REPLY_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_multipart_reply_flags',
+  full_name='openflow_13.ofp_multipart_reply_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REPLY_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REPLY_MORE', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20395,
+  serialized_end=20471,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_REPLY_FLAGS)
+
+ofp_multipart_reply_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_REPLY_FLAGS)
+_OFP_TABLE_FEATURE_PROP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_table_feature_prop_type',
+  full_name='openflow_13.ofp_table_feature_prop_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_INSTRUCTIONS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_INSTRUCTIONS_MISS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_NEXT_TABLES', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_NEXT_TABLES_MISS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_ACTIONS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_ACTIONS_MISS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_ACTIONS', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_ACTIONS_MISS', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_MATCH', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WILDCARDS', index=9, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_SETFIELD', index=10, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_SETFIELD_MISS', index=11, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_SETFIELD', index=12, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_SETFIELD_MISS', index=13, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_EXPERIMENTER', index=14, number=65534,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_EXPERIMENTER_MISS', index=15, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20474,
+  serialized_end=20958,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_FEATURE_PROP_TYPE)
+
+ofp_table_feature_prop_type = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_FEATURE_PROP_TYPE)
+_OFP_GROUP_CAPABILITIES = _descriptor.EnumDescriptor(
+  name='ofp_group_capabilities',
+  full_name='openflow_13.ofp_group_capabilities',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_SELECT_WEIGHT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_SELECT_LIVENESS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_CHAINING', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_CHAINING_CHECKS', index=4, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20961,
+  serialized_end=21108,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_CAPABILITIES)
+
+ofp_group_capabilities = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_CAPABILITIES)
+_OFP_QUEUE_PROPERTIES = _descriptor.EnumDescriptor(
+  name='ofp_queue_properties',
+  full_name='openflow_13.ofp_queue_properties',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_MIN_RATE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_MAX_RATE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=21110,
+  serialized_end=21217,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_QUEUE_PROPERTIES)
+
+ofp_queue_properties = enum_type_wrapper.EnumTypeWrapper(_OFP_QUEUE_PROPERTIES)
+_OFP_CONTROLLER_ROLE = _descriptor.EnumDescriptor(
+  name='ofp_controller_role',
+  full_name='openflow_13.ofp_controller_role',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_NOCHANGE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_EQUAL', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_MASTER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_SLAVE', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=21219,
+  serialized_end=21332,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONTROLLER_ROLE)
+
+ofp_controller_role = enum_type_wrapper.EnumTypeWrapper(_OFP_CONTROLLER_ROLE)
+OFPP_INVALID = 0
+OFPP_MAX = 2147483392
+OFPP_IN_PORT = 2147483640
+OFPP_TABLE = 2147483641
+OFPP_NORMAL = 2147483642
+OFPP_FLOOD = 2147483643
+OFPP_ALL = 2147483644
+OFPP_CONTROLLER = 2147483645
+OFPP_LOCAL = 2147483646
+OFPP_ANY = 2147483647
+OFPT_HELLO = 0
+OFPT_ERROR = 1
+OFPT_ECHO_REQUEST = 2
+OFPT_ECHO_REPLY = 3
+OFPT_EXPERIMENTER = 4
+OFPT_FEATURES_REQUEST = 5
+OFPT_FEATURES_REPLY = 6
+OFPT_GET_CONFIG_REQUEST = 7
+OFPT_GET_CONFIG_REPLY = 8
+OFPT_SET_CONFIG = 9
+OFPT_PACKET_IN = 10
+OFPT_FLOW_REMOVED = 11
+OFPT_PORT_STATUS = 12
+OFPT_PACKET_OUT = 13
+OFPT_FLOW_MOD = 14
+OFPT_GROUP_MOD = 15
+OFPT_PORT_MOD = 16
+OFPT_TABLE_MOD = 17
+OFPT_MULTIPART_REQUEST = 18
+OFPT_MULTIPART_REPLY = 19
+OFPT_BARRIER_REQUEST = 20
+OFPT_BARRIER_REPLY = 21
+OFPT_QUEUE_GET_CONFIG_REQUEST = 22
+OFPT_QUEUE_GET_CONFIG_REPLY = 23
+OFPT_ROLE_REQUEST = 24
+OFPT_ROLE_REPLY = 25
+OFPT_GET_ASYNC_REQUEST = 26
+OFPT_GET_ASYNC_REPLY = 27
+OFPT_SET_ASYNC = 28
+OFPT_METER_MOD = 29
+OFPHET_INVALID = 0
+OFPHET_VERSIONBITMAP = 1
+OFPC_FRAG_NORMAL = 0
+OFPC_FRAG_DROP = 1
+OFPC_FRAG_REASM = 2
+OFPC_FRAG_MASK = 3
+OFPTC_INVALID = 0
+OFPTC_DEPRECATED_MASK = 3
+OFPTT_INVALID = 0
+OFPTT_MAX = 254
+OFPTT_ALL = 255
+OFPC_INVALID = 0
+OFPC_FLOW_STATS = 1
+OFPC_TABLE_STATS = 2
+OFPC_PORT_STATS = 4
+OFPC_GROUP_STATS = 8
+OFPC_IP_REASM = 32
+OFPC_QUEUE_STATS = 64
+OFPC_PORT_BLOCKED = 256
+OFPPC_INVALID = 0
+OFPPC_PORT_DOWN = 1
+OFPPC_NO_RECV = 4
+OFPPC_NO_FWD = 32
+OFPPC_NO_PACKET_IN = 64
+OFPPS_INVALID = 0
+OFPPS_LINK_DOWN = 1
+OFPPS_BLOCKED = 2
+OFPPS_LIVE = 4
+OFPPF_INVALID = 0
+OFPPF_10MB_HD = 1
+OFPPF_10MB_FD = 2
+OFPPF_100MB_HD = 4
+OFPPF_100MB_FD = 8
+OFPPF_1GB_HD = 16
+OFPPF_1GB_FD = 32
+OFPPF_10GB_FD = 64
+OFPPF_40GB_FD = 128
+OFPPF_100GB_FD = 256
+OFPPF_1TB_FD = 512
+OFPPF_OTHER = 1024
+OFPPF_COPPER = 2048
+OFPPF_FIBER = 4096
+OFPPF_AUTONEG = 8192
+OFPPF_PAUSE = 16384
+OFPPF_PAUSE_ASYM = 32768
+OFPPR_ADD = 0
+OFPPR_DELETE = 1
+OFPPR_MODIFY = 2
+OFPMT_STANDARD = 0
+OFPMT_OXM = 1
+OFPXMC_NXM_0 = 0
+OFPXMC_NXM_1 = 1
+OFPXMC_OPENFLOW_BASIC = 32768
+OFPXMC_EXPERIMENTER = 65535
+OFPXMT_OFB_IN_PORT = 0
+OFPXMT_OFB_IN_PHY_PORT = 1
+OFPXMT_OFB_METADATA = 2
+OFPXMT_OFB_ETH_DST = 3
+OFPXMT_OFB_ETH_SRC = 4
+OFPXMT_OFB_ETH_TYPE = 5
+OFPXMT_OFB_VLAN_VID = 6
+OFPXMT_OFB_VLAN_PCP = 7
+OFPXMT_OFB_IP_DSCP = 8
+OFPXMT_OFB_IP_ECN = 9
+OFPXMT_OFB_IP_PROTO = 10
+OFPXMT_OFB_IPV4_SRC = 11
+OFPXMT_OFB_IPV4_DST = 12
+OFPXMT_OFB_TCP_SRC = 13
+OFPXMT_OFB_TCP_DST = 14
+OFPXMT_OFB_UDP_SRC = 15
+OFPXMT_OFB_UDP_DST = 16
+OFPXMT_OFB_SCTP_SRC = 17
+OFPXMT_OFB_SCTP_DST = 18
+OFPXMT_OFB_ICMPV4_TYPE = 19
+OFPXMT_OFB_ICMPV4_CODE = 20
+OFPXMT_OFB_ARP_OP = 21
+OFPXMT_OFB_ARP_SPA = 22
+OFPXMT_OFB_ARP_TPA = 23
+OFPXMT_OFB_ARP_SHA = 24
+OFPXMT_OFB_ARP_THA = 25
+OFPXMT_OFB_IPV6_SRC = 26
+OFPXMT_OFB_IPV6_DST = 27
+OFPXMT_OFB_IPV6_FLABEL = 28
+OFPXMT_OFB_ICMPV6_TYPE = 29
+OFPXMT_OFB_ICMPV6_CODE = 30
+OFPXMT_OFB_IPV6_ND_TARGET = 31
+OFPXMT_OFB_IPV6_ND_SLL = 32
+OFPXMT_OFB_IPV6_ND_TLL = 33
+OFPXMT_OFB_MPLS_LABEL = 34
+OFPXMT_OFB_MPLS_TC = 35
+OFPXMT_OFB_MPLS_BOS = 36
+OFPXMT_OFB_PBB_ISID = 37
+OFPXMT_OFB_TUNNEL_ID = 38
+OFPXMT_OFB_IPV6_EXTHDR = 39
+OFPVID_NONE = 0
+OFPVID_PRESENT = 4096
+OFPIEH_INVALID = 0
+OFPIEH_NONEXT = 1
+OFPIEH_ESP = 2
+OFPIEH_AUTH = 4
+OFPIEH_DEST = 8
+OFPIEH_FRAG = 16
+OFPIEH_ROUTER = 32
+OFPIEH_HOP = 64
+OFPIEH_UNREP = 128
+OFPIEH_UNSEQ = 256
+OFPAT_OUTPUT = 0
+OFPAT_COPY_TTL_OUT = 11
+OFPAT_COPY_TTL_IN = 12
+OFPAT_SET_MPLS_TTL = 15
+OFPAT_DEC_MPLS_TTL = 16
+OFPAT_PUSH_VLAN = 17
+OFPAT_POP_VLAN = 18
+OFPAT_PUSH_MPLS = 19
+OFPAT_POP_MPLS = 20
+OFPAT_SET_QUEUE = 21
+OFPAT_GROUP = 22
+OFPAT_SET_NW_TTL = 23
+OFPAT_DEC_NW_TTL = 24
+OFPAT_SET_FIELD = 25
+OFPAT_PUSH_PBB = 26
+OFPAT_POP_PBB = 27
+OFPAT_EXPERIMENTER = 65535
+OFPCML_INVALID = 0
+OFPCML_MAX = 65509
+OFPCML_NO_BUFFER = 65535
+OFPIT_INVALID = 0
+OFPIT_GOTO_TABLE = 1
+OFPIT_WRITE_METADATA = 2
+OFPIT_WRITE_ACTIONS = 3
+OFPIT_APPLY_ACTIONS = 4
+OFPIT_CLEAR_ACTIONS = 5
+OFPIT_METER = 6
+OFPIT_EXPERIMENTER = 65535
+OFPFC_ADD = 0
+OFPFC_MODIFY = 1
+OFPFC_MODIFY_STRICT = 2
+OFPFC_DELETE = 3
+OFPFC_DELETE_STRICT = 4
+OFPFF_INVALID = 0
+OFPFF_SEND_FLOW_REM = 1
+OFPFF_CHECK_OVERLAP = 2
+OFPFF_RESET_COUNTS = 4
+OFPFF_NO_PKT_COUNTS = 8
+OFPFF_NO_BYT_COUNTS = 16
+OFPG_INVALID = 0
+OFPG_MAX = 2147483392
+OFPG_ALL = 2147483644
+OFPG_ANY = 2147483647
+OFPGC_ADD = 0
+OFPGC_MODIFY = 1
+OFPGC_DELETE = 2
+OFPGT_ALL = 0
+OFPGT_SELECT = 1
+OFPGT_INDIRECT = 2
+OFPGT_FF = 3
+OFPR_NO_MATCH = 0
+OFPR_ACTION = 1
+OFPR_INVALID_TTL = 2
+OFPRR_IDLE_TIMEOUT = 0
+OFPRR_HARD_TIMEOUT = 1
+OFPRR_DELETE = 2
+OFPRR_GROUP_DELETE = 3
+OFPRR_METER_DELETE = 4
+OFPM_ZERO = 0
+OFPM_MAX = 2147418112
+OFPM_SLOWPATH = 2147483645
+OFPM_CONTROLLER = 2147483646
+OFPM_ALL = 2147483647
+OFPMBT_INVALID = 0
+OFPMBT_DROP = 1
+OFPMBT_DSCP_REMARK = 2
+OFPMBT_EXPERIMENTER = 65535
+OFPMC_ADD = 0
+OFPMC_MODIFY = 1
+OFPMC_DELETE = 2
+OFPMF_INVALID = 0
+OFPMF_KBPS = 1
+OFPMF_PKTPS = 2
+OFPMF_BURST = 4
+OFPMF_STATS = 8
+OFPET_HELLO_FAILED = 0
+OFPET_BAD_REQUEST = 1
+OFPET_BAD_ACTION = 2
+OFPET_BAD_INSTRUCTION = 3
+OFPET_BAD_MATCH = 4
+OFPET_FLOW_MOD_FAILED = 5
+OFPET_GROUP_MOD_FAILED = 6
+OFPET_PORT_MOD_FAILED = 7
+OFPET_TABLE_MOD_FAILED = 8
+OFPET_QUEUE_OP_FAILED = 9
+OFPET_SWITCH_CONFIG_FAILED = 10
+OFPET_ROLE_REQUEST_FAILED = 11
+OFPET_METER_MOD_FAILED = 12
+OFPET_TABLE_FEATURES_FAILED = 13
+OFPET_EXPERIMENTER = 65535
+OFPHFC_INCOMPATIBLE = 0
+OFPHFC_EPERM = 1
+OFPBRC_BAD_VERSION = 0
+OFPBRC_BAD_TYPE = 1
+OFPBRC_BAD_MULTIPART = 2
+OFPBRC_BAD_EXPERIMENTER = 3
+OFPBRC_BAD_EXP_TYPE = 4
+OFPBRC_EPERM = 5
+OFPBRC_BAD_LEN = 6
+OFPBRC_BUFFER_EMPTY = 7
+OFPBRC_BUFFER_UNKNOWN = 8
+OFPBRC_BAD_TABLE_ID = 9
+OFPBRC_IS_SLAVE = 10
+OFPBRC_BAD_PORT = 11
+OFPBRC_BAD_PACKET = 12
+OFPBRC_MULTIPART_BUFFER_OVERFLOW = 13
+OFPBAC_BAD_TYPE = 0
+OFPBAC_BAD_LEN = 1
+OFPBAC_BAD_EXPERIMENTER = 2
+OFPBAC_BAD_EXP_TYPE = 3
+OFPBAC_BAD_OUT_PORT = 4
+OFPBAC_BAD_ARGUMENT = 5
+OFPBAC_EPERM = 6
+OFPBAC_TOO_MANY = 7
+OFPBAC_BAD_QUEUE = 8
+OFPBAC_BAD_OUT_GROUP = 9
+OFPBAC_MATCH_INCONSISTENT = 10
+OFPBAC_UNSUPPORTED_ORDER = 11
+OFPBAC_BAD_TAG = 12
+OFPBAC_BAD_SET_TYPE = 13
+OFPBAC_BAD_SET_LEN = 14
+OFPBAC_BAD_SET_ARGUMENT = 15
+OFPBIC_UNKNOWN_INST = 0
+OFPBIC_UNSUP_INST = 1
+OFPBIC_BAD_TABLE_ID = 2
+OFPBIC_UNSUP_METADATA = 3
+OFPBIC_UNSUP_METADATA_MASK = 4
+OFPBIC_BAD_EXPERIMENTER = 5
+OFPBIC_BAD_EXP_TYPE = 6
+OFPBIC_BAD_LEN = 7
+OFPBIC_EPERM = 8
+OFPBMC_BAD_TYPE = 0
+OFPBMC_BAD_LEN = 1
+OFPBMC_BAD_TAG = 2
+OFPBMC_BAD_DL_ADDR_MASK = 3
+OFPBMC_BAD_NW_ADDR_MASK = 4
+OFPBMC_BAD_WILDCARDS = 5
+OFPBMC_BAD_FIELD = 6
+OFPBMC_BAD_VALUE = 7
+OFPBMC_BAD_MASK = 8
+OFPBMC_BAD_PREREQ = 9
+OFPBMC_DUP_FIELD = 10
+OFPBMC_EPERM = 11
+OFPFMFC_UNKNOWN = 0
+OFPFMFC_TABLE_FULL = 1
+OFPFMFC_BAD_TABLE_ID = 2
+OFPFMFC_OVERLAP = 3
+OFPFMFC_EPERM = 4
+OFPFMFC_BAD_TIMEOUT = 5
+OFPFMFC_BAD_COMMAND = 6
+OFPFMFC_BAD_FLAGS = 7
+OFPGMFC_GROUP_EXISTS = 0
+OFPGMFC_INVALID_GROUP = 1
+OFPGMFC_WEIGHT_UNSUPPORTED = 2
+OFPGMFC_OUT_OF_GROUPS = 3
+OFPGMFC_OUT_OF_BUCKETS = 4
+OFPGMFC_CHAINING_UNSUPPORTED = 5
+OFPGMFC_WATCH_UNSUPPORTED = 6
+OFPGMFC_LOOP = 7
+OFPGMFC_UNKNOWN_GROUP = 8
+OFPGMFC_CHAINED_GROUP = 9
+OFPGMFC_BAD_TYPE = 10
+OFPGMFC_BAD_COMMAND = 11
+OFPGMFC_BAD_BUCKET = 12
+OFPGMFC_BAD_WATCH = 13
+OFPGMFC_EPERM = 14
+OFPPMFC_BAD_PORT = 0
+OFPPMFC_BAD_HW_ADDR = 1
+OFPPMFC_BAD_CONFIG = 2
+OFPPMFC_BAD_ADVERTISE = 3
+OFPPMFC_EPERM = 4
+OFPTMFC_BAD_TABLE = 0
+OFPTMFC_BAD_CONFIG = 1
+OFPTMFC_EPERM = 2
+OFPQOFC_BAD_PORT = 0
+OFPQOFC_BAD_QUEUE = 1
+OFPQOFC_EPERM = 2
+OFPSCFC_BAD_FLAGS = 0
+OFPSCFC_BAD_LEN = 1
+OFPSCFC_EPERM = 2
+OFPRRFC_STALE = 0
+OFPRRFC_UNSUP = 1
+OFPRRFC_BAD_ROLE = 2
+OFPMMFC_UNKNOWN = 0
+OFPMMFC_METER_EXISTS = 1
+OFPMMFC_INVALID_METER = 2
+OFPMMFC_UNKNOWN_METER = 3
+OFPMMFC_BAD_COMMAND = 4
+OFPMMFC_BAD_FLAGS = 5
+OFPMMFC_BAD_RATE = 6
+OFPMMFC_BAD_BURST = 7
+OFPMMFC_BAD_BAND = 8
+OFPMMFC_BAD_BAND_VALUE = 9
+OFPMMFC_OUT_OF_METERS = 10
+OFPMMFC_OUT_OF_BANDS = 11
+OFPTFFC_BAD_TABLE = 0
+OFPTFFC_BAD_METADATA = 1
+OFPTFFC_BAD_TYPE = 2
+OFPTFFC_BAD_LEN = 3
+OFPTFFC_BAD_ARGUMENT = 4
+OFPTFFC_EPERM = 5
+OFPMP_DESC = 0
+OFPMP_FLOW = 1
+OFPMP_AGGREGATE = 2
+OFPMP_TABLE = 3
+OFPMP_PORT_STATS = 4
+OFPMP_QUEUE = 5
+OFPMP_GROUP = 6
+OFPMP_GROUP_DESC = 7
+OFPMP_GROUP_FEATURES = 8
+OFPMP_METER = 9
+OFPMP_METER_CONFIG = 10
+OFPMP_METER_FEATURES = 11
+OFPMP_TABLE_FEATURES = 12
+OFPMP_PORT_DESC = 13
+OFPMP_EXPERIMENTER = 65535
+OFPMPF_REQ_INVALID = 0
+OFPMPF_REQ_MORE = 1
+OFPMPF_REPLY_INVALID = 0
+OFPMPF_REPLY_MORE = 1
+OFPTFPT_INSTRUCTIONS = 0
+OFPTFPT_INSTRUCTIONS_MISS = 1
+OFPTFPT_NEXT_TABLES = 2
+OFPTFPT_NEXT_TABLES_MISS = 3
+OFPTFPT_WRITE_ACTIONS = 4
+OFPTFPT_WRITE_ACTIONS_MISS = 5
+OFPTFPT_APPLY_ACTIONS = 6
+OFPTFPT_APPLY_ACTIONS_MISS = 7
+OFPTFPT_MATCH = 8
+OFPTFPT_WILDCARDS = 10
+OFPTFPT_WRITE_SETFIELD = 12
+OFPTFPT_WRITE_SETFIELD_MISS = 13
+OFPTFPT_APPLY_SETFIELD = 14
+OFPTFPT_APPLY_SETFIELD_MISS = 15
+OFPTFPT_EXPERIMENTER = 65534
+OFPTFPT_EXPERIMENTER_MISS = 65535
+OFPGFC_INVALID = 0
+OFPGFC_SELECT_WEIGHT = 1
+OFPGFC_SELECT_LIVENESS = 2
+OFPGFC_CHAINING = 4
+OFPGFC_CHAINING_CHECKS = 8
+OFPQT_INVALID = 0
+OFPQT_MIN_RATE = 1
+OFPQT_MAX_RATE = 2
+OFPQT_EXPERIMENTER = 65535
+OFPCR_ROLE_NOCHANGE = 0
+OFPCR_ROLE_EQUAL = 1
+OFPCR_ROLE_MASTER = 2
+OFPCR_ROLE_SLAVE = 3
+
+
+
+_OFP_HEADER = _descriptor.Descriptor(
+  name='ofp_header',
+  full_name='openflow_13.ofp_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='version', full_name='openflow_13.ofp_header.version', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_header.type', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='xid', full_name='openflow_13.ofp_header.xid', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=34,
+  serialized_end=113,
+)
+
+
+_OFP_HELLO_ELEM_HEADER = _descriptor.Descriptor(
+  name='ofp_hello_elem_header',
+  full_name='openflow_13.ofp_hello_elem_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_hello_elem_header.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='versionbitmap', full_name='openflow_13.ofp_hello_elem_header.versionbitmap', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='element', full_name='openflow_13.ofp_hello_elem_header.element',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=116,
+  serialized_end=266,
+)
+
+
+_OFP_HELLO_ELEM_VERSIONBITMAP = _descriptor.Descriptor(
+  name='ofp_hello_elem_versionbitmap',
+  full_name='openflow_13.ofp_hello_elem_versionbitmap',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='bitmaps', full_name='openflow_13.ofp_hello_elem_versionbitmap.bitmaps', index=0,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=268,
+  serialized_end=315,
+)
+
+
+_OFP_HELLO = _descriptor.Descriptor(
+  name='ofp_hello',
+  full_name='openflow_13.ofp_hello',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='elements', full_name='openflow_13.ofp_hello.elements', index=0,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=317,
+  serialized_end=382,
+)
+
+
+_OFP_SWITCH_CONFIG = _descriptor.Descriptor(
+  name='ofp_switch_config',
+  full_name='openflow_13.ofp_switch_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_switch_config.flags', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='miss_send_len', full_name='openflow_13.ofp_switch_config.miss_send_len', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=384,
+  serialized_end=441,
+)
+
+
+_OFP_TABLE_MOD = _descriptor.Descriptor(
+  name='ofp_table_mod',
+  full_name='openflow_13.ofp_table_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_mod.table_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_table_mod.config', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=443,
+  serialized_end=492,
+)
+
+
+_OFP_PORT = _descriptor.Descriptor(
+  name='ofp_port',
+  full_name='openflow_13.ofp_port',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_addr', full_name='openflow_13.ofp_port.hw_addr', index=1,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='openflow_13.ofp_port.name', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_port.config', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='state', full_name='openflow_13.ofp_port.state', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='curr', full_name='openflow_13.ofp_port.curr', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='advertised', full_name='openflow_13.ofp_port.advertised', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='supported', full_name='openflow_13.ofp_port.supported', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='peer', full_name='openflow_13.ofp_port.peer', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='curr_speed', full_name='openflow_13.ofp_port.curr_speed', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_speed', full_name='openflow_13.ofp_port.max_speed', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=495,
+  serialized_end=690,
+)
+
+
+_OFP_SWITCH_FEATURES = _descriptor.Descriptor(
+  name='ofp_switch_features',
+  full_name='openflow_13.ofp_switch_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='openflow_13.ofp_switch_features.datapath_id', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='n_buffers', full_name='openflow_13.ofp_switch_features.n_buffers', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='n_tables', full_name='openflow_13.ofp_switch_features.n_tables', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='auxiliary_id', full_name='openflow_13.ofp_switch_features.auxiliary_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_switch_features.capabilities', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=692,
+  serialized_end=815,
+)
+
+
+_OFP_PORT_STATUS = _descriptor.Descriptor(
+  name='ofp_port_status',
+  full_name='openflow_13.ofp_port_status',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_port_status.reason', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='openflow_13.ofp_port_status.desc', index=1,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=817,
+  serialized_end=917,
+)
+
+
+_OFP_PORT_MOD = _descriptor.Descriptor(
+  name='ofp_port_mod',
+  full_name='openflow_13.ofp_port_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_mod.port_no', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_addr', full_name='openflow_13.ofp_port_mod.hw_addr', index=1,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_port_mod.config', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mask', full_name='openflow_13.ofp_port_mod.mask', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='advertise', full_name='openflow_13.ofp_port_mod.advertise', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=919,
+  serialized_end=1016,
+)
+
+
+_OFP_MATCH = _descriptor.Descriptor(
+  name='ofp_match',
+  full_name='openflow_13.ofp_match',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_match.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='oxm_fields', full_name='openflow_13.ofp_match.oxm_fields', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1018,
+  serialized_end=1120,
+)
+
+
+_OFP_OXM_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_field',
+  full_name='openflow_13.ofp_oxm_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_class', full_name='openflow_13.ofp_oxm_field.oxm_class', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ofb_field', full_name='openflow_13.ofp_oxm_field.ofb_field', index=1,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter_field', full_name='openflow_13.ofp_oxm_field.experimenter_field', index=2,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='field', full_name='openflow_13.ofp_oxm_field.field',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=1123,
+  serialized_end=1318,
+)
+
+
+_OFP_OXM_OFB_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_ofb_field',
+  full_name='openflow_13.ofp_oxm_ofb_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_oxm_ofb_field.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='has_mask', full_name='openflow_13.ofp_oxm_ofb_field.has_mask', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_oxm_ofb_field.port', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='physical_port', full_name='openflow_13.ofp_oxm_ofb_field.physical_port', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_metadata', full_name='openflow_13.ofp_oxm_ofb_field.table_metadata', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_dst', full_name='openflow_13.ofp_oxm_ofb_field.eth_dst', index=5,
+      number=6, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_src', full_name='openflow_13.ofp_oxm_ofb_field.eth_src', index=6,
+      number=7, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_type', full_name='openflow_13.ofp_oxm_ofb_field.eth_type', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_vid', full_name='openflow_13.ofp_oxm_ofb_field.vlan_vid', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_pcp', full_name='openflow_13.ofp_oxm_ofb_field.vlan_pcp', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_dscp', full_name='openflow_13.ofp_oxm_ofb_field.ip_dscp', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_ecn', full_name='openflow_13.ofp_oxm_ofb_field.ip_ecn', index=11,
+      number=12, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_proto', full_name='openflow_13.ofp_oxm_ofb_field.ip_proto', index=12,
+      number=13, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_src', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_src', index=13,
+      number=14, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_dst', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_dst', index=14,
+      number=15, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tcp_src', full_name='openflow_13.ofp_oxm_ofb_field.tcp_src', index=15,
+      number=16, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tcp_dst', full_name='openflow_13.ofp_oxm_ofb_field.tcp_dst', index=16,
+      number=17, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='udp_src', full_name='openflow_13.ofp_oxm_ofb_field.udp_src', index=17,
+      number=18, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='udp_dst', full_name='openflow_13.ofp_oxm_ofb_field.udp_dst', index=18,
+      number=19, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sctp_src', full_name='openflow_13.ofp_oxm_ofb_field.sctp_src', index=19,
+      number=20, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sctp_dst', full_name='openflow_13.ofp_oxm_ofb_field.sctp_dst', index=20,
+      number=21, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv4_type', full_name='openflow_13.ofp_oxm_ofb_field.icmpv4_type', index=21,
+      number=22, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv4_code', full_name='openflow_13.ofp_oxm_ofb_field.icmpv4_code', index=22,
+      number=23, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_op', full_name='openflow_13.ofp_oxm_ofb_field.arp_op', index=23,
+      number=24, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_spa', full_name='openflow_13.ofp_oxm_ofb_field.arp_spa', index=24,
+      number=25, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tpa', full_name='openflow_13.ofp_oxm_ofb_field.arp_tpa', index=25,
+      number=26, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_sha', full_name='openflow_13.ofp_oxm_ofb_field.arp_sha', index=26,
+      number=27, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tha', full_name='openflow_13.ofp_oxm_ofb_field.arp_tha', index=27,
+      number=28, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_src', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_src', index=28,
+      number=29, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_dst', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_dst', index=29,
+      number=30, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_flabel', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_flabel', index=30,
+      number=31, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv6_type', full_name='openflow_13.ofp_oxm_ofb_field.icmpv6_type', index=31,
+      number=32, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv6_code', full_name='openflow_13.ofp_oxm_ofb_field.icmpv6_code', index=32,
+      number=33, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_target', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_target', index=33,
+      number=34, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_ssl', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_ssl', index=34,
+      number=35, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_tll', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_tll', index=35,
+      number=36, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_label', full_name='openflow_13.ofp_oxm_ofb_field.mpls_label', index=36,
+      number=37, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_tc', full_name='openflow_13.ofp_oxm_ofb_field.mpls_tc', index=37,
+      number=38, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_bos', full_name='openflow_13.ofp_oxm_ofb_field.mpls_bos', index=38,
+      number=39, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pbb_isid', full_name='openflow_13.ofp_oxm_ofb_field.pbb_isid', index=39,
+      number=40, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tunnel_id', full_name='openflow_13.ofp_oxm_ofb_field.tunnel_id', index=40,
+      number=41, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_exthdr', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_exthdr', index=41,
+      number=42, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_metadata_mask', full_name='openflow_13.ofp_oxm_ofb_field.table_metadata_mask', index=42,
+      number=105, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.eth_dst_mask', index=43,
+      number=106, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.eth_src_mask', index=44,
+      number=107, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_vid_mask', full_name='openflow_13.ofp_oxm_ofb_field.vlan_vid_mask', index=45,
+      number=109, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_src_mask', index=46,
+      number=114, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_dst_mask', index=47,
+      number=115, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_spa_mask', full_name='openflow_13.ofp_oxm_ofb_field.arp_spa_mask', index=48,
+      number=125, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tpa_mask', full_name='openflow_13.ofp_oxm_ofb_field.arp_tpa_mask', index=49,
+      number=126, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_src_mask', index=50,
+      number=129, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_dst_mask', index=51,
+      number=130, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_flabel_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_flabel_mask', index=52,
+      number=131, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pbb_isid_mask', full_name='openflow_13.ofp_oxm_ofb_field.pbb_isid_mask', index=53,
+      number=140, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tunnel_id_mask', full_name='openflow_13.ofp_oxm_ofb_field.tunnel_id_mask', index=54,
+      number=141, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_exthdr_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_exthdr_mask', index=55,
+      number=142, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='value', full_name='openflow_13.ofp_oxm_ofb_field.value',
+      index=0, containing_type=None, fields=[]),
+    _descriptor.OneofDescriptor(
+      name='mask', full_name='openflow_13.ofp_oxm_ofb_field.mask',
+      index=1, containing_type=None, fields=[]),
+  ],
+  serialized_start=1321,
+  serialized_end=2612,
+)
+
+
+_OFP_OXM_EXPERIMENTER_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_experimenter_field',
+  full_name='openflow_13.ofp_oxm_experimenter_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_header', full_name='openflow_13.ofp_oxm_experimenter_field.oxm_header', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_oxm_experimenter_field.experimenter', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2614,
+  serialized_end=2684,
+)
+
+
+_OFP_ACTION = _descriptor.Descriptor(
+  name='ofp_action',
+  full_name='openflow_13.ofp_action',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_action.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='output', full_name='openflow_13.ofp_action.output', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_ttl', full_name='openflow_13.ofp_action.mpls_ttl', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='push', full_name='openflow_13.ofp_action.push', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pop_mpls', full_name='openflow_13.ofp_action.pop_mpls', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group', full_name='openflow_13.ofp_action.group', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='nw_ttl', full_name='openflow_13.ofp_action.nw_ttl', index=6,
+      number=7, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='set_field', full_name='openflow_13.ofp_action.set_field', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_action.experimenter', index=8,
+      number=9, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='action', full_name='openflow_13.ofp_action.action',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=2687,
+  serialized_end=3173,
+)
+
+
+_OFP_ACTION_OUTPUT = _descriptor.Descriptor(
+  name='ofp_action_output',
+  full_name='openflow_13.ofp_action_output',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_action_output.port', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_len', full_name='openflow_13.ofp_action_output.max_len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3175,
+  serialized_end=3225,
+)
+
+
+_OFP_ACTION_MPLS_TTL = _descriptor.Descriptor(
+  name='ofp_action_mpls_ttl',
+  full_name='openflow_13.ofp_action_mpls_ttl',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='mpls_ttl', full_name='openflow_13.ofp_action_mpls_ttl.mpls_ttl', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3227,
+  serialized_end=3266,
+)
+
+
+_OFP_ACTION_PUSH = _descriptor.Descriptor(
+  name='ofp_action_push',
+  full_name='openflow_13.ofp_action_push',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ethertype', full_name='openflow_13.ofp_action_push.ethertype', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3268,
+  serialized_end=3304,
+)
+
+
+_OFP_ACTION_POP_MPLS = _descriptor.Descriptor(
+  name='ofp_action_pop_mpls',
+  full_name='openflow_13.ofp_action_pop_mpls',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ethertype', full_name='openflow_13.ofp_action_pop_mpls.ethertype', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3306,
+  serialized_end=3346,
+)
+
+
+_OFP_ACTION_GROUP = _descriptor.Descriptor(
+  name='ofp_action_group',
+  full_name='openflow_13.ofp_action_group',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_action_group.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3348,
+  serialized_end=3384,
+)
+
+
+_OFP_ACTION_NW_TTL = _descriptor.Descriptor(
+  name='ofp_action_nw_ttl',
+  full_name='openflow_13.ofp_action_nw_ttl',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nw_ttl', full_name='openflow_13.ofp_action_nw_ttl.nw_ttl', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3386,
+  serialized_end=3421,
+)
+
+
+_OFP_ACTION_SET_FIELD = _descriptor.Descriptor(
+  name='ofp_action_set_field',
+  full_name='openflow_13.ofp_action_set_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='field', full_name='openflow_13.ofp_action_set_field.field', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3423,
+  serialized_end=3488,
+)
+
+
+_OFP_ACTION_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_action_experimenter',
+  full_name='openflow_13.ofp_action_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_action_experimenter.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_action_experimenter.data', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3490,
+  serialized_end=3551,
+)
+
+
+_OFP_INSTRUCTION = _descriptor.Descriptor(
+  name='ofp_instruction',
+  full_name='openflow_13.ofp_instruction',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_instruction.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='goto_table', full_name='openflow_13.ofp_instruction.goto_table', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='write_metadata', full_name='openflow_13.ofp_instruction.write_metadata', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_instruction.actions', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter', full_name='openflow_13.ofp_instruction.meter', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_instruction.experimenter', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='data', full_name='openflow_13.ofp_instruction.data',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=3554,
+  serialized_end=3904,
+)
+
+
+_OFP_INSTRUCTION_GOTO_TABLE = _descriptor.Descriptor(
+  name='ofp_instruction_goto_table',
+  full_name='openflow_13.ofp_instruction_goto_table',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_instruction_goto_table.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3906,
+  serialized_end=3952,
+)
+
+
+_OFP_INSTRUCTION_WRITE_METADATA = _descriptor.Descriptor(
+  name='ofp_instruction_write_metadata',
+  full_name='openflow_13.ofp_instruction_write_metadata',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='metadata', full_name='openflow_13.ofp_instruction_write_metadata.metadata', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_mask', full_name='openflow_13.ofp_instruction_write_metadata.metadata_mask', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3954,
+  serialized_end=4027,
+)
+
+
+_OFP_INSTRUCTION_ACTIONS = _descriptor.Descriptor(
+  name='ofp_instruction_actions',
+  full_name='openflow_13.ofp_instruction_actions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_instruction_actions.actions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4029,
+  serialized_end=4096,
+)
+
+
+_OFP_INSTRUCTION_METER = _descriptor.Descriptor(
+  name='ofp_instruction_meter',
+  full_name='openflow_13.ofp_instruction_meter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_instruction_meter.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4098,
+  serialized_end=4139,
+)
+
+
+_OFP_INSTRUCTION_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_instruction_experimenter',
+  full_name='openflow_13.ofp_instruction_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_instruction_experimenter.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_instruction_experimenter.data', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4141,
+  serialized_end=4207,
+)
+
+
+_OFP_FLOW_MOD = _descriptor.Descriptor(
+  name='ofp_flow_mod',
+  full_name='openflow_13.ofp_flow_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_mod.cookie', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_flow_mod.cookie_mask', index=1,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_mod.table_id', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_flow_mod.command', index=3,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_mod.idle_timeout', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_mod.hard_timeout', index=5,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_mod.priority', index=6,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_flow_mod.buffer_id', index=7,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_flow_mod.out_port', index=8,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_flow_mod.out_group', index=9,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_flow_mod.flags', index=10,
+      number=12, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_mod.match', index=11,
+      number=13, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_flow_mod.instructions', index=12,
+      number=14, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4210,
+  serialized_end=4555,
+)
+
+
+_OFP_BUCKET = _descriptor.Descriptor(
+  name='ofp_bucket',
+  full_name='openflow_13.ofp_bucket',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='weight', full_name='openflow_13.ofp_bucket.weight', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='watch_port', full_name='openflow_13.ofp_bucket.watch_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='watch_group', full_name='openflow_13.ofp_bucket.watch_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_bucket.actions', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4557,
+  serialized_end=4668,
+)
+
+
+_OFP_GROUP_MOD = _descriptor.Descriptor(
+  name='ofp_group_mod',
+  full_name='openflow_13.ofp_group_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_group_mod.command', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_group_mod.type', index=1,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_mod.group_id', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buckets', full_name='openflow_13.ofp_group_mod.buckets', index=3,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4671,
+  serialized_end=4842,
+)
+
+
+_OFP_PACKET_OUT = _descriptor.Descriptor(
+  name='ofp_packet_out',
+  full_name='openflow_13.ofp_packet_out',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_packet_out.buffer_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='in_port', full_name='openflow_13.ofp_packet_out.in_port', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions_len', full_name='openflow_13.ofp_packet_out.actions_len', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_packet_out.actions', index=3,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_packet_out.data', index=4,
+      number=6, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4845,
+  serialized_end=4974,
+)
+
+
+_OFP_PACKET_IN = _descriptor.Descriptor(
+  name='ofp_packet_in',
+  full_name='openflow_13.ofp_packet_in',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_packet_in.buffer_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='total_len', full_name='openflow_13.ofp_packet_in.total_len', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_packet_in.reason', index=2,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_packet_in.table_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_packet_in.cookie', index=4,
+      number=6, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_packet_in.match', index=5,
+      number=7, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_packet_in.data', index=6,
+      number=8, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4977,
+  serialized_end=5168,
+)
+
+
+_OFP_FLOW_REMOVED = _descriptor.Descriptor(
+  name='ofp_flow_removed',
+  full_name='openflow_13.ofp_flow_removed',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_removed.cookie', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_removed.priority', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_flow_removed.reason', index=2,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_removed.table_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_flow_removed.duration_sec', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_flow_removed.duration_nsec', index=5,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_removed.idle_timeout', index=6,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_removed.hard_timeout', index=7,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_flow_removed.packet_count', index=8,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_flow_removed.byte_count', index=9,
+      number=11, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_removed.match', index=10,
+      number=12, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5171,
+  serialized_end=5465,
+)
+
+
+_OFP_METER_BAND_HEADER = _descriptor.Descriptor(
+  name='ofp_meter_band_header',
+  full_name='openflow_13.ofp_meter_band_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_header.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_header.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_header.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_header.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5467,
+  serialized_end=5585,
+)
+
+
+_OFP_METER_BAND_DROP = _descriptor.Descriptor(
+  name='ofp_meter_band_drop',
+  full_name='openflow_13.ofp_meter_band_drop',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_drop.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_drop.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_drop.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_drop.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5587,
+  serialized_end=5669,
+)
+
+
+_OFP_METER_BAND_DSCP_REMARK = _descriptor.Descriptor(
+  name='ofp_meter_band_dscp_remark',
+  full_name='openflow_13.ofp_meter_band_dscp_remark',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_dscp_remark.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_dscp_remark.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_dscp_remark.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_dscp_remark.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='prec_level', full_name='openflow_13.ofp_meter_band_dscp_remark.prec_level', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5671,
+  serialized_end=5780,
+)
+
+
+_OFP_METER_BAND_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_meter_band_experimenter',
+  full_name='openflow_13.ofp_meter_band_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_experimenter.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_experimenter.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_experimenter.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_experimenter.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_meter_band_experimenter.experimenter', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5783,
+  serialized_end=5929,
+)
+
+
+_OFP_METER_MOD = _descriptor.Descriptor(
+  name='ofp_meter_mod',
+  full_name='openflow_13.ofp_meter_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='header', full_name='openflow_13.ofp_meter_mod.header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_meter_mod.command', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_meter_mod.flags', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_mod.meter_id', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bands', full_name='openflow_13.ofp_meter_mod.bands', index=4,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5932,
+  serialized_end=6125,
+)
+
+
+_OFP_ERROR_MSG = _descriptor.Descriptor(
+  name='ofp_error_msg',
+  full_name='openflow_13.ofp_error_msg',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_error_msg.type', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='code', full_name='openflow_13.ofp_error_msg.code', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_error_msg.data', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6127,
+  serialized_end=6184,
+)
+
+
+_OFP_ERROR_EXPERIMENTER_MSG = _descriptor.Descriptor(
+  name='ofp_error_experimenter_msg',
+  full_name='openflow_13.ofp_error_experimenter_msg',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_error_experimenter_msg.type', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_error_experimenter_msg.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_error_experimenter_msg.experimenter', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_error_experimenter_msg.data', index=3,
+      number=5, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6186,
+  serialized_end=6282,
+)
+
+
+_OFP_MULTIPART_REQUEST = _descriptor.Descriptor(
+  name='ofp_multipart_request',
+  full_name='openflow_13.ofp_multipart_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_multipart_request.type', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_multipart_request.flags', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='body', full_name='openflow_13.ofp_multipart_request.body', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6284,
+  serialized_end=6383,
+)
+
+
+_OFP_MULTIPART_REPLY = _descriptor.Descriptor(
+  name='ofp_multipart_reply',
+  full_name='openflow_13.ofp_multipart_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_multipart_reply.type', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_multipart_reply.flags', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='body', full_name='openflow_13.ofp_multipart_reply.body', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6385,
+  serialized_end=6482,
+)
+
+
+_OFP_DESC = _descriptor.Descriptor(
+  name='ofp_desc',
+  full_name='openflow_13.ofp_desc',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='mfr_desc', full_name='openflow_13.ofp_desc.mfr_desc', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_desc', full_name='openflow_13.ofp_desc.hw_desc', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sw_desc', full_name='openflow_13.ofp_desc.sw_desc', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='serial_num', full_name='openflow_13.ofp_desc.serial_num', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='dp_desc', full_name='openflow_13.ofp_desc.dp_desc', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6484,
+  serialized_end=6583,
+)
+
+
+_OFP_FLOW_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_flow_stats_request',
+  full_name='openflow_13.ofp_flow_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_stats_request.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_flow_stats_request.out_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_flow_stats_request.out_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_stats_request.cookie', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_flow_stats_request.cookie_mask', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_stats_request.match', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6586,
+  serialized_end=6741,
+)
+
+
+_OFP_FLOW_STATS = _descriptor.Descriptor(
+  name='ofp_flow_stats',
+  full_name='openflow_13.ofp_flow_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_stats.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_flow_stats.duration_sec', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_flow_stats.duration_nsec', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_stats.priority', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_stats.idle_timeout', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_stats.hard_timeout', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_flow_stats.flags', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_stats.cookie', index=7,
+      number=8, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_flow_stats.packet_count', index=8,
+      number=9, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_flow_stats.byte_count', index=9,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_stats.match', index=10,
+      number=12, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_flow_stats.instructions', index=11,
+      number=13, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6744,
+  serialized_end=7049,
+)
+
+
+_OFP_AGGREGATE_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_aggregate_stats_request',
+  full_name='openflow_13.ofp_aggregate_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_aggregate_stats_request.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_aggregate_stats_request.out_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_aggregate_stats_request.out_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_aggregate_stats_request.cookie', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_aggregate_stats_request.cookie_mask', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_aggregate_stats_request.match', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7052,
+  serialized_end=7212,
+)
+
+
+_OFP_AGGREGATE_STATS_REPLY = _descriptor.Descriptor(
+  name='ofp_aggregate_stats_reply',
+  full_name='openflow_13.ofp_aggregate_stats_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_aggregate_stats_reply.packet_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_aggregate_stats_reply.byte_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_count', full_name='openflow_13.ofp_aggregate_stats_reply.flow_count', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7214,
+  serialized_end=7303,
+)
+
+
+_OFP_TABLE_FEATURE_PROPERTY = _descriptor.Descriptor(
+  name='ofp_table_feature_property',
+  full_name='openflow_13.ofp_table_feature_property',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_table_feature_property.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_table_feature_property.instructions', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='next_tables', full_name='openflow_13.ofp_table_feature_property.next_tables', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_table_feature_property.actions', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='oxm', full_name='openflow_13.ofp_table_feature_property.oxm', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_table_feature_property.experimenter', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='value', full_name='openflow_13.ofp_table_feature_property.value',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=7306,
+  serialized_end=7739,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_INSTRUCTIONS = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_instructions',
+  full_name='openflow_13.ofp_table_feature_prop_instructions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_table_feature_prop_instructions.instructions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7741,
+  serialized_end=7830,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_NEXT_TABLES = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_next_tables',
+  full_name='openflow_13.ofp_table_feature_prop_next_tables',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='next_table_ids', full_name='openflow_13.ofp_table_feature_prop_next_tables.next_table_ids', index=0,
+      number=1, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7832,
+  serialized_end=7892,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_ACTIONS = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_actions',
+  full_name='openflow_13.ofp_table_feature_prop_actions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_table_feature_prop_actions.actions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7894,
+  serialized_end=7968,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_OXM = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_oxm',
+  full_name='openflow_13.ofp_table_feature_prop_oxm',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_ids', full_name='openflow_13.ofp_table_feature_prop_oxm.oxm_ids', index=0,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7970,
+  serialized_end=8015,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_experimenter',
+  full_name='openflow_13.ofp_table_feature_prop_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_table_feature_prop_experimenter.experimenter', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_table_feature_prop_experimenter.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter_data', full_name='openflow_13.ofp_table_feature_prop_experimenter.experimenter_data', index=2,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8017,
+  serialized_end=8121,
+)
+
+
+_OFP_TABLE_FEATURES = _descriptor.Descriptor(
+  name='ofp_table_features',
+  full_name='openflow_13.ofp_table_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_features.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='openflow_13.ofp_table_features.name', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_match', full_name='openflow_13.ofp_table_features.metadata_match', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_write', full_name='openflow_13.ofp_table_features.metadata_write', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_table_features.config', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_entries', full_name='openflow_13.ofp_table_features.max_entries', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='properties', full_name='openflow_13.ofp_table_features.properties', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8124,
+  serialized_end=8322,
+)
+
+
+_OFP_TABLE_STATS = _descriptor.Descriptor(
+  name='ofp_table_stats',
+  full_name='openflow_13.ofp_table_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_stats.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='active_count', full_name='openflow_13.ofp_table_stats.active_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='lookup_count', full_name='openflow_13.ofp_table_stats.lookup_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='matched_count', full_name='openflow_13.ofp_table_stats.matched_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8324,
+  serialized_end=8426,
+)
+
+
+_OFP_PORT_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_port_stats_request',
+  full_name='openflow_13.ofp_port_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_stats_request.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8428,
+  serialized_end=8469,
+)
+
+
+_OFP_PORT_STATS = _descriptor.Descriptor(
+  name='ofp_port_stats',
+  full_name='openflow_13.ofp_port_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_stats.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_packets', full_name='openflow_13.ofp_port_stats.rx_packets', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_packets', full_name='openflow_13.ofp_port_stats.tx_packets', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_bytes', full_name='openflow_13.ofp_port_stats.rx_bytes', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_bytes', full_name='openflow_13.ofp_port_stats.tx_bytes', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_dropped', full_name='openflow_13.ofp_port_stats.rx_dropped', index=5,
+      number=6, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_dropped', full_name='openflow_13.ofp_port_stats.tx_dropped', index=6,
+      number=7, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_errors', full_name='openflow_13.ofp_port_stats.rx_errors', index=7,
+      number=8, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_errors', full_name='openflow_13.ofp_port_stats.tx_errors', index=8,
+      number=9, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_frame_err', full_name='openflow_13.ofp_port_stats.rx_frame_err', index=9,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_over_err', full_name='openflow_13.ofp_port_stats.rx_over_err', index=10,
+      number=11, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_crc_err', full_name='openflow_13.ofp_port_stats.rx_crc_err', index=11,
+      number=12, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='collisions', full_name='openflow_13.ofp_port_stats.collisions', index=12,
+      number=13, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_port_stats.duration_sec', index=13,
+      number=14, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_port_stats.duration_nsec', index=14,
+      number=15, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8472,
+  serialized_end=8787,
+)
+
+
+_OFP_GROUP_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_group_stats_request',
+  full_name='openflow_13.ofp_group_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_stats_request.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8789,
+  serialized_end=8832,
+)
+
+
+_OFP_BUCKET_COUNTER = _descriptor.Descriptor(
+  name='ofp_bucket_counter',
+  full_name='openflow_13.ofp_bucket_counter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_bucket_counter.packet_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_bucket_counter.byte_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8834,
+  serialized_end=8896,
+)
+
+
+_OFP_GROUP_STATS = _descriptor.Descriptor(
+  name='ofp_group_stats',
+  full_name='openflow_13.ofp_group_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_stats.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ref_count', full_name='openflow_13.ofp_group_stats.ref_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_group_stats.packet_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_group_stats.byte_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_group_stats.duration_sec', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_group_stats.duration_nsec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bucket_stats', full_name='openflow_13.ofp_group_stats.bucket_stats', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8899,
+  serialized_end=9095,
+)
+
+
+_OFP_GROUP_DESC = _descriptor.Descriptor(
+  name='ofp_group_desc',
+  full_name='openflow_13.ofp_group_desc',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_group_desc.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pad', full_name='openflow_13.ofp_group_desc.pad', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_desc.group_id', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buckets', full_name='openflow_13.ofp_group_desc.buckets', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9098,
+  serialized_end=9230,
+)
+
+
+_OFP_GROUP_FEATURES = _descriptor.Descriptor(
+  name='ofp_group_features',
+  full_name='openflow_13.ofp_group_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='types', full_name='openflow_13.ofp_group_features.types', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_group_features.capabilities', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_groups', full_name='openflow_13.ofp_group_features.max_groups', index=2,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_group_features.actions', index=3,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9232,
+  serialized_end=9326,
+)
+
+
+_OFP_METER_MULTIPART_REQUEST = _descriptor.Descriptor(
+  name='ofp_meter_multipart_request',
+  full_name='openflow_13.ofp_meter_multipart_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_multipart_request.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9328,
+  serialized_end=9375,
+)
+
+
+_OFP_METER_BAND_STATS = _descriptor.Descriptor(
+  name='ofp_meter_band_stats',
+  full_name='openflow_13.ofp_meter_band_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_band_count', full_name='openflow_13.ofp_meter_band_stats.packet_band_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_band_count', full_name='openflow_13.ofp_meter_band_stats.byte_band_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9377,
+  serialized_end=9451,
+)
+
+
+_OFP_METER_STATS = _descriptor.Descriptor(
+  name='ofp_meter_stats',
+  full_name='openflow_13.ofp_meter_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_stats.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_count', full_name='openflow_13.ofp_meter_stats.flow_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_in_count', full_name='openflow_13.ofp_meter_stats.packet_in_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_in_count', full_name='openflow_13.ofp_meter_stats.byte_in_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_meter_stats.duration_sec', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_meter_stats.duration_nsec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='band_stats', full_name='openflow_13.ofp_meter_stats.band_stats', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9454,
+  serialized_end=9657,
+)
+
+
+_OFP_METER_CONFIG = _descriptor.Descriptor(
+  name='ofp_meter_config',
+  full_name='openflow_13.ofp_meter_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_meter_config.flags', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_config.meter_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bands', full_name='openflow_13.ofp_meter_config.bands', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9659,
+  serialized_end=9761,
+)
+
+
+_OFP_METER_FEATURES = _descriptor.Descriptor(
+  name='ofp_meter_features',
+  full_name='openflow_13.ofp_meter_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='max_meter', full_name='openflow_13.ofp_meter_features.max_meter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='band_types', full_name='openflow_13.ofp_meter_features.band_types', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_meter_features.capabilities', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_bands', full_name='openflow_13.ofp_meter_features.max_bands', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_color', full_name='openflow_13.ofp_meter_features.max_color', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9763,
+  serialized_end=9882,
+)
+
+
+_OFP_EXPERIMENTER_MULTIPART_HEADER = _descriptor.Descriptor(
+  name='ofp_experimenter_multipart_header',
+  full_name='openflow_13.ofp_experimenter_multipart_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_experimenter_multipart_header.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_experimenter_multipart_header.exp_type', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_experimenter_multipart_header.data', index=2,
+      number=3, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9884,
+  serialized_end=9973,
+)
+
+
+_OFP_EXPERIMENTER_HEADER = _descriptor.Descriptor(
+  name='ofp_experimenter_header',
+  full_name='openflow_13.ofp_experimenter_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_experimenter_header.experimenter', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_experimenter_header.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_experimenter_header.data', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9975,
+  serialized_end=10054,
+)
+
+
+_OFP_QUEUE_PROP_HEADER = _descriptor.Descriptor(
+  name='ofp_queue_prop_header',
+  full_name='openflow_13.ofp_queue_prop_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='property', full_name='openflow_13.ofp_queue_prop_header.property', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_queue_prop_header.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10056,
+  serialized_end=10110,
+)
+
+
+_OFP_QUEUE_PROP_MIN_RATE = _descriptor.Descriptor(
+  name='ofp_queue_prop_min_rate',
+  full_name='openflow_13.ofp_queue_prop_min_rate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_min_rate.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_queue_prop_min_rate.rate', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10112,
+  serialized_end=10208,
+)
+
+
+_OFP_QUEUE_PROP_MAX_RATE = _descriptor.Descriptor(
+  name='ofp_queue_prop_max_rate',
+  full_name='openflow_13.ofp_queue_prop_max_rate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_max_rate.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_queue_prop_max_rate.rate', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10210,
+  serialized_end=10306,
+)
+
+
+_OFP_QUEUE_PROP_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_queue_prop_experimenter',
+  full_name='openflow_13.ofp_queue_prop_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_experimenter.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_queue_prop_experimenter.experimenter', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_queue_prop_experimenter.data', index=2,
+      number=3, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10308,
+  serialized_end=10430,
+)
+
+
+_OFP_PACKET_QUEUE = _descriptor.Descriptor(
+  name='ofp_packet_queue',
+  full_name='openflow_13.ofp_packet_queue',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_packet_queue.queue_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_packet_queue.port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='properties', full_name='openflow_13.ofp_packet_queue.properties', index=2,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10432,
+  serialized_end=10538,
+)
+
+
+_OFP_QUEUE_GET_CONFIG_REQUEST = _descriptor.Descriptor(
+  name='ofp_queue_get_config_request',
+  full_name='openflow_13.ofp_queue_get_config_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_queue_get_config_request.port', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10540,
+  serialized_end=10584,
+)
+
+
+_OFP_QUEUE_GET_CONFIG_REPLY = _descriptor.Descriptor(
+  name='ofp_queue_get_config_reply',
+  full_name='openflow_13.ofp_queue_get_config_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_queue_get_config_reply.port', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queues', full_name='openflow_13.ofp_queue_get_config_reply.queues', index=1,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10586,
+  serialized_end=10675,
+)
+
+
+_OFP_ACTION_SET_QUEUE = _descriptor.Descriptor(
+  name='ofp_action_set_queue',
+  full_name='openflow_13.ofp_action_set_queue',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_action_set_queue.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_action_set_queue.queue_id', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10677,
+  serialized_end=10731,
+)
+
+
+_OFP_QUEUE_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_queue_stats_request',
+  full_name='openflow_13.ofp_queue_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_queue_stats_request.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_queue_stats_request.queue_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10733,
+  serialized_end=10793,
+)
+
+
+_OFP_QUEUE_STATS = _descriptor.Descriptor(
+  name='ofp_queue_stats',
+  full_name='openflow_13.ofp_queue_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_queue_stats.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_queue_stats.queue_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_bytes', full_name='openflow_13.ofp_queue_stats.tx_bytes', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_packets', full_name='openflow_13.ofp_queue_stats.tx_packets', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_errors', full_name='openflow_13.ofp_queue_stats.tx_errors', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_queue_stats.duration_sec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_queue_stats.duration_nsec', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10796,
+  serialized_end=10950,
+)
+
+
+_OFP_ROLE_REQUEST = _descriptor.Descriptor(
+  name='ofp_role_request',
+  full_name='openflow_13.ofp_role_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='role', full_name='openflow_13.ofp_role_request.role', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='generation_id', full_name='openflow_13.ofp_role_request.generation_id', index=1,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10952,
+  serialized_end=11041,
+)
+
+
+_OFP_ASYNC_CONFIG = _descriptor.Descriptor(
+  name='ofp_async_config',
+  full_name='openflow_13.ofp_async_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_in_mask', full_name='openflow_13.ofp_async_config.packet_in_mask', index=0,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port_status_mask', full_name='openflow_13.ofp_async_config.port_status_mask', index=1,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_removed_mask', full_name='openflow_13.ofp_async_config.flow_removed_mask', index=2,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11043,
+  serialized_end=11138,
+)
+
+_OFP_HEADER.fields_by_name['type'].enum_type = _OFP_TYPE
+_OFP_HELLO_ELEM_HEADER.fields_by_name['type'].enum_type = _OFP_HELLO_ELEM_TYPE
+_OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'].message_type = _OFP_HELLO_ELEM_VERSIONBITMAP
+_OFP_HELLO_ELEM_HEADER.oneofs_by_name['element'].fields.append(
+  _OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'])
+_OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'].containing_oneof = _OFP_HELLO_ELEM_HEADER.oneofs_by_name['element']
+_OFP_HELLO.fields_by_name['elements'].message_type = _OFP_HELLO_ELEM_HEADER
+_OFP_PORT_STATUS.fields_by_name['reason'].enum_type = _OFP_PORT_REASON
+_OFP_PORT_STATUS.fields_by_name['desc'].message_type = _OFP_PORT
+_OFP_MATCH.fields_by_name['type'].enum_type = _OFP_MATCH_TYPE
+_OFP_MATCH.fields_by_name['oxm_fields'].message_type = _OFP_OXM_FIELD
+_OFP_OXM_FIELD.fields_by_name['oxm_class'].enum_type = _OFP_OXM_CLASS
+_OFP_OXM_FIELD.fields_by_name['ofb_field'].message_type = _OFP_OXM_OFB_FIELD
+_OFP_OXM_FIELD.fields_by_name['experimenter_field'].message_type = _OFP_OXM_EXPERIMENTER_FIELD
+_OFP_OXM_FIELD.oneofs_by_name['field'].fields.append(
+  _OFP_OXM_FIELD.fields_by_name['ofb_field'])
+_OFP_OXM_FIELD.fields_by_name['ofb_field'].containing_oneof = _OFP_OXM_FIELD.oneofs_by_name['field']
+_OFP_OXM_FIELD.oneofs_by_name['field'].fields.append(
+  _OFP_OXM_FIELD.fields_by_name['experimenter_field'])
+_OFP_OXM_FIELD.fields_by_name['experimenter_field'].containing_oneof = _OFP_OXM_FIELD.oneofs_by_name['field']
+_OFP_OXM_OFB_FIELD.fields_by_name['type'].enum_type = _OXM_OFB_FIELD_TYPES
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['port'])
+_OFP_OXM_OFB_FIELD.fields_by_name['port'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['physical_port'])
+_OFP_OXM_OFB_FIELD.fields_by_name['physical_port'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['table_metadata'])
+_OFP_OXM_OFB_FIELD.fields_by_name['table_metadata'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_pcp'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_pcp'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_dscp'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_dscp'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_ecn'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_ecn'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_proto'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_proto'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tcp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tcp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tcp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tcp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['udp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['udp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['udp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['udp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['sctp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['sctp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['sctp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['sctp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_code'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_code'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_op'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_op'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_spa'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_spa'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_sha'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_sha'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tha'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tha'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_code'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_code'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_target'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_target'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_ssl'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_ssl'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_tll'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_tll'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_label'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_label'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_tc'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_tc'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_bos'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_bos'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid'])
+_OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['table_metadata_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['table_metadata_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_spa_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_spa_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_ACTION.fields_by_name['type'].enum_type = _OFP_ACTION_TYPE
+_OFP_ACTION.fields_by_name['output'].message_type = _OFP_ACTION_OUTPUT
+_OFP_ACTION.fields_by_name['mpls_ttl'].message_type = _OFP_ACTION_MPLS_TTL
+_OFP_ACTION.fields_by_name['push'].message_type = _OFP_ACTION_PUSH
+_OFP_ACTION.fields_by_name['pop_mpls'].message_type = _OFP_ACTION_POP_MPLS
+_OFP_ACTION.fields_by_name['group'].message_type = _OFP_ACTION_GROUP
+_OFP_ACTION.fields_by_name['nw_ttl'].message_type = _OFP_ACTION_NW_TTL
+_OFP_ACTION.fields_by_name['set_field'].message_type = _OFP_ACTION_SET_FIELD
+_OFP_ACTION.fields_by_name['experimenter'].message_type = _OFP_ACTION_EXPERIMENTER
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['output'])
+_OFP_ACTION.fields_by_name['output'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['mpls_ttl'])
+_OFP_ACTION.fields_by_name['mpls_ttl'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['push'])
+_OFP_ACTION.fields_by_name['push'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['pop_mpls'])
+_OFP_ACTION.fields_by_name['pop_mpls'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['group'])
+_OFP_ACTION.fields_by_name['group'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['nw_ttl'])
+_OFP_ACTION.fields_by_name['nw_ttl'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['set_field'])
+_OFP_ACTION.fields_by_name['set_field'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['experimenter'])
+_OFP_ACTION.fields_by_name['experimenter'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION_SET_FIELD.fields_by_name['field'].message_type = _OFP_OXM_FIELD
+_OFP_INSTRUCTION.fields_by_name['goto_table'].message_type = _OFP_INSTRUCTION_GOTO_TABLE
+_OFP_INSTRUCTION.fields_by_name['write_metadata'].message_type = _OFP_INSTRUCTION_WRITE_METADATA
+_OFP_INSTRUCTION.fields_by_name['actions'].message_type = _OFP_INSTRUCTION_ACTIONS
+_OFP_INSTRUCTION.fields_by_name['meter'].message_type = _OFP_INSTRUCTION_METER
+_OFP_INSTRUCTION.fields_by_name['experimenter'].message_type = _OFP_INSTRUCTION_EXPERIMENTER
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['goto_table'])
+_OFP_INSTRUCTION.fields_by_name['goto_table'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['write_metadata'])
+_OFP_INSTRUCTION.fields_by_name['write_metadata'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['actions'])
+_OFP_INSTRUCTION.fields_by_name['actions'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['meter'])
+_OFP_INSTRUCTION.fields_by_name['meter'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['experimenter'])
+_OFP_INSTRUCTION.fields_by_name['experimenter'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION_ACTIONS.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_FLOW_MOD.fields_by_name['command'].enum_type = _OFP_FLOW_MOD_COMMAND
+_OFP_FLOW_MOD.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_MOD.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_BUCKET.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_GROUP_MOD.fields_by_name['command'].enum_type = _OFP_GROUP_MOD_COMMAND
+_OFP_GROUP_MOD.fields_by_name['type'].enum_type = _OFP_GROUP_TYPE
+_OFP_GROUP_MOD.fields_by_name['buckets'].message_type = _OFP_BUCKET
+_OFP_PACKET_OUT.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_PACKET_IN.fields_by_name['reason'].enum_type = _OFP_PACKET_IN_REASON
+_OFP_PACKET_IN.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_REMOVED.fields_by_name['reason'].enum_type = _OFP_FLOW_REMOVED_REASON
+_OFP_FLOW_REMOVED.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_METER_BAND_HEADER.fields_by_name['type'].enum_type = _OFP_METER_BAND_TYPE
+_OFP_METER_BAND_EXPERIMENTER.fields_by_name['type'].enum_type = _OFP_METER_BAND_TYPE
+_OFP_METER_MOD.fields_by_name['header'].message_type = _OFP_HEADER
+_OFP_METER_MOD.fields_by_name['command'].enum_type = _OFP_METER_MOD_COMMAND
+_OFP_METER_MOD.fields_by_name['bands'].message_type = _OFP_METER_BAND_HEADER
+_OFP_MULTIPART_REQUEST.fields_by_name['type'].enum_type = _OFP_MULTIPART_TYPE
+_OFP_MULTIPART_REPLY.fields_by_name['type'].enum_type = _OFP_MULTIPART_TYPE
+_OFP_FLOW_STATS_REQUEST.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_STATS.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_STATS.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_AGGREGATE_STATS_REQUEST.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['type'].enum_type = _OFP_TABLE_FEATURE_PROP_TYPE
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'].message_type = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'].message_type = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'].message_type = _OFP_TABLE_FEATURE_PROP_ACTIONS
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'].message_type = _OFP_TABLE_FEATURE_PROP_OXM
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'].message_type = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROP_INSTRUCTIONS.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_TABLE_FEATURE_PROP_ACTIONS.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_TABLE_FEATURES.fields_by_name['properties'].message_type = _OFP_TABLE_FEATURE_PROPERTY
+_OFP_GROUP_STATS.fields_by_name['bucket_stats'].message_type = _OFP_BUCKET_COUNTER
+_OFP_GROUP_DESC.fields_by_name['type'].enum_type = _OFP_GROUP_TYPE
+_OFP_GROUP_DESC.fields_by_name['buckets'].message_type = _OFP_BUCKET
+_OFP_METER_STATS.fields_by_name['band_stats'].message_type = _OFP_METER_BAND_STATS
+_OFP_METER_CONFIG.fields_by_name['bands'].message_type = _OFP_METER_BAND_HEADER
+_OFP_QUEUE_PROP_MIN_RATE.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_PROP_MAX_RATE.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_PROP_EXPERIMENTER.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_PACKET_QUEUE.fields_by_name['properties'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_GET_CONFIG_REPLY.fields_by_name['queues'].message_type = _OFP_PACKET_QUEUE
+_OFP_ROLE_REQUEST.fields_by_name['role'].enum_type = _OFP_CONTROLLER_ROLE
+DESCRIPTOR.message_types_by_name['ofp_header'] = _OFP_HEADER
+DESCRIPTOR.message_types_by_name['ofp_hello_elem_header'] = _OFP_HELLO_ELEM_HEADER
+DESCRIPTOR.message_types_by_name['ofp_hello_elem_versionbitmap'] = _OFP_HELLO_ELEM_VERSIONBITMAP
+DESCRIPTOR.message_types_by_name['ofp_hello'] = _OFP_HELLO
+DESCRIPTOR.message_types_by_name['ofp_switch_config'] = _OFP_SWITCH_CONFIG
+DESCRIPTOR.message_types_by_name['ofp_table_mod'] = _OFP_TABLE_MOD
+DESCRIPTOR.message_types_by_name['ofp_port'] = _OFP_PORT
+DESCRIPTOR.message_types_by_name['ofp_switch_features'] = _OFP_SWITCH_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_port_status'] = _OFP_PORT_STATUS
+DESCRIPTOR.message_types_by_name['ofp_port_mod'] = _OFP_PORT_MOD
+DESCRIPTOR.message_types_by_name['ofp_match'] = _OFP_MATCH
+DESCRIPTOR.message_types_by_name['ofp_oxm_field'] = _OFP_OXM_FIELD
+DESCRIPTOR.message_types_by_name['ofp_oxm_ofb_field'] = _OFP_OXM_OFB_FIELD
+DESCRIPTOR.message_types_by_name['ofp_oxm_experimenter_field'] = _OFP_OXM_EXPERIMENTER_FIELD
+DESCRIPTOR.message_types_by_name['ofp_action'] = _OFP_ACTION
+DESCRIPTOR.message_types_by_name['ofp_action_output'] = _OFP_ACTION_OUTPUT
+DESCRIPTOR.message_types_by_name['ofp_action_mpls_ttl'] = _OFP_ACTION_MPLS_TTL
+DESCRIPTOR.message_types_by_name['ofp_action_push'] = _OFP_ACTION_PUSH
+DESCRIPTOR.message_types_by_name['ofp_action_pop_mpls'] = _OFP_ACTION_POP_MPLS
+DESCRIPTOR.message_types_by_name['ofp_action_group'] = _OFP_ACTION_GROUP
+DESCRIPTOR.message_types_by_name['ofp_action_nw_ttl'] = _OFP_ACTION_NW_TTL
+DESCRIPTOR.message_types_by_name['ofp_action_set_field'] = _OFP_ACTION_SET_FIELD
+DESCRIPTOR.message_types_by_name['ofp_action_experimenter'] = _OFP_ACTION_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_instruction'] = _OFP_INSTRUCTION
+DESCRIPTOR.message_types_by_name['ofp_instruction_goto_table'] = _OFP_INSTRUCTION_GOTO_TABLE
+DESCRIPTOR.message_types_by_name['ofp_instruction_write_metadata'] = _OFP_INSTRUCTION_WRITE_METADATA
+DESCRIPTOR.message_types_by_name['ofp_instruction_actions'] = _OFP_INSTRUCTION_ACTIONS
+DESCRIPTOR.message_types_by_name['ofp_instruction_meter'] = _OFP_INSTRUCTION_METER
+DESCRIPTOR.message_types_by_name['ofp_instruction_experimenter'] = _OFP_INSTRUCTION_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_flow_mod'] = _OFP_FLOW_MOD
+DESCRIPTOR.message_types_by_name['ofp_bucket'] = _OFP_BUCKET
+DESCRIPTOR.message_types_by_name['ofp_group_mod'] = _OFP_GROUP_MOD
+DESCRIPTOR.message_types_by_name['ofp_packet_out'] = _OFP_PACKET_OUT
+DESCRIPTOR.message_types_by_name['ofp_packet_in'] = _OFP_PACKET_IN
+DESCRIPTOR.message_types_by_name['ofp_flow_removed'] = _OFP_FLOW_REMOVED
+DESCRIPTOR.message_types_by_name['ofp_meter_band_header'] = _OFP_METER_BAND_HEADER
+DESCRIPTOR.message_types_by_name['ofp_meter_band_drop'] = _OFP_METER_BAND_DROP
+DESCRIPTOR.message_types_by_name['ofp_meter_band_dscp_remark'] = _OFP_METER_BAND_DSCP_REMARK
+DESCRIPTOR.message_types_by_name['ofp_meter_band_experimenter'] = _OFP_METER_BAND_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_meter_mod'] = _OFP_METER_MOD
+DESCRIPTOR.message_types_by_name['ofp_error_msg'] = _OFP_ERROR_MSG
+DESCRIPTOR.message_types_by_name['ofp_error_experimenter_msg'] = _OFP_ERROR_EXPERIMENTER_MSG
+DESCRIPTOR.message_types_by_name['ofp_multipart_request'] = _OFP_MULTIPART_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_multipart_reply'] = _OFP_MULTIPART_REPLY
+DESCRIPTOR.message_types_by_name['ofp_desc'] = _OFP_DESC
+DESCRIPTOR.message_types_by_name['ofp_flow_stats_request'] = _OFP_FLOW_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_flow_stats'] = _OFP_FLOW_STATS
+DESCRIPTOR.message_types_by_name['ofp_aggregate_stats_request'] = _OFP_AGGREGATE_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_aggregate_stats_reply'] = _OFP_AGGREGATE_STATS_REPLY
+DESCRIPTOR.message_types_by_name['ofp_table_feature_property'] = _OFP_TABLE_FEATURE_PROPERTY
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_instructions'] = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_next_tables'] = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_actions'] = _OFP_TABLE_FEATURE_PROP_ACTIONS
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_oxm'] = _OFP_TABLE_FEATURE_PROP_OXM
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_experimenter'] = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_table_features'] = _OFP_TABLE_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_table_stats'] = _OFP_TABLE_STATS
+DESCRIPTOR.message_types_by_name['ofp_port_stats_request'] = _OFP_PORT_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_port_stats'] = _OFP_PORT_STATS
+DESCRIPTOR.message_types_by_name['ofp_group_stats_request'] = _OFP_GROUP_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_bucket_counter'] = _OFP_BUCKET_COUNTER
+DESCRIPTOR.message_types_by_name['ofp_group_stats'] = _OFP_GROUP_STATS
+DESCRIPTOR.message_types_by_name['ofp_group_desc'] = _OFP_GROUP_DESC
+DESCRIPTOR.message_types_by_name['ofp_group_features'] = _OFP_GROUP_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_meter_multipart_request'] = _OFP_METER_MULTIPART_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_meter_band_stats'] = _OFP_METER_BAND_STATS
+DESCRIPTOR.message_types_by_name['ofp_meter_stats'] = _OFP_METER_STATS
+DESCRIPTOR.message_types_by_name['ofp_meter_config'] = _OFP_METER_CONFIG
+DESCRIPTOR.message_types_by_name['ofp_meter_features'] = _OFP_METER_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_experimenter_multipart_header'] = _OFP_EXPERIMENTER_MULTIPART_HEADER
+DESCRIPTOR.message_types_by_name['ofp_experimenter_header'] = _OFP_EXPERIMENTER_HEADER
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_header'] = _OFP_QUEUE_PROP_HEADER
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_min_rate'] = _OFP_QUEUE_PROP_MIN_RATE
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_max_rate'] = _OFP_QUEUE_PROP_MAX_RATE
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_experimenter'] = _OFP_QUEUE_PROP_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_packet_queue'] = _OFP_PACKET_QUEUE
+DESCRIPTOR.message_types_by_name['ofp_queue_get_config_request'] = _OFP_QUEUE_GET_CONFIG_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_queue_get_config_reply'] = _OFP_QUEUE_GET_CONFIG_REPLY
+DESCRIPTOR.message_types_by_name['ofp_action_set_queue'] = _OFP_ACTION_SET_QUEUE
+DESCRIPTOR.message_types_by_name['ofp_queue_stats_request'] = _OFP_QUEUE_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_queue_stats'] = _OFP_QUEUE_STATS
+DESCRIPTOR.message_types_by_name['ofp_role_request'] = _OFP_ROLE_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_async_config'] = _OFP_ASYNC_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_port_no'] = _OFP_PORT_NO
+DESCRIPTOR.enum_types_by_name['ofp_type'] = _OFP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_hello_elem_type'] = _OFP_HELLO_ELEM_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_config_flags'] = _OFP_CONFIG_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_table_config'] = _OFP_TABLE_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_table'] = _OFP_TABLE
+DESCRIPTOR.enum_types_by_name['ofp_capabilities'] = _OFP_CAPABILITIES
+DESCRIPTOR.enum_types_by_name['ofp_port_config'] = _OFP_PORT_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_port_state'] = _OFP_PORT_STATE
+DESCRIPTOR.enum_types_by_name['ofp_port_features'] = _OFP_PORT_FEATURES
+DESCRIPTOR.enum_types_by_name['ofp_port_reason'] = _OFP_PORT_REASON
+DESCRIPTOR.enum_types_by_name['ofp_match_type'] = _OFP_MATCH_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_oxm_class'] = _OFP_OXM_CLASS
+DESCRIPTOR.enum_types_by_name['oxm_ofb_field_types'] = _OXM_OFB_FIELD_TYPES
+DESCRIPTOR.enum_types_by_name['ofp_vlan_id'] = _OFP_VLAN_ID
+DESCRIPTOR.enum_types_by_name['ofp_ipv6exthdr_flags'] = _OFP_IPV6EXTHDR_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_action_type'] = _OFP_ACTION_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_controller_max_len'] = _OFP_CONTROLLER_MAX_LEN
+DESCRIPTOR.enum_types_by_name['ofp_instruction_type'] = _OFP_INSTRUCTION_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_command'] = _OFP_FLOW_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_flags'] = _OFP_FLOW_MOD_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_group'] = _OFP_GROUP
+DESCRIPTOR.enum_types_by_name['ofp_group_mod_command'] = _OFP_GROUP_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_group_type'] = _OFP_GROUP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_packet_in_reason'] = _OFP_PACKET_IN_REASON
+DESCRIPTOR.enum_types_by_name['ofp_flow_removed_reason'] = _OFP_FLOW_REMOVED_REASON
+DESCRIPTOR.enum_types_by_name['ofp_meter'] = _OFP_METER
+DESCRIPTOR.enum_types_by_name['ofp_meter_band_type'] = _OFP_METER_BAND_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_meter_mod_command'] = _OFP_METER_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_meter_flags'] = _OFP_METER_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_error_type'] = _OFP_ERROR_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_hello_failed_code'] = _OFP_HELLO_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_request_code'] = _OFP_BAD_REQUEST_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_action_code'] = _OFP_BAD_ACTION_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_instruction_code'] = _OFP_BAD_INSTRUCTION_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_match_code'] = _OFP_BAD_MATCH_CODE
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_failed_code'] = _OFP_FLOW_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_group_mod_failed_code'] = _OFP_GROUP_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_port_mod_failed_code'] = _OFP_PORT_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_table_mod_failed_code'] = _OFP_TABLE_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_queue_op_failed_code'] = _OFP_QUEUE_OP_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_switch_config_failed_code'] = _OFP_SWITCH_CONFIG_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_role_request_failed_code'] = _OFP_ROLE_REQUEST_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_meter_mod_failed_code'] = _OFP_METER_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_table_features_failed_code'] = _OFP_TABLE_FEATURES_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_multipart_type'] = _OFP_MULTIPART_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_multipart_request_flags'] = _OFP_MULTIPART_REQUEST_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_multipart_reply_flags'] = _OFP_MULTIPART_REPLY_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_table_feature_prop_type'] = _OFP_TABLE_FEATURE_PROP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_group_capabilities'] = _OFP_GROUP_CAPABILITIES
+DESCRIPTOR.enum_types_by_name['ofp_queue_properties'] = _OFP_QUEUE_PROPERTIES
+DESCRIPTOR.enum_types_by_name['ofp_controller_role'] = _OFP_CONTROLLER_ROLE
+
+ofp_header = _reflection.GeneratedProtocolMessageType('ofp_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_header)
+  ))
+_sym_db.RegisterMessage(ofp_header)
+
+ofp_hello_elem_header = _reflection.GeneratedProtocolMessageType('ofp_hello_elem_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO_ELEM_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello_elem_header)
+  ))
+_sym_db.RegisterMessage(ofp_hello_elem_header)
+
+ofp_hello_elem_versionbitmap = _reflection.GeneratedProtocolMessageType('ofp_hello_elem_versionbitmap', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO_ELEM_VERSIONBITMAP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello_elem_versionbitmap)
+  ))
+_sym_db.RegisterMessage(ofp_hello_elem_versionbitmap)
+
+ofp_hello = _reflection.GeneratedProtocolMessageType('ofp_hello', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello)
+  ))
+_sym_db.RegisterMessage(ofp_hello)
+
+ofp_switch_config = _reflection.GeneratedProtocolMessageType('ofp_switch_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_SWITCH_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_switch_config)
+  ))
+_sym_db.RegisterMessage(ofp_switch_config)
+
+ofp_table_mod = _reflection.GeneratedProtocolMessageType('ofp_table_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_mod)
+  ))
+_sym_db.RegisterMessage(ofp_table_mod)
+
+ofp_port = _reflection.GeneratedProtocolMessageType('ofp_port', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port)
+  ))
+_sym_db.RegisterMessage(ofp_port)
+
+ofp_switch_features = _reflection.GeneratedProtocolMessageType('ofp_switch_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_SWITCH_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_switch_features)
+  ))
+_sym_db.RegisterMessage(ofp_switch_features)
+
+ofp_port_status = _reflection.GeneratedProtocolMessageType('ofp_port_status', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATUS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_status)
+  ))
+_sym_db.RegisterMessage(ofp_port_status)
+
+ofp_port_mod = _reflection.GeneratedProtocolMessageType('ofp_port_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_mod)
+  ))
+_sym_db.RegisterMessage(ofp_port_mod)
+
+ofp_match = _reflection.GeneratedProtocolMessageType('ofp_match', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MATCH,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_match)
+  ))
+_sym_db.RegisterMessage(ofp_match)
+
+ofp_oxm_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_field)
+
+ofp_oxm_ofb_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_ofb_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_OFB_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_ofb_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_ofb_field)
+
+ofp_oxm_experimenter_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_experimenter_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_EXPERIMENTER_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_experimenter_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_experimenter_field)
+
+ofp_action = _reflection.GeneratedProtocolMessageType('ofp_action', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action)
+  ))
+_sym_db.RegisterMessage(ofp_action)
+
+ofp_action_output = _reflection.GeneratedProtocolMessageType('ofp_action_output', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_OUTPUT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_output)
+  ))
+_sym_db.RegisterMessage(ofp_action_output)
+
+ofp_action_mpls_ttl = _reflection.GeneratedProtocolMessageType('ofp_action_mpls_ttl', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_MPLS_TTL,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_mpls_ttl)
+  ))
+_sym_db.RegisterMessage(ofp_action_mpls_ttl)
+
+ofp_action_push = _reflection.GeneratedProtocolMessageType('ofp_action_push', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_PUSH,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_push)
+  ))
+_sym_db.RegisterMessage(ofp_action_push)
+
+ofp_action_pop_mpls = _reflection.GeneratedProtocolMessageType('ofp_action_pop_mpls', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_POP_MPLS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_pop_mpls)
+  ))
+_sym_db.RegisterMessage(ofp_action_pop_mpls)
+
+ofp_action_group = _reflection.GeneratedProtocolMessageType('ofp_action_group', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_GROUP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_group)
+  ))
+_sym_db.RegisterMessage(ofp_action_group)
+
+ofp_action_nw_ttl = _reflection.GeneratedProtocolMessageType('ofp_action_nw_ttl', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_NW_TTL,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_nw_ttl)
+  ))
+_sym_db.RegisterMessage(ofp_action_nw_ttl)
+
+ofp_action_set_field = _reflection.GeneratedProtocolMessageType('ofp_action_set_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_SET_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_set_field)
+  ))
+_sym_db.RegisterMessage(ofp_action_set_field)
+
+ofp_action_experimenter = _reflection.GeneratedProtocolMessageType('ofp_action_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_action_experimenter)
+
+ofp_instruction = _reflection.GeneratedProtocolMessageType('ofp_instruction', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction)
+  ))
+_sym_db.RegisterMessage(ofp_instruction)
+
+ofp_instruction_goto_table = _reflection.GeneratedProtocolMessageType('ofp_instruction_goto_table', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_GOTO_TABLE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_goto_table)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_goto_table)
+
+ofp_instruction_write_metadata = _reflection.GeneratedProtocolMessageType('ofp_instruction_write_metadata', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_WRITE_METADATA,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_write_metadata)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_write_metadata)
+
+ofp_instruction_actions = _reflection.GeneratedProtocolMessageType('ofp_instruction_actions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_ACTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_actions)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_actions)
+
+ofp_instruction_meter = _reflection.GeneratedProtocolMessageType('ofp_instruction_meter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_METER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_meter)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_meter)
+
+ofp_instruction_experimenter = _reflection.GeneratedProtocolMessageType('ofp_instruction_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_experimenter)
+
+ofp_flow_mod = _reflection.GeneratedProtocolMessageType('ofp_flow_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_mod)
+  ))
+_sym_db.RegisterMessage(ofp_flow_mod)
+
+ofp_bucket = _reflection.GeneratedProtocolMessageType('ofp_bucket', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_BUCKET,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_bucket)
+  ))
+_sym_db.RegisterMessage(ofp_bucket)
+
+ofp_group_mod = _reflection.GeneratedProtocolMessageType('ofp_group_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_mod)
+  ))
+_sym_db.RegisterMessage(ofp_group_mod)
+
+ofp_packet_out = _reflection.GeneratedProtocolMessageType('ofp_packet_out', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_OUT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_out)
+  ))
+_sym_db.RegisterMessage(ofp_packet_out)
+
+ofp_packet_in = _reflection.GeneratedProtocolMessageType('ofp_packet_in', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_IN,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_in)
+  ))
+_sym_db.RegisterMessage(ofp_packet_in)
+
+ofp_flow_removed = _reflection.GeneratedProtocolMessageType('ofp_flow_removed', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_REMOVED,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_removed)
+  ))
+_sym_db.RegisterMessage(ofp_flow_removed)
+
+ofp_meter_band_header = _reflection.GeneratedProtocolMessageType('ofp_meter_band_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_header)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_header)
+
+ofp_meter_band_drop = _reflection.GeneratedProtocolMessageType('ofp_meter_band_drop', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_DROP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_drop)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_drop)
+
+ofp_meter_band_dscp_remark = _reflection.GeneratedProtocolMessageType('ofp_meter_band_dscp_remark', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_DSCP_REMARK,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_dscp_remark)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_dscp_remark)
+
+ofp_meter_band_experimenter = _reflection.GeneratedProtocolMessageType('ofp_meter_band_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_experimenter)
+
+ofp_meter_mod = _reflection.GeneratedProtocolMessageType('ofp_meter_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_mod)
+  ))
+_sym_db.RegisterMessage(ofp_meter_mod)
+
+ofp_error_msg = _reflection.GeneratedProtocolMessageType('ofp_error_msg', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ERROR_MSG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_error_msg)
+  ))
+_sym_db.RegisterMessage(ofp_error_msg)
+
+ofp_error_experimenter_msg = _reflection.GeneratedProtocolMessageType('ofp_error_experimenter_msg', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ERROR_EXPERIMENTER_MSG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_error_experimenter_msg)
+  ))
+_sym_db.RegisterMessage(ofp_error_experimenter_msg)
+
+ofp_multipart_request = _reflection.GeneratedProtocolMessageType('ofp_multipart_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MULTIPART_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_multipart_request)
+  ))
+_sym_db.RegisterMessage(ofp_multipart_request)
+
+ofp_multipart_reply = _reflection.GeneratedProtocolMessageType('ofp_multipart_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MULTIPART_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_multipart_reply)
+  ))
+_sym_db.RegisterMessage(ofp_multipart_reply)
+
+ofp_desc = _reflection.GeneratedProtocolMessageType('ofp_desc', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_DESC,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_desc)
+  ))
+_sym_db.RegisterMessage(ofp_desc)
+
+ofp_flow_stats_request = _reflection.GeneratedProtocolMessageType('ofp_flow_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_flow_stats_request)
+
+ofp_flow_stats = _reflection.GeneratedProtocolMessageType('ofp_flow_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_stats)
+  ))
+_sym_db.RegisterMessage(ofp_flow_stats)
+
+ofp_aggregate_stats_request = _reflection.GeneratedProtocolMessageType('ofp_aggregate_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_AGGREGATE_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_aggregate_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_aggregate_stats_request)
+
+ofp_aggregate_stats_reply = _reflection.GeneratedProtocolMessageType('ofp_aggregate_stats_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_AGGREGATE_STATS_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_aggregate_stats_reply)
+  ))
+_sym_db.RegisterMessage(ofp_aggregate_stats_reply)
+
+ofp_table_feature_property = _reflection.GeneratedProtocolMessageType('ofp_table_feature_property', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROPERTY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_property)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_property)
+
+ofp_table_feature_prop_instructions = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_instructions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_instructions)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_instructions)
+
+ofp_table_feature_prop_next_tables = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_next_tables', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_next_tables)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_next_tables)
+
+ofp_table_feature_prop_actions = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_actions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_ACTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_actions)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_actions)
+
+ofp_table_feature_prop_oxm = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_oxm', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_OXM,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_oxm)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_oxm)
+
+ofp_table_feature_prop_experimenter = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_experimenter)
+
+ofp_table_features = _reflection.GeneratedProtocolMessageType('ofp_table_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_features)
+  ))
+_sym_db.RegisterMessage(ofp_table_features)
+
+ofp_table_stats = _reflection.GeneratedProtocolMessageType('ofp_table_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_stats)
+  ))
+_sym_db.RegisterMessage(ofp_table_stats)
+
+ofp_port_stats_request = _reflection.GeneratedProtocolMessageType('ofp_port_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_port_stats_request)
+
+ofp_port_stats = _reflection.GeneratedProtocolMessageType('ofp_port_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_stats)
+  ))
+_sym_db.RegisterMessage(ofp_port_stats)
+
+ofp_group_stats_request = _reflection.GeneratedProtocolMessageType('ofp_group_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_group_stats_request)
+
+ofp_bucket_counter = _reflection.GeneratedProtocolMessageType('ofp_bucket_counter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_BUCKET_COUNTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_bucket_counter)
+  ))
+_sym_db.RegisterMessage(ofp_bucket_counter)
+
+ofp_group_stats = _reflection.GeneratedProtocolMessageType('ofp_group_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_stats)
+  ))
+_sym_db.RegisterMessage(ofp_group_stats)
+
+ofp_group_desc = _reflection.GeneratedProtocolMessageType('ofp_group_desc', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_DESC,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_desc)
+  ))
+_sym_db.RegisterMessage(ofp_group_desc)
+
+ofp_group_features = _reflection.GeneratedProtocolMessageType('ofp_group_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_features)
+  ))
+_sym_db.RegisterMessage(ofp_group_features)
+
+ofp_meter_multipart_request = _reflection.GeneratedProtocolMessageType('ofp_meter_multipart_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_MULTIPART_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_multipart_request)
+  ))
+_sym_db.RegisterMessage(ofp_meter_multipart_request)
+
+ofp_meter_band_stats = _reflection.GeneratedProtocolMessageType('ofp_meter_band_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_stats)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_stats)
+
+ofp_meter_stats = _reflection.GeneratedProtocolMessageType('ofp_meter_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_stats)
+  ))
+_sym_db.RegisterMessage(ofp_meter_stats)
+
+ofp_meter_config = _reflection.GeneratedProtocolMessageType('ofp_meter_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_config)
+  ))
+_sym_db.RegisterMessage(ofp_meter_config)
+
+ofp_meter_features = _reflection.GeneratedProtocolMessageType('ofp_meter_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_features)
+  ))
+_sym_db.RegisterMessage(ofp_meter_features)
+
+ofp_experimenter_multipart_header = _reflection.GeneratedProtocolMessageType('ofp_experimenter_multipart_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_EXPERIMENTER_MULTIPART_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_experimenter_multipart_header)
+  ))
+_sym_db.RegisterMessage(ofp_experimenter_multipart_header)
+
+ofp_experimenter_header = _reflection.GeneratedProtocolMessageType('ofp_experimenter_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_EXPERIMENTER_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_experimenter_header)
+  ))
+_sym_db.RegisterMessage(ofp_experimenter_header)
+
+ofp_queue_prop_header = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_header)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_header)
+
+ofp_queue_prop_min_rate = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_min_rate', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_MIN_RATE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_min_rate)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_min_rate)
+
+ofp_queue_prop_max_rate = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_max_rate', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_MAX_RATE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_max_rate)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_max_rate)
+
+ofp_queue_prop_experimenter = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_experimenter)
+
+ofp_packet_queue = _reflection.GeneratedProtocolMessageType('ofp_packet_queue', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_QUEUE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_queue)
+  ))
+_sym_db.RegisterMessage(ofp_packet_queue)
+
+ofp_queue_get_config_request = _reflection.GeneratedProtocolMessageType('ofp_queue_get_config_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_GET_CONFIG_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_get_config_request)
+  ))
+_sym_db.RegisterMessage(ofp_queue_get_config_request)
+
+ofp_queue_get_config_reply = _reflection.GeneratedProtocolMessageType('ofp_queue_get_config_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_GET_CONFIG_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_get_config_reply)
+  ))
+_sym_db.RegisterMessage(ofp_queue_get_config_reply)
+
+ofp_action_set_queue = _reflection.GeneratedProtocolMessageType('ofp_action_set_queue', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_SET_QUEUE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_set_queue)
+  ))
+_sym_db.RegisterMessage(ofp_action_set_queue)
+
+ofp_queue_stats_request = _reflection.GeneratedProtocolMessageType('ofp_queue_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_queue_stats_request)
+
+ofp_queue_stats = _reflection.GeneratedProtocolMessageType('ofp_queue_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_stats)
+  ))
+_sym_db.RegisterMessage(ofp_queue_stats)
+
+ofp_role_request = _reflection.GeneratedProtocolMessageType('ofp_role_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ROLE_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_role_request)
+  ))
+_sym_db.RegisterMessage(ofp_role_request)
+
+ofp_async_config = _reflection.GeneratedProtocolMessageType('ofp_async_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ASYNC_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_async_config)
+  ))
+_sym_db.RegisterMessage(ofp_async_config)
+
+
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+# @@protoc_insertion_point(module_scope)
diff --git a/ofagent/protos/schema_pb2.py b/ofagent/protos/schema_pb2.py
new file mode 100644
index 0000000..f8c5e46
--- /dev/null
+++ b/ofagent/protos/schema_pb2.py
@@ -0,0 +1,302 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: schema.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='schema.proto',
+  package='schema',
+  syntax='proto3',
+  serialized_pb=_b('\n\x0cschema.proto\x12\x06schema\x1a\x1cgoogle/api/annotations.proto\"\xcd\x01\n\x06Schema\x12*\n\x06protos\x18\x01 \x03(\x0b\x32\x1a.schema.Schema.ProtosEntry\x12\x34\n\x0b\x64\x65scriptors\x18\x02 \x03(\x0b\x32\x1f.schema.Schema.DescriptorsEntry\x1a-\n\x0bProtosEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x44\x65scriptorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\r\n\x0bNullMessage2R\n\rSchemaService\x12\x41\n\tGetSchema\x12\x13.schema.NullMessage\x1a\x0e.schema.Schema\"\x0f\x82\xd3\xe4\x93\x02\t\x12\x07/schemab\x06proto3')
+  ,
+  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,])
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+
+_SCHEMA_PROTOSENTRY = _descriptor.Descriptor(
+  name='ProtosEntry',
+  full_name='schema.Schema.ProtosEntry',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='key', full_name='schema.Schema.ProtosEntry.key', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='value', full_name='schema.Schema.ProtosEntry.value', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=163,
+  serialized_end=208,
+)
+
+_SCHEMA_DESCRIPTORSENTRY = _descriptor.Descriptor(
+  name='DescriptorsEntry',
+  full_name='schema.Schema.DescriptorsEntry',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='key', full_name='schema.Schema.DescriptorsEntry.key', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='value', full_name='schema.Schema.DescriptorsEntry.value', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=210,
+  serialized_end=260,
+)
+
+_SCHEMA = _descriptor.Descriptor(
+  name='Schema',
+  full_name='schema.Schema',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='protos', full_name='schema.Schema.protos', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='descriptors', full_name='schema.Schema.descriptors', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[_SCHEMA_PROTOSENTRY, _SCHEMA_DESCRIPTORSENTRY, ],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=55,
+  serialized_end=260,
+)
+
+
+_NULLMESSAGE = _descriptor.Descriptor(
+  name='NullMessage',
+  full_name='schema.NullMessage',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=262,
+  serialized_end=275,
+)
+
+_SCHEMA_PROTOSENTRY.containing_type = _SCHEMA
+_SCHEMA_DESCRIPTORSENTRY.containing_type = _SCHEMA
+_SCHEMA.fields_by_name['protos'].message_type = _SCHEMA_PROTOSENTRY
+_SCHEMA.fields_by_name['descriptors'].message_type = _SCHEMA_DESCRIPTORSENTRY
+DESCRIPTOR.message_types_by_name['Schema'] = _SCHEMA
+DESCRIPTOR.message_types_by_name['NullMessage'] = _NULLMESSAGE
+
+Schema = _reflection.GeneratedProtocolMessageType('Schema', (_message.Message,), dict(
+
+  ProtosEntry = _reflection.GeneratedProtocolMessageType('ProtosEntry', (_message.Message,), dict(
+    DESCRIPTOR = _SCHEMA_PROTOSENTRY,
+    __module__ = 'schema_pb2'
+    # @@protoc_insertion_point(class_scope:schema.Schema.ProtosEntry)
+    ))
+  ,
+
+  DescriptorsEntry = _reflection.GeneratedProtocolMessageType('DescriptorsEntry', (_message.Message,), dict(
+    DESCRIPTOR = _SCHEMA_DESCRIPTORSENTRY,
+    __module__ = 'schema_pb2'
+    # @@protoc_insertion_point(class_scope:schema.Schema.DescriptorsEntry)
+    ))
+  ,
+  DESCRIPTOR = _SCHEMA,
+  __module__ = 'schema_pb2'
+  # @@protoc_insertion_point(class_scope:schema.Schema)
+  ))
+_sym_db.RegisterMessage(Schema)
+_sym_db.RegisterMessage(Schema.ProtosEntry)
+_sym_db.RegisterMessage(Schema.DescriptorsEntry)
+
+NullMessage = _reflection.GeneratedProtocolMessageType('NullMessage', (_message.Message,), dict(
+  DESCRIPTOR = _NULLMESSAGE,
+  __module__ = 'schema_pb2'
+  # @@protoc_insertion_point(class_scope:schema.NullMessage)
+  ))
+_sym_db.RegisterMessage(NullMessage)
+
+
+_SCHEMA_PROTOSENTRY.has_options = True
+_SCHEMA_PROTOSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
+_SCHEMA_DESCRIPTORSENTRY.has_options = True
+_SCHEMA_DESCRIPTORSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+
+
+class SchemaServiceStub(object):
+  """Schema services
+  """
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.GetSchema = channel.unary_unary(
+        '/schema.SchemaService/GetSchema',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=Schema.FromString,
+        )
+
+
+class SchemaServiceServicer(object):
+  """Schema services
+  """
+
+  def GetSchema(self, request, context):
+    """Return active grpc schemas
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_SchemaServiceServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'GetSchema': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSchema,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=Schema.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'schema.SchemaService', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaSchemaServiceServicer(object):
+  """Schema services
+  """
+  def GetSchema(self, request, context):
+    """Return active grpc schemas
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaSchemaServiceStub(object):
+  """Schema services
+  """
+  def GetSchema(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Return active grpc schemas
+    """
+    raise NotImplementedError()
+  GetSchema.future = None
+
+
+def beta_create_SchemaService_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('schema.SchemaService', 'GetSchema'): NullMessage.FromString,
+  }
+  response_serializers = {
+    ('schema.SchemaService', 'GetSchema'): Schema.SerializeToString,
+  }
+  method_implementations = {
+    ('schema.SchemaService', 'GetSchema'): face_utilities.unary_unary_inline(servicer.GetSchema),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_SchemaService_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('schema.SchemaService', 'GetSchema'): NullMessage.SerializeToString,
+  }
+  response_deserializers = {
+    ('schema.SchemaService', 'GetSchema'): Schema.FromString,
+  }
+  cardinalities = {
+    'GetSchema': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'schema.SchemaService', cardinalities, options=stub_options)
+# @@protoc_insertion_point(module_scope)
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/ofagent/protos/third_party/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to ofagent/protos/third_party/__init__.py
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/ofagent/protos/third_party/google/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to ofagent/protos/third_party/google/__init__.py
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/ofagent/protos/third_party/google/api/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to ofagent/protos/third_party/google/api/__init__.py
diff --git a/ofagent/protos/third_party/google/api/annotations_pb2.py b/ofagent/protos/third_party/google/api/annotations_pb2.py
new file mode 100644
index 0000000..2121854
--- /dev/null
+++ b/ofagent/protos/third_party/google/api/annotations_pb2.py
@@ -0,0 +1,51 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: third_party/google/api/annotations.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.api import http_pb2 as google_dot_api_dot_http__pb2
+from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='third_party/google/api/annotations.proto',
+  package='google.api',
+  syntax='proto3',
+  serialized_pb=_b('\n(third_party/google/api/annotations.proto\x12\ngoogle.api\x1a\x15google/api/http.proto\x1a google/protobuf/descriptor.proto:E\n\x04http\x12\x1e.google.protobuf.MethodOptions\x18\xb0\xca\xbc\" \x01(\x0b\x32\x14.google.api.HttpRuleB$\n\x0e\x63om.google.apiB\x10\x41nnotationsProtoP\x01\x62\x06proto3')
+  ,
+  dependencies=[google_dot_api_dot_http__pb2.DESCRIPTOR,google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+HTTP_FIELD_NUMBER = 72295728
+http = _descriptor.FieldDescriptor(
+  name='http', full_name='google.api.http', index=0,
+  number=72295728, type=11, cpp_type=10, label=1,
+  has_default_value=False, default_value=None,
+  message_type=None, enum_type=None, containing_type=None,
+  is_extension=True, extension_scope=None,
+  options=None)
+
+DESCRIPTOR.extensions_by_name['http'] = http
+
+http.message_type = google_dot_api_dot_http__pb2._HTTPRULE
+google_dot_protobuf_dot_descriptor__pb2.MethodOptions.RegisterExtension(http)
+
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\020AnnotationsProtoP\001'))
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+# @@protoc_insertion_point(module_scope)
diff --git a/ofagent/protos/third_party/google/api/http_pb2.py b/ofagent/protos/third_party/google/api/http_pb2.py
new file mode 100644
index 0000000..b3abb3f
--- /dev/null
+++ b/ofagent/protos/third_party/google/api/http_pb2.py
@@ -0,0 +1,194 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: third_party/google/api/http.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='third_party/google/api/http.proto',
+  package='google.api',
+  syntax='proto3',
+  serialized_pb=_b('\n!third_party/google/api/http.proto\x12\ngoogle.api\"\xd8\x01\n\x08HttpRule\x12\r\n\x03get\x18\x02 \x01(\tH\x00\x12\r\n\x03put\x18\x03 \x01(\tH\x00\x12\x0e\n\x04post\x18\x04 \x01(\tH\x00\x12\x10\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00\x12\x0f\n\x05patch\x18\x06 \x01(\tH\x00\x12/\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x31\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleB\t\n\x07pattern\"/\n\x11\x43ustomHttpPattern\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\tB\x1d\n\x0e\x63om.google.apiB\tHttpProtoP\x01\x62\x06proto3')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+
+_HTTPRULE = _descriptor.Descriptor(
+  name='HttpRule',
+  full_name='google.api.HttpRule',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='get', full_name='google.api.HttpRule.get', index=0,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='put', full_name='google.api.HttpRule.put', index=1,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='post', full_name='google.api.HttpRule.post', index=2,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='delete', full_name='google.api.HttpRule.delete', index=3,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='patch', full_name='google.api.HttpRule.patch', index=4,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='custom', full_name='google.api.HttpRule.custom', index=5,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='body', full_name='google.api.HttpRule.body', index=6,
+      number=7, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='additional_bindings', full_name='google.api.HttpRule.additional_bindings', index=7,
+      number=11, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='pattern', full_name='google.api.HttpRule.pattern',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=50,
+  serialized_end=266,
+)
+
+
+_CUSTOMHTTPPATTERN = _descriptor.Descriptor(
+  name='CustomHttpPattern',
+  full_name='google.api.CustomHttpPattern',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='kind', full_name='google.api.CustomHttpPattern.kind', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='path', full_name='google.api.CustomHttpPattern.path', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=268,
+  serialized_end=315,
+)
+
+_HTTPRULE.fields_by_name['custom'].message_type = _CUSTOMHTTPPATTERN
+_HTTPRULE.fields_by_name['additional_bindings'].message_type = _HTTPRULE
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['get'])
+_HTTPRULE.fields_by_name['get'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['put'])
+_HTTPRULE.fields_by_name['put'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['post'])
+_HTTPRULE.fields_by_name['post'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['delete'])
+_HTTPRULE.fields_by_name['delete'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['patch'])
+_HTTPRULE.fields_by_name['patch'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+_HTTPRULE.oneofs_by_name['pattern'].fields.append(
+  _HTTPRULE.fields_by_name['custom'])
+_HTTPRULE.fields_by_name['custom'].containing_oneof = _HTTPRULE.oneofs_by_name['pattern']
+DESCRIPTOR.message_types_by_name['HttpRule'] = _HTTPRULE
+DESCRIPTOR.message_types_by_name['CustomHttpPattern'] = _CUSTOMHTTPPATTERN
+
+HttpRule = _reflection.GeneratedProtocolMessageType('HttpRule', (_message.Message,), dict(
+  DESCRIPTOR = _HTTPRULE,
+  __module__ = 'third_party.google.api.http_pb2'
+  # @@protoc_insertion_point(class_scope:google.api.HttpRule)
+  ))
+_sym_db.RegisterMessage(HttpRule)
+
+CustomHttpPattern = _reflection.GeneratedProtocolMessageType('CustomHttpPattern', (_message.Message,), dict(
+  DESCRIPTOR = _CUSTOMHTTPPATTERN,
+  __module__ = 'third_party.google.api.http_pb2'
+  # @@protoc_insertion_point(class_scope:google.api.CustomHttpPattern)
+  ))
+_sym_db.RegisterMessage(CustomHttpPattern)
+
+
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\016com.google.apiB\tHttpProtoP\001'))
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+# @@protoc_insertion_point(module_scope)
diff --git a/ofagent/protos/voltha_pb2.py b/ofagent/protos/voltha_pb2.py
new file mode 100644
index 0000000..d800877
--- /dev/null
+++ b/ofagent/protos/voltha_pb2.py
@@ -0,0 +1,1759 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: voltha.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
+import openflow_13_pb2 as openflow__13__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='voltha.proto',
+  package='voltha',
+  syntax='proto3',
+  serialized_pb=_b('\n\x0cvoltha.proto\x12\x06voltha\x1a\x1cgoogle/api/annotations.proto\x1a\x11openflow_13.proto\"\r\n\x0bNullMessage\"v\n\x0cHealthStatus\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .voltha.HealthStatus.HealthState\"5\n\x0bHealthState\x12\x0b\n\x07HEALTHY\x10\x00\x12\x0e\n\nOVERLOADED\x10\x01\x12\t\n\x05\x44YING\x10\x02\"q\n\x07\x41\x64\x64ress\x12\n\n\x02id\x18\x07 \x01(\t\x12\x0e\n\x06street\x18\x01 \x01(\t\x12\x0f\n\x07street2\x18\x02 \x01(\t\x12\x0f\n\x07street3\x18\x03 \x01(\t\x12\x0c\n\x04\x63ity\x18\x04 \x01(\t\x12\r\n\x05state\x18\x05 \x01(\t\x12\x0b\n\x03zip\x18\x06 \x01(\r\"/\n\tAddresses\x12\"\n\taddresses\x18\x01 \x03(\x0b\x32\x0f.voltha.Address\"\x9f\x01\n\x0bMoreComplex\x12$\n\x06health\x18\x01 \x01(\x0b\x32\x14.voltha.HealthStatus\x12\x13\n\x0b\x66oo_counter\x18\x02 \x01(\x05\x12\x0c\n\x04name\x18\x03 \x01(\t\x12%\n\x08\x63hildren\x18\x04 \x03(\x0b\x32\x13.voltha.MoreComplex\x12 \n\x07\x61\x64\x64ress\x18\x05 \x01(\x0b\x32\x0f.voltha.Address\"\x10\n\x02ID\x12\n\n\x02id\x18\x01 \x01(\t\"\x18\n\nSubscriber\x12\n\n\x02id\x18\x01 \x01(\t\"0\n\x0bSubscribers\x12!\n\x05items\x18\x01 \x03(\x0b\x32\x12.voltha.Subscriber\"U\n\rLogicalDevice\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_desc\"6\n\x0eLogicalDevices\x12$\n\x05items\x18\x01 \x03(\x0b\x32\x15.voltha.LogicalDevice\"4\n\x0cLogicalPorts\x12$\n\x05items\x18\x01 \x03(\x0b\x32\x15.openflow_13.ofp_port\"\x97\x01\n\x14LogicalDeviceDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_desc\x12\x39\n\x0fswitch_features\x18\x04 \x01(\x0b\x32 .openflow_13.ofp_switch_features\"J\n\x0f\x46lowTableUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12+\n\x08\x66low_mod\x18\x02 \x01(\x0b\x32\x19.openflow_13.ofp_flow_mod\"3\n\x05\x46lows\x12*\n\x05items\x18\x01 \x03(\x0b\x32\x1b.openflow_13.ofp_flow_stats2^\n\rHealthService\x12M\n\x0fGetHealthStatus\x12\x13.voltha.NullMessage\x1a\x14.voltha.HealthStatus\"\x0f\x82\xd3\xe4\x93\x02\t\x12\x07/health2\xff\x06\n\x12VolthaLogicalLayer\x12Y\n\x12ListLogicalDevices\x12\x13.voltha.NullMessage\x1a\x16.voltha.LogicalDevices\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/local/devices\x12Y\n\x10GetLogicalDevice\x12\n.voltha.ID\x1a\x1c.voltha.LogicalDeviceDetails\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/local/devices/{id}\x12]\n\x16ListLogicalDevicePorts\x12\n.voltha.ID\x1a\x14.voltha.LogicalPorts\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/local/devices/{id}/ports\x12\x65\n\x0fUpdateFlowTable\x12\x17.voltha.FlowTableUpdate\x1a\x13.voltha.NullMessage\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/local/devices/{id}/flows:\x01*\x12O\n\x0fListDeviceFlows\x12\n.voltha.ID\x1a\r.voltha.Flows\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/local/devices/{id}/flows\x12S\n\x10\x43reateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x17\x82\xd3\xe4\x93\x02\x11\"\x0c/subscribers:\x01*\x12J\n\rGetSubscriber\x12\n.voltha.ID\x1a\x12.voltha.Subscriber\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/subscribers/{id}\x12X\n\x10UpdateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x1c\x82\xd3\xe4\x93\x02\x16\x32\x11/subscribers/{id}:\x01*\x12N\n\x10\x44\x65leteSubscriber\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x19\x82\xd3\xe4\x93\x02\x13*\x11/subscribers/{id}\x12Q\n\x0fListSubscribers\x12\x13.voltha.NullMessage\x1a\x13.voltha.Subscribers\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/subscribers2\x85\x03\n\x0e\x45xampleService\x12H\n\rCreateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x15\x82\xd3\xe4\x93\x02\x0f\"\n/addresses:\x01*\x12\x42\n\nGetAddress\x12\n.voltha.ID\x1a\x0f.voltha.Address\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/addresses/{id}\x12M\n\rUpdateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x1a\x82\xd3\xe4\x93\x02\x14\x32\x0f/addresses/{id}:\x01*\x12I\n\rDeleteAddress\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x17\x82\xd3\xe4\x93\x02\x11*\x0f/addresses/{id}\x12K\n\rListAddresses\x12\x13.voltha.NullMessage\x1a\x11.voltha.Addresses\"\x12\x82\xd3\xe4\x93\x02\x0c\x12\n/addresses2\xfd\x04\n\x08OpenFlow\x12<\n\x08GetHello\x12\x16.openflow_13.ofp_hello\x1a\x16.openflow_13.ofp_hello\"\x00\x12\x41\n\x0b\x45\x63hoRequest\x12\x17.openflow_13.ofp_header\x1a\x17.openflow_13.ofp_header\"\x00\x12\x63\n\x13\x45xperimenterRequest\x12$.openflow_13.ofp_experimenter_header\x1a$.openflow_13.ofp_experimenter_header\"\x00\x12P\n\x11GetSwitchFeatures\x12\x17.openflow_13.ofp_header\x1a .openflow_13.ofp_switch_features\"\x00\x12L\n\x0fGetSwitchConfig\x12\x17.openflow_13.ofp_header\x1a\x1e.openflow_13.ofp_switch_config\"\x00\x12\x46\n\tSetConfig\x12\x1e.openflow_13.ofp_switch_config\x1a\x17.openflow_13.ofp_header\"\x00\x12R\n\x17ReceivePacketInMessages\x12\x17.openflow_13.ofp_header\x1a\x1a.openflow_13.ofp_packet_in\"\x00\x30\x01\x12O\n\x15SendPacketOutMessages\x12\x1b.openflow_13.ofp_packet_out\x1a\x17.openflow_13.ofp_header\"\x00\x42<\n\x13org.opencord.volthaB\x0cVolthaProtos\xaa\x02\x16Opencord.Voltha.Volthab\x06proto3')
+  ,
+  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,openflow__13__pb2.DESCRIPTOR,])
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+
+_HEALTHSTATUS_HEALTHSTATE = _descriptor.EnumDescriptor(
+  name='HealthState',
+  full_name='voltha.HealthStatus.HealthState',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='HEALTHY', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OVERLOADED', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DYING', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=153,
+  serialized_end=206,
+)
+_sym_db.RegisterEnumDescriptor(_HEALTHSTATUS_HEALTHSTATE)
+
+
+_NULLMESSAGE = _descriptor.Descriptor(
+  name='NullMessage',
+  full_name='voltha.NullMessage',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=73,
+  serialized_end=86,
+)
+
+
+_HEALTHSTATUS = _descriptor.Descriptor(
+  name='HealthStatus',
+  full_name='voltha.HealthStatus',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='state', full_name='voltha.HealthStatus.state', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _HEALTHSTATUS_HEALTHSTATE,
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=88,
+  serialized_end=206,
+)
+
+
+_ADDRESS = _descriptor.Descriptor(
+  name='Address',
+  full_name='voltha.Address',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.Address.id', index=0,
+      number=7, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='street', full_name='voltha.Address.street', index=1,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='street2', full_name='voltha.Address.street2', index=2,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='street3', full_name='voltha.Address.street3', index=3,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='city', full_name='voltha.Address.city', index=4,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='state', full_name='voltha.Address.state', index=5,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='zip', full_name='voltha.Address.zip', index=6,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=208,
+  serialized_end=321,
+)
+
+
+_ADDRESSES = _descriptor.Descriptor(
+  name='Addresses',
+  full_name='voltha.Addresses',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='addresses', full_name='voltha.Addresses.addresses', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=323,
+  serialized_end=370,
+)
+
+
+_MORECOMPLEX = _descriptor.Descriptor(
+  name='MoreComplex',
+  full_name='voltha.MoreComplex',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='health', full_name='voltha.MoreComplex.health', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='foo_counter', full_name='voltha.MoreComplex.foo_counter', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='voltha.MoreComplex.name', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='children', full_name='voltha.MoreComplex.children', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='address', full_name='voltha.MoreComplex.address', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=373,
+  serialized_end=532,
+)
+
+
+_ID = _descriptor.Descriptor(
+  name='ID',
+  full_name='voltha.ID',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.ID.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=534,
+  serialized_end=550,
+)
+
+
+_SUBSCRIBER = _descriptor.Descriptor(
+  name='Subscriber',
+  full_name='voltha.Subscriber',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.Subscriber.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=552,
+  serialized_end=576,
+)
+
+
+_SUBSCRIBERS = _descriptor.Descriptor(
+  name='Subscribers',
+  full_name='voltha.Subscribers',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.Subscribers.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=578,
+  serialized_end=626,
+)
+
+
+_LOGICALDEVICE = _descriptor.Descriptor(
+  name='LogicalDevice',
+  full_name='voltha.LogicalDevice',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.LogicalDevice.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='voltha.LogicalDevice.datapath_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='voltha.LogicalDevice.desc', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=628,
+  serialized_end=713,
+)
+
+
+_LOGICALDEVICES = _descriptor.Descriptor(
+  name='LogicalDevices',
+  full_name='voltha.LogicalDevices',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.LogicalDevices.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=715,
+  serialized_end=769,
+)
+
+
+_LOGICALPORTS = _descriptor.Descriptor(
+  name='LogicalPorts',
+  full_name='voltha.LogicalPorts',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.LogicalPorts.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=771,
+  serialized_end=823,
+)
+
+
+_LOGICALDEVICEDETAILS = _descriptor.Descriptor(
+  name='LogicalDeviceDetails',
+  full_name='voltha.LogicalDeviceDetails',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.LogicalDeviceDetails.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='voltha.LogicalDeviceDetails.datapath_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='voltha.LogicalDeviceDetails.desc', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='switch_features', full_name='voltha.LogicalDeviceDetails.switch_features', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=826,
+  serialized_end=977,
+)
+
+
+_FLOWTABLEUPDATE = _descriptor.Descriptor(
+  name='FlowTableUpdate',
+  full_name='voltha.FlowTableUpdate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.FlowTableUpdate.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_mod', full_name='voltha.FlowTableUpdate.flow_mod', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=979,
+  serialized_end=1053,
+)
+
+
+_FLOWS = _descriptor.Descriptor(
+  name='Flows',
+  full_name='voltha.Flows',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.Flows.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1055,
+  serialized_end=1106,
+)
+
+_HEALTHSTATUS.fields_by_name['state'].enum_type = _HEALTHSTATUS_HEALTHSTATE
+_HEALTHSTATUS_HEALTHSTATE.containing_type = _HEALTHSTATUS
+_ADDRESSES.fields_by_name['addresses'].message_type = _ADDRESS
+_MORECOMPLEX.fields_by_name['health'].message_type = _HEALTHSTATUS
+_MORECOMPLEX.fields_by_name['children'].message_type = _MORECOMPLEX
+_MORECOMPLEX.fields_by_name['address'].message_type = _ADDRESS
+_SUBSCRIBERS.fields_by_name['items'].message_type = _SUBSCRIBER
+_LOGICALDEVICE.fields_by_name['desc'].message_type = openflow__13__pb2._OFP_DESC
+_LOGICALDEVICES.fields_by_name['items'].message_type = _LOGICALDEVICE
+_LOGICALPORTS.fields_by_name['items'].message_type = openflow__13__pb2._OFP_PORT
+_LOGICALDEVICEDETAILS.fields_by_name['desc'].message_type = openflow__13__pb2._OFP_DESC
+_LOGICALDEVICEDETAILS.fields_by_name['switch_features'].message_type = openflow__13__pb2._OFP_SWITCH_FEATURES
+_FLOWTABLEUPDATE.fields_by_name['flow_mod'].message_type = openflow__13__pb2._OFP_FLOW_MOD
+_FLOWS.fields_by_name['items'].message_type = openflow__13__pb2._OFP_FLOW_STATS
+DESCRIPTOR.message_types_by_name['NullMessage'] = _NULLMESSAGE
+DESCRIPTOR.message_types_by_name['HealthStatus'] = _HEALTHSTATUS
+DESCRIPTOR.message_types_by_name['Address'] = _ADDRESS
+DESCRIPTOR.message_types_by_name['Addresses'] = _ADDRESSES
+DESCRIPTOR.message_types_by_name['MoreComplex'] = _MORECOMPLEX
+DESCRIPTOR.message_types_by_name['ID'] = _ID
+DESCRIPTOR.message_types_by_name['Subscriber'] = _SUBSCRIBER
+DESCRIPTOR.message_types_by_name['Subscribers'] = _SUBSCRIBERS
+DESCRIPTOR.message_types_by_name['LogicalDevice'] = _LOGICALDEVICE
+DESCRIPTOR.message_types_by_name['LogicalDevices'] = _LOGICALDEVICES
+DESCRIPTOR.message_types_by_name['LogicalPorts'] = _LOGICALPORTS
+DESCRIPTOR.message_types_by_name['LogicalDeviceDetails'] = _LOGICALDEVICEDETAILS
+DESCRIPTOR.message_types_by_name['FlowTableUpdate'] = _FLOWTABLEUPDATE
+DESCRIPTOR.message_types_by_name['Flows'] = _FLOWS
+
+NullMessage = _reflection.GeneratedProtocolMessageType('NullMessage', (_message.Message,), dict(
+  DESCRIPTOR = _NULLMESSAGE,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.NullMessage)
+  ))
+_sym_db.RegisterMessage(NullMessage)
+
+HealthStatus = _reflection.GeneratedProtocolMessageType('HealthStatus', (_message.Message,), dict(
+  DESCRIPTOR = _HEALTHSTATUS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.HealthStatus)
+  ))
+_sym_db.RegisterMessage(HealthStatus)
+
+Address = _reflection.GeneratedProtocolMessageType('Address', (_message.Message,), dict(
+  DESCRIPTOR = _ADDRESS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Address)
+  ))
+_sym_db.RegisterMessage(Address)
+
+Addresses = _reflection.GeneratedProtocolMessageType('Addresses', (_message.Message,), dict(
+  DESCRIPTOR = _ADDRESSES,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Addresses)
+  ))
+_sym_db.RegisterMessage(Addresses)
+
+MoreComplex = _reflection.GeneratedProtocolMessageType('MoreComplex', (_message.Message,), dict(
+  DESCRIPTOR = _MORECOMPLEX,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.MoreComplex)
+  ))
+_sym_db.RegisterMessage(MoreComplex)
+
+ID = _reflection.GeneratedProtocolMessageType('ID', (_message.Message,), dict(
+  DESCRIPTOR = _ID,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.ID)
+  ))
+_sym_db.RegisterMessage(ID)
+
+Subscriber = _reflection.GeneratedProtocolMessageType('Subscriber', (_message.Message,), dict(
+  DESCRIPTOR = _SUBSCRIBER,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Subscriber)
+  ))
+_sym_db.RegisterMessage(Subscriber)
+
+Subscribers = _reflection.GeneratedProtocolMessageType('Subscribers', (_message.Message,), dict(
+  DESCRIPTOR = _SUBSCRIBERS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Subscribers)
+  ))
+_sym_db.RegisterMessage(Subscribers)
+
+LogicalDevice = _reflection.GeneratedProtocolMessageType('LogicalDevice', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICE,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDevice)
+  ))
+_sym_db.RegisterMessage(LogicalDevice)
+
+LogicalDevices = _reflection.GeneratedProtocolMessageType('LogicalDevices', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICES,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDevices)
+  ))
+_sym_db.RegisterMessage(LogicalDevices)
+
+LogicalPorts = _reflection.GeneratedProtocolMessageType('LogicalPorts', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALPORTS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalPorts)
+  ))
+_sym_db.RegisterMessage(LogicalPorts)
+
+LogicalDeviceDetails = _reflection.GeneratedProtocolMessageType('LogicalDeviceDetails', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICEDETAILS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDeviceDetails)
+  ))
+_sym_db.RegisterMessage(LogicalDeviceDetails)
+
+FlowTableUpdate = _reflection.GeneratedProtocolMessageType('FlowTableUpdate', (_message.Message,), dict(
+  DESCRIPTOR = _FLOWTABLEUPDATE,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.FlowTableUpdate)
+  ))
+_sym_db.RegisterMessage(FlowTableUpdate)
+
+Flows = _reflection.GeneratedProtocolMessageType('Flows', (_message.Message,), dict(
+  DESCRIPTOR = _FLOWS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Flows)
+  ))
+_sym_db.RegisterMessage(Flows)
+
+
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023org.opencord.volthaB\014VolthaProtos\252\002\026Opencord.Voltha.Voltha'))
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+
+
+class HealthServiceStub(object):
+  """Health related services
+  """
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.GetHealthStatus = channel.unary_unary(
+        '/voltha.HealthService/GetHealthStatus',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=HealthStatus.FromString,
+        )
+
+
+class HealthServiceServicer(object):
+  """Health related services
+  """
+
+  def GetHealthStatus(self, request, context):
+    """Return current health status of a Voltha instance
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_HealthServiceServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'GetHealthStatus': grpc.unary_unary_rpc_method_handler(
+          servicer.GetHealthStatus,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=HealthStatus.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'voltha.HealthService', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaHealthServiceServicer(object):
+  """Health related services
+  """
+  def GetHealthStatus(self, request, context):
+    """Return current health status of a Voltha instance
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaHealthServiceStub(object):
+  """Health related services
+  """
+  def GetHealthStatus(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Return current health status of a Voltha instance
+    """
+    raise NotImplementedError()
+  GetHealthStatus.future = None
+
+
+def beta_create_HealthService_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('voltha.HealthService', 'GetHealthStatus'): NullMessage.FromString,
+  }
+  response_serializers = {
+    ('voltha.HealthService', 'GetHealthStatus'): HealthStatus.SerializeToString,
+  }
+  method_implementations = {
+    ('voltha.HealthService', 'GetHealthStatus'): face_utilities.unary_unary_inline(servicer.GetHealthStatus),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_HealthService_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('voltha.HealthService', 'GetHealthStatus'): NullMessage.SerializeToString,
+  }
+  response_deserializers = {
+    ('voltha.HealthService', 'GetHealthStatus'): HealthStatus.FromString,
+  }
+  cardinalities = {
+    'GetHealthStatus': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'voltha.HealthService', cardinalities, options=stub_options)
+
+
+class VolthaLogicalLayerStub(object):
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.ListLogicalDevices = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListLogicalDevices',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=LogicalDevices.FromString,
+        )
+    self.GetLogicalDevice = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/GetLogicalDevice',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=LogicalDeviceDetails.FromString,
+        )
+    self.ListLogicalDevicePorts = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListLogicalDevicePorts',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=LogicalPorts.FromString,
+        )
+    self.UpdateFlowTable = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/UpdateFlowTable',
+        request_serializer=FlowTableUpdate.SerializeToString,
+        response_deserializer=NullMessage.FromString,
+        )
+    self.ListDeviceFlows = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListDeviceFlows',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=Flows.FromString,
+        )
+    self.CreateSubscriber = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/CreateSubscriber',
+        request_serializer=Subscriber.SerializeToString,
+        response_deserializer=Subscriber.FromString,
+        )
+    self.GetSubscriber = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/GetSubscriber',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=Subscriber.FromString,
+        )
+    self.UpdateSubscriber = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/UpdateSubscriber',
+        request_serializer=Subscriber.SerializeToString,
+        response_deserializer=Subscriber.FromString,
+        )
+    self.DeleteSubscriber = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/DeleteSubscriber',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=NullMessage.FromString,
+        )
+    self.ListSubscribers = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListSubscribers',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=Subscribers.FromString,
+        )
+
+
+class VolthaLogicalLayerServicer(object):
+
+  def ListLogicalDevices(self, request, context):
+    """List logical devices owned by this Voltha instance
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetLogicalDevice(self, request, context):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ListLogicalDevicePorts(self, request, context):
+    """List ports of a logical device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def UpdateFlowTable(self, request, context):
+    """Update flow table for device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ListDeviceFlows(self, request, context):
+    """List all flows of a logical device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def CreateSubscriber(self, request, context):
+    """Create a subscriber record
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetSubscriber(self, request, context):
+    """Return an subscriber by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def UpdateSubscriber(self, request, context):
+    """Update an existing subscriber record by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def DeleteSubscriber(self, request, context):
+    """Delete a subscriber record by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ListSubscribers(self, request, context):
+    """List subscribers
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_VolthaLogicalLayerServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'ListLogicalDevices': grpc.unary_unary_rpc_method_handler(
+          servicer.ListLogicalDevices,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=LogicalDevices.SerializeToString,
+      ),
+      'GetLogicalDevice': grpc.unary_unary_rpc_method_handler(
+          servicer.GetLogicalDevice,
+          request_deserializer=ID.FromString,
+          response_serializer=LogicalDeviceDetails.SerializeToString,
+      ),
+      'ListLogicalDevicePorts': grpc.unary_unary_rpc_method_handler(
+          servicer.ListLogicalDevicePorts,
+          request_deserializer=ID.FromString,
+          response_serializer=LogicalPorts.SerializeToString,
+      ),
+      'UpdateFlowTable': grpc.unary_unary_rpc_method_handler(
+          servicer.UpdateFlowTable,
+          request_deserializer=FlowTableUpdate.FromString,
+          response_serializer=NullMessage.SerializeToString,
+      ),
+      'ListDeviceFlows': grpc.unary_unary_rpc_method_handler(
+          servicer.ListDeviceFlows,
+          request_deserializer=ID.FromString,
+          response_serializer=Flows.SerializeToString,
+      ),
+      'CreateSubscriber': grpc.unary_unary_rpc_method_handler(
+          servicer.CreateSubscriber,
+          request_deserializer=Subscriber.FromString,
+          response_serializer=Subscriber.SerializeToString,
+      ),
+      'GetSubscriber': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSubscriber,
+          request_deserializer=ID.FromString,
+          response_serializer=Subscriber.SerializeToString,
+      ),
+      'UpdateSubscriber': grpc.unary_unary_rpc_method_handler(
+          servicer.UpdateSubscriber,
+          request_deserializer=Subscriber.FromString,
+          response_serializer=Subscriber.SerializeToString,
+      ),
+      'DeleteSubscriber': grpc.unary_unary_rpc_method_handler(
+          servicer.DeleteSubscriber,
+          request_deserializer=ID.FromString,
+          response_serializer=NullMessage.SerializeToString,
+      ),
+      'ListSubscribers': grpc.unary_unary_rpc_method_handler(
+          servicer.ListSubscribers,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=Subscribers.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'voltha.VolthaLogicalLayer', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaVolthaLogicalLayerServicer(object):
+  def ListLogicalDevices(self, request, context):
+    """List logical devices owned by this Voltha instance
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetLogicalDevice(self, request, context):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListLogicalDevicePorts(self, request, context):
+    """List ports of a logical device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def UpdateFlowTable(self, request, context):
+    """Update flow table for device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListDeviceFlows(self, request, context):
+    """List all flows of a logical device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def CreateSubscriber(self, request, context):
+    """Create a subscriber record
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetSubscriber(self, request, context):
+    """Return an subscriber by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def UpdateSubscriber(self, request, context):
+    """Update an existing subscriber record by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def DeleteSubscriber(self, request, context):
+    """Delete a subscriber record by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListSubscribers(self, request, context):
+    """List subscribers
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaVolthaLogicalLayerStub(object):
+  def ListLogicalDevices(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List logical devices owned by this Voltha instance
+    """
+    raise NotImplementedError()
+  ListLogicalDevices.future = None
+  def GetLogicalDevice(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    raise NotImplementedError()
+  GetLogicalDevice.future = None
+  def ListLogicalDevicePorts(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List ports of a logical device
+    """
+    raise NotImplementedError()
+  ListLogicalDevicePorts.future = None
+  def UpdateFlowTable(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Update flow table for device
+    """
+    raise NotImplementedError()
+  UpdateFlowTable.future = None
+  def ListDeviceFlows(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List all flows of a logical device
+    """
+    raise NotImplementedError()
+  ListDeviceFlows.future = None
+  def CreateSubscriber(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Create a subscriber record
+    """
+    raise NotImplementedError()
+  CreateSubscriber.future = None
+  def GetSubscriber(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Return an subscriber by ID
+    """
+    raise NotImplementedError()
+  GetSubscriber.future = None
+  def UpdateSubscriber(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Update an existing subscriber record by ID
+    """
+    raise NotImplementedError()
+  UpdateSubscriber.future = None
+  def DeleteSubscriber(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Delete a subscriber record by ID
+    """
+    raise NotImplementedError()
+  DeleteSubscriber.future = None
+  def ListSubscribers(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List subscribers
+    """
+    raise NotImplementedError()
+  ListSubscribers.future = None
+
+
+def beta_create_VolthaLogicalLayer_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): FlowTableUpdate.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.FromString,
+  }
+  response_serializers = {
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): LogicalDeviceDetails.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): Flows.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): LogicalPorts.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): LogicalDevices.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): Subscribers.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.SerializeToString,
+  }
+  method_implementations = {
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): face_utilities.unary_unary_inline(servicer.CreateSubscriber),
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): face_utilities.unary_unary_inline(servicer.DeleteSubscriber),
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): face_utilities.unary_unary_inline(servicer.GetLogicalDevice),
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): face_utilities.unary_unary_inline(servicer.GetSubscriber),
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): face_utilities.unary_unary_inline(servicer.ListDeviceFlows),
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): face_utilities.unary_unary_inline(servicer.ListLogicalDevicePorts),
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): face_utilities.unary_unary_inline(servicer.ListLogicalDevices),
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): face_utilities.unary_unary_inline(servicer.ListSubscribers),
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): face_utilities.unary_unary_inline(servicer.UpdateFlowTable),
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): face_utilities.unary_unary_inline(servicer.UpdateSubscriber),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_VolthaLogicalLayer_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): FlowTableUpdate.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.SerializeToString,
+  }
+  response_deserializers = {
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): LogicalDeviceDetails.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): Flows.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): LogicalPorts.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): LogicalDevices.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): Subscribers.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.FromString,
+  }
+  cardinalities = {
+    'CreateSubscriber': cardinality.Cardinality.UNARY_UNARY,
+    'DeleteSubscriber': cardinality.Cardinality.UNARY_UNARY,
+    'GetLogicalDevice': cardinality.Cardinality.UNARY_UNARY,
+    'GetSubscriber': cardinality.Cardinality.UNARY_UNARY,
+    'ListDeviceFlows': cardinality.Cardinality.UNARY_UNARY,
+    'ListLogicalDevicePorts': cardinality.Cardinality.UNARY_UNARY,
+    'ListLogicalDevices': cardinality.Cardinality.UNARY_UNARY,
+    'ListSubscribers': cardinality.Cardinality.UNARY_UNARY,
+    'UpdateFlowTable': cardinality.Cardinality.UNARY_UNARY,
+    'UpdateSubscriber': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'voltha.VolthaLogicalLayer', cardinalities, options=stub_options)
+
+
+class ExampleServiceStub(object):
+  """(placeholder) This is an example service
+  """
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.CreateAddress = channel.unary_unary(
+        '/voltha.ExampleService/CreateAddress',
+        request_serializer=Address.SerializeToString,
+        response_deserializer=Address.FromString,
+        )
+    self.GetAddress = channel.unary_unary(
+        '/voltha.ExampleService/GetAddress',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=Address.FromString,
+        )
+    self.UpdateAddress = channel.unary_unary(
+        '/voltha.ExampleService/UpdateAddress',
+        request_serializer=Address.SerializeToString,
+        response_deserializer=Address.FromString,
+        )
+    self.DeleteAddress = channel.unary_unary(
+        '/voltha.ExampleService/DeleteAddress',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=NullMessage.FromString,
+        )
+    self.ListAddresses = channel.unary_unary(
+        '/voltha.ExampleService/ListAddresses',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=Addresses.FromString,
+        )
+
+
+class ExampleServiceServicer(object):
+  """(placeholder) This is an example service
+  """
+
+  def CreateAddress(self, request, context):
+    """Create an address record
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetAddress(self, request, context):
+    """Return an address by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def UpdateAddress(self, request, context):
+    """Update an existing address record by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def DeleteAddress(self, request, context):
+    """Delete an address record by ID
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ListAddresses(self, request, context):
+    """Return a bit more complex objects
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_ExampleServiceServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'CreateAddress': grpc.unary_unary_rpc_method_handler(
+          servicer.CreateAddress,
+          request_deserializer=Address.FromString,
+          response_serializer=Address.SerializeToString,
+      ),
+      'GetAddress': grpc.unary_unary_rpc_method_handler(
+          servicer.GetAddress,
+          request_deserializer=ID.FromString,
+          response_serializer=Address.SerializeToString,
+      ),
+      'UpdateAddress': grpc.unary_unary_rpc_method_handler(
+          servicer.UpdateAddress,
+          request_deserializer=Address.FromString,
+          response_serializer=Address.SerializeToString,
+      ),
+      'DeleteAddress': grpc.unary_unary_rpc_method_handler(
+          servicer.DeleteAddress,
+          request_deserializer=ID.FromString,
+          response_serializer=NullMessage.SerializeToString,
+      ),
+      'ListAddresses': grpc.unary_unary_rpc_method_handler(
+          servicer.ListAddresses,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=Addresses.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'voltha.ExampleService', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaExampleServiceServicer(object):
+  """(placeholder) This is an example service
+  """
+  def CreateAddress(self, request, context):
+    """Create an address record
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetAddress(self, request, context):
+    """Return an address by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def UpdateAddress(self, request, context):
+    """Update an existing address record by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def DeleteAddress(self, request, context):
+    """Delete an address record by ID
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListAddresses(self, request, context):
+    """Return a bit more complex objects
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaExampleServiceStub(object):
+  """(placeholder) This is an example service
+  """
+  def CreateAddress(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Create an address record
+    """
+    raise NotImplementedError()
+  CreateAddress.future = None
+  def GetAddress(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Return an address by ID
+    """
+    raise NotImplementedError()
+  GetAddress.future = None
+  def UpdateAddress(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Update an existing address record by ID
+    """
+    raise NotImplementedError()
+  UpdateAddress.future = None
+  def DeleteAddress(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Delete an address record by ID
+    """
+    raise NotImplementedError()
+  DeleteAddress.future = None
+  def ListAddresses(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Return a bit more complex objects
+    """
+    raise NotImplementedError()
+  ListAddresses.future = None
+
+
+def beta_create_ExampleService_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('voltha.ExampleService', 'CreateAddress'): Address.FromString,
+    ('voltha.ExampleService', 'DeleteAddress'): ID.FromString,
+    ('voltha.ExampleService', 'GetAddress'): ID.FromString,
+    ('voltha.ExampleService', 'ListAddresses'): NullMessage.FromString,
+    ('voltha.ExampleService', 'UpdateAddress'): Address.FromString,
+  }
+  response_serializers = {
+    ('voltha.ExampleService', 'CreateAddress'): Address.SerializeToString,
+    ('voltha.ExampleService', 'DeleteAddress'): NullMessage.SerializeToString,
+    ('voltha.ExampleService', 'GetAddress'): Address.SerializeToString,
+    ('voltha.ExampleService', 'ListAddresses'): Addresses.SerializeToString,
+    ('voltha.ExampleService', 'UpdateAddress'): Address.SerializeToString,
+  }
+  method_implementations = {
+    ('voltha.ExampleService', 'CreateAddress'): face_utilities.unary_unary_inline(servicer.CreateAddress),
+    ('voltha.ExampleService', 'DeleteAddress'): face_utilities.unary_unary_inline(servicer.DeleteAddress),
+    ('voltha.ExampleService', 'GetAddress'): face_utilities.unary_unary_inline(servicer.GetAddress),
+    ('voltha.ExampleService', 'ListAddresses'): face_utilities.unary_unary_inline(servicer.ListAddresses),
+    ('voltha.ExampleService', 'UpdateAddress'): face_utilities.unary_unary_inline(servicer.UpdateAddress),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_ExampleService_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('voltha.ExampleService', 'CreateAddress'): Address.SerializeToString,
+    ('voltha.ExampleService', 'DeleteAddress'): ID.SerializeToString,
+    ('voltha.ExampleService', 'GetAddress'): ID.SerializeToString,
+    ('voltha.ExampleService', 'ListAddresses'): NullMessage.SerializeToString,
+    ('voltha.ExampleService', 'UpdateAddress'): Address.SerializeToString,
+  }
+  response_deserializers = {
+    ('voltha.ExampleService', 'CreateAddress'): Address.FromString,
+    ('voltha.ExampleService', 'DeleteAddress'): NullMessage.FromString,
+    ('voltha.ExampleService', 'GetAddress'): Address.FromString,
+    ('voltha.ExampleService', 'ListAddresses'): Addresses.FromString,
+    ('voltha.ExampleService', 'UpdateAddress'): Address.FromString,
+  }
+  cardinalities = {
+    'CreateAddress': cardinality.Cardinality.UNARY_UNARY,
+    'DeleteAddress': cardinality.Cardinality.UNARY_UNARY,
+    'GetAddress': cardinality.Cardinality.UNARY_UNARY,
+    'ListAddresses': cardinality.Cardinality.UNARY_UNARY,
+    'UpdateAddress': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'voltha.ExampleService', cardinalities, options=stub_options)
+
+
+class OpenFlowStub(object):
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.GetHello = channel.unary_unary(
+        '/voltha.OpenFlow/GetHello',
+        request_serializer=openflow__13__pb2.ofp_hello.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_hello.FromString,
+        )
+    self.EchoRequest = channel.unary_unary(
+        '/voltha.OpenFlow/EchoRequest',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+    self.ExperimenterRequest = channel.unary_unary(
+        '/voltha.OpenFlow/ExperimenterRequest',
+        request_serializer=openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_experimenter_header.FromString,
+        )
+    self.GetSwitchFeatures = channel.unary_unary(
+        '/voltha.OpenFlow/GetSwitchFeatures',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_switch_features.FromString,
+        )
+    self.GetSwitchConfig = channel.unary_unary(
+        '/voltha.OpenFlow/GetSwitchConfig',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_switch_config.FromString,
+        )
+    self.SetConfig = channel.unary_unary(
+        '/voltha.OpenFlow/SetConfig',
+        request_serializer=openflow__13__pb2.ofp_switch_config.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+    self.ReceivePacketInMessages = channel.unary_stream(
+        '/voltha.OpenFlow/ReceivePacketInMessages',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_packet_in.FromString,
+        )
+    self.SendPacketOutMessages = channel.unary_unary(
+        '/voltha.OpenFlow/SendPacketOutMessages',
+        request_serializer=openflow__13__pb2.ofp_packet_out.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+
+
+class OpenFlowServicer(object):
+
+  def GetHello(self, request, context):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def EchoRequest(self, request, context):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ExperimenterRequest(self, request, context):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetSwitchFeatures(self, request, context):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetSwitchConfig(self, request, context):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def SetConfig(self, request, context):
+    """
+    Set Config
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ReceivePacketInMessages(self, request, context):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def SendPacketOutMessages(self, request, context):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_OpenFlowServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'GetHello': grpc.unary_unary_rpc_method_handler(
+          servicer.GetHello,
+          request_deserializer=openflow__13__pb2.ofp_hello.FromString,
+          response_serializer=openflow__13__pb2.ofp_hello.SerializeToString,
+      ),
+      'EchoRequest': grpc.unary_unary_rpc_method_handler(
+          servicer.EchoRequest,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+      'ExperimenterRequest': grpc.unary_unary_rpc_method_handler(
+          servicer.ExperimenterRequest,
+          request_deserializer=openflow__13__pb2.ofp_experimenter_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+      ),
+      'GetSwitchFeatures': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSwitchFeatures,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_switch_features.SerializeToString,
+      ),
+      'GetSwitchConfig': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSwitchConfig,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_switch_config.SerializeToString,
+      ),
+      'SetConfig': grpc.unary_unary_rpc_method_handler(
+          servicer.SetConfig,
+          request_deserializer=openflow__13__pb2.ofp_switch_config.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+      'ReceivePacketInMessages': grpc.unary_stream_rpc_method_handler(
+          servicer.ReceivePacketInMessages,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_packet_in.SerializeToString,
+      ),
+      'SendPacketOutMessages': grpc.unary_unary_rpc_method_handler(
+          servicer.SendPacketOutMessages,
+          request_deserializer=openflow__13__pb2.ofp_packet_out.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'voltha.OpenFlow', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaOpenFlowServicer(object):
+  def GetHello(self, request, context):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def EchoRequest(self, request, context):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ExperimenterRequest(self, request, context):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetSwitchFeatures(self, request, context):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetSwitchConfig(self, request, context):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def SetConfig(self, request, context):
+    """
+    Set Config
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ReceivePacketInMessages(self, request, context):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def SendPacketOutMessages(self, request, context):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaOpenFlowStub(object):
+  def GetHello(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetHello.future = None
+  def EchoRequest(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    raise NotImplementedError()
+  EchoRequest.future = None
+  def ExperimenterRequest(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    raise NotImplementedError()
+  ExperimenterRequest.future = None
+  def GetSwitchFeatures(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetSwitchFeatures.future = None
+  def GetSwitchConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetSwitchConfig.future = None
+  def SetConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Set Config
+    TODO http option
+    """
+    raise NotImplementedError()
+  SetConfig.future = None
+  def ReceivePacketInMessages(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    raise NotImplementedError()
+  def SendPacketOutMessages(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    raise NotImplementedError()
+  SendPacketOutMessages.future = None
+
+
+def beta_create_OpenFlow_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.FromString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.FromString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_packet_out.FromString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_switch_config.FromString,
+  }
+  response_serializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_switch_config.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_switch_features.SerializeToString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_packet_in.SerializeToString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_header.SerializeToString,
+  }
+  method_implementations = {
+    ('voltha.OpenFlow', 'EchoRequest'): face_utilities.unary_unary_inline(servicer.EchoRequest),
+    ('voltha.OpenFlow', 'ExperimenterRequest'): face_utilities.unary_unary_inline(servicer.ExperimenterRequest),
+    ('voltha.OpenFlow', 'GetHello'): face_utilities.unary_unary_inline(servicer.GetHello),
+    ('voltha.OpenFlow', 'GetSwitchConfig'): face_utilities.unary_unary_inline(servicer.GetSwitchConfig),
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): face_utilities.unary_unary_inline(servicer.GetSwitchFeatures),
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): face_utilities.unary_stream_inline(servicer.ReceivePacketInMessages),
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): face_utilities.unary_unary_inline(servicer.SendPacketOutMessages),
+    ('voltha.OpenFlow', 'SetConfig'): face_utilities.unary_unary_inline(servicer.SetConfig),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_OpenFlow_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_packet_out.SerializeToString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_switch_config.SerializeToString,
+  }
+  response_deserializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.FromString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.FromString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_switch_config.FromString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_switch_features.FromString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_packet_in.FromString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_header.FromString,
+  }
+  cardinalities = {
+    'EchoRequest': cardinality.Cardinality.UNARY_UNARY,
+    'ExperimenterRequest': cardinality.Cardinality.UNARY_UNARY,
+    'GetHello': cardinality.Cardinality.UNARY_UNARY,
+    'GetSwitchConfig': cardinality.Cardinality.UNARY_UNARY,
+    'GetSwitchFeatures': cardinality.Cardinality.UNARY_UNARY,
+    'ReceivePacketInMessages': cardinality.Cardinality.UNARY_STREAM,
+    'SendPacketOutMessages': cardinality.Cardinality.UNARY_UNARY,
+    'SetConfig': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'voltha.OpenFlow', cardinalities, options=stub_options)
+# @@protoc_insertion_point(module_scope)
diff --git a/voltha/northbound/openflow/agent/utils.py b/ofagent/utils.py
similarity index 100%
rename from voltha/northbound/openflow/agent/utils.py
rename to ofagent/utils.py
diff --git a/tests/itests/docutests/OLT-TESTING.md b/tests/itests/docutests/OLT-TESTING.md
new file mode 100644
index 0000000..8777292
--- /dev/null
+++ b/tests/itests/docutests/OLT-TESTING.md
@@ -0,0 +1,141 @@
+Unpolished notes about running Voltha with olt-oftest
+
+# Step 0 - Run pyofagent code and pass fake_dataplane=1 olt-oftests
+
+The goal was to have a testable base-line that uses the communication
+from the controller down to the openflow loxi+store code of old
+pyofagent.
+
+This test can only be done using the Vagrant dev box (does not work on
+the Mac OS because mininet is involved.
+
+Build and start vagrant, and do these one-time setups:
+
+```
+vagrant up
+vagrant ssh
+cd /voltha
+
+git clone <olt-oftest from bitbucket>
+git clone <oftest from bigswitch>
+git clone <mininet>
+./mininet/tools/install.sh
+pip install pypcap
+pip install <...>
+```
+
+Then, in the same terminal start pyofagent:
+
+```
+cd /voltha
+sudo -s
+. env.sh
+python obsolete/main.py -v \
+    --in-out-iface=eth1 --in-out-stag=4004
+```
+
+In another terminal window, ssh into the same vagrant box and run:
+
+```
+sudo -s
+export PYTHONPATH=/voltha/voltha/adapters/tibit:/voltha/mininet
+ip link add type veth
+ip link add type veth
+ip link add type veth
+ip link add type veth
+ifconfig veth0 up
+ifconfig veth2 up
+ifconfig veth4 up
+ifconfig veth6 up
+./oftest/oft --test-dir=olt-oftest/ \
+    -i 1@veth0 \
+    -i 130@veth2 \
+    -i 131@veth4 \
+    -i 258@veth6 \
+    -t "fake_dataplane=True" -p 6633 -V 1.3 -vv -T olt-complex
+```
+
+# Step 1 - Run pyofagent against ONOS
+
+In one terminal window, start ONOS:
+
+```
+docker fetch onosproject/onos
+docker run --ti --rm -p 6633:6653 \
+    -e ONOS_APPS="drivers,openflow" onosproject/ono
+```
+
+In another terminal window, start the pyofagent just as above:
+
+```
+python obsolete/main.py -v \
+    --in-out-iface=veth0 --in-out-stag=4004
+```
+
+You should be able to observe a device and 3 ports at the ONOS prompt:
+```
+devices
+ports
+```
+
+# Step 2 - Running the new agent against ONOS
+
+In one terminal, run ONOS as docker container:
+
+```
+docker run -ti --rm -p 6633:6653 -e ONOS_APPS=drivers,openflow,fwd \
+    onosproject/onos
+```
+
+In another terminal, run the new agent as a python command and it
+will launch one or more concurrent sessions (the desired number is
+the command line argument.
+
+To simulate just one switch:
+
+```
+cd $VOLTHA_BASE
+python ofagent/agent.py
+```
+
+To simulate 20 switches:
+
+```
+python ofagent/agent.py 20
+```
+
+You can see the resulting switches (devices) and ports using the ONOS
+prompt in the first terminal:
+
+```
+devices
+devices | wc -l
+ports
+ports | wc -l
+```
+
+# Step 3 - Have olt-oftest pass tests agains the new isolated agent
+
+Mock the agent code until it passes olt-oftest in fake_dataplane mode.
+Note: this works only in Ubuntu environment.
+
+Run agent with one connection instance:
+
+```
+cd /voltha
+python ofagent/agent.py
+```
+
+Then run the olt-oftest as in Step 0:
+
+```
+cd /voltha
+sudo -s
+export PYTHONPATH=/voltha/voltha/adapters/tibit:/voltha/mininet
+./oftest/oft --test-dir=olt-oftest/ \
+    -i 1@veth0 \
+    -i 130@veth2 \
+    -i 131@veth4 \
+    -i 258@veth6 \
+    -t "fake_dataplane=True" -p 6633 -V 1.3 -vv -T olt-complex
+```
diff --git a/voltha/northbound/openflow/agent/backends/__init__.py b/voltha/adapters/tibit/__init__.py
similarity index 100%
copy from voltha/northbound/openflow/agent/backends/__init__.py
copy to voltha/adapters/tibit/__init__.py
diff --git a/voltha/asleep.py b/voltha/asleep.py
deleted file mode 100644
index e1868ab..0000000
--- a/voltha/asleep.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-""" Async sleep (asleep) method and other twisted goodies """
-
-from twisted.internet import reactor
-from twisted.internet.defer import Deferred
-
-
-def asleep(dt):
-    assert isinstance(dt, (int, float))
-    d = Deferred()
-    reactor.callLater(dt, lambda: d.callback(None))
-    return d
diff --git a/voltha/coordinator.py b/voltha/coordinator.py
index d023d6b..636e383 100644
--- a/voltha/coordinator.py
+++ b/voltha/coordinator.py
@@ -24,8 +24,8 @@
 from twisted.internet.defer import inlineCallbacks, returnValue, Deferred
 from twisted.internet.task import LoopingCall
 
-from asleep import asleep
 from leader import Leader
+from common.utils.asleep import asleep
 from worker import Worker
 
 
diff --git a/voltha/core/device_model.py b/voltha/core/device_model.py
new file mode 100644
index 0000000..6863287
--- /dev/null
+++ b/voltha/core/device_model.py
@@ -0,0 +1,177 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# 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.
+#
+
+"""
+Model that captures the current state of a logical device
+"""
+import structlog
+
+from voltha.protos import openflow_13_pb2
+from voltha.protos import voltha_pb2
+
+log = structlog.get_logger()
+
+
+def mac_str_to_tuple(mac):
+    return tuple(int(d, 16) for d in mac.split(':'))
+
+
+def flow_stats_entry_from_flow_mod_message(mod):
+    flow = openflow_13_pb2.ofp_flow_stats(
+        table_id=mod.table_id,
+        priority=mod.priority,
+        idle_timeout=mod.idle_timeout,
+        hard_timeout=mod.hard_timeout,
+        flags=mod.flags,
+        cookie=mod.cookie,
+        match=mod.match,
+        instructions=mod.instructions
+    )
+    return flow
+
+
+class DeviceModel(object):
+
+    def __init__(self, _):
+        self.info = voltha_pb2.LogicalDeviceDetails(
+            id='asdfa-1234124-asfd-949',
+            datapath_id=1919191919191919,
+            desc=openflow_13_pb2.ofp_desc(
+                mfr_desc="CORD/Voltha",
+                hw_desc="Synthetized/logical device",
+                sw_desc="Voltha 1.0",
+                serial_num="1000219910",
+                dp_desc="A logical device. Use the TBD API to learn more"
+            ),
+            switch_features=openflow_13_pb2.ofp_switch_features(
+                n_buffers=256, # TODO fake for now
+                n_tables=2,  # TODO ditto
+                capabilities=(  # TODO and ditto
+                    openflow_13_pb2.OFPC_FLOW_STATS
+                    | openflow_13_pb2.OFPC_TABLE_STATS
+                    | openflow_13_pb2.OFPC_PORT_STATS
+                    | openflow_13_pb2.OFPC_GROUP_STATS
+                )
+            )
+        )
+
+        cap = openflow_13_pb2.OFPPF_1GB_FD | openflow_13_pb2.OFPPF_FIBER
+        self.ports = [openflow_13_pb2.ofp_port(
+                port_no=port_no,
+                hw_addr=mac_str_to_tuple('00:00:00:00:00:%02x' % port_no),
+                name=name,
+                config=0,
+                state=openflow_13_pb2.OFPPS_LIVE,
+                curr=cap,
+                advertised=cap,
+                peer=cap,
+                curr_speed=openflow_13_pb2.OFPPF_1GB_FD,
+                max_speed=openflow_13_pb2.OFPPF_1GB_FD
+            ) for port_no, name in [(1, 'onu1'), (2, 'onu2'), (129, 'olt1')]]
+
+        self.flows = []
+        self.groups = []
+
+    def update_flow_table(self, flow_mod):
+
+        command = flow_mod.command
+
+        if command == openflow_13_pb2.OFPFC_ADD:
+            self.flow_add(flow_mod)
+
+        elif command == openflow_13_pb2.OFPFC_DELETE:
+            self.flow_delete(flow_mod)
+
+        elif command == openflow_13_pb2.OFPFC_DELETE_STRICT:
+            self.flow_delete_strict(flow_mod)
+
+        elif command == openflow_13_pb2.OFPFC_MODIFY:
+            self.flow_modify(flow_mod)
+
+        elif command == openflow_13_pb2.OFPFC_MODIFY_STRICT:
+            self.flow_modify_strict(flow_mod)
+
+        else:
+            log.warn('unhandled-flow-mod', command=command, flow_mod=flow_mod)
+
+    def list_flows(self):
+        return self.flows
+
+    ## <===============LOW LEVEL FLOW HANDLERS ===============================>
+
+    def flow_add(self, mod):
+        assert isinstance(mod, openflow_13_pb2.ofp_flow_mod)
+        assert mod.cookie_mask == 0
+
+        check_overlap = mod.flags & openflow_13_pb2.OFPFF_CHECK_OVERLAP
+        if check_overlap:
+            if self.find_overlapping_flows(mod, True):
+                self.signal_flow_mod_error(
+                    openflow_13_pb2.OFPFMFC_OVERLAP, mod)
+            else:
+                # free to add as new flow
+                flow = flow_stats_entry_from_flow_mod_message(mod)
+                self.flows.append(flow)
+
+        else:
+            flow = flow_stats_entry_from_flow_mod_message(mod)
+            idx = self.find_flow(flow)
+            if idx >= 0:
+                old_flow = self.flows[idx]
+                if not (mod.flags & openflow_13_pb2.OFPFF_RESET_COUNTS):
+                    flow.byte_count = old_flow.byte_count
+                    flow.packet_count = old_flow.packet_count
+                self.flows[idx] = flow
+
+            else:
+                self.flows.append(flow)
+
+    def flow_delete(self, mod):
+        raise NotImplementedError()
+
+    def flow_delete_strict(self, mod):
+        raise NotImplementedError()
+
+    def flow_modify(self, mod):
+        raise NotImplementedError()
+
+    def flow_modify_strict(self, mod):
+        raise NotImplementedError()
+
+    def find_overlapping_flows(self, mod, return_on_first=False):
+        """
+        Return list of overlapping flow(s)
+        Two flows overlap if a packet may match both and if they have the
+        same priority.
+        :param mod: Flow request
+        :param return_on_first: if True, return with the first entry
+        :return:
+        """
+        # TODO finish implementation
+        return []
+
+    def find_flow(self, flow):
+        for i, f in enumerate(self.flows):
+            if self.flow_match(f, flow):
+                return i
+        return -1
+
+    def flow_match(self, f1, f2):
+        keys_matter = ('table_id', 'priority', 'flags', 'cookie', 'match')
+        for key in keys_matter:
+            if getattr(f1, key) != getattr(f2, key):
+                return False
+        return True
diff --git a/voltha/dockerhelpers.py b/voltha/dockerhelpers.py
deleted file mode 100644
index 0927711..0000000
--- a/voltha/dockerhelpers.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-"""
-Some docker related convenience functions
-"""
-
-import os
-from structlog import get_logger
-
-from docker import Client
-
-
-log = get_logger()
-
-
-def get_my_containers_name():
-    """
-    Return the docker containers name in which this process is running.
-    To look up the container name, we use the container ID extracted from the
-    $HOSTNAME environment variable (which is set by docker conventions).
-    :return: String with the docker container name (or None if any issue is
-             encountered)
-    """
-    my_container_id = os.environ.get('HOSTNAME', None)
-
-    try:
-        docker_cli = Client(base_url='unix://tmp/docker.sock')
-        info = docker_cli.inspect_container(my_container_id)
-
-    except Exception, e:
-        log.exception('failed', my_container_id=my_container_id, e=e)
-        raise
-
-    name = info['Name'].lstrip('/')
-
-    return name
diff --git a/voltha/leader.py b/voltha/leader.py
index 6a4ef68..9f6b715 100644
--- a/voltha/leader.py
+++ b/voltha/leader.py
@@ -15,13 +15,14 @@
 #
 
 import re
+
 from hash_ring import HashRing
 from structlog import get_logger
 from twisted.internet import reactor
 from twisted.internet.base import DelayedCall
 from twisted.internet.defer import inlineCallbacks, DeferredList
 
-from asleep import asleep
+from common.utils.asleep import asleep
 
 
 class Leader(object):
diff --git a/voltha/main.py b/voltha/main.py
index e76fac3..29edc0b 100755
--- a/voltha/main.py
+++ b/voltha/main.py
@@ -21,6 +21,7 @@
 import os
 import sys
 import time
+
 import yaml
 from twisted.internet.defer import inlineCallbacks
 
@@ -29,12 +30,12 @@
 sys.path.append(os.path.join(base_dir, '/voltha/protos/third_party'))
 
 from voltha.coordinator import Coordinator
-from voltha.dockerhelpers import get_my_containers_name
-from voltha.nethelpers import get_my_primary_interface, \
+from common.utils.dockerhelpers import get_my_containers_name
+from common.utils.nethelpers import get_my_primary_interface, \
     get_my_primary_local_ipv4
 from voltha.northbound.grpc.grpc_server import VolthaGrpcServer
 from voltha.northbound.rest.health_check import init_rest_service
-from voltha.structlog_setup import setup_logging
+from common.utils.structlog_setup import setup_logging
 from voltha.northbound.kafka.kafka_proxy import KafkaProxy, get_kafka_proxy
 
 defs = dict(
diff --git a/voltha/nethelpers.py b/voltha/nethelpers.py
deleted file mode 100644
index 52f7f4c..0000000
--- a/voltha/nethelpers.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-"""
-Some network related convenience functions
-"""
-
-from netifaces import AF_INET
-
-import netifaces as ni
-
-
-def get_my_primary_interface():
-    gateways = ni.gateways()
-    assert 'default' in gateways, \
-        ("No default gateway on host/container, "
-         "cannot determine primary interface")
-    default_gw_index = gateways['default'].keys()[0]
-    # gateways[default_gw_index] has the format (example):
-    # [('10.15.32.1', 'en0', True)]
-    interface_name = gateways[default_gw_index][0][1]
-    return interface_name
-
-
-def get_my_primary_local_ipv4(ifname=None):
-    ifname = get_my_primary_interface() if ifname is None else ifname
-    addresses = ni.ifaddresses(ifname)
-    ipv4 = addresses[AF_INET][0]['addr']
-    return ipv4
-
-
-if __name__ == '__main__':
-    print get_my_primary_local_ipv4()
diff --git a/voltha/northbound/grpc/grpc_server.py b/voltha/northbound/grpc/grpc_server.py
index fb2582f..c7dba6e 100644
--- a/voltha/northbound/grpc/grpc_server.py
+++ b/voltha/northbound/grpc/grpc_server.py
@@ -20,11 +20,11 @@
 from os.path import abspath, basename, dirname, join, walk
 import grpc
 from concurrent import futures
-from google.protobuf.message import Message
 from structlog import get_logger
 import zlib
 
-from voltha.protos import voltha_pb2, schema_pb2
+from voltha.core.device_model import DeviceModel
+from voltha.protos import voltha_pb2, schema_pb2, openflow_13_pb2
 
 log = get_logger()
 
@@ -135,6 +135,41 @@
         return updated
 
 
+class VolthaLogicalLayer(voltha_pb2.VolthaLogicalLayerServicer):
+    # TODO still a mock
+
+    def __init__(self, threadpool):
+        self.threadpool = threadpool
+
+        self.devices = [DeviceModel(0)]
+        self.devices_map = dict((d.info.id, d) for d in self.devices)
+
+    def ListLogicalDevices(self, request, context):
+        return voltha_pb2.LogicalDevices(
+            items=[voltha_pb2.LogicalDevice(
+                id=d.info.id,
+                datapath_id=d.info.datapath_id,
+                desc=d.info.desc
+            ) for d in self.devices])
+
+    def GetLogicalDevice(self, request, context):
+        return self.devices_map[request.id].info
+
+    def ListLogicalDevicePorts(self, request, context):
+        device_model = self.devices_map[request.id]
+        return voltha_pb2.LogicalPorts(items=device_model.ports)
+
+    def UpdateFlowTable(self, request, context):
+        device_model = self.devices_map[request.id]
+        device_model.update_flow_table(request.flow_mod)
+        return voltha_pb2.NullMessage()
+
+    def ListDeviceFlows(self, request, context):
+        device_model = self.devices_map[request.id]
+        flows = device_model.list_flows()
+        return voltha_pb2.Flows(items=flows)
+
+
 class VolthaGrpcServer(object):
 
     def __init__(self, port=50055):
@@ -145,11 +180,12 @@
 
         schema_pb2.add_SchemaServiceServicer_to_server(
             SchemaService(), self.server)
-
         voltha_pb2.add_HealthServiceServicer_to_server(
             HealthService(self.thread_pool), self.server)
         voltha_pb2.add_ExampleServiceServicer_to_server(
             ExampleService(self.thread_pool), self.server)
+        voltha_pb2.add_VolthaLogicalLayerServicer_to_server(
+            VolthaLogicalLayer(self.thread_pool), self.server)
 
         self.server.add_insecure_port('[::]:%s' % self.port)
 
diff --git a/voltha/northbound/kafka/kafka_proxy.py b/voltha/northbound/kafka/kafka_proxy.py
index cc8e80a..1e95ff5 100644
--- a/voltha/northbound/kafka/kafka_proxy.py
+++ b/voltha/northbound/kafka/kafka_proxy.py
@@ -15,13 +15,14 @@
 #
 
 from afkak.client import KafkaClient as _KafkaClient
-from afkak.producer import Producer as _kafkaProducer
-from structlog import get_logger
-from voltha.consulhelpers import get_endpoint_from_consul
-from twisted.internet.defer import inlineCallbacks
 from afkak.common import (
     PRODUCER_ACK_LOCAL_WRITE,
 )
+from afkak.producer import Producer as _kafkaProducer
+from structlog import get_logger
+from twisted.internet.defer import inlineCallbacks
+
+from common.utils.consulhelpers import get_endpoint_from_consul
 
 
 class KafkaProxy(object):
diff --git a/voltha/northbound/openflow/agent/Makefile b/voltha/northbound/openflow/agent/Makefile
deleted file mode 100644
index e0854b1..0000000
--- a/voltha/northbound/openflow/agent/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-ifeq ($(VOLTHA_BASE)_set,_set)
-$(error If your getting this error, please type ". ./env.sh" at the top directory)
-endif
-
-include $(VOLTHA_BASE)/setup.mk
-
-PYTHONFILES:=$(wildcard *.py)
-
-flake8: 
-	$(FLAKE8) $(PYTHONFILES)
diff --git a/voltha/northbound/openflow/agent/__init__.py b/voltha/northbound/openflow/agent/__init__.py
deleted file mode 100644
index 23ee001..0000000
--- a/voltha/northbound/openflow/agent/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-__version__ = 0.1
-
diff --git a/voltha/northbound/openflow/setup.py b/voltha/northbound/openflow/setup.py
deleted file mode 100644
index 6a2557f..0000000
--- a/voltha/northbound/openflow/setup.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from __future__ import print_function
-from setuptools.command.test import test as testcommand
-import io
-import os
-import sys
-
-import pyofagent
-
-from distutils.core import setup
-
-here = os.path.abspath(os.path.dirname(__file__))
-
-
-def read(*filenames, **kwargs):
-    encoding = kwargs.get('encoding', 'utf-8')
-    sep = kwargs.get('sep', '\n')
-    buf = []
-    for filename in filenames:
-        with io.open(filename, encoding=encoding) as f:
-            buf.append(f.read())
-    return sep.join(buf)
-
-long_description = read('README.md', 'CHANGES.md')
-
-
-class PyTest(testcommand):
-    def finalize_options(self):
-        testcommand.finalize_options(self)
-        self.test_args = []
-        self.test_suite = True
-
-    def run_tests(self):
-        import pytest
-        errcode = pytest.main(self.test_args)
-        sys.exit(errcode)
-
-
-setup(name='pyofagent',
-      version=pyofagent.__version__,
-      url='notyet',
-      license='Apache Software License',
-      author='Zsolt Haraszti',
-      tests_require=['pytest'],
-      install_requires=['hexdump>=3.3',
-                        'pcapy'],
-      cmdclass={'test': PyTest},
-      author_email='zharaszt@ciena.com',
-      description='Python-based OpenFlow 1.3 agent',
-      long_description=long_description,
-      packages=['pyofagent'],
-      include_package_data=True,
-      platforms='any',
-      test_suite='pyofagent.test.test_pyofagent',
-      classifiers=[
-          'Programming Language :: Python',
-          'Development Status :: 4 - Beta',
-          'Natural Language :: English',
-          'Intended Audience :: Developers',
-          'License :: OSI Approved :: Apache Software License',
-          'Operating System :: OS Independent',
-          'Topic :: Software Development :: Libraries :: Python Modules',
-      ],
-      extras_require={'testing': ['pytest']}
-      )
diff --git a/voltha/protos/openflow_13.desc b/voltha/protos/openflow_13.desc
new file mode 100644
index 0000000..d65f4c4
--- /dev/null
+++ b/voltha/protos/openflow_13.desc
Binary files differ
diff --git a/voltha/protos/openflow_13.proto b/voltha/protos/openflow_13.proto
new file mode 100644
index 0000000..71e27af
--- /dev/null
+++ b/voltha/protos/openflow_13.proto
@@ -0,0 +1,2310 @@
+/* Copyright (c) 2008 The Board of Trustees of The Leland Stanford
+ * Junior University
+ * Copyright (c) 2011, 2012 Open Networking Foundation
+ *
+ * We are making the OpenFlow specification and associated documentation
+ * (Software) available for public use and benefit with the expectation
+ * that others will use, modify and enhance the Software and contribute
+ * those enhancements back to the community. However, since we would
+ * like to make the Software available for broadest use, with as few
+ * restrictions as possible permission is hereby granted, free of
+ * charge, to any person obtaining a copy of this Software to deal in
+ * the Software under the copyrights without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * The name and trademarks of copyright holder(s) may NOT be used in
+ * advertising or publicity pertaining to the Software or any
+ * derivatives without specific, written prior permission.
+ */
+
+/* OpenFlow: protocol between controller and datapath. */
+
+/*
+ * This is a relatively straightforward rendering of OpenFlow message
+ * definitions into protocol buffer messages. We preserved the snake
+ * case syntax, and made the following changes:
+ * - all pad fields dropped
+ * - for each enum value above 0x7fffffff the MSB is dropped. For example,
+ *   0xffffffff is now 0x7fffffff.
+ * - '<type> thing[...]' is replaced with 'repeated <type> thing'
+ * - 'char thing[...]' is replaced with 'string thing'
+ * - 'uint8_t data[...]' is replaced with 'bytes data'
+ * - the following systematic changes are done to various integer types:
+ *   uint8_t  -> uint32
+ *   uint16_t -> uint32
+ *   uint32_t -> uint32
+ *   uint64_t -> uint64
+ * - removed most length, len, size fields where these values can be determined
+ *   from the explicitly encoded length of "repeated" protobuf fields.
+ * - explicit use of enum types whereever it is unambigous (and not used as
+ *   bitmask/flags value.
+ *
+ */
+syntax = "proto3";
+
+package openflow_13;
+
+
+/* Version number:
+ * OpenFlow versions released: 0x01 = 1.0 ; 0x02 = 1.1 ; 0x03 = 1.2
+ *     0x04 = 1.3
+ */
+/* The most significant bit in the version field is reserved and must
+ * be set to zero.
+ */
+//#define OFP_VERSION   0x04
+//#define PIPELINE_TABLES 64
+//#define OFP_MAX_TABLE_NAME_LEN 32
+//#define OFP_MAX_PORT_NAME_LEN  16
+/* Official IANA registered port for OpenFlow. */
+//#define OFP_TCP_PORT  6653
+//#define OFP_SSL_PORT  6653
+
+//#define OFP_ETH_ALEN 6          /* Bytes in an Ethernet address. */
+
+/* Port numbering. Ports are numbered starting from 1. */
+enum ofp_port_no {
+    OFPP_INVALID    = 0;
+
+    /* Maximum number of physical and logical switch ports. */
+    OFPP_MAX        = 0x7fffff00;
+
+    /* Reserved OpenFlow Port (fake output "ports"). */
+    OFPP_IN_PORT    = 0x7ffffff8;  /* Send the packet out the input port.  This
+                                      reserved port must be explicitly used
+                                      in order to send back out of the input
+                                      port. */
+    OFPP_TABLE      = 0x7ffffff9;  /* Submit the packet to the first flow table
+                                      NB: This destination port can only be
+                                      used in packet-out messages. */
+    OFPP_NORMAL     = 0x7ffffffa;  /* Forward using non-OpenFlow pipeline. */
+    OFPP_FLOOD      = 0x7ffffffb;  /* Flood using non-OpenFlow pipeline. */
+    OFPP_ALL        = 0x7ffffffc;  /* All standard ports except input port. */
+    OFPP_CONTROLLER = 0x7ffffffd;  /* Send to controller. */
+    OFPP_LOCAL      = 0x7ffffffe;  /* Local openflow "port". */
+    OFPP_ANY        = 0x7fffffff;  /* Special value used in some requests when
+                                      no port is specified (i.e. wildcarded).*/
+};
+
+enum ofp_type {
+
+    /* Immutable messages. */
+    OFPT_HELLO                      = 0;  /* Symmetric message */
+    OFPT_ERROR                      = 1;  /* Symmetric message */
+    OFPT_ECHO_REQUEST               = 2;  /* Symmetric message */
+    OFPT_ECHO_REPLY                 = 3;  /* Symmetric message */
+    OFPT_EXPERIMENTER               = 4;  /* Symmetric message */
+
+    /* Switch configuration messages. */
+    OFPT_FEATURES_REQUEST           = 5;  /* Controller/switch message */
+    OFPT_FEATURES_REPLY             = 6;  /* Controller/switch message */
+    OFPT_GET_CONFIG_REQUEST         = 7;  /* Controller/switch message */
+    OFPT_GET_CONFIG_REPLY           = 8;  /* Controller/switch message */
+    OFPT_SET_CONFIG                 = 9;  /* Controller/switch message */
+
+    /* Asynchronous messages. */
+    OFPT_PACKET_IN                  = 10; /* Async message */
+    OFPT_FLOW_REMOVED               = 11; /* Async message */
+    OFPT_PORT_STATUS                = 12; /* Async message */
+
+    /* Controller command messages. */
+    OFPT_PACKET_OUT                 = 13; /* Controller/switch message */
+    OFPT_FLOW_MOD                   = 14; /* Controller/switch message */
+    OFPT_GROUP_MOD                  = 15; /* Controller/switch message */
+    OFPT_PORT_MOD                   = 16; /* Controller/switch message */
+    OFPT_TABLE_MOD                  = 17; /* Controller/switch message */
+
+    /* Multipart messages. */
+    OFPT_MULTIPART_REQUEST          = 18; /* Controller/switch message */
+    OFPT_MULTIPART_REPLY            = 19; /* Controller/switch message */
+
+    /* Barrier messages. */
+    OFPT_BARRIER_REQUEST            = 20; /* Controller/switch message */
+    OFPT_BARRIER_REPLY              = 21; /* Controller/switch message */
+
+    /* Queue Configuration messages. */
+    OFPT_QUEUE_GET_CONFIG_REQUEST   = 22;  /* Controller/switch message */
+    OFPT_QUEUE_GET_CONFIG_REPLY     = 23;  /* Controller/switch message */
+
+    /* Controller role change request messages. */
+    OFPT_ROLE_REQUEST               = 24; /* Controller/switch message */
+    OFPT_ROLE_REPLY                 = 25; /* Controller/switch message */
+
+    /* Asynchronous message configuration. */
+    OFPT_GET_ASYNC_REQUEST          = 26; /* Controller/switch message */
+    OFPT_GET_ASYNC_REPLY            = 27; /* Controller/switch message */
+    OFPT_SET_ASYNC                  = 28; /* Controller/switch message */
+
+    /* Meters and rate limiters configuration messages. */
+    OFPT_METER_MOD                  = 29; /* Controller/switch message */
+};
+
+/* Header on all OpenFlow packets. */
+message ofp_header {
+    uint32 version = 1;    /* OFP_VERSION. */
+    ofp_type type = 2;     /* One of the OFPT_ constants. */
+    uint32 xid = 3;        /* Transaction id associated with this packet.
+                              Replies use the same id as was in the request
+                              to facilitate pairing. */
+};
+
+/* Hello elements types.
+ */
+enum ofp_hello_elem_type {
+    OFPHET_INVALID                = 0;
+    OFPHET_VERSIONBITMAP          = 1;  /* Bitmap of version supported. */
+};
+
+/* Common header for all Hello Elements */
+message ofp_hello_elem_header {
+    ofp_hello_elem_type type = 1;       /* One of OFPHET_*. */
+    oneof element {
+        ofp_hello_elem_versionbitmap versionbitmap = 2;
+    }
+};
+
+/* Version bitmap Hello Element */
+message ofp_hello_elem_versionbitmap {
+    repeated uint32 bitmaps = 2;   /* List of bitmaps - supported versions */
+};
+
+/* OFPT_HELLO.  This message includes zero or more hello elements having
+ * variable size. Unknown elements types must be ignored/skipped, to allow
+ * for future extensions. */
+message ofp_hello {
+    //ofp_header header = 1;
+    /* Hello element list */
+    repeated ofp_hello_elem_header elements = 2; /* 0 or more */
+};
+
+//#define OFP_DEFAULT_MISS_SEND_LEN   128
+
+enum ofp_config_flags {
+    /* Handling of IP fragments. */
+    OFPC_FRAG_NORMAL   = 0;       /* No special handling for fragments. */
+    OFPC_FRAG_DROP     = 1;       /* Drop fragments. */
+    OFPC_FRAG_REASM    = 2;       /* Reassemble (only if OFPC_IP_REASM set). */
+    OFPC_FRAG_MASK     = 3;       /* Bitmask of flags dealing with frag. */
+};
+
+/* Switch configuration. */
+message ofp_switch_config {
+    //ofp_header header = 1;
+    uint32 flags = 2;             /* Bitmap of OFPC_* flags. */
+    uint32 miss_send_len = 3;     /* Max bytes of packet that datapath
+                                     should send to the controller. See
+                                     ofp_controller_max_len for valid values.
+                                   */
+};
+
+/* Flags to configure the table. Reserved for future use. */
+enum ofp_table_config {
+    OFPTC_INVALID = 0;
+    OFPTC_DEPRECATED_MASK = 3;     /* Deprecated bits */
+};
+
+/* Table numbering. Tables can use any number up to OFPT_MAX. */
+enum ofp_table {
+
+    OFPTT_INVALID = 0;
+
+    /* Last usable table number. */
+    OFPTT_MAX        = 0xfe;
+
+    /* Fake tables. */
+    OFPTT_ALL        = 0xff;   /* Wildcard table used for table config,
+                                  flow stats and flow deletes. */
+};
+
+
+/* Configure/Modify behavior of a flow table */
+message ofp_table_mod {
+    //ofp_header header = 1;
+    uint32 table_id = 2;  /* ID of the table, OFPTT_ALL indicates all tables */
+    uint32 config = 3;    /* Bitmap of OFPTC_* flags */
+};
+
+/* Capabilities supported by the datapath. */
+enum ofp_capabilities {
+    OFPC_INVALID        = 0;
+    OFPC_FLOW_STATS     = 1;    /* Flow statistics. */
+    OFPC_TABLE_STATS    = 2;    /* Table statistics. */
+    OFPC_PORT_STATS     = 4;    /* Port statistics. */
+    OFPC_GROUP_STATS    = 8;    /* Group statistics. */
+    OFPC_IP_REASM       = 32;   /* Can reassemble IP fragments. */
+    OFPC_QUEUE_STATS    = 64;   /* Queue statistics. */
+    OFPC_PORT_BLOCKED   = 256;  /* Switch will block looping ports. */
+};
+
+/* Flags to indicate behavior of the physical port.  These flags are
+ * used in ofp_port to describe the current configuration.  They are
+ * used in the ofp_port_mod message to configure the port's behavior.
+ */
+enum ofp_port_config {
+    OFPPC_INVALID      = 0;
+    OFPPC_PORT_DOWN    = 1;   /* Port is administratively down. */
+
+    OFPPC_NO_RECV      = 4;   /* Drop all packets received by port. */
+    OFPPC_NO_FWD       = 32;  /* Drop packets forwarded to port. */
+    OFPPC_NO_PACKET_IN = 64;  /* Do not send packet-in msgs for port. */
+};
+
+/* Current state of the physical port.  These are not configurable from
+ * the controller.
+ */
+enum ofp_port_state {
+    OFPPS_INVALID      = 0;
+    OFPPS_LINK_DOWN    = 1;  /* No physical link present. */
+    OFPPS_BLOCKED      = 2;  /* Port is blocked */
+    OFPPS_LIVE         = 4;  /* Live for Fast Failover Group. */
+};
+
+/* Features of ports available in a datapath. */
+enum ofp_port_features {
+    OFPPF_INVALID    = 0;
+    OFPPF_10MB_HD    = 1;      /* 10 Mb half-duplex rate support. */
+    OFPPF_10MB_FD    = 2;      /* 10 Mb full-duplex rate support. */
+    OFPPF_100MB_HD   = 4;      /* 100 Mb half-duplex rate support. */
+    OFPPF_100MB_FD   = 8;      /* 100 Mb full-duplex rate support. */
+    OFPPF_1GB_HD     = 16;     /* 1 Gb half-duplex rate support. */
+    OFPPF_1GB_FD     = 32;     /* 1 Gb full-duplex rate support. */
+    OFPPF_10GB_FD    = 64;     /* 10 Gb full-duplex rate support. */
+    OFPPF_40GB_FD    = 128;    /* 40 Gb full-duplex rate support. */
+    OFPPF_100GB_FD   = 256;    /* 100 Gb full-duplex rate support. */
+    OFPPF_1TB_FD     = 512;    /* 1 Tb full-duplex rate support. */
+    OFPPF_OTHER      = 1024;   /* Other rate, not in the list. */
+    OFPPF_COPPER     = 2048;   /* Copper medium. */
+    OFPPF_FIBER      = 4096;   /* Fiber medium. */
+    OFPPF_AUTONEG    = 8192;   /* Auto-negotiation. */
+    OFPPF_PAUSE      = 16384;  /* Pause. */
+    OFPPF_PAUSE_ASYM = 32768;  /* Asymmetric pause. */
+};
+
+/* Description of a port */
+message ofp_port {
+    uint32 port_no = 1;
+    repeated uint32 hw_addr = 2; // [OFP_ETH_ALEN];
+    string name = 3;             /* Null-terminated */
+
+    uint32 config = 4;           /* Bitmap of OFPPC_* flags. */
+    uint32 state = 5;            /* Bitmap of OFPPS_* flags. */
+
+    /* Bitmaps of OFPPF_* that describe features.  All bits zeroed if
+     * unsupported or unavailable. */
+    uint32 curr = 6;           /* Current features. */
+    uint32 advertised = 7;     /* Features being advertised by the port. */
+    uint32 supported = 8;      /* Features supported by the port. */
+    uint32 peer = 9;           /* Features advertised by peer. */
+    uint32 curr_speed = 10;    /* Current port bitrate in kbps. */
+    uint32 max_speed = 11;     /* Max port bitrate in kbps */
+};
+
+/* Switch features. */
+message ofp_switch_features {
+    //ofp_header header = 1;
+    uint64 datapath_id = 2;   /* Datapath unique ID.  The lower 48-bits are for
+                                 a MAC address, while the upper 16-bits are
+                                 implementer-defined. */
+
+    uint32 n_buffers = 3;     /* Max packets buffered at once. */
+
+    uint32 n_tables = 4;      /* Number of tables supported by datapath. */
+    uint32 auxiliary_id = 5;  /* Identify auxiliary connections */
+
+    /* Features. */
+    uint32 capabilities = 6;  /* Bitmap of support "ofp_capabilities". */
+};
+
+/* What changed about the physical port */
+enum ofp_port_reason {
+    OFPPR_ADD     = 0;         /* The port was added. */
+    OFPPR_DELETE  = 1;         /* The port was removed. */
+    OFPPR_MODIFY  = 2;         /* Some attribute of the port has changed. */
+};
+
+/* A physical port has changed in the datapath */
+message ofp_port_status {
+    //ofp_header header = 1;
+    ofp_port_reason reason = 2; /* One of OFPPR_*. */
+    ofp_port desc = 3;
+};
+
+/* Modify behavior of the physical port */
+message ofp_port_mod {
+    //ofp_header header = 1;
+    uint32 port_no = 2;
+    repeated uint32 hw_addr = 3; //[OFP_ETH_ALEN];
+                                      /* The hardware address is not
+                                         configurable.  This is used to
+                                         sanity-check the request, so it must
+                                         be the same as returned in an
+                                         ofp_port struct. */
+    uint32 config = 4;        /* Bitmap of OFPPC_* flags. */
+    uint32 mask = 5;          /* Bitmap of OFPPC_* flags to be changed. */
+
+    uint32 advertise = 6;     /* Bitmap of OFPPF_*.  Zero all bits to prevent
+                                 any action taking place. */
+};
+
+/* ## -------------------------- ## */
+/* ## OpenFlow Extensible Match. ## */
+/* ## -------------------------- ## */
+
+/* The match type indicates the match structure (set of fields that compose the
+ * match) in use. The match type is placed in the type field at the beginning
+ * of all match structures. The "OpenFlow Extensible Match" type corresponds
+ * to OXM TLV format described below and must be supported by all OpenFlow
+ * switches. Extensions that define other match types may be published on the
+ * ONF wiki. Support for extensions is optional.
+ */
+enum ofp_match_type {
+    OFPMT_STANDARD = 0;       /* Deprecated. */
+    OFPMT_OXM      = 1;       /* OpenFlow Extensible Match */
+};
+
+/* Fields to match against flows */
+message ofp_match {
+    ofp_match_type type = 1;         /* One of OFPMT_* */
+    repeated ofp_oxm_field oxm_fields = 2;  /* 0 or more */
+};
+
+/* Components of a OXM TLV header.
+ * Those macros are not valid for the experimenter class, macros for the
+ * experimenter class will depend on the experimenter header used. */
+//#define OXM_HEADER__(CLASS, FIELD, HASMASK, LENGTH) \
+//    (((CLASS) << 16) | ((FIELD) << 9) | ((HASMASK) << 8) | (LENGTH))
+//#define OXM_HEADER(CLASS, FIELD, LENGTH) \
+//    OXM_HEADER__(CLASS, FIELD, 0, LENGTH)
+//#define OXM_HEADER_W(CLASS, FIELD, LENGTH) \
+//    OXM_HEADER__(CLASS, FIELD, 1, (LENGTH) * 2)
+//#define OXM_CLASS(HEADER) ((HEADER) >> 16)
+//#define OXM_FIELD(HEADER) (((HEADER) >> 9) & 0x7f)
+//#define OXM_TYPE(HEADER) (((HEADER) >> 9) & 0x7fffff)
+//#define OXM_HASMASK(HEADER) (((HEADER) >> 8) & 1)
+//#define OXM_LENGTH(HEADER) ((HEADER) & 0xff)
+//
+//#define OXM_MAKE_WILD_HEADER(HEADER) \
+//    OXM_HEADER_W(OXM_CLASS(HEADER), OXM_FIELD(HEADER), OXM_LENGTH(HEADER))
+
+/* OXM Class IDs.
+ * The high order bit differentiate reserved classes from member classes.
+ * Classes 0x0000 to 0x7FFF are member classes, allocated by ONF.
+ * Classes 0x8000 to 0xFFFE are reserved classes, reserved for standardisation.
+ */
+enum ofp_oxm_class {
+    OFPXMC_NXM_0          = 0x0000;    /* Backward compatibility with NXM */
+    OFPXMC_NXM_1          = 0x0001;    /* Backward compatibility with NXM */
+    OFPXMC_OPENFLOW_BASIC = 0x8000;    /* Basic class for OpenFlow */
+    OFPXMC_EXPERIMENTER   = 0xFFFF;    /* Experimenter class */
+};
+
+/* OXM Flow field types for OpenFlow basic class. */
+enum oxm_ofb_field_types {
+    OFPXMT_OFB_IN_PORT        = 0;  /* Switch input port. */
+    OFPXMT_OFB_IN_PHY_PORT    = 1;  /* Switch physical input port. */
+    OFPXMT_OFB_METADATA       = 2;  /* Metadata passed between tables. */
+    OFPXMT_OFB_ETH_DST        = 3;  /* Ethernet destination address. */
+    OFPXMT_OFB_ETH_SRC        = 4;  /* Ethernet source address. */
+    OFPXMT_OFB_ETH_TYPE       = 5;  /* Ethernet frame type. */
+    OFPXMT_OFB_VLAN_VID       = 6;  /* VLAN id. */
+    OFPXMT_OFB_VLAN_PCP       = 7;  /* VLAN priority. */
+    OFPXMT_OFB_IP_DSCP        = 8;  /* IP DSCP (6 bits in ToS field). */
+    OFPXMT_OFB_IP_ECN         = 9;  /* IP ECN (2 bits in ToS field). */
+    OFPXMT_OFB_IP_PROTO       = 10; /* IP protocol. */
+    OFPXMT_OFB_IPV4_SRC       = 11; /* IPv4 source address. */
+    OFPXMT_OFB_IPV4_DST       = 12; /* IPv4 destination address. */
+    OFPXMT_OFB_TCP_SRC        = 13; /* TCP source port. */
+    OFPXMT_OFB_TCP_DST        = 14; /* TCP destination port. */
+    OFPXMT_OFB_UDP_SRC        = 15; /* UDP source port. */
+    OFPXMT_OFB_UDP_DST        = 16; /* UDP destination port. */
+    OFPXMT_OFB_SCTP_SRC       = 17; /* SCTP source port. */
+    OFPXMT_OFB_SCTP_DST       = 18; /* SCTP destination port. */
+    OFPXMT_OFB_ICMPV4_TYPE    = 19; /* ICMP type. */
+    OFPXMT_OFB_ICMPV4_CODE    = 20; /* ICMP code. */
+    OFPXMT_OFB_ARP_OP         = 21; /* ARP opcode. */
+    OFPXMT_OFB_ARP_SPA        = 22; /* ARP source IPv4 address. */
+    OFPXMT_OFB_ARP_TPA        = 23; /* ARP target IPv4 address. */
+    OFPXMT_OFB_ARP_SHA        = 24; /* ARP source hardware address. */
+    OFPXMT_OFB_ARP_THA        = 25; /* ARP target hardware address. */
+    OFPXMT_OFB_IPV6_SRC       = 26; /* IPv6 source address. */
+    OFPXMT_OFB_IPV6_DST       = 27; /* IPv6 destination address. */
+    OFPXMT_OFB_IPV6_FLABEL    = 28; /* IPv6 Flow Label */
+    OFPXMT_OFB_ICMPV6_TYPE    = 29; /* ICMPv6 type. */
+    OFPXMT_OFB_ICMPV6_CODE    = 30; /* ICMPv6 code. */
+    OFPXMT_OFB_IPV6_ND_TARGET = 31; /* Target address for ND. */
+    OFPXMT_OFB_IPV6_ND_SLL    = 32; /* Source link-layer for ND. */
+    OFPXMT_OFB_IPV6_ND_TLL    = 33; /* Target link-layer for ND. */
+    OFPXMT_OFB_MPLS_LABEL     = 34; /* MPLS label. */
+    OFPXMT_OFB_MPLS_TC        = 35; /* MPLS TC. */
+    OFPXMT_OFB_MPLS_BOS       = 36; /* MPLS BoS bit. */
+    OFPXMT_OFB_PBB_ISID       = 37; /* PBB I-SID. */
+    OFPXMT_OFB_TUNNEL_ID      = 38; /* Logical Port Metadata. */
+    OFPXMT_OFB_IPV6_EXTHDR    = 39; /* IPv6 Extension Header pseudo-field */
+};
+
+/* OXM Flow match fields */
+message ofp_oxm_field {
+    ofp_oxm_class oxm_class = 1;
+    oneof field {
+        /* 2 and 3 reserved for NXM_0 and NXM-1 OXM classes */
+        ofp_oxm_ofb_field ofb_field = 4;
+        ofp_oxm_experimenter_field experimenter_field = 5;
+    }
+}
+
+/* OXM OpenFlow Basic Match Field */
+message ofp_oxm_ofb_field {
+    oxm_ofb_field_types type = 1;
+    bool has_mask = 2;
+    oneof value {
+
+        /* OpenFlow port on which the packet was received.
+         * May be a physical port, a logical port, or the reserved port OFPP_LOCAL
+         *
+         * Prereqs: None.
+         *
+         * Format: 32-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IN_PORT    OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PORT, 4)
+        uint32 port = 3; /* Used for OFPXMT_OFB_IN_PORT */
+
+        /* Physical port on which the packet was received.
+         *
+         * Consider a packet received on a tunnel interface defined over a link
+         * aggregation group (LAG) with two physical port members.  If the tunnel
+         * interface is the logical port bound to OpenFlow.  In this case,
+         * OFPXMT_OF_IN_PORT is the tunnel's port number and OFPXMT_OF_IN_PHY_PORT is
+         * the physical port number of the LAG on which the tunnel is configured.
+         *
+         * When a packet is received directly on a physical port and not processed by a
+         * logical port, OFPXMT_OF_IN_PORT and OFPXMT_OF_IN_PHY_PORT have the same
+         * value.
+         *
+         * This field is usually not available in a regular match and only available
+         * in ofp_packet_in messages when it's different from OXM_OF_IN_PORT.
+         *
+         * Prereqs: OXM_OF_IN_PORT must be present.
+         *
+         * Format: 32-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IN_PHY_PORT OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PHY_PORT, 4)
+        uint32 physical_port = 4; /* Used for OFPXMT_OF_IN_PHY_PORT */
+
+        /* Table metadata.
+         *
+         * Prereqs: None.
+         *
+         * Format: 64-bit integer in network byte order.
+         *
+         * Masking: Arbitrary masks.
+         */
+        //#define OXM_OF_METADATA   OXM_HEADER  (0x8000, OFPXMT_OFB_METADATA, 8)
+        //#define OXM_OF_METADATA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_METADATA, 8)
+        uint64 table_metadata = 5; /* Used for OFPXMT_OFB_METADATA */
+
+        /* Source or destination address in Ethernet header.
+         *
+         * Prereqs: None.
+         *
+         * Format: 48-bit Ethernet MAC address.
+         *
+         * Masking: Arbitrary masks. */
+        //#define OXM_OF_ETH_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_DST, 6)
+        //#define OXM_OF_ETH_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_DST, 6)
+        //#define OXM_OF_ETH_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_SRC, 6)
+        //#define OXM_OF_ETH_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_SRC, 6)
+        bytes eth_dst = 6; /* Used for OFPXMT_OFB_ETH_DST (exactly 6 bytes) */
+        bytes eth_src = 7; /* Used for OFPXMT_OFB_ETH_SRC (exactly 6 bytes) */
+
+        /* Packet's Ethernet type.
+         *
+         * Prereqs: None.
+         *
+         * Format: 16-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_ETH_TYPE   OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_TYPE,2)
+        uint32 eth_type = 8; /* Used for OFPXMT_OFB_ETH_TYPE */
+
+        /* 802.1Q VID.
+         *
+         * For a packet with an 802.1Q header, this is the VLAN-ID (VID) from the
+         * outermost tag, with the CFI bit forced to 1. For a packet with no 802.1Q
+         * header, this has value OFPVID_NONE.
+         *
+         * Prereqs: None.
+         *
+         * Format: 16-bit integer in network byte order with bit 13 indicating
+         * presence of VLAN header and 3 most-significant bits forced to 0.
+         * Only the lower 13 bits have meaning.
+         *
+         * Masking: Arbitrary masks.
+         *
+         * This field can be used in various ways:
+         *
+         *   - If it is not constrained at all, the nx_match matches packets without
+         *     an 802.1Q header or with an 802.1Q header that has any VID value.
+         *
+         *   - Testing for an exact match with 0x0 matches only packets without
+         *     an 802.1Q header.
+         *
+         *   - Testing for an exact match with a VID value with CFI=1 matches packets
+         *     that have an 802.1Q header with a specified VID.
+         *
+         *   - Testing for an exact match with a nonzero VID value with CFI=0 does
+         *     not make sense.  The switch may reject this combination.
+         *
+         *   - Testing with nxm_value=0, nxm_mask=0x0fff matches packets with no 802.1Q
+         *     header or with an 802.1Q header with a VID of 0.
+         *
+         *   - Testing with nxm_value=0x1000, nxm_mask=0x1000 matches packets with
+         *     an 802.1Q header that has any VID value.
+         */
+        //#define OXM_OF_VLAN_VID   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_VID, 2)
+        //#define OXM_OF_VLAN_VID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_VLAN_VID, 2)
+        uint32 vlan_vid = 9; /* Used for OFPXMT_OFB_VLAN_VID */
+
+        /* 802.1Q PCP.
+         *
+         * For a packet with an 802.1Q header, this is the VLAN-PCP from the
+         * outermost tag.  For a packet with no 802.1Q header, this has value
+         * 0.
+         *
+         * Prereqs: OXM_OF_VLAN_VID must be different from OFPVID_NONE.
+         *
+         * Format: 8-bit integer with 5 most-significant bits forced to 0.
+         * Only the lower 3 bits have meaning.
+         *
+         * Masking: Not maskable.
+         */
+        //#define OXM_OF_VLAN_PCP   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_PCP, 1)
+        uint32 vlan_pcp = 10; /* Used for OFPXMT_OFB_VLAN_PCP */
+
+        /* The Diff Serv Code Point (DSCP) bits of the IP header.
+         * Part of the IPv4 ToS field or the IPv6 Traffic Class field.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
+         *
+         * Format: 8-bit integer with 2 most-significant bits forced to 0.
+         * Only the lower 6 bits have meaning.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IP_DSCP     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_DSCP, 1)
+        uint32 ip_dscp = 11; /* Used for OFPXMT_OFB_IP_DSCP */
+
+        /* The ECN bits of the IP header.
+         * Part of the IPv4 ToS field or the IPv6 Traffic Class field.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
+         *
+         * Format: 8-bit integer with 6 most-significant bits forced to 0.
+         * Only the lower 2 bits have meaning.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IP_ECN     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_ECN, 1)
+        uint32 ip_ecn = 12; /* Used for OFPXMT_OFB_IP_ECN */
+
+        /* The "protocol" byte in the IP header.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
+         *
+         * Format: 8-bit integer.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IP_PROTO   OXM_HEADER  (0x8000, OFPXMT_OFB_IP_PROTO, 1)
+        uint32 ip_proto = 13; /* Used for OFPXMT_OFB_IP_PROTO */
+
+        /* The source or destination address in the IP header.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must match 0x0800 exactly.
+         *
+         * Format: 32-bit integer in network byte order.
+         *
+         * Masking: Arbitrary masks.
+         */
+        //#define OXM_OF_IPV4_SRC     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_SRC, 4)
+        //#define OXM_OF_IPV4_SRC_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_SRC, 4)
+        //#define OXM_OF_IPV4_DST     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_DST, 4)
+        //#define OXM_OF_IPV4_DST_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_DST, 4)
+        uint32 ipv4_src = 14; /* Used for OFPXMT_OFB_IPV4_SRC */
+        uint32 ipv4_dst = 15; /* Used for OFPXMT_OFB_IPV4_DST */
+
+        /* The source or destination port in the TCP header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
+         *   OXM_OF_IP_PROTO must match 6 exactly.
+         *
+         * Format: 16-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_TCP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_SRC, 2)
+        //#define OXM_OF_TCP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_DST, 2)
+        uint32 tcp_src = 16; /* Used for OFPXMT_OFB_TCP_SRC */
+        uint32 tcp_dst = 17; /* Used for OFPXMT_OFB_TCP_DST */
+
+        /* The source or destination port in the UDP header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
+         *   OXM_OF_IP_PROTO must match 17 exactly.
+         *
+         * Format: 16-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_UDP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_SRC, 2)
+        //#define OXM_OF_UDP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_DST, 2)
+        uint32 udp_src = 18; /* Used for OFPXMT_OFB_UDP_SRC */
+        uint32 udp_dst = 19; /* Used for OFPXMT_OFB_UDP_DST */
+
+        /* The source or destination port in the SCTP header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
+         *   OXM_OF_IP_PROTO must match 132 exactly.
+         *
+         * Format: 16-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_SCTP_SRC   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_SRC, 2)
+        //#define OXM_OF_SCTP_DST   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_DST, 2)
+        uint32 sctp_src = 20; /* Used for OFPXMT_OFB_SCTP_SRC */
+        uint32 sctp_dst = 21; /* Used for OFPXMT_OFB_SCTP_DST */
+
+        /* The type or code in the ICMP header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x0800 exactly.
+         *   OXM_OF_IP_PROTO must match 1 exactly.
+         *
+         * Format: 8-bit integer.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_ICMPV4_TYPE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_TYPE, 1)
+        //#define OXM_OF_ICMPV4_CODE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_CODE, 1)
+        uint32 icmpv4_type = 22; /* Used for OFPXMT_OFB_ICMPV4_TYPE */
+        uint32 icmpv4_code = 23; /* Used for OFPXMT_OFB_ICMPV4_CODE */
+
+        /* ARP opcode.
+         *
+         * For an Ethernet+IP ARP packet, the opcode in the ARP header.  Always 0
+         * otherwise.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
+         *
+         * Format: 16-bit integer in network byte order.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_ARP_OP     OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_OP, 2)
+        uint32 arp_op = 24; /* Used for OFPXMT_OFB_ARP_OP */
+
+        /* For an Ethernet+IP ARP packet, the source or target protocol address
+         * in the ARP header.  Always 0 otherwise.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
+         *
+         * Format: 32-bit integer in network byte order.
+         *
+         * Masking: Arbitrary masks.
+         */
+        //#define OXM_OF_ARP_SPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_SPA, 4)
+        //#define OXM_OF_ARP_SPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_SPA, 4)
+        //#define OXM_OF_ARP_TPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_TPA, 4)
+        //#define OXM_OF_ARP_TPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_TPA, 4)
+        uint32 arp_spa = 25; /* For OFPXMT_OFB_ARP_SPA */
+        uint32 arp_tpa = 26; /* For OFPXMT_OFB_ARP_TPA */
+
+        /* For an Ethernet+IP ARP packet, the source or target hardware address
+         * in the ARP header.  Always 0 otherwise.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
+         *
+         * Format: 48-bit Ethernet MAC address.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_ARP_SHA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_SHA, 6)
+        //#define OXM_OF_ARP_SHA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_SHA, 6)
+        //#define OXM_OF_ARP_THA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_THA, 6)
+        //#define OXM_OF_ARP_THA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_THA, 6)
+        bytes arp_sha = 27; /* For OFPXMT_OFB_ARP_SHA (6 bytes) */
+        bytes arp_tha = 28; /* For OFPXMT_OFB_ARP_THA (6 bytes) */
+
+        /* The source or destination address in the IPv6 header.
+         *
+         * Prereqs: OXM_OF_ETH_TYPE must match 0x86dd exactly.
+         *
+         * Format: 128-bit IPv6 address.
+         *
+         * Masking: Arbitrary masks.
+         */
+        //#define OXM_OF_IPV6_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_SRC, 16)
+        //#define OXM_OF_IPV6_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_SRC, 16)
+        //#define OXM_OF_IPV6_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_DST, 16)
+        //#define OXM_OF_IPV6_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_DST, 16)
+        bytes ipv6_src = 29; /* For OFPXMT_OFB_IPV6_SRC */
+        bytes ipv6_dst = 30; /* For OFPXMT_OFB_IPV6_DST */
+
+        /* The IPv6 Flow Label
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly
+         *
+         * Format: 32-bit integer with 12 most-significant bits forced to 0.
+         * Only the lower 20 bits have meaning.
+         *
+         * Masking: Arbitrary masks.
+         */
+        //#define OXM_OF_IPV6_FLABEL   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
+        //#define OXM_OF_IPV6_FLABEL_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
+        uint32 ipv6_flabel = 31; /* For OFPXMT_OFB_IPV6_FLABEL */
+
+        /* The type or code in the ICMPv6 header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
+         *   OXM_OF_IP_PROTO must match 58 exactly.
+         *
+         * Format: 8-bit integer.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_ICMPV6_TYPE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_TYPE, 1)
+        //#define OXM_OF_ICMPV6_CODE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_CODE, 1)
+        uint32 icmpv6_type = 32; /* For OFPXMT_OFB_ICMPV6_TYPE */
+        uint32 icmpv6_code = 33; /* For OFPXMT_OFB_ICMPV6_CODE */
+
+        /* The target address in an IPv6 Neighbor Discovery message.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
+         *   OXM_OF_IP_PROTO must match 58 exactly.
+         *   OXM_OF_ICMPV6_TYPE must be either 135 or 136.
+         *
+         * Format: 128-bit IPv6 address.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IPV6_ND_TARGET OXM_HEADER \
+        //    (0x8000, OFPXMT_OFB_IPV6_ND_TARGET, 16)
+        bytes ipv6_nd_target = 34; /* For OFPXMT_OFB_IPV6_ND_TARGET */
+
+        /* The source link-layer address option in an IPv6 Neighbor Discovery
+         * message.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
+         *   OXM_OF_IP_PROTO must match 58 exactly.
+         *   OXM_OF_ICMPV6_TYPE must be exactly 135.
+         *
+         * Format: 48-bit Ethernet MAC address.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IPV6_ND_SLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_SLL, 6)
+        bytes ipv6_nd_ssl = 35; /* For OFPXMT_OFB_IPV6_ND_SLL */
+
+        /* The target link-layer address option in an IPv6 Neighbor Discovery
+         * message.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly.
+         *   OXM_OF_IP_PROTO must match 58 exactly.
+         *   OXM_OF_ICMPV6_TYPE must be exactly 136.
+         *
+         * Format: 48-bit Ethernet MAC address.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_IPV6_ND_TLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_TLL, 6)
+        bytes ipv6_nd_tll = 36; /* For OFPXMT_OFB_IPV6_ND_TLL */
+
+        /* The LABEL in the first MPLS shim header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
+         *
+         * Format: 32-bit integer in network byte order with 12 most-significant
+         * bits forced to 0. Only the lower 20 bits have meaning.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_MPLS_LABEL  OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_LABEL, 4)
+        uint32 mpls_label = 37; /* For OFPXMT_OFB_MPLS_LABEL */
+
+        /* The TC in the first MPLS shim header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
+         *
+         * Format: 8-bit integer with 5 most-significant bits forced to 0.
+         * Only the lower 3 bits have meaning.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_MPLS_TC     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_TC, 1)
+        uint32 mpls_tc = 38; /* For OFPXMT_OFB_MPLS_TC */
+
+        /* The BoS bit in the first MPLS shim header.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
+         *
+         * Format: 8-bit integer with 7 most-significant bits forced to 0.
+         * Only the lowest bit have a meaning.
+         *
+         * Masking: Not maskable. */
+        //#define OXM_OF_MPLS_BOS     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_BOS, 1)
+        uint32 mpls_bos = 39; /* For OFPXMT_OFB_MPLS_BOS */
+
+        /* IEEE 802.1ah I-SID.
+         *
+         * For a packet with a PBB header, this is the I-SID from the
+         * outermost service tag.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x88E7 exactly.
+         *
+         * Format: 24-bit integer in network byte order.
+         *
+         * Masking: Arbitrary masks. */
+        //#define OXM_OF_PBB_ISID   OXM_HEADER  (0x8000, OFPXMT_OFB_PBB_ISID, 3)
+        //#define OXM_OF_PBB_ISID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_PBB_ISID, 3)
+        uint32 pbb_isid = 40; /* For OFPXMT_OFB_PBB_ISID */
+
+        /* Logical Port Metadata.
+         *
+         * Metadata associated with a logical port.
+         * If the logical port performs encapsulation and decapsulation, this
+         * is the demultiplexing field from the encapsulation header.
+         * For example, for a packet received via GRE tunnel including a (32-bit) key,
+         * the key is stored in the low 32-bits and the high bits are zeroed.
+         * For a MPLS logical port, the low 20 bits represent the MPLS Label.
+         * For a VxLAN logical port, the low 24 bits represent the VNI.
+         * If the packet is not received through a logical port, the value is 0.
+         *
+         * Prereqs: None.
+         *
+         * Format: 64-bit integer in network byte order.
+         *
+         * Masking: Arbitrary masks. */
+        //#define OXM_OF_TUNNEL_ID    OXM_HEADER  (0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
+        //#define OXM_OF_TUNNEL_ID_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
+        uint64 tunnel_id = 41; /* For OFPXMT_OFB_TUNNEL_ID */
+
+        /* The IPv6 Extension Header pseudo-field.
+         *
+         * Prereqs:
+         *   OXM_OF_ETH_TYPE must match 0x86dd exactly
+         *
+         * Format: 16-bit integer with 7 most-significant bits forced to 0.
+         * Only the lower 9 bits have meaning.
+         *
+         * Masking: Maskable. */
+        //#define OXM_OF_IPV6_EXTHDR   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
+        //#define OXM_OF_IPV6_EXTHDR_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
+        uint32 ipv6_exthdr = 42; /* For OFPXMT_OFB_IPV6_EXTHDR */
+
+    }
+
+    /* Optional mask values (must be present when has_mask is true */
+    oneof mask {
+        uint64 table_metadata_mask = 105; /* For OFPXMT_OFB_METADATA */
+
+        bytes eth_dst_mask = 106; /* For OFPXMT_OFB_ETH_DST (exactly 6 bytes)*/
+        bytes eth_src_mask = 107; /* For OFPXMT_OFB_ETH_SRC (exactly 6 bytes)*/
+
+        uint32 vlan_vid_mask = 109; /* For OFPXMT_OFB_VLAN_VID */
+
+        uint32 ipv4_src_mask = 114; /* For OFPXMT_OFB_IPV4_SRC */
+        uint32 ipv4_dst_mask = 115; /* For OFPXMT_OFB_IPV4_DST */
+
+        uint32 arp_spa_mask = 125; /* For OFPXMT_OFB_ARP_SPA */
+        uint32 arp_tpa_mask = 126; /* For OFPXMT_OFB_ARP_TPA */
+
+        bytes ipv6_src_mask = 129; /* For OFPXMT_OFB_IPV6_SRC */
+        bytes ipv6_dst_mask = 130; /* For OFPXMT_OFB_IPV6_DST */
+
+        uint32 ipv6_flabel_mask = 131; /* For OFPXMT_OFB_IPV6_FLABEL */
+
+        uint32 pbb_isid_mask = 140; /* For OFPXMT_OFB_PBB_ISID */
+
+        uint64 tunnel_id_mask = 141; /* For OFPXMT_OFB_TUNNEL_ID */
+
+        uint32 ipv6_exthdr_mask = 142; /* For OFPXMT_OFB_IPV6_EXTHDR */
+    }
+
+}
+//#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 40) - 1)
+
+
+/* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
+ * special conditions.
+ */
+enum ofp_vlan_id {
+    OFPVID_NONE    = 0x0000; /* No VLAN id was set. */
+    OFPVID_PRESENT = 0x1000; /* Bit that indicate that a VLAN id is set */
+};
+/* Define for compatibility */
+//#define OFP_VLAN_NONE      OFPVID_NONE
+
+/* Bit definitions for IPv6 Extension Header pseudo-field. */
+enum ofp_ipv6exthdr_flags {
+    OFPIEH_INVALID = 0;
+    OFPIEH_NONEXT  = 1;     /* "No next header" encountered. */
+    OFPIEH_ESP     = 2;     /* Encrypted Sec Payload header present. */
+    OFPIEH_AUTH    = 4;     /* Authentication header present. */
+    OFPIEH_DEST    = 8;     /* 1 or 2 dest headers present. */
+    OFPIEH_FRAG    = 16;    /* Fragment header present. */
+    OFPIEH_ROUTER  = 32;    /* Router header present. */
+    OFPIEH_HOP     = 64;    /* Hop-by-hop header present. */
+    OFPIEH_UNREP   = 128;   /* Unexpected repeats encountered. */
+    OFPIEH_UNSEQ   = 256;   /* Unexpected sequencing encountered. */
+};
+
+/* Header for OXM experimenter match fields.
+ * The experimenter class should not use OXM_HEADER() macros for defining
+ * fields due to this extra header. */
+message ofp_oxm_experimenter_field {
+    uint32 oxm_header = 1;    /* oxm_class = OFPXMC_EXPERIMENTER */
+    uint32 experimenter = 2;  /* Experimenter ID which takes the same
+                                 form as in struct ofp_experimenter_header. */
+};
+
+/* ## ----------------- ## */
+/* ## OpenFlow Actions. ## */
+/* ## ----------------- ## */
+
+enum ofp_action_type {
+    OFPAT_OUTPUT       = 0;  /* Output to switch port. */
+    OFPAT_COPY_TTL_OUT = 11; /* Copy TTL "outwards" -- from next-to-outermost
+                                to outermost */
+    OFPAT_COPY_TTL_IN  = 12; /* Copy TTL "inwards" -- from outermost to
+                               next-to-outermost */
+    OFPAT_SET_MPLS_TTL = 15; /* MPLS TTL */
+    OFPAT_DEC_MPLS_TTL = 16; /* Decrement MPLS TTL */
+
+    OFPAT_PUSH_VLAN    = 17; /* Push a new VLAN tag */
+    OFPAT_POP_VLAN     = 18; /* Pop the outer VLAN tag */
+    OFPAT_PUSH_MPLS    = 19; /* Push a new MPLS tag */
+    OFPAT_POP_MPLS     = 20; /* Pop the outer MPLS tag */
+    OFPAT_SET_QUEUE    = 21; /* Set queue id when outputting to a port */
+    OFPAT_GROUP        = 22; /* Apply group. */
+    OFPAT_SET_NW_TTL   = 23; /* IP TTL. */
+    OFPAT_DEC_NW_TTL   = 24; /* Decrement IP TTL. */
+    OFPAT_SET_FIELD    = 25; /* Set a header field using OXM TLV format. */
+    OFPAT_PUSH_PBB     = 26; /* Push a new PBB service tag (I-TAG) */
+    OFPAT_POP_PBB      = 27; /* Pop the outer PBB service tag (I-TAG) */
+    OFPAT_EXPERIMENTER = 0xffff;
+};
+
+/* Action header that is common to all actions.  The length includes the
+ * header and any padding used to make the action 64-bit aligned.
+ * NB: The length of an action *must* always be a multiple of eight. */
+message ofp_action {
+    ofp_action_type type = 1;       /* One of OFPAT_*. */
+    oneof action {
+        ofp_action_output output = 2;
+        ofp_action_mpls_ttl mpls_ttl = 3;
+        ofp_action_push push = 4;
+        ofp_action_pop_mpls pop_mpls = 5;
+        ofp_action_group group = 6;
+        ofp_action_nw_ttl nw_ttl = 7;
+        ofp_action_set_field set_field = 8;
+        ofp_action_experimenter experimenter = 9;
+    }
+};
+
+enum ofp_controller_max_len {
+    OFPCML_INVALID   = 0;
+    OFPCML_MAX       = 0xffe5; /* maximum max_len value which can be used
+                                  to request a specific byte length. */
+    OFPCML_NO_BUFFER = 0xffff; /* indicates that no buffering should be
+                                  applied and the whole packet is to be
+                                  sent to the controller. */
+};
+
+/* Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
+ * When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
+ * number of bytes to send.  A 'max_len' of zero means no bytes of the
+ * packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
+ * the packet is not buffered and the complete packet is to be sent to
+ * the controller. */
+message ofp_action_output {
+    uint32 port = 1;                 /* Output port. */
+    uint32 max_len = 2;              /* Max length to send to controller. */
+};
+
+/* Action structure for OFPAT_SET_MPLS_TTL. */
+message ofp_action_mpls_ttl {
+    uint32 mpls_ttl = 1;             /* MPLS TTL */
+};
+
+/* Action structure for OFPAT_PUSH_VLAN/MPLS/PBB. */
+message ofp_action_push {
+    uint32 ethertype = 1;            /* Ethertype */
+};
+
+/* Action structure for OFPAT_POP_MPLS. */
+message ofp_action_pop_mpls {
+    uint32 ethertype = 1;            /* Ethertype */
+};
+
+/* Action structure for OFPAT_GROUP. */
+message ofp_action_group {
+    uint32 group_id = 1;             /* Group identifier. */
+};
+
+/* Action structure for OFPAT_SET_NW_TTL. */
+message ofp_action_nw_ttl {
+    uint32 nw_ttl = 1;               /* IP TTL */
+};
+
+/* Action structure for OFPAT_SET_FIELD. */
+message ofp_action_set_field {
+    ofp_oxm_field field = 1;
+};
+
+/* Action header for OFPAT_EXPERIMENTER.
+ * The rest of the body is experimenter-defined. */
+message ofp_action_experimenter {
+    uint32 experimenter = 1;         /* Experimenter ID which takes the same
+                                        form as in struct
+                                        ofp_experimenter_header. */
+    bytes data = 2;
+};
+
+/* ## ---------------------- ## */
+/* ## OpenFlow Instructions. ## */
+/* ## ---------------------- ## */
+
+enum ofp_instruction_type {
+    OFPIT_INVALID    = 0;
+    OFPIT_GOTO_TABLE = 1;       /* Setup the next table in the lookup
+                                   pipeline */
+    OFPIT_WRITE_METADATA = 2;   /* Setup the metadata field for use later in
+                                   pipeline */
+    OFPIT_WRITE_ACTIONS = 3;    /* Write the action(s) onto the datapath action
+                                   set */
+    OFPIT_APPLY_ACTIONS = 4;    /* Applies the action(s) immediately */
+    OFPIT_CLEAR_ACTIONS = 5;    /* Clears all actions from the datapath
+                                   action set */
+    OFPIT_METER = 6;            /* Apply meter (rate limiter) */
+
+    OFPIT_EXPERIMENTER = 0xFFFF; /* Experimenter instruction */
+};
+
+/* Instruction header that is common to all instructions.  The length includes
+ * the header and any padding used to make the instruction 64-bit aligned.
+ * NB: The length of an instruction *must* always be a multiple of eight. */
+message ofp_instruction {
+    uint32 type = 1;               /* Instruction type */
+    oneof data {
+        ofp_instruction_goto_table goto_table = 2;
+        ofp_instruction_write_metadata write_metadata = 3;
+        ofp_instruction_actions actions = 4;
+        ofp_instruction_meter meter = 5;
+        ofp_instruction_experimenter experimenter = 6;
+    }
+};
+
+/* Instruction structure for OFPIT_GOTO_TABLE */
+message ofp_instruction_goto_table {
+    uint32 table_id = 1;           /* Set next table in the lookup pipeline */
+};
+
+/* Instruction structure for OFPIT_WRITE_METADATA */
+message ofp_instruction_write_metadata {
+    uint64 metadata = 1;           /* Metadata value to write */
+    uint64 metadata_mask = 2;      /* Metadata write bitmask */
+};
+
+/* Instruction structure for OFPIT_WRITE/APPLY/CLEAR_ACTIONS */
+message ofp_instruction_actions {
+    repeated ofp_action actions = 1; /* 0 or more actions associated
+                                        with OFPIT_WRITE_ACTIONS and
+                                        OFPIT_APPLY_ACTIONS */
+};
+
+/* Instruction structure for OFPIT_METER */
+message ofp_instruction_meter {
+    uint32 meter_id = 1;           /* Meter instance. */
+};
+
+/* Instruction structure for experimental instructions */
+message ofp_instruction_experimenter {
+    uint32 experimenter = 1;     /* Experimenter ID which takes the same form
+                                   as in struct ofp_experimenter_header. */
+    /* Experimenter-defined arbitrary additional data. */
+    bytes data = 2;
+};
+
+/* ## --------------------------- ## */
+/* ## OpenFlow Flow Modification. ## */
+/* ## --------------------------- ## */
+
+enum ofp_flow_mod_command {
+    OFPFC_ADD           = 0; /* New flow. */
+    OFPFC_MODIFY        = 1; /* Modify all matching flows. */
+    OFPFC_MODIFY_STRICT = 2; /* Modify entry strictly matching wildcards and
+                                priority. */
+    OFPFC_DELETE        = 3; /* Delete all matching flows. */
+    OFPFC_DELETE_STRICT = 4; /* Delete entry strictly matching wildcards and
+                                priority. */
+};
+
+/* Value used in "idle_timeout" and "hard_timeout" to indicate that the entry
+ * is permanent. */
+//#define OFP_FLOW_PERMANENT 0
+
+/* By default, choose a priority in the middle. */
+//#define OFP_DEFAULT_PRIORITY 0x8000
+
+enum ofp_flow_mod_flags {
+    OFPFF_INVALID       = 0;
+    OFPFF_SEND_FLOW_REM = 1;  /* Send flow removed message when flow
+                               * expires or is deleted. */
+    OFPFF_CHECK_OVERLAP = 2;  /* Check for overlapping entries first. */
+    OFPFF_RESET_COUNTS  = 4;  /* Reset flow packet and byte counts. */
+    OFPFF_NO_PKT_COUNTS = 8;  /* Don't keep track of packet count. */
+    OFPFF_NO_BYT_COUNTS = 16; /* Don't keep track of byte count. */
+};
+
+/* Flow setup and teardown (controller -> datapath). */
+message ofp_flow_mod {
+    //ofp_header header = 1;
+    uint64 cookie = 2;             /* Opaque controller-issued identifier. */
+    uint64 cookie_mask = 3;        /* Mask used to restrict the cookie bits
+                                      that must match when the command is
+                                      OFPFC_MODIFY* or OFPFC_DELETE*. A value
+                                      of 0 indicates no restriction. */
+    uint32 table_id = 4;           /* ID of the table to put the flow in.
+                                      For OFPFC_DELETE_* commands, OFPTT_ALL
+                                      can also be used to delete matching
+                                      flows from all tables. */
+    ofp_flow_mod_command command = 5; /* One of OFPFC_*. */
+    uint32 idle_timeout = 6;       /* Idle time before discarding (seconds). */
+    uint32 hard_timeout = 7;       /* Max time before discarding (seconds). */
+    uint32 priority = 8;           /* Priority level of flow entry. */
+    uint32 buffer_id = 9;          /* Buffered packet to apply to, or
+                                      OFP_NO_BUFFER.
+                                      Not meaningful for OFPFC_DELETE*. */
+    uint32 out_port = 10;          /* For OFPFC_DELETE* commands, require
+                                      matching entries to include this as an
+                                      output port.  A value of OFPP_ANY
+                                      indicates no restriction. */
+    uint32 out_group = 11;         /* For OFPFC_DELETE* commands, require
+                                      matching entries to include this as an
+                                      output group.  A value of OFPG_ANY
+                                      indicates no restriction. */
+    uint32 flags = 12;             /* Bitmap of OFPFF_* flags. */
+    ofp_match match = 13;          /* Fields to match. Variable size. */
+    repeated ofp_instruction instructions = 14; /* 0 or more. */
+};
+
+/* Group numbering. Groups can use any number up to OFPG_MAX. */
+enum ofp_group {
+
+    OFPG_INVALID = 0;
+
+    /* Last usable group number. */
+    OFPG_MAX        = 0x7fffff00;
+
+    /* Fake groups. */
+    OFPG_ALL        = 0x7ffffffc;  /* Represents all groups for group delete
+                                      commands. */
+    OFPG_ANY        = 0x7fffffff;  /* Special wildcard: no group specified. */
+};
+
+/* Group commands */
+enum ofp_group_mod_command {
+    OFPGC_ADD    = 0;       /* New group. */
+    OFPGC_MODIFY = 1;       /* Modify all matching groups. */
+    OFPGC_DELETE = 2;       /* Delete all matching groups. */
+};
+
+/* Bucket for use in groups. */
+message ofp_bucket {
+    uint32 weight = 1;              /* Relative weight of bucket.  Only
+                                       defined for select groups. */
+    uint32 watch_port = 2;          /* Port whose state affects whether this
+                                       bucket is live.  Only required for fast
+                                       failover groups. */
+    uint32 watch_group = 3;         /* Group whose state affects whether this
+                                       bucket is live.  Only required for fast
+                                       failover groups. */
+    repeated ofp_action actions = 4;
+};
+
+/* Group setup and teardown (controller -> datapath). */
+message ofp_group_mod {
+    //ofp_header header = 1;
+    ofp_group_mod_command command = 2; /* One of OFPGC_*. */
+    ofp_group_type type = 3;           /* One of OFPGT_*. */
+    uint32 group_id = 4;               /* Group identifier. */
+    repeated ofp_bucket buckets = 5;
+};
+
+/* Group types.  Values in the range [128; 255] are reserved for experimental
+ * use. */
+enum ofp_group_type {
+    OFPGT_ALL      = 0; /* All (multicast/broadcast) group.  */
+    OFPGT_SELECT   = 1; /* Select group. */
+    OFPGT_INDIRECT = 2; /* Indirect group. */
+    OFPGT_FF       = 3; /* Fast failover group. */
+};
+
+/* Special buffer-id to indicate 'no buffer' */
+//#define OFP_NO_BUFFER 0xffffffff
+
+/* Send packet (controller -> datapath). */
+message ofp_packet_out {
+    //ofp_header header = 1;
+    uint32 buffer_id = 2;          /* ID assigned by datapath (OFP_NO_BUFFER
+                                      if none). */
+    uint32 in_port = 3;            /* Packet's input port or OFPP_CONTROLLER.*/
+    uint32 actions_len = 4;        /* Size of action array in bytes. */
+    repeated ofp_action actions = 5; /* Action list - 0 or more. */
+    /* The variable size action list is optionally followed by packet data.
+     * This data is only present and meaningful if buffer_id == -1. */
+    bytes data = 6;                /* Packet data. */
+};
+
+/* Why is this packet being sent to the controller? */
+enum ofp_packet_in_reason {
+    OFPR_NO_MATCH    = 0;   /* No matching flow (table-miss flow entry). */
+    OFPR_ACTION      = 1;   /* Action explicitly output to controller. */
+    OFPR_INVALID_TTL = 2;   /* Packet has invalid TTL */
+};
+
+/* Packet received on port (datapath -> controller). */
+message ofp_packet_in {
+    //ofp_header header = 1;
+    uint32 buffer_id = 2;     /* ID assigned by datapath. */
+    uint32 total_len = 3;     /* Full length of frame. */
+    ofp_packet_in_reason reason = 4; /* Reason packet is being sent */
+    uint32 table_id = 5;      /* ID of the table that was looked up */
+    uint64 cookie = 6;        /* Cookie of the flow entry that was looked up. */
+    ofp_match match = 7;      /* Packet metadata. Variable size. */
+    bytes data = 8;           /* Ethernet frame */
+};
+
+/* Why was this flow removed? */
+enum ofp_flow_removed_reason {
+    OFPRR_IDLE_TIMEOUT = 0;     /* Flow idle time exceeded idle_timeout. */
+    OFPRR_HARD_TIMEOUT = 1;     /* Time exceeded hard_timeout. */
+    OFPRR_DELETE       = 2;     /* Evicted by a DELETE flow mod. */
+    OFPRR_GROUP_DELETE = 3;     /* Group was removed. */
+    OFPRR_METER_DELETE = 4;     /* Meter was removed */
+};
+
+/* Flow removed (datapath -> controller). */
+message ofp_flow_removed {
+    //ofp_header header = 1;
+    uint64 cookie = 2;         /* Opaque controller-issued identifier. */
+
+    uint32 priority = 3;       /* Priority level of flow entry. */
+    ofp_flow_removed_reason reason = 4; /* One of OFPRR_*. */
+    uint32 table_id = 5;        /* ID of the table */
+
+    uint32 duration_sec = 6;   /* Time flow was alive in seconds. */
+    uint32 duration_nsec = 7;  /* Time flow was alive in nanoseconds beyond
+                                 duration_sec. */
+    uint32 idle_timeout = 8;   /* Idle timeout from original flow mod. */
+    uint32 hard_timeout = 9;   /* Hard timeout from original flow mod. */
+    uint64 packet_count = 10;
+    uint64 byte_count = 11;
+    ofp_match match = 12;  /* Description of fields. Variable size. */
+};
+
+/* Meter numbering. Flow meters can use any number up to OFPM_MAX. */
+enum ofp_meter {
+    OFPM_ZERO       = 0;
+    /* Last usable meter. */
+    OFPM_MAX        = 0x7fff0000;
+
+    /* Virtual meters. */
+    OFPM_SLOWPATH   = 0x7ffffffd;  /* Meter for slow datapath. */
+    OFPM_CONTROLLER = 0x7ffffffe;  /* Meter for controller connection. */
+    OFPM_ALL        = 0x7fffffff;  /* Represents all meters for stat requests
+                                      commands. */
+};
+
+/* Meter band types */
+enum ofp_meter_band_type {
+    OFPMBT_INVALID         = 0;
+    OFPMBT_DROP            = 1;      /* Drop packet. */
+    OFPMBT_DSCP_REMARK     = 2;      /* Remark DSCP in the IP header. */
+    OFPMBT_EXPERIMENTER    = 0xFFFF; /* Experimenter meter band. */
+};
+
+/* Common header for all meter bands */
+message ofp_meter_band_header {
+    ofp_meter_band_type type = 1;   /* One of OFPMBT_*. */
+    uint32              len = 2;    /* Length in bytes of this band. */
+    uint32              rate = 3;   /* Rate for this band. */
+    uint32              burst_size = 4;/* Size of bursts. */
+};
+
+/* OFPMBT_DROP band - drop packets */
+message ofp_meter_band_drop {
+    uint32        type = 1;   /* OFPMBT_DROP. */
+    uint32        len = 2;   /* Length in bytes of this band. */
+    uint32        rate = 3;   /* Rate for dropping packets. */
+    uint32        burst_size = 4;/* Size of bursts. */
+};
+
+/* OFPMBT_DSCP_REMARK band - Remark DSCP in the IP header */
+message ofp_meter_band_dscp_remark {
+    uint32        type = 1;       /* OFPMBT_DSCP_REMARK. */
+    uint32        len = 2;        /* Length in bytes of this band. */
+    uint32        rate = 3;       /* Rate for remarking packets. */
+    uint32        burst_size = 4; /* Size of bursts. */
+    uint32        prec_level = 5; /* Number of drop precedence level to add. */
+};
+
+/* OFPMBT_EXPERIMENTER band - Experimenter type.
+ * The rest of the band is experimenter-defined. */
+message ofp_meter_band_experimenter {
+    ofp_meter_band_type type = 1;        /* One of OFPMBT_*. */
+    uint32              len = 2;         /* Length in bytes of this band. */
+    uint32              rate = 3;        /* Rate for this band. */
+    uint32              burst_size = 4;  /* Size of bursts. */
+    uint32              experimenter = 5;/* Experimenter ID which takes the
+                                            same form as in struct
+                                            ofp_experimenter_header. */
+};
+
+/* Meter commands */
+enum ofp_meter_mod_command {
+    OFPMC_ADD = 0;              /* New meter. */
+    OFPMC_MODIFY = 1;           /* Modify specified meter. */
+    OFPMC_DELETE = 2;           /* Delete specified meter. */
+};
+
+/* Meter configuration flags */
+enum ofp_meter_flags {
+    OFPMF_INVALID = 0;
+    OFPMF_KBPS    = 1;     /* Rate value in kb/s (kilo-bit per second). */
+    OFPMF_PKTPS   = 2;     /* Rate value in packet/sec. */
+    OFPMF_BURST   = 4;     /* Do burst size. */
+    OFPMF_STATS   = 8;     /* Collect statistics. */
+};
+
+/* Meter configuration. OFPT_METER_MOD. */
+message ofp_meter_mod {
+    ofp_header   header = 1;
+    ofp_meter_mod_command command = 2;       /* One of OFPMC_*. */
+    uint32                flags = 3;         /* Bitmap of OFPMF_* flags. */
+    uint32                meter_id = 4;      /* Meter instance. */
+    repeated ofp_meter_band_header bands = 5; /* The band list length is
+                                                 inferred from the length field
+                                                 in the header. */
+};
+
+/* Values for 'type' in ofp_error_message.  These values are immutable: they
+ * will not change in future versions of the protocol (although new values may
+ * be added). */
+enum ofp_error_type {
+    OFPET_HELLO_FAILED         = 0;  /* Hello protocol failed. */
+    OFPET_BAD_REQUEST          = 1;  /* Request was not understood. */
+    OFPET_BAD_ACTION           = 2;  /* Error in action description. */
+    OFPET_BAD_INSTRUCTION      = 3;  /* Error in instruction list. */
+    OFPET_BAD_MATCH            = 4;  /* Error in match. */
+    OFPET_FLOW_MOD_FAILED      = 5;  /* Problem modifying flow entry. */
+    OFPET_GROUP_MOD_FAILED     = 6;  /* Problem modifying group entry. */
+    OFPET_PORT_MOD_FAILED      = 7;  /* Port mod request failed. */
+    OFPET_TABLE_MOD_FAILED     = 8;  /* Table mod request failed. */
+    OFPET_QUEUE_OP_FAILED      = 9;  /* Queue operation failed. */
+    OFPET_SWITCH_CONFIG_FAILED = 10; /* Switch config request failed. */
+    OFPET_ROLE_REQUEST_FAILED  = 11; /* Controller Role request failed. */
+    OFPET_METER_MOD_FAILED     = 12; /* Error in meter. */
+    OFPET_TABLE_FEATURES_FAILED = 13; /* Setting table features failed. */
+    OFPET_EXPERIMENTER = 0xffff;      /* Experimenter error messages. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_HELLO_FAILED.  'data' contains an
+ * ASCII text string that may give failure details. */
+enum ofp_hello_failed_code {
+    OFPHFC_INCOMPATIBLE = 0;    /* No compatible version. */
+    OFPHFC_EPERM        = 1;    /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_BAD_REQUEST.  'data' contains at least
+ * the first 64 bytes of the failed request. */
+enum ofp_bad_request_code {
+    OFPBRC_BAD_VERSION      = 0;  /* ofp_header.version not supported. */
+    OFPBRC_BAD_TYPE         = 1;  /* ofp_header.type not supported. */
+    OFPBRC_BAD_MULTIPART    = 2;  /* ofp_multipart_request.type not supported.
+                                   */
+    OFPBRC_BAD_EXPERIMENTER = 3;  /* Experimenter id not supported
+                                   * (in ofp_experimenter_header or
+                                   * ofp_multipart_request or
+                                   * ofp_multipart_reply). */
+    OFPBRC_BAD_EXP_TYPE     = 4;  /* Experimenter type not supported. */
+    OFPBRC_EPERM            = 5;  /* Permissions error. */
+    OFPBRC_BAD_LEN          = 6;  /* Wrong request length for type. */
+    OFPBRC_BUFFER_EMPTY     = 7;  /* Specified buffer has already been used. */
+    OFPBRC_BUFFER_UNKNOWN   = 8;  /* Specified buffer does not exist. */
+    OFPBRC_BAD_TABLE_ID     = 9;  /* Specified table-id invalid or does not
+                                   * exist. */
+    OFPBRC_IS_SLAVE         = 10; /* Denied because controller is slave. */
+    OFPBRC_BAD_PORT         = 11; /* Invalid port. */
+    OFPBRC_BAD_PACKET       = 12; /* Invalid packet in packet-out. */
+    OFPBRC_MULTIPART_BUFFER_OVERFLOW    = 13; /* ofp_multipart_request
+                                     overflowed the assigned buffer. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_BAD_ACTION.  'data' contains at least
+ * the first 64 bytes of the failed request. */
+enum ofp_bad_action_code {
+    OFPBAC_BAD_TYPE           = 0;  /* Unknown or unsupported action type. */
+    OFPBAC_BAD_LEN            = 1;  /* Length problem in actions. */
+    OFPBAC_BAD_EXPERIMENTER   = 2;  /* Unknown experimenter id specified. */
+    OFPBAC_BAD_EXP_TYPE       = 3;  /* Unknown action for experimenter id. */
+    OFPBAC_BAD_OUT_PORT       = 4;  /* Problem validating output port. */
+    OFPBAC_BAD_ARGUMENT       = 5;  /* Bad action argument. */
+    OFPBAC_EPERM              = 6;  /* Permissions error. */
+    OFPBAC_TOO_MANY           = 7;  /* Can't handle this many actions. */
+    OFPBAC_BAD_QUEUE          = 8;  /* Problem validating output queue. */
+    OFPBAC_BAD_OUT_GROUP      = 9;  /* Invalid group id in forward action. */
+    OFPBAC_MATCH_INCONSISTENT = 10; /* Action can't apply for this match,
+                                       or Set-Field missing prerequisite. */
+    OFPBAC_UNSUPPORTED_ORDER  = 11; /* Action order is unsupported for the
+                                 action list in an Apply-Actions instruction */
+    OFPBAC_BAD_TAG            = 12; /* Actions uses an unsupported
+                                       tag/encap. */
+    OFPBAC_BAD_SET_TYPE       = 13; /* Unsupported type in SET_FIELD action. */
+    OFPBAC_BAD_SET_LEN        = 14; /* Length problem in SET_FIELD action. */
+    OFPBAC_BAD_SET_ARGUMENT   = 15; /* Bad argument in SET_FIELD action. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_BAD_INSTRUCTION.  'data' contains at
+ * least the first 64 bytes of the failed request. */
+enum ofp_bad_instruction_code {
+    OFPBIC_UNKNOWN_INST     = 0; /* Unknown instruction. */
+    OFPBIC_UNSUP_INST       = 1; /* Switch or table does not support the
+                                    instruction. */
+    OFPBIC_BAD_TABLE_ID     = 2; /* Invalid Table-ID specified. */
+    OFPBIC_UNSUP_METADATA   = 3; /* Metadata value unsupported by datapath. */
+    OFPBIC_UNSUP_METADATA_MASK = 4; /* Metadata mask value unsupported by
+                                       datapath. */
+    OFPBIC_BAD_EXPERIMENTER = 5; /* Unknown experimenter id specified. */
+    OFPBIC_BAD_EXP_TYPE     = 6; /* Unknown instruction for experimenter id. */
+    OFPBIC_BAD_LEN          = 7; /* Length problem in instructions. */
+    OFPBIC_EPERM            = 8; /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_BAD_MATCH.  'data' contains at least
+ * the first 64 bytes of the failed request. */
+enum ofp_bad_match_code {
+    OFPBMC_BAD_TYPE         = 0;  /* Unsupported match type specified by the
+                                     match */
+    OFPBMC_BAD_LEN          = 1;  /* Length problem in match. */
+    OFPBMC_BAD_TAG          = 2;  /* Match uses an unsupported tag/encap. */
+    OFPBMC_BAD_DL_ADDR_MASK = 3;  /* Unsupported datalink addr mask - switch
+                                     does not support arbitrary datalink
+                                     address mask. */
+    OFPBMC_BAD_NW_ADDR_MASK = 4;  /* Unsupported network addr mask - switch
+                                     does not support arbitrary network
+                                     address mask. */
+    OFPBMC_BAD_WILDCARDS    = 5;  /* Unsupported combination of fields masked
+                                     or omitted in the match. */
+    OFPBMC_BAD_FIELD        = 6;  /* Unsupported field type in the match. */
+    OFPBMC_BAD_VALUE        = 7;  /* Unsupported value in a match field. */
+    OFPBMC_BAD_MASK         = 8;  /* Unsupported mask specified in the match,
+                                     field is not dl-address or nw-address. */
+    OFPBMC_BAD_PREREQ       = 9;  /* A prerequisite was not met. */
+    OFPBMC_DUP_FIELD        = 10; /* A field type was duplicated. */
+    OFPBMC_EPERM            = 11; /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_FLOW_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_flow_mod_failed_code {
+    OFPFMFC_UNKNOWN      = 0;   /* Unspecified error. */
+    OFPFMFC_TABLE_FULL   = 1;   /* Flow not added because table was full. */
+    OFPFMFC_BAD_TABLE_ID = 2;   /* Table does not exist */
+    OFPFMFC_OVERLAP      = 3;   /* Attempted to add overlapping flow with
+                                   CHECK_OVERLAP flag set. */
+    OFPFMFC_EPERM        = 4;   /* Permissions error. */
+    OFPFMFC_BAD_TIMEOUT  = 5;   /* Flow not added because of unsupported
+                                   idle/hard timeout. */
+    OFPFMFC_BAD_COMMAND  = 6;   /* Unsupported or unknown command. */
+    OFPFMFC_BAD_FLAGS    = 7;   /* Unsupported or unknown flags. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_GROUP_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_group_mod_failed_code {
+    OFPGMFC_GROUP_EXISTS         = 0;  /* Group not added because a group ADD
+                                          attempted to replace an
+                                          already-present group. */
+    OFPGMFC_INVALID_GROUP        = 1;  /* Group not added because Group
+                                          specified is invalid. */
+    OFPGMFC_WEIGHT_UNSUPPORTED   = 2;  /* Switch does not support unequal load
+                                          sharing with select groups. */
+    OFPGMFC_OUT_OF_GROUPS        = 3;  /* The group table is full. */
+    OFPGMFC_OUT_OF_BUCKETS       = 4;  /* The maximum number of action buckets
+                                          for a group has been exceeded. */
+    OFPGMFC_CHAINING_UNSUPPORTED = 5;  /* Switch does not support groups that
+                                          forward to groups. */
+    OFPGMFC_WATCH_UNSUPPORTED    = 6;  /* This group cannot watch the
+                                          watch_port or watch_group specified.
+                                        */
+    OFPGMFC_LOOP                 = 7;  /* Group entry would cause a loop. */
+    OFPGMFC_UNKNOWN_GROUP        = 8;  /* Group not modified because a group
+                                          MODIFY attempted to modify a
+                                          non-existent group. */
+    OFPGMFC_CHAINED_GROUP        = 9;  /* Group not deleted because another
+                                          group is forwarding to it. */
+    OFPGMFC_BAD_TYPE             = 10; /* Unsupported or unknown group type. */
+    OFPGMFC_BAD_COMMAND          = 11; /* Unsupported or unknown command. */
+    OFPGMFC_BAD_BUCKET           = 12; /* Error in bucket. */
+    OFPGMFC_BAD_WATCH            = 13; /* Error in watch port/group. */
+    OFPGMFC_EPERM                = 14; /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_PORT_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_port_mod_failed_code {
+    OFPPMFC_BAD_PORT      = 0;   /* Specified port number does not exist. */
+    OFPPMFC_BAD_HW_ADDR   = 1;   /* Specified hardware address does not
+                                  * match the port number. */
+    OFPPMFC_BAD_CONFIG    = 2;   /* Specified config is invalid. */
+    OFPPMFC_BAD_ADVERTISE = 3;   /* Specified advertise is invalid. */
+    OFPPMFC_EPERM         = 4;   /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_TABLE_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_table_mod_failed_code {
+    OFPTMFC_BAD_TABLE  = 0;      /* Specified table does not exist. */
+    OFPTMFC_BAD_CONFIG = 1;      /* Specified config is invalid. */
+    OFPTMFC_EPERM      = 2;      /* Permissions error. */
+};
+
+/* ofp_error msg 'code' values for OFPET_QUEUE_OP_FAILED. 'data' contains
+ * at least the first 64 bytes of the failed request */
+enum ofp_queue_op_failed_code {
+    OFPQOFC_BAD_PORT   = 0;     /* Invalid port (or port does not exist). */
+    OFPQOFC_BAD_QUEUE  = 1;     /* Queue does not exist. */
+    OFPQOFC_EPERM      = 2;     /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_SWITCH_CONFIG_FAILED. 'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_switch_config_failed_code {
+    OFPSCFC_BAD_FLAGS  = 0;      /* Specified flags is invalid. */
+    OFPSCFC_BAD_LEN    = 1;      /* Specified len is invalid. */
+    OFPSCFC_EPERM      = 2;      /* Permissions error. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_ROLE_REQUEST_FAILED. 'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_role_request_failed_code {
+    OFPRRFC_STALE      = 0;      /* Stale Message: old generation_id. */
+    OFPRRFC_UNSUP      = 1;      /* Controller role change unsupported. */
+    OFPRRFC_BAD_ROLE   = 2;      /* Invalid role. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_METER_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_meter_mod_failed_code {
+    OFPMMFC_UNKNOWN       = 0;  /* Unspecified error. */
+    OFPMMFC_METER_EXISTS  = 1;  /* Meter not added because a Meter ADD
+                                 * attempted to replace an existing Meter. */
+    OFPMMFC_INVALID_METER = 2;  /* Meter not added because Meter specified
+                                 * is invalid,
+                                 * or invalid meter in meter action. */
+    OFPMMFC_UNKNOWN_METER = 3;  /* Meter not modified because a Meter MODIFY
+                                 * attempted to modify a non-existent Meter,
+                                 * or bad meter in meter action. */
+    OFPMMFC_BAD_COMMAND   = 4;  /* Unsupported or unknown command. */
+    OFPMMFC_BAD_FLAGS     = 5;  /* Flag configuration unsupported. */
+    OFPMMFC_BAD_RATE      = 6;  /* Rate unsupported. */
+    OFPMMFC_BAD_BURST     = 7;  /* Burst size unsupported. */
+    OFPMMFC_BAD_BAND      = 8;  /* Band unsupported. */
+    OFPMMFC_BAD_BAND_VALUE = 9; /* Band value unsupported. */
+    OFPMMFC_OUT_OF_METERS = 10; /* No more meters available. */
+    OFPMMFC_OUT_OF_BANDS  = 11; /* The maximum number of properties
+                                 * for a meter has been exceeded. */
+};
+
+/* ofp_error_msg 'code' values for OFPET_TABLE_FEATURES_FAILED. 'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_table_features_failed_code {
+    OFPTFFC_BAD_TABLE    = 0;      /* Specified table does not exist. */
+    OFPTFFC_BAD_METADATA = 1;      /* Invalid metadata mask. */
+    OFPTFFC_BAD_TYPE     = 2;      /* Unknown property type. */
+    OFPTFFC_BAD_LEN      = 3;      /* Length problem in properties. */
+    OFPTFFC_BAD_ARGUMENT = 4;      /* Unsupported property value. */
+    OFPTFFC_EPERM        = 5;      /* Permissions error. */
+};
+
+/* OFPT_ERROR: Error message (datapath -> controller). */
+message ofp_error_msg {
+    //ofp_header header = 1;
+    uint32 type = 2;
+    uint32 code = 3;
+    bytes data = 4;          /* Variable-length data.  Interpreted based
+                                 on the type and code.  No padding. */
+};
+
+/* OFPET_EXPERIMENTER: Error message (datapath -> controller). */
+message ofp_error_experimenter_msg {
+    //ofp_header header = 1;
+
+    uint32 type = 2;           /* OFPET_EXPERIMENTER. */
+    uint32 exp_type = 3;       /* Experimenter defined. */
+    uint32 experimenter = 4;   /* Experimenter ID which takes the same form
+                                    as in struct ofp_experimenter_header. */
+    bytes data = 5;              /* Variable-length data.  Interpreted based
+                                    on the type and code.  No padding. */
+};
+
+enum ofp_multipart_type {
+    /* Description of this OpenFlow switch.
+     * The request body is empty.
+     * The reply body is struct ofp_desc. */
+    OFPMP_DESC = 0;
+
+    /* Individual flow statistics.
+     * The request body is struct ofp_flow_stats_request.
+     * The reply body is an array of struct ofp_flow_stats. */
+    OFPMP_FLOW = 1;
+
+    /* Aggregate flow statistics.
+     * The request body is struct ofp_aggregate_stats_request.
+     * The reply body is struct ofp_aggregate_stats_reply. */
+    OFPMP_AGGREGATE = 2;
+
+    /* Flow table statistics.
+     * The request body is empty.
+     * The reply body is an array of struct ofp_table_stats. */
+    OFPMP_TABLE = 3;
+
+    /* Port statistics.
+     * The request body is struct ofp_port_stats_request.
+     * The reply body is an array of struct ofp_port_stats. */
+    OFPMP_PORT_STATS = 4;
+
+    /* Queue statistics for a port
+     * The request body is struct ofp_queue_stats_request.
+     * The reply body is an array of struct ofp_queue_stats */
+    OFPMP_QUEUE = 5;
+
+    /* Group counter statistics.
+     * The request body is struct ofp_group_stats_request.
+     * The reply is an array of struct ofp_group_stats. */
+    OFPMP_GROUP = 6;
+
+    /* Group description.
+     * The request body is empty.
+     * The reply body is an array of struct ofp_group_desc. */
+    OFPMP_GROUP_DESC = 7;
+
+    /* Group features.
+     * The request body is empty.
+     * The reply body is struct ofp_group_features. */
+    OFPMP_GROUP_FEATURES = 8;
+
+    /* Meter statistics.
+     * The request body is struct ofp_meter_multipart_requests.
+     * The reply body is an array of struct ofp_meter_stats. */
+    OFPMP_METER = 9;
+
+    /* Meter configuration.
+     * The request body is struct ofp_meter_multipart_requests.
+     * The reply body is an array of struct ofp_meter_config. */
+    OFPMP_METER_CONFIG = 10;
+
+    /* Meter features.
+     * The request body is empty.
+     * The reply body is struct ofp_meter_features. */
+    OFPMP_METER_FEATURES = 11;
+
+    /* Table features.
+     * The request body is either empty or contains an array of
+     * struct ofp_table_features containing the controller's
+     * desired view of the switch. If the switch is unable to
+     * set the specified view an error is returned.
+     * The reply body is an array of struct ofp_table_features. */
+    OFPMP_TABLE_FEATURES = 12;
+
+    /* Port description.
+     * The request body is empty.
+     * The reply body is an array of struct ofp_port. */
+    OFPMP_PORT_DESC = 13;
+
+    /* Experimenter extension.
+     * The request and reply bodies begin with
+     * struct ofp_experimenter_multipart_header.
+     * The request and reply bodies are otherwise experimenter-defined. */
+    OFPMP_EXPERIMENTER = 0xffff;
+};
+
+/* Backward compatibility with 1.3.1 - avoid breaking the API. */
+//#define ofp_multipart_types ofp_multipart_type
+
+enum ofp_multipart_request_flags {
+    OFPMPF_REQ_INVALID = 0;
+    OFPMPF_REQ_MORE  = 1;  /* More requests to follow. */
+};
+
+message ofp_multipart_request {
+    //ofp_header header = 1;
+    ofp_multipart_type type = 2; /* One of the OFPMP_* constants. */
+    uint32 flags = 3;            /* OFPMPF_REQ_* flags. */
+    bytes body = 4;              /* Body of the request. 0 or more bytes. */
+};
+
+enum ofp_multipart_reply_flags {
+    OFPMPF_REPLY_INVALID = 0;
+    OFPMPF_REPLY_MORE  = 1;  /* More replies to follow. */
+};
+
+message ofp_multipart_reply {
+    //ofp_header header = 1;
+    ofp_multipart_type type = 2; /* One of the OFPMP_* constants. */
+    uint32 flags = 3;            /* OFPMPF_REPLY_* flags. */
+    bytes body = 4;              /* Body of the reply. 0 or more bytes. */
+};
+
+//#define DESC_STR_LEN   256
+//#define SERIAL_NUM_LEN 32
+/* Body of reply to OFPMP_DESC request.  Each entry is a NULL-terminated
+ * ASCII string. */
+message ofp_desc {
+    string mfr_desc = 1;       /* Manufacturer description. */
+    string hw_desc = 2;        /* Hardware description. */
+    string sw_desc = 3;        /* Software description. */
+    string serial_num = 4;     /* Serial number. */
+    string dp_desc = 5;        /* Human readable description of datapath. */
+};
+
+/* Body for ofp_multipart_request of type OFPMP_FLOW. */
+message ofp_flow_stats_request {
+    uint32 table_id = 1;       /* ID of table to read (from ofp_table_stats),
+                                    OFPTT_ALL for all tables. */
+    uint32 out_port = 2;       /* Require matching entries to include this
+                                    as an output port.  A value of OFPP_ANY
+                                    indicates no restriction. */
+    uint32 out_group = 3;      /* Require matching entries to include this
+                                    as an output group.  A value of OFPG_ANY
+                                    indicates no restriction. */
+    uint64 cookie = 4;         /* Require matching entries to contain this
+                                    cookie value */
+    uint64 cookie_mask = 5;    /* Mask used to restrict the cookie bits that
+                                    must match. A value of 0 indicates
+                                    no restriction. */
+    ofp_match match = 6;         /* Fields to match. Variable size. */
+};
+
+/* Body of reply to OFPMP_FLOW request. */
+message ofp_flow_stats {
+    uint32 table_id = 1;        /* ID of table flow came from. */
+    uint32 duration_sec = 2;   /* Time flow has been alive in seconds. */
+    uint32 duration_nsec = 3;  /* Time flow has been alive in nanoseconds
+                                  beyond duration_sec. */
+    uint32 priority = 4;       /* Priority of the entry. */
+    uint32 idle_timeout = 5;   /* Number of seconds idle before expiration. */
+    uint32 hard_timeout = 6;   /* Number of seconds before expiration. */
+    uint32 flags = 7;          /* Bitmap of OFPFF_* flags. */
+    uint64 cookie = 8;         /* Opaque controller-issued identifier. */
+    uint64 packet_count = 9;   /* Number of packets in flow. */
+    uint64 byte_count = 10;     /* Number of bytes in flow. */
+    ofp_match match = 12;  /* Description of fields. Variable size. */
+    repeated ofp_instruction instructions = 13; /* Instruction set
+                                                   (0 or more) */
+};
+
+/* Body for ofp_multipart_request of type OFPMP_AGGREGATE. */
+message ofp_aggregate_stats_request {
+    uint32 table_id = 1;      /* ID of table to read (from ofp_table_stats)
+                                 OFPTT_ALL for all tables. */
+    uint32 out_port = 2;      /* Require matching entries to include this
+                                 as an output port.  A value of OFPP_ANY
+                                 indicates no restriction. */
+    uint32 out_group = 3;     /* Require matching entries to include this
+                                 as an output group.  A value of OFPG_ANY
+                                 indicates no restriction. */
+    uint64 cookie = 4;        /* Require matching entries to contain this
+                                 cookie value */
+    uint64 cookie_mask = 5;   /* Mask used to restrict the cookie bits that
+                                 must match. A value of 0 indicates
+                                 no restriction. */
+    ofp_match match = 6;      /* Fields to match. Variable size. */
+};
+
+/* Body of reply to OFPMP_AGGREGATE request. */
+message ofp_aggregate_stats_reply {
+    uint64 packet_count = 1;   /* Number of packets in flows. */
+    uint64 byte_count = 2;     /* Number of bytes in flows. */
+    uint32 flow_count = 3;     /* Number of flows. */
+};
+
+/* Table Feature property types.
+ * Low order bit cleared indicates a property for a regular Flow Entry.
+ * Low order bit set indicates a property for the Table-Miss Flow Entry.
+ */
+enum ofp_table_feature_prop_type {
+    OFPTFPT_INSTRUCTIONS           = 0;  /* Instructions property. */
+    OFPTFPT_INSTRUCTIONS_MISS      = 1;  /* Instructions for table-miss. */
+    OFPTFPT_NEXT_TABLES            = 2;  /* Next Table property. */
+    OFPTFPT_NEXT_TABLES_MISS       = 3;  /* Next Table for table-miss. */
+    OFPTFPT_WRITE_ACTIONS          = 4;  /* Write Actions property. */
+    OFPTFPT_WRITE_ACTIONS_MISS     = 5;  /* Write Actions for table-miss. */
+    OFPTFPT_APPLY_ACTIONS          = 6;  /* Apply Actions property. */
+    OFPTFPT_APPLY_ACTIONS_MISS     = 7;  /* Apply Actions for table-miss. */
+    OFPTFPT_MATCH                  = 8;  /* Match property. */
+    OFPTFPT_WILDCARDS              = 10; /* Wildcards property. */
+    OFPTFPT_WRITE_SETFIELD         = 12; /* Write Set-Field property. */
+    OFPTFPT_WRITE_SETFIELD_MISS    = 13; /* Write Set-Field for table-miss. */
+    OFPTFPT_APPLY_SETFIELD         = 14; /* Apply Set-Field property. */
+    OFPTFPT_APPLY_SETFIELD_MISS    = 15; /* Apply Set-Field for table-miss. */
+    OFPTFPT_EXPERIMENTER           = 0xFFFE; /* Experimenter property. */
+    OFPTFPT_EXPERIMENTER_MISS      = 0xFFFF; /* Experimenter for table-miss. */
+};
+
+/* Common header for all Table Feature Properties */
+message ofp_table_feature_property {
+    ofp_table_feature_prop_type type = 1;   /* One of OFPTFPT_*. */
+    oneof value {
+        ofp_table_feature_prop_instructions instructions = 2;
+        ofp_table_feature_prop_next_tables next_tables = 3;
+        ofp_table_feature_prop_actions actions = 4;
+        ofp_table_feature_prop_oxm oxm = 5;
+        ofp_table_feature_prop_experimenter experimenter = 6;
+    }
+};
+
+/* Instructions property */
+message ofp_table_feature_prop_instructions {
+    /* One of OFPTFPT_INSTRUCTIONS,
+       OFPTFPT_INSTRUCTIONS_MISS. */
+    repeated ofp_instruction instructions = 1;   /* List of instructions */
+};
+
+/* Next Tables property */
+message ofp_table_feature_prop_next_tables {
+    /* One of OFPTFPT_NEXT_TABLES,
+       OFPTFPT_NEXT_TABLES_MISS. */
+    repeated uint32 next_table_ids = 1;     /* List of table ids. */
+};
+
+/* Actions property */
+message ofp_table_feature_prop_actions {
+    /* One of OFPTFPT_WRITE_ACTIONS,
+       OFPTFPT_WRITE_ACTIONS_MISS,
+       OFPTFPT_APPLY_ACTIONS,
+       OFPTFPT_APPLY_ACTIONS_MISS. */
+    repeated ofp_action actions = 1; /* List of actions */
+};
+
+/* Match, Wildcard or Set-Field property */
+message ofp_table_feature_prop_oxm {
+    /* One of OFPTFPT_MATCH,
+       OFPTFPT_WILDCARDS,
+       OFPTFPT_WRITE_SETFIELD,
+       OFPTFPT_WRITE_SETFIELD_MISS,
+       OFPTFPT_APPLY_SETFIELD,
+       OFPTFPT_APPLY_SETFIELD_MISS. */
+    /* TODO is this a uint32??? */
+    repeated uint32 oxm_ids = 3;    /* Array of OXM headers */
+};
+
+/* Experimenter table feature property */
+message ofp_table_feature_prop_experimenter {
+    /* One of OFPTFPT_EXPERIMENTER,
+       OFPTFPT_EXPERIMENTER_MISS. */
+    uint32         experimenter = 2; /* Experimenter ID which takes the same
+                                        form as in struct
+                                        ofp_experimenter_header. */
+    uint32         exp_type = 3;      /* Experimenter defined. */
+    repeated uint32 experimenter_data = 4;
+};
+
+/* Body for ofp_multipart_request of type OFPMP_TABLE_FEATURES./
+ * Body of reply to OFPMP_TABLE_FEATURES request. */
+message ofp_table_features {
+    uint32 table_id = 1;       /* Identifier of table.  Lower numbered tables
+                                are consulted first. */
+    string name = 2;
+    uint64 metadata_match = 3; /* Bits of metadata table can match. */
+    uint64 metadata_write = 4; /* Bits of metadata table can write. */
+    uint32 config = 5;         /* Bitmap of OFPTC_* values */
+    uint32 max_entries = 6;    /* Max number of entries supported. */
+
+    /* Table Feature Property list */
+    repeated ofp_table_feature_property properties = 7;
+};
+
+/* Body of reply to OFPMP_TABLE request. */
+message ofp_table_stats {
+    uint32 table_id = 1;      /* Identifier of table.  Lower numbered tables
+                                 are consulted first. */
+    uint32 active_count = 2;  /* Number of active entries. */
+    uint64 lookup_count = 3;  /* Number of packets looked up in table. */
+    uint64 matched_count = 4; /* Number of packets that hit table. */
+};
+
+/* Body for ofp_multipart_request of type OFPMP_PORT. */
+message ofp_port_stats_request {
+    uint32 port_no = 1;       /* OFPMP_PORT message must request statistics
+                               * either for a single port (specified in
+                               * port_no) or for all ports (if port_no ==
+                               * OFPP_ANY). */
+};
+
+/* Body of reply to OFPMP_PORT request. If a counter is unsupported, set
+ * the field to all ones. */
+message ofp_port_stats {
+    uint32 port_no = 1;
+    uint64 rx_packets = 2;   /* Number of received packets. */
+    uint64 tx_packets = 3;   /* Number of transmitted packets. */
+    uint64 rx_bytes = 4;     /* Number of received bytes. */
+    uint64 tx_bytes = 5;     /* Number of transmitted bytes. */
+    uint64 rx_dropped = 6;   /* Number of packets dropped by RX. */
+    uint64 tx_dropped = 7;   /* Number of packets dropped by TX. */
+    uint64 rx_errors = 8;    /* Number of receive errors.  This is a super-set
+                                of more specific receive errors and should be
+                                greater than or equal to the sum of all
+                                rx_*_err values. */
+    uint64 tx_errors = 9;    /* Number of transmit errors.  This is a super-set
+                                of more specific transmit errors and should be
+                                greater than or equal to the sum of all
+                                tx_*_err values (none currently defined.) */
+    uint64 rx_frame_err = 10;  /* Number of frame alignment errors. */
+    uint64 rx_over_err = 11;   /* Number of packets with RX overrun. */
+    uint64 rx_crc_err = 12;    /* Number of CRC errors. */
+    uint64 collisions = 13;    /* Number of collisions. */
+    uint32 duration_sec = 14;  /* Time port has been alive in seconds. */
+    uint32 duration_nsec = 15; /* Time port has been alive in nanoseconds
+                                  beyond duration_sec. */
+};
+
+/* Body of OFPMP_GROUP request. */
+message ofp_group_stats_request {
+    uint32 group_id = 1;      /* All groups if OFPG_ALL. */
+};
+
+/* Used in group stats replies. */
+message ofp_bucket_counter {
+    uint64 packet_count = 1;  /* Number of packets processed by bucket. */
+    uint64 byte_count = 2;    /* Number of bytes processed by bucket. */
+};
+
+/* Body of reply to OFPMP_GROUP request. */
+message ofp_group_stats {
+    uint32 group_id = 1;      /* Group identifier. */
+    uint32 ref_count = 2;     /* Number of flows or groups that directly
+                                 forward to this group. */
+    uint64 packet_count = 3;  /* Number of packets processed by group. */
+    uint64 byte_count = 4;    /* Number of bytes processed by group. */
+    uint32 duration_sec = 5;  /* Time group has been alive in seconds. */
+    uint32 duration_nsec = 6; /* Time group has been alive in nanoseconds
+                                 beyond duration_sec. */
+    repeated ofp_bucket_counter bucket_stats = 7; /* One counter set per
+                                                     bucket. */
+};
+
+/* Body of reply to OFPMP_GROUP_DESC request. */
+message ofp_group_desc {
+    ofp_group_type type = 1;       /* One of OFPGT_*. */
+    uint32 pad = 2;                /* Pad to 64 bits. */
+    uint32 group_id = 3;           /* Group identifier. */
+    repeated ofp_bucket buckets = 4;   /* List of buckets - 0 or more. */
+};
+
+/* Backward compatibility with 1.3.1 - avoid breaking the API. */
+//#define ofp_group_desc_stats ofp_group_desc
+
+/* Group configuration flags */
+enum ofp_group_capabilities {
+    OFPGFC_INVALID         = 0;
+    OFPGFC_SELECT_WEIGHT   = 1;  /* Support weight for select groups */
+    OFPGFC_SELECT_LIVENESS = 2;  /* Support liveness for select groups */
+    OFPGFC_CHAINING        = 4;  /* Support chaining groups */
+    OFPGFC_CHAINING_CHECKS = 8;  /* Check chaining for loops and delete */
+};
+
+/* Body of reply to OFPMP_GROUP_FEATURES request. Group features. */
+message ofp_group_features {
+    uint32  types = 1;         /* Bitmap of (1 << OFPGT_*) values supported. */
+    uint32  capabilities = 2;  /* Bitmap of OFPGFC_* capability supported. */
+    repeated uint32 max_groups = 3; /* Maximum number of groups for each type.
+                                     */
+    repeated uint32 actions = 4;    /* Bitmaps of (1 << OFPAT_*) values
+                                       supported. */
+};
+
+/* Body of OFPMP_METER and OFPMP_METER_CONFIG requests. */
+message ofp_meter_multipart_request {
+    uint32 meter_id = 1;      /* Meter instance, or OFPM_ALL. */
+};
+
+/* Statistics for each meter band */
+message ofp_meter_band_stats {
+    uint64        packet_band_count = 1;  /* Number of packets in band. */
+    uint64        byte_band_count = 2;    /* Number of bytes in band. */
+};
+
+/* Body of reply to OFPMP_METER request. Meter statistics. */
+message ofp_meter_stats {
+    uint32        meter_id = 1;        /* Meter instance. */
+    uint32        flow_count = 2;      /* Number of flows bound to meter. */
+    uint64        packet_in_count = 3; /* Number of packets in input. */
+    uint64        byte_in_count = 4;   /* Number of bytes in input. */
+    uint32        duration_sec = 5; /* Time meter has been alive in seconds. */
+    uint32        duration_nsec = 6;/* Time meter has been alive in nanoseconds
+                                       beyond duration_sec. */
+    repeated ofp_meter_band_stats band_stats = 7; /* The band_stats length is
+                                         inferred from the length field. */
+};
+
+/* Body of reply to OFPMP_METER_CONFIG request. Meter configuration. */
+message ofp_meter_config {
+    uint32        flags = 1;           /* All OFPMF_* that apply. */
+    uint32        meter_id = 2;        /* Meter instance. */
+    repeated ofp_meter_band_header bands = 3; /* The bands length is
+                                             inferred from the length field. */
+};
+
+/* Body of reply to OFPMP_METER_FEATURES request. Meter features. */
+message ofp_meter_features {
+    uint32    max_meter = 1;    /* Maximum number of meters. */
+    uint32    band_types = 2;   /* Bitmaps of (1 << OFPMBT_*) values supported.
+                                 */
+    uint32    capabilities = 3; /* Bitmaps of "ofp_meter_flags". */
+    uint32    max_bands = 4;    /* Maximum bands per meters */
+    uint32    max_color = 5;    /* Maximum color value */
+};
+
+/* Body for ofp_multipart_request/reply of type OFPMP_EXPERIMENTER. */
+message ofp_experimenter_multipart_header {
+    uint32 experimenter = 1;   /* Experimenter ID which takes the same form
+                                  as in struct ofp_experimenter_header. */
+    uint32 exp_type = 2;       /* Experimenter defined. */
+    bytes data = 3; /* Experimenter-defined arbitrary additional data. */
+};
+
+/* Experimenter extension. */
+message ofp_experimenter_header {
+    //ofp_header header = 1;  /* Type OFPT_EXPERIMENTER. */
+    uint32 experimenter = 2;     /* Experimenter ID:
+                                 * - MSB 0: low-order bytes are IEEE OUI.
+                                 * - MSB != 0: defined by ONF. */
+    uint32 exp_type = 3;         /* Experimenter defined. */
+    bytes data = 4; /* Experimenter-defined arbitrary additional data. */
+};
+
+/* All ones is used to indicate all queues in a port (for stats retrieval). */
+//#define OFPQ_ALL      0xffffffff
+
+/* Min rate > 1000 means not configured. */
+//#define OFPQ_MIN_RATE_UNCFG      0xffff
+
+/* Max rate > 1000 means not configured. */
+//#define OFPQ_MAX_RATE_UNCFG      0xffff
+
+enum ofp_queue_properties {
+    OFPQT_INVALID       = 0;
+    OFPQT_MIN_RATE      = 1;      /* Minimum datarate guaranteed. */
+    OFPQT_MAX_RATE      = 2;      /* Maximum datarate. */
+    OFPQT_EXPERIMENTER  = 0xffff; /* Experimenter defined property. */
+};
+
+/* Common description for a queue. */
+message ofp_queue_prop_header {
+    uint32 property = 1;   /* One of OFPQT_. */
+    uint32 len = 2;        /* Length of property, including this header. */
+};
+
+/* Min-Rate queue property description. */
+message ofp_queue_prop_min_rate {
+    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_MIN, len: 16. */
+    uint32 rate = 2;       /* In 1/10 of a percent = 0;>1000 -> disabled. */
+};
+
+/* Max-Rate queue property description. */
+message ofp_queue_prop_max_rate {
+    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_MAX, len: 16. */
+    uint32 rate = 2;       /* In 1/10 of a percent = 0;>1000 -> disabled. */
+};
+
+/* Experimenter queue property description. */
+message ofp_queue_prop_experimenter {
+    ofp_queue_prop_header prop_header = 1;/* prop: OFPQT_EXPERIMENTER */
+    uint32 experimenter = 2;         /* Experimenter ID which takes the same
+                                          form as in struct
+                                          ofp_experimenter_header. */
+    bytes data = 3;                    /* Experimenter defined data. */
+};
+
+/* Full description for a queue. */
+message ofp_packet_queue {
+    uint32 queue_id = 1;    /* id for the specific queue. */
+    uint32 port = 2;        /* Port this queue is attached to. */
+    repeated ofp_queue_prop_header properties = 4; /* List of properties. */
+};
+
+/* Query for port queue configuration. */
+message ofp_queue_get_config_request {
+    //ofp_header header = 1;
+    uint32 port = 2;        /* Port to be queried. Should refer
+                              to a valid physical port (i.e. <= OFPP_MAX),
+                              or OFPP_ANY to request all configured
+                              queues.*/
+};
+
+/* Queue configuration for a given port. */
+message ofp_queue_get_config_reply {
+    //ofp_header header = 1;
+    uint32 port = 2;
+    repeated ofp_packet_queue queues = 3; /* List of configured queues. */
+};
+
+/* OFPAT_SET_QUEUE action struct: send packets to given queue on port. */
+message ofp_action_set_queue {
+    uint32 type = 1;           /* OFPAT_SET_QUEUE. */
+    uint32 queue_id = 3;       /* Queue id for the packets. */
+};
+
+message ofp_queue_stats_request {
+    uint32 port_no = 1;       /* All ports if OFPP_ANY. */
+    uint32 queue_id = 2;      /* All queues if OFPQ_ALL. */
+};
+
+message ofp_queue_stats {
+    uint32 port_no = 1;
+    uint32 queue_id = 2;      /* Queue i.d */
+    uint64 tx_bytes = 3;      /* Number of transmitted bytes. */
+    uint64 tx_packets = 4;    /* Number of transmitted packets. */
+    uint64 tx_errors = 5;     /* Number of packets dropped due to overrun. */
+    uint32 duration_sec = 6;  /* Time queue has been alive in seconds. */
+    uint32 duration_nsec = 7; /* Time queue has been alive in nanoseconds
+                                 beyond duration_sec. */
+};
+
+/* Configures the "role" of the sending controller.  The default role is:
+ *
+ *    - Equal (OFPCR_ROLE_EQUAL), which allows the controller access to all
+ *      OpenFlow features. All controllers have equal responsibility.
+ *
+ * The other possible roles are a related pair:
+ *
+ *    - Master (OFPCR_ROLE_MASTER) is equivalent to Equal, except that there
+ *      may be at most one Master controller at a time: when a controller
+ *      configures itself as Master, any existing Master is demoted to the
+ *      Slave role.
+ *
+ *    - Slave (OFPCR_ROLE_SLAVE) allows the controller read-only access to
+ *      OpenFlow features.  In particular attempts to modify the flow table
+ *      will be rejected with an OFPBRC_EPERM error.
+ *
+ *      Slave controllers do not receive OFPT_PACKET_IN or OFPT_FLOW_REMOVED
+ *      messages, but they do receive OFPT_PORT_STATUS messages.
+ */
+
+/* Controller roles. */
+enum ofp_controller_role {
+    OFPCR_ROLE_NOCHANGE = 0;    /* Don't change current role. */
+    OFPCR_ROLE_EQUAL    = 1;    /* Default role, full access. */
+    OFPCR_ROLE_MASTER   = 2;    /* Full access, at most one master. */
+    OFPCR_ROLE_SLAVE    = 3;    /* Read-only access. */
+};
+
+/* Role request and reply message. */
+message ofp_role_request {
+    //ofp_header header = 1;        /* Type OFPT_ROLE_REQUEST/OFPT_ROLE_REPLY. */
+    ofp_controller_role role = 2; /* One of OFPCR_ROLE_*. */
+    uint64 generation_id = 3;     /* Master Election Generation Id */
+};
+
+/* Asynchronous message configuration. */
+message ofp_async_config {
+    //ofp_header header = 1;    /* OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC. */
+    repeated uint32 packet_in_mask = 2;   /* Bitmasks of OFPR_* values. */
+    repeated uint32 port_status_mask = 3; /* Bitmasks of OFPPR_* values. */
+    repeated uint32 flow_removed_mask = 4;/* Bitmasks of OFPRR_* values. */
+};
+
+/*
+ * Service API definitions and additional message types needed for it
+ */
+
+service OpenFlow {
+
+    /*
+     * Hello message handshake, initiated by the client (controller)
+     */
+    rpc GetHello(ofp_hello)
+        returns(ofp_hello) {
+        // TODO http option
+    }
+
+    /*
+     * Echo request / reply, initiated by the client (controller)
+     */
+    rpc EchoRequest(ofp_header)
+        returns(ofp_header) {
+        // TODO http option
+    }
+
+    /*
+     * Experimental (extension) RPC
+     */
+    rpc ExperimenterRequest(ofp_experimenter_header)
+        returns(ofp_experimenter_header) {
+        // TODO http option
+    }
+
+    /*
+     * Get Switch Features
+     */
+    rpc GetSwitchFeatures(ofp_header) returns(ofp_switch_features) {
+        // TODO http option
+    }
+
+    /*
+     * Get Switch Config
+     */
+    rpc GetSwitchConfig(ofp_header) returns(ofp_switch_config) {
+        // TODO http option
+    }
+
+    /*
+     * Set Config
+     */
+    rpc SetConfig(ofp_switch_config) returns(ofp_header) {
+        // TODO http option
+    }
+
+    /*
+     * Receive Packet-In messages
+     */
+    rpc ReceivePacketInMessages(ofp_header) returns(stream ofp_packet_in) {
+        // TODO http option
+    }
+
+    /*
+     * Send Packet-Out messages
+     */
+    rpc SendPacketOutMessages(ofp_packet_out) returns(ofp_header) {
+        // TODO http option
+    }
+
+    // TODO continue
+    
+}
diff --git a/voltha/protos/openflow_13_pb2.py b/voltha/protos/openflow_13_pb2.py
new file mode 100644
index 0000000..4839318
--- /dev/null
+++ b/voltha/protos/openflow_13_pb2.py
@@ -0,0 +1,8294 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: openflow_13.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='openflow_13.proto',
+  package='openflow_13',
+  syntax='proto3',
+  serialized_pb=_b('\n\x11openflow_13.proto\x12\x0bopenflow_13\"O\n\nofp_header\x12\x0f\n\x07version\x18\x01 \x01(\r\x12#\n\x04type\x18\x02 \x01(\x0e\x32\x15.openflow_13.ofp_type\x12\x0b\n\x03xid\x18\x03 \x01(\r\"\x96\x01\n\x15ofp_hello_elem_header\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_hello_elem_type\x12\x42\n\rversionbitmap\x18\x02 \x01(\x0b\x32).openflow_13.ofp_hello_elem_versionbitmapH\x00\x42\t\n\x07\x65lement\"/\n\x1cofp_hello_elem_versionbitmap\x12\x0f\n\x07\x62itmaps\x18\x02 \x03(\r\"A\n\tofp_hello\x12\x34\n\x08\x65lements\x18\x02 \x03(\x0b\x32\".openflow_13.ofp_hello_elem_header\"9\n\x11ofp_switch_config\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\x15\n\rmiss_send_len\x18\x03 \x01(\r\"1\n\rofp_table_mod\x12\x10\n\x08table_id\x18\x02 \x01(\r\x12\x0e\n\x06\x63onfig\x18\x03 \x01(\r\"\xc3\x01\n\x08ofp_port\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x0f\n\x07hw_addr\x18\x02 \x03(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06\x63onfig\x18\x04 \x01(\r\x12\r\n\x05state\x18\x05 \x01(\r\x12\x0c\n\x04\x63urr\x18\x06 \x01(\r\x12\x12\n\nadvertised\x18\x07 \x01(\r\x12\x11\n\tsupported\x18\x08 \x01(\r\x12\x0c\n\x04peer\x18\t \x01(\r\x12\x12\n\ncurr_speed\x18\n \x01(\r\x12\x11\n\tmax_speed\x18\x0b \x01(\r\"{\n\x13ofp_switch_features\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12\x11\n\tn_buffers\x18\x03 \x01(\r\x12\x10\n\x08n_tables\x18\x04 \x01(\r\x12\x14\n\x0c\x61uxiliary_id\x18\x05 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x06 \x01(\r\"d\n\x0fofp_port_status\x12,\n\x06reason\x18\x02 \x01(\x0e\x32\x1c.openflow_13.ofp_port_reason\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_port\"a\n\x0cofp_port_mod\x12\x0f\n\x07port_no\x18\x02 \x01(\r\x12\x0f\n\x07hw_addr\x18\x03 \x03(\r\x12\x0e\n\x06\x63onfig\x18\x04 \x01(\r\x12\x0c\n\x04mask\x18\x05 \x01(\r\x12\x11\n\tadvertise\x18\x06 \x01(\r\"f\n\tofp_match\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openflow_13.ofp_match_type\x12.\n\noxm_fields\x18\x02 \x03(\x0b\x32\x1a.openflow_13.ofp_oxm_field\"\xc3\x01\n\rofp_oxm_field\x12-\n\toxm_class\x18\x01 \x01(\x0e\x32\x1a.openflow_13.ofp_oxm_class\x12\x33\n\tofb_field\x18\x04 \x01(\x0b\x32\x1e.openflow_13.ofp_oxm_ofb_fieldH\x00\x12\x45\n\x12\x65xperimenter_field\x18\x05 \x01(\x0b\x32\'.openflow_13.ofp_oxm_experimenter_fieldH\x00\x42\x07\n\x05\x66ield\"\x8b\n\n\x11ofp_oxm_ofb_field\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.oxm_ofb_field_types\x12\x10\n\x08has_mask\x18\x02 \x01(\x08\x12\x0e\n\x04port\x18\x03 \x01(\rH\x00\x12\x17\n\rphysical_port\x18\x04 \x01(\rH\x00\x12\x18\n\x0etable_metadata\x18\x05 \x01(\x04H\x00\x12\x11\n\x07\x65th_dst\x18\x06 \x01(\x0cH\x00\x12\x11\n\x07\x65th_src\x18\x07 \x01(\x0cH\x00\x12\x12\n\x08\x65th_type\x18\x08 \x01(\rH\x00\x12\x12\n\x08vlan_vid\x18\t \x01(\rH\x00\x12\x12\n\x08vlan_pcp\x18\n \x01(\rH\x00\x12\x11\n\x07ip_dscp\x18\x0b \x01(\rH\x00\x12\x10\n\x06ip_ecn\x18\x0c \x01(\rH\x00\x12\x12\n\x08ip_proto\x18\r \x01(\rH\x00\x12\x12\n\x08ipv4_src\x18\x0e \x01(\rH\x00\x12\x12\n\x08ipv4_dst\x18\x0f \x01(\rH\x00\x12\x11\n\x07tcp_src\x18\x10 \x01(\rH\x00\x12\x11\n\x07tcp_dst\x18\x11 \x01(\rH\x00\x12\x11\n\x07udp_src\x18\x12 \x01(\rH\x00\x12\x11\n\x07udp_dst\x18\x13 \x01(\rH\x00\x12\x12\n\x08sctp_src\x18\x14 \x01(\rH\x00\x12\x12\n\x08sctp_dst\x18\x15 \x01(\rH\x00\x12\x15\n\x0bicmpv4_type\x18\x16 \x01(\rH\x00\x12\x15\n\x0bicmpv4_code\x18\x17 \x01(\rH\x00\x12\x10\n\x06\x61rp_op\x18\x18 \x01(\rH\x00\x12\x11\n\x07\x61rp_spa\x18\x19 \x01(\rH\x00\x12\x11\n\x07\x61rp_tpa\x18\x1a \x01(\rH\x00\x12\x11\n\x07\x61rp_sha\x18\x1b \x01(\x0cH\x00\x12\x11\n\x07\x61rp_tha\x18\x1c \x01(\x0cH\x00\x12\x12\n\x08ipv6_src\x18\x1d \x01(\x0cH\x00\x12\x12\n\x08ipv6_dst\x18\x1e \x01(\x0cH\x00\x12\x15\n\x0bipv6_flabel\x18\x1f \x01(\rH\x00\x12\x15\n\x0bicmpv6_type\x18  \x01(\rH\x00\x12\x15\n\x0bicmpv6_code\x18! \x01(\rH\x00\x12\x18\n\x0eipv6_nd_target\x18\" \x01(\x0cH\x00\x12\x15\n\x0bipv6_nd_ssl\x18# \x01(\x0cH\x00\x12\x15\n\x0bipv6_nd_tll\x18$ \x01(\x0cH\x00\x12\x14\n\nmpls_label\x18% \x01(\rH\x00\x12\x11\n\x07mpls_tc\x18& \x01(\rH\x00\x12\x12\n\x08mpls_bos\x18\' \x01(\rH\x00\x12\x12\n\x08pbb_isid\x18( \x01(\rH\x00\x12\x13\n\ttunnel_id\x18) \x01(\x04H\x00\x12\x15\n\x0bipv6_exthdr\x18* \x01(\rH\x00\x12\x1d\n\x13table_metadata_mask\x18i \x01(\x04H\x01\x12\x16\n\x0c\x65th_dst_mask\x18j \x01(\x0cH\x01\x12\x16\n\x0c\x65th_src_mask\x18k \x01(\x0cH\x01\x12\x17\n\rvlan_vid_mask\x18m \x01(\rH\x01\x12\x17\n\ripv4_src_mask\x18r \x01(\rH\x01\x12\x17\n\ripv4_dst_mask\x18s \x01(\rH\x01\x12\x16\n\x0c\x61rp_spa_mask\x18} \x01(\rH\x01\x12\x16\n\x0c\x61rp_tpa_mask\x18~ \x01(\rH\x01\x12\x18\n\ripv6_src_mask\x18\x81\x01 \x01(\x0cH\x01\x12\x18\n\ripv6_dst_mask\x18\x82\x01 \x01(\x0cH\x01\x12\x1b\n\x10ipv6_flabel_mask\x18\x83\x01 \x01(\rH\x01\x12\x18\n\rpbb_isid_mask\x18\x8c\x01 \x01(\rH\x01\x12\x19\n\x0etunnel_id_mask\x18\x8d\x01 \x01(\x04H\x01\x12\x1b\n\x10ipv6_exthdr_mask\x18\x8e\x01 \x01(\rH\x01\x42\x07\n\x05valueB\x06\n\x04mask\"F\n\x1aofp_oxm_experimenter_field\x12\x12\n\noxm_header\x18\x01 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\"\xe6\x03\n\nofp_action\x12*\n\x04type\x18\x01 \x01(\x0e\x32\x1c.openflow_13.ofp_action_type\x12\x30\n\x06output\x18\x02 \x01(\x0b\x32\x1e.openflow_13.ofp_action_outputH\x00\x12\x34\n\x08mpls_ttl\x18\x03 \x01(\x0b\x32 .openflow_13.ofp_action_mpls_ttlH\x00\x12,\n\x04push\x18\x04 \x01(\x0b\x32\x1c.openflow_13.ofp_action_pushH\x00\x12\x34\n\x08pop_mpls\x18\x05 \x01(\x0b\x32 .openflow_13.ofp_action_pop_mplsH\x00\x12.\n\x05group\x18\x06 \x01(\x0b\x32\x1d.openflow_13.ofp_action_groupH\x00\x12\x30\n\x06nw_ttl\x18\x07 \x01(\x0b\x32\x1e.openflow_13.ofp_action_nw_ttlH\x00\x12\x36\n\tset_field\x18\x08 \x01(\x0b\x32!.openflow_13.ofp_action_set_fieldH\x00\x12<\n\x0c\x65xperimenter\x18\t \x01(\x0b\x32$.openflow_13.ofp_action_experimenterH\x00\x42\x08\n\x06\x61\x63tion\"2\n\x11ofp_action_output\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\x0f\n\x07max_len\x18\x02 \x01(\r\"\'\n\x13ofp_action_mpls_ttl\x12\x10\n\x08mpls_ttl\x18\x01 \x01(\r\"$\n\x0fofp_action_push\x12\x11\n\tethertype\x18\x01 \x01(\r\"(\n\x13ofp_action_pop_mpls\x12\x11\n\tethertype\x18\x01 \x01(\r\"$\n\x10ofp_action_group\x12\x10\n\x08group_id\x18\x01 \x01(\r\"#\n\x11ofp_action_nw_ttl\x12\x0e\n\x06nw_ttl\x18\x01 \x01(\r\"A\n\x14ofp_action_set_field\x12)\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1a.openflow_13.ofp_oxm_field\"=\n\x17ofp_action_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xde\x02\n\x0fofp_instruction\x12\x0c\n\x04type\x18\x01 \x01(\r\x12=\n\ngoto_table\x18\x02 \x01(\x0b\x32\'.openflow_13.ofp_instruction_goto_tableH\x00\x12\x45\n\x0ewrite_metadata\x18\x03 \x01(\x0b\x32+.openflow_13.ofp_instruction_write_metadataH\x00\x12\x37\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32$.openflow_13.ofp_instruction_actionsH\x00\x12\x33\n\x05meter\x18\x05 \x01(\x0b\x32\".openflow_13.ofp_instruction_meterH\x00\x12\x41\n\x0c\x65xperimenter\x18\x06 \x01(\x0b\x32).openflow_13.ofp_instruction_experimenterH\x00\x42\x06\n\x04\x64\x61ta\".\n\x1aofp_instruction_goto_table\x12\x10\n\x08table_id\x18\x01 \x01(\r\"I\n\x1eofp_instruction_write_metadata\x12\x10\n\x08metadata\x18\x01 \x01(\x04\x12\x15\n\rmetadata_mask\x18\x02 \x01(\x04\"C\n\x17ofp_instruction_actions\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.openflow_13.ofp_action\")\n\x15ofp_instruction_meter\x12\x10\n\x08meter_id\x18\x01 \x01(\r\"B\n\x1cofp_instruction_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\xd9\x02\n\x0cofp_flow_mod\x12\x0e\n\x06\x63ookie\x18\x02 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x03 \x01(\x04\x12\x10\n\x08table_id\x18\x04 \x01(\r\x12\x32\n\x07\x63ommand\x18\x05 \x01(\x0e\x32!.openflow_13.ofp_flow_mod_command\x12\x14\n\x0cidle_timeout\x18\x06 \x01(\r\x12\x14\n\x0chard_timeout\x18\x07 \x01(\r\x12\x10\n\x08priority\x18\x08 \x01(\r\x12\x11\n\tbuffer_id\x18\t \x01(\r\x12\x10\n\x08out_port\x18\n \x01(\r\x12\x11\n\tout_group\x18\x0b \x01(\r\x12\r\n\x05\x66lags\x18\x0c \x01(\r\x12%\n\x05match\x18\r \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x32\n\x0cinstructions\x18\x0e \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"o\n\nofp_bucket\x12\x0e\n\x06weight\x18\x01 \x01(\r\x12\x12\n\nwatch_port\x18\x02 \x01(\r\x12\x13\n\x0bwatch_group\x18\x03 \x01(\r\x12(\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x17.openflow_13.ofp_action\"\xab\x01\n\rofp_group_mod\x12\x33\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\".openflow_13.ofp_group_mod_command\x12)\n\x04type\x18\x03 \x01(\x0e\x32\x1b.openflow_13.ofp_group_type\x12\x10\n\x08group_id\x18\x04 \x01(\r\x12(\n\x07\x62uckets\x18\x05 \x03(\x0b\x32\x17.openflow_13.ofp_bucket\"\x81\x01\n\x0eofp_packet_out\x12\x11\n\tbuffer_id\x18\x02 \x01(\r\x12\x0f\n\x07in_port\x18\x03 \x01(\r\x12\x13\n\x0b\x61\x63tions_len\x18\x04 \x01(\r\x12(\n\x07\x61\x63tions\x18\x05 \x03(\x0b\x32\x17.openflow_13.ofp_action\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\"\xbf\x01\n\rofp_packet_in\x12\x11\n\tbuffer_id\x18\x02 \x01(\r\x12\x11\n\ttotal_len\x18\x03 \x01(\r\x12\x31\n\x06reason\x18\x04 \x01(\x0e\x32!.openflow_13.ofp_packet_in_reason\x12\x10\n\x08table_id\x18\x05 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x06 \x01(\x04\x12%\n\x05match\x18\x07 \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x0c\n\x04\x64\x61ta\x18\x08 \x01(\x0c\"\xa6\x02\n\x10ofp_flow_removed\x12\x0e\n\x06\x63ookie\x18\x02 \x01(\x04\x12\x10\n\x08priority\x18\x03 \x01(\r\x12\x34\n\x06reason\x18\x04 \x01(\x0e\x32$.openflow_13.ofp_flow_removed_reason\x12\x10\n\x08table_id\x18\x05 \x01(\r\x12\x14\n\x0c\x64uration_sec\x18\x06 \x01(\r\x12\x15\n\rduration_nsec\x18\x07 \x01(\r\x12\x14\n\x0cidle_timeout\x18\x08 \x01(\r\x12\x14\n\x0chard_timeout\x18\t \x01(\r\x12\x14\n\x0cpacket_count\x18\n \x01(\x04\x12\x12\n\nbyte_count\x18\x0b \x01(\x04\x12%\n\x05match\x18\x0c \x01(\x0b\x32\x16.openflow_13.ofp_match\"v\n\x15ofp_meter_band_header\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_meter_band_type\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\"R\n\x13ofp_meter_band_drop\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\"m\n\x1aofp_meter_band_dscp_remark\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\x12\x12\n\nprec_level\x18\x05 \x01(\r\"\x92\x01\n\x1bofp_meter_band_experimenter\x12.\n\x04type\x18\x01 \x01(\x0e\x32 .openflow_13.ofp_meter_band_type\x12\x0b\n\x03len\x18\x02 \x01(\r\x12\x0c\n\x04rate\x18\x03 \x01(\r\x12\x12\n\nburst_size\x18\x04 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x05 \x01(\r\"\xc1\x01\n\rofp_meter_mod\x12\'\n\x06header\x18\x01 \x01(\x0b\x32\x17.openflow_13.ofp_header\x12\x33\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\".openflow_13.ofp_meter_mod_command\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x10\n\x08meter_id\x18\x04 \x01(\r\x12\x31\n\x05\x62\x61nds\x18\x05 \x03(\x0b\x32\".openflow_13.ofp_meter_band_header\"9\n\rofp_error_msg\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x63ode\x18\x03 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"`\n\x1aofp_error_experimenter_msg\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x14\n\x0c\x65xperimenter\x18\x04 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\"c\n\x15ofp_multipart_request\x12-\n\x04type\x18\x02 \x01(\x0e\x32\x1f.openflow_13.ofp_multipart_type\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04\x62ody\x18\x04 \x01(\x0c\"a\n\x13ofp_multipart_reply\x12-\n\x04type\x18\x02 \x01(\x0e\x32\x1f.openflow_13.ofp_multipart_type\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x0c\n\x04\x62ody\x18\x04 \x01(\x0c\"c\n\x08ofp_desc\x12\x10\n\x08mfr_desc\x18\x01 \x01(\t\x12\x0f\n\x07hw_desc\x18\x02 \x01(\t\x12\x0f\n\x07sw_desc\x18\x03 \x01(\t\x12\x12\n\nserial_num\x18\x04 \x01(\t\x12\x0f\n\x07\x64p_desc\x18\x05 \x01(\t\"\x9b\x01\n\x16ofp_flow_stats_request\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x10\n\x08out_port\x18\x02 \x01(\r\x12\x11\n\tout_group\x18\x03 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x05 \x01(\x04\x12%\n\x05match\x18\x06 \x01(\x0b\x32\x16.openflow_13.ofp_match\"\xb1\x02\n\x0eofp_flow_stats\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x14\n\x0c\x64uration_sec\x18\x02 \x01(\r\x12\x15\n\rduration_nsec\x18\x03 \x01(\r\x12\x10\n\x08priority\x18\x04 \x01(\r\x12\x14\n\x0cidle_timeout\x18\x05 \x01(\r\x12\x14\n\x0chard_timeout\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x08 \x01(\x04\x12\x14\n\x0cpacket_count\x18\t \x01(\x04\x12\x12\n\nbyte_count\x18\n \x01(\x04\x12%\n\x05match\x18\x0c \x01(\x0b\x32\x16.openflow_13.ofp_match\x12\x32\n\x0cinstructions\x18\r \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"\xa0\x01\n\x1bofp_aggregate_stats_request\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x10\n\x08out_port\x18\x02 \x01(\r\x12\x11\n\tout_group\x18\x03 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x04\x12\x13\n\x0b\x63ookie_mask\x18\x05 \x01(\x04\x12%\n\x05match\x18\x06 \x01(\x0b\x32\x16.openflow_13.ofp_match\"Y\n\x19ofp_aggregate_stats_reply\x12\x14\n\x0cpacket_count\x18\x01 \x01(\x04\x12\x12\n\nbyte_count\x18\x02 \x01(\x04\x12\x12\n\nflow_count\x18\x03 \x01(\r\"\xb1\x03\n\x1aofp_table_feature_property\x12\x36\n\x04type\x18\x01 \x01(\x0e\x32(.openflow_13.ofp_table_feature_prop_type\x12H\n\x0cinstructions\x18\x02 \x01(\x0b\x32\x30.openflow_13.ofp_table_feature_prop_instructionsH\x00\x12\x46\n\x0bnext_tables\x18\x03 \x01(\x0b\x32/.openflow_13.ofp_table_feature_prop_next_tablesH\x00\x12>\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32+.openflow_13.ofp_table_feature_prop_actionsH\x00\x12\x36\n\x03oxm\x18\x05 \x01(\x0b\x32\'.openflow_13.ofp_table_feature_prop_oxmH\x00\x12H\n\x0c\x65xperimenter\x18\x06 \x01(\x0b\x32\x30.openflow_13.ofp_table_feature_prop_experimenterH\x00\x42\x07\n\x05value\"Y\n#ofp_table_feature_prop_instructions\x12\x32\n\x0cinstructions\x18\x01 \x03(\x0b\x32\x1c.openflow_13.ofp_instruction\"<\n\"ofp_table_feature_prop_next_tables\x12\x16\n\x0enext_table_ids\x18\x01 \x03(\r\"J\n\x1eofp_table_feature_prop_actions\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x17.openflow_13.ofp_action\"-\n\x1aofp_table_feature_prop_oxm\x12\x0f\n\x07oxm_ids\x18\x03 \x03(\r\"h\n#ofp_table_feature_prop_experimenter\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x19\n\x11\x65xperimenter_data\x18\x04 \x03(\r\"\xc6\x01\n\x12ofp_table_features\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x16\n\x0emetadata_match\x18\x03 \x01(\x04\x12\x16\n\x0emetadata_write\x18\x04 \x01(\x04\x12\x0e\n\x06\x63onfig\x18\x05 \x01(\r\x12\x13\n\x0bmax_entries\x18\x06 \x01(\r\x12;\n\nproperties\x18\x07 \x03(\x0b\x32\'.openflow_13.ofp_table_feature_property\"f\n\x0fofp_table_stats\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63tive_count\x18\x02 \x01(\r\x12\x14\n\x0clookup_count\x18\x03 \x01(\x04\x12\x15\n\rmatched_count\x18\x04 \x01(\x04\")\n\x16ofp_port_stats_request\x12\x0f\n\x07port_no\x18\x01 \x01(\r\"\xbb\x02\n\x0eofp_port_stats\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x12\n\nrx_packets\x18\x02 \x01(\x04\x12\x12\n\ntx_packets\x18\x03 \x01(\x04\x12\x10\n\x08rx_bytes\x18\x04 \x01(\x04\x12\x10\n\x08tx_bytes\x18\x05 \x01(\x04\x12\x12\n\nrx_dropped\x18\x06 \x01(\x04\x12\x12\n\ntx_dropped\x18\x07 \x01(\x04\x12\x11\n\trx_errors\x18\x08 \x01(\x04\x12\x11\n\ttx_errors\x18\t \x01(\x04\x12\x14\n\x0crx_frame_err\x18\n \x01(\x04\x12\x13\n\x0brx_over_err\x18\x0b \x01(\x04\x12\x12\n\nrx_crc_err\x18\x0c \x01(\x04\x12\x12\n\ncollisions\x18\r \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x0e \x01(\r\x12\x15\n\rduration_nsec\x18\x0f \x01(\r\"+\n\x17ofp_group_stats_request\x12\x10\n\x08group_id\x18\x01 \x01(\r\">\n\x12ofp_bucket_counter\x12\x14\n\x0cpacket_count\x18\x01 \x01(\x04\x12\x12\n\nbyte_count\x18\x02 \x01(\x04\"\xc4\x01\n\x0fofp_group_stats\x12\x10\n\x08group_id\x18\x01 \x01(\r\x12\x11\n\tref_count\x18\x02 \x01(\r\x12\x14\n\x0cpacket_count\x18\x03 \x01(\x04\x12\x12\n\nbyte_count\x18\x04 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x05 \x01(\r\x12\x15\n\rduration_nsec\x18\x06 \x01(\r\x12\x35\n\x0c\x62ucket_stats\x18\x07 \x03(\x0b\x32\x1f.openflow_13.ofp_bucket_counter\"\x84\x01\n\x0eofp_group_desc\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.openflow_13.ofp_group_type\x12\x0b\n\x03pad\x18\x02 \x01(\r\x12\x10\n\x08group_id\x18\x03 \x01(\r\x12(\n\x07\x62uckets\x18\x04 \x03(\x0b\x32\x17.openflow_13.ofp_bucket\"^\n\x12ofp_group_features\x12\r\n\x05types\x18\x01 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x02 \x01(\r\x12\x12\n\nmax_groups\x18\x03 \x03(\r\x12\x0f\n\x07\x61\x63tions\x18\x04 \x03(\r\"/\n\x1bofp_meter_multipart_request\x12\x10\n\x08meter_id\x18\x01 \x01(\r\"J\n\x14ofp_meter_band_stats\x12\x19\n\x11packet_band_count\x18\x01 \x01(\x04\x12\x17\n\x0f\x62yte_band_count\x18\x02 \x01(\x04\"\xcb\x01\n\x0fofp_meter_stats\x12\x10\n\x08meter_id\x18\x01 \x01(\r\x12\x12\n\nflow_count\x18\x02 \x01(\r\x12\x17\n\x0fpacket_in_count\x18\x03 \x01(\x04\x12\x15\n\rbyte_in_count\x18\x04 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x05 \x01(\r\x12\x15\n\rduration_nsec\x18\x06 \x01(\r\x12\x35\n\nband_stats\x18\x07 \x03(\x0b\x32!.openflow_13.ofp_meter_band_stats\"f\n\x10ofp_meter_config\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x10\n\x08meter_id\x18\x02 \x01(\r\x12\x31\n\x05\x62\x61nds\x18\x03 \x03(\x0b\x32\".openflow_13.ofp_meter_band_header\"w\n\x12ofp_meter_features\x12\x11\n\tmax_meter\x18\x01 \x01(\r\x12\x12\n\nband_types\x18\x02 \x01(\r\x12\x14\n\x0c\x63\x61pabilities\x18\x03 \x01(\r\x12\x11\n\tmax_bands\x18\x04 \x01(\r\x12\x11\n\tmax_color\x18\x05 \x01(\r\"Y\n!ofp_experimenter_multipart_header\x12\x14\n\x0c\x65xperimenter\x18\x01 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"O\n\x17ofp_experimenter_header\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x10\n\x08\x65xp_type\x18\x03 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"6\n\x15ofp_queue_prop_header\x12\x10\n\x08property\x18\x01 \x01(\r\x12\x0b\n\x03len\x18\x02 \x01(\r\"`\n\x17ofp_queue_prop_min_rate\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x0c\n\x04rate\x18\x02 \x01(\r\"`\n\x17ofp_queue_prop_max_rate\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x0c\n\x04rate\x18\x02 \x01(\r\"z\n\x1bofp_queue_prop_experimenter\x12\x37\n\x0bprop_header\x18\x01 \x01(\x0b\x32\".openflow_13.ofp_queue_prop_header\x12\x14\n\x0c\x65xperimenter\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"j\n\x10ofp_packet_queue\x12\x10\n\x08queue_id\x18\x01 \x01(\r\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x36\n\nproperties\x18\x04 \x03(\x0b\x32\".openflow_13.ofp_queue_prop_header\",\n\x1cofp_queue_get_config_request\x12\x0c\n\x04port\x18\x02 \x01(\r\"Y\n\x1aofp_queue_get_config_reply\x12\x0c\n\x04port\x18\x02 \x01(\r\x12-\n\x06queues\x18\x03 \x03(\x0b\x32\x1d.openflow_13.ofp_packet_queue\"6\n\x14ofp_action_set_queue\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x03 \x01(\r\"<\n\x17ofp_queue_stats_request\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x02 \x01(\r\"\x9a\x01\n\x0fofp_queue_stats\x12\x0f\n\x07port_no\x18\x01 \x01(\r\x12\x10\n\x08queue_id\x18\x02 \x01(\r\x12\x10\n\x08tx_bytes\x18\x03 \x01(\x04\x12\x12\n\ntx_packets\x18\x04 \x01(\x04\x12\x11\n\ttx_errors\x18\x05 \x01(\x04\x12\x14\n\x0c\x64uration_sec\x18\x06 \x01(\r\x12\x15\n\rduration_nsec\x18\x07 \x01(\r\"Y\n\x10ofp_role_request\x12.\n\x04role\x18\x02 \x01(\x0e\x32 .openflow_13.ofp_controller_role\x12\x15\n\rgeneration_id\x18\x03 \x01(\x04\"_\n\x10ofp_async_config\x12\x16\n\x0epacket_in_mask\x18\x02 \x03(\r\x12\x18\n\x10port_status_mask\x18\x03 \x03(\r\x12\x19\n\x11\x66low_removed_mask\x18\x04 \x03(\r*\xd5\x01\n\x0bofp_port_no\x12\x10\n\x0cOFPP_INVALID\x10\x00\x12\x10\n\x08OFPP_MAX\x10\x80\xfe\xff\xff\x07\x12\x14\n\x0cOFPP_IN_PORT\x10\xf8\xff\xff\xff\x07\x12\x12\n\nOFPP_TABLE\x10\xf9\xff\xff\xff\x07\x12\x13\n\x0bOFPP_NORMAL\x10\xfa\xff\xff\xff\x07\x12\x12\n\nOFPP_FLOOD\x10\xfb\xff\xff\xff\x07\x12\x10\n\x08OFPP_ALL\x10\xfc\xff\xff\xff\x07\x12\x17\n\x0fOFPP_CONTROLLER\x10\xfd\xff\xff\xff\x07\x12\x12\n\nOFPP_LOCAL\x10\xfe\xff\xff\xff\x07\x12\x10\n\x08OFPP_ANY\x10\xff\xff\xff\xff\x07*\xc8\x05\n\x08ofp_type\x12\x0e\n\nOFPT_HELLO\x10\x00\x12\x0e\n\nOFPT_ERROR\x10\x01\x12\x15\n\x11OFPT_ECHO_REQUEST\x10\x02\x12\x13\n\x0fOFPT_ECHO_REPLY\x10\x03\x12\x15\n\x11OFPT_EXPERIMENTER\x10\x04\x12\x19\n\x15OFPT_FEATURES_REQUEST\x10\x05\x12\x17\n\x13OFPT_FEATURES_REPLY\x10\x06\x12\x1b\n\x17OFPT_GET_CONFIG_REQUEST\x10\x07\x12\x19\n\x15OFPT_GET_CONFIG_REPLY\x10\x08\x12\x13\n\x0fOFPT_SET_CONFIG\x10\t\x12\x12\n\x0eOFPT_PACKET_IN\x10\n\x12\x15\n\x11OFPT_FLOW_REMOVED\x10\x0b\x12\x14\n\x10OFPT_PORT_STATUS\x10\x0c\x12\x13\n\x0fOFPT_PACKET_OUT\x10\r\x12\x11\n\rOFPT_FLOW_MOD\x10\x0e\x12\x12\n\x0eOFPT_GROUP_MOD\x10\x0f\x12\x11\n\rOFPT_PORT_MOD\x10\x10\x12\x12\n\x0eOFPT_TABLE_MOD\x10\x11\x12\x1a\n\x16OFPT_MULTIPART_REQUEST\x10\x12\x12\x18\n\x14OFPT_MULTIPART_REPLY\x10\x13\x12\x18\n\x14OFPT_BARRIER_REQUEST\x10\x14\x12\x16\n\x12OFPT_BARRIER_REPLY\x10\x15\x12!\n\x1dOFPT_QUEUE_GET_CONFIG_REQUEST\x10\x16\x12\x1f\n\x1bOFPT_QUEUE_GET_CONFIG_REPLY\x10\x17\x12\x15\n\x11OFPT_ROLE_REQUEST\x10\x18\x12\x13\n\x0fOFPT_ROLE_REPLY\x10\x19\x12\x1a\n\x16OFPT_GET_ASYNC_REQUEST\x10\x1a\x12\x18\n\x14OFPT_GET_ASYNC_REPLY\x10\x1b\x12\x12\n\x0eOFPT_SET_ASYNC\x10\x1c\x12\x12\n\x0eOFPT_METER_MOD\x10\x1d*C\n\x13ofp_hello_elem_type\x12\x12\n\x0eOFPHET_INVALID\x10\x00\x12\x18\n\x14OFPHET_VERSIONBITMAP\x10\x01*e\n\x10ofp_config_flags\x12\x14\n\x10OFPC_FRAG_NORMAL\x10\x00\x12\x12\n\x0eOFPC_FRAG_DROP\x10\x01\x12\x13\n\x0fOFPC_FRAG_REASM\x10\x02\x12\x12\n\x0eOFPC_FRAG_MASK\x10\x03*@\n\x10ofp_table_config\x12\x11\n\rOFPTC_INVALID\x10\x00\x12\x19\n\x15OFPTC_DEPRECATED_MASK\x10\x03*>\n\tofp_table\x12\x11\n\rOFPTT_INVALID\x10\x00\x12\x0e\n\tOFPTT_MAX\x10\xfe\x01\x12\x0e\n\tOFPTT_ALL\x10\xff\x01*\xbb\x01\n\x10ofp_capabilities\x12\x10\n\x0cOFPC_INVALID\x10\x00\x12\x13\n\x0fOFPC_FLOW_STATS\x10\x01\x12\x14\n\x10OFPC_TABLE_STATS\x10\x02\x12\x13\n\x0fOFPC_PORT_STATS\x10\x04\x12\x14\n\x10OFPC_GROUP_STATS\x10\x08\x12\x11\n\rOFPC_IP_REASM\x10 \x12\x14\n\x10OFPC_QUEUE_STATS\x10@\x12\x16\n\x11OFPC_PORT_BLOCKED\x10\x80\x02*v\n\x0fofp_port_config\x12\x11\n\rOFPPC_INVALID\x10\x00\x12\x13\n\x0fOFPPC_PORT_DOWN\x10\x01\x12\x11\n\rOFPPC_NO_RECV\x10\x04\x12\x10\n\x0cOFPPC_NO_FWD\x10 \x12\x16\n\x12OFPPC_NO_PACKET_IN\x10@*[\n\x0eofp_port_state\x12\x11\n\rOFPPS_INVALID\x10\x00\x12\x13\n\x0fOFPPS_LINK_DOWN\x10\x01\x12\x11\n\rOFPPS_BLOCKED\x10\x02\x12\x0e\n\nOFPPS_LIVE\x10\x04*\xdd\x02\n\x11ofp_port_features\x12\x11\n\rOFPPF_INVALID\x10\x00\x12\x11\n\rOFPPF_10MB_HD\x10\x01\x12\x11\n\rOFPPF_10MB_FD\x10\x02\x12\x12\n\x0eOFPPF_100MB_HD\x10\x04\x12\x12\n\x0eOFPPF_100MB_FD\x10\x08\x12\x10\n\x0cOFPPF_1GB_HD\x10\x10\x12\x10\n\x0cOFPPF_1GB_FD\x10 \x12\x11\n\rOFPPF_10GB_FD\x10@\x12\x12\n\rOFPPF_40GB_FD\x10\x80\x01\x12\x13\n\x0eOFPPF_100GB_FD\x10\x80\x02\x12\x11\n\x0cOFPPF_1TB_FD\x10\x80\x04\x12\x10\n\x0bOFPPF_OTHER\x10\x80\x08\x12\x11\n\x0cOFPPF_COPPER\x10\x80\x10\x12\x10\n\x0bOFPPF_FIBER\x10\x80 \x12\x12\n\rOFPPF_AUTONEG\x10\x80@\x12\x11\n\x0bOFPPF_PAUSE\x10\x80\x80\x01\x12\x16\n\x10OFPPF_PAUSE_ASYM\x10\x80\x80\x02*D\n\x0fofp_port_reason\x12\r\n\tOFPPR_ADD\x10\x00\x12\x10\n\x0cOFPPR_DELETE\x10\x01\x12\x10\n\x0cOFPPR_MODIFY\x10\x02*3\n\x0eofp_match_type\x12\x12\n\x0eOFPMT_STANDARD\x10\x00\x12\r\n\tOFPMT_OXM\x10\x01*k\n\rofp_oxm_class\x12\x10\n\x0cOFPXMC_NXM_0\x10\x00\x12\x10\n\x0cOFPXMC_NXM_1\x10\x01\x12\x1b\n\x15OFPXMC_OPENFLOW_BASIC\x10\x80\x80\x02\x12\x19\n\x13OFPXMC_EXPERIMENTER\x10\xff\xff\x03*\x90\x08\n\x13oxm_ofb_field_types\x12\x16\n\x12OFPXMT_OFB_IN_PORT\x10\x00\x12\x1a\n\x16OFPXMT_OFB_IN_PHY_PORT\x10\x01\x12\x17\n\x13OFPXMT_OFB_METADATA\x10\x02\x12\x16\n\x12OFPXMT_OFB_ETH_DST\x10\x03\x12\x16\n\x12OFPXMT_OFB_ETH_SRC\x10\x04\x12\x17\n\x13OFPXMT_OFB_ETH_TYPE\x10\x05\x12\x17\n\x13OFPXMT_OFB_VLAN_VID\x10\x06\x12\x17\n\x13OFPXMT_OFB_VLAN_PCP\x10\x07\x12\x16\n\x12OFPXMT_OFB_IP_DSCP\x10\x08\x12\x15\n\x11OFPXMT_OFB_IP_ECN\x10\t\x12\x17\n\x13OFPXMT_OFB_IP_PROTO\x10\n\x12\x17\n\x13OFPXMT_OFB_IPV4_SRC\x10\x0b\x12\x17\n\x13OFPXMT_OFB_IPV4_DST\x10\x0c\x12\x16\n\x12OFPXMT_OFB_TCP_SRC\x10\r\x12\x16\n\x12OFPXMT_OFB_TCP_DST\x10\x0e\x12\x16\n\x12OFPXMT_OFB_UDP_SRC\x10\x0f\x12\x16\n\x12OFPXMT_OFB_UDP_DST\x10\x10\x12\x17\n\x13OFPXMT_OFB_SCTP_SRC\x10\x11\x12\x17\n\x13OFPXMT_OFB_SCTP_DST\x10\x12\x12\x1a\n\x16OFPXMT_OFB_ICMPV4_TYPE\x10\x13\x12\x1a\n\x16OFPXMT_OFB_ICMPV4_CODE\x10\x14\x12\x15\n\x11OFPXMT_OFB_ARP_OP\x10\x15\x12\x16\n\x12OFPXMT_OFB_ARP_SPA\x10\x16\x12\x16\n\x12OFPXMT_OFB_ARP_TPA\x10\x17\x12\x16\n\x12OFPXMT_OFB_ARP_SHA\x10\x18\x12\x16\n\x12OFPXMT_OFB_ARP_THA\x10\x19\x12\x17\n\x13OFPXMT_OFB_IPV6_SRC\x10\x1a\x12\x17\n\x13OFPXMT_OFB_IPV6_DST\x10\x1b\x12\x1a\n\x16OFPXMT_OFB_IPV6_FLABEL\x10\x1c\x12\x1a\n\x16OFPXMT_OFB_ICMPV6_TYPE\x10\x1d\x12\x1a\n\x16OFPXMT_OFB_ICMPV6_CODE\x10\x1e\x12\x1d\n\x19OFPXMT_OFB_IPV6_ND_TARGET\x10\x1f\x12\x1a\n\x16OFPXMT_OFB_IPV6_ND_SLL\x10 \x12\x1a\n\x16OFPXMT_OFB_IPV6_ND_TLL\x10!\x12\x19\n\x15OFPXMT_OFB_MPLS_LABEL\x10\"\x12\x16\n\x12OFPXMT_OFB_MPLS_TC\x10#\x12\x17\n\x13OFPXMT_OFB_MPLS_BOS\x10$\x12\x17\n\x13OFPXMT_OFB_PBB_ISID\x10%\x12\x18\n\x14OFPXMT_OFB_TUNNEL_ID\x10&\x12\x1a\n\x16OFPXMT_OFB_IPV6_EXTHDR\x10\'*3\n\x0bofp_vlan_id\x12\x0f\n\x0bOFPVID_NONE\x10\x00\x12\x13\n\x0eOFPVID_PRESENT\x10\x80 *\xc9\x01\n\x14ofp_ipv6exthdr_flags\x12\x12\n\x0eOFPIEH_INVALID\x10\x00\x12\x11\n\rOFPIEH_NONEXT\x10\x01\x12\x0e\n\nOFPIEH_ESP\x10\x02\x12\x0f\n\x0bOFPIEH_AUTH\x10\x04\x12\x0f\n\x0bOFPIEH_DEST\x10\x08\x12\x0f\n\x0bOFPIEH_FRAG\x10\x10\x12\x11\n\rOFPIEH_ROUTER\x10 \x12\x0e\n\nOFPIEH_HOP\x10@\x12\x11\n\x0cOFPIEH_UNREP\x10\x80\x01\x12\x11\n\x0cOFPIEH_UNSEQ\x10\x80\x02*\xfc\x02\n\x0fofp_action_type\x12\x10\n\x0cOFPAT_OUTPUT\x10\x00\x12\x16\n\x12OFPAT_COPY_TTL_OUT\x10\x0b\x12\x15\n\x11OFPAT_COPY_TTL_IN\x10\x0c\x12\x16\n\x12OFPAT_SET_MPLS_TTL\x10\x0f\x12\x16\n\x12OFPAT_DEC_MPLS_TTL\x10\x10\x12\x13\n\x0fOFPAT_PUSH_VLAN\x10\x11\x12\x12\n\x0eOFPAT_POP_VLAN\x10\x12\x12\x13\n\x0fOFPAT_PUSH_MPLS\x10\x13\x12\x12\n\x0eOFPAT_POP_MPLS\x10\x14\x12\x13\n\x0fOFPAT_SET_QUEUE\x10\x15\x12\x0f\n\x0bOFPAT_GROUP\x10\x16\x12\x14\n\x10OFPAT_SET_NW_TTL\x10\x17\x12\x14\n\x10OFPAT_DEC_NW_TTL\x10\x18\x12\x13\n\x0fOFPAT_SET_FIELD\x10\x19\x12\x12\n\x0eOFPAT_PUSH_PBB\x10\x1a\x12\x11\n\rOFPAT_POP_PBB\x10\x1b\x12\x18\n\x12OFPAT_EXPERIMENTER\x10\xff\xff\x03*V\n\x16ofp_controller_max_len\x12\x12\n\x0eOFPCML_INVALID\x10\x00\x12\x10\n\nOFPCML_MAX\x10\xe5\xff\x03\x12\x16\n\x10OFPCML_NO_BUFFER\x10\xff\xff\x03*\xcf\x01\n\x14ofp_instruction_type\x12\x11\n\rOFPIT_INVALID\x10\x00\x12\x14\n\x10OFPIT_GOTO_TABLE\x10\x01\x12\x18\n\x14OFPIT_WRITE_METADATA\x10\x02\x12\x17\n\x13OFPIT_WRITE_ACTIONS\x10\x03\x12\x17\n\x13OFPIT_APPLY_ACTIONS\x10\x04\x12\x17\n\x13OFPIT_CLEAR_ACTIONS\x10\x05\x12\x0f\n\x0bOFPIT_METER\x10\x06\x12\x18\n\x12OFPIT_EXPERIMENTER\x10\xff\xff\x03*{\n\x14ofp_flow_mod_command\x12\r\n\tOFPFC_ADD\x10\x00\x12\x10\n\x0cOFPFC_MODIFY\x10\x01\x12\x17\n\x13OFPFC_MODIFY_STRICT\x10\x02\x12\x10\n\x0cOFPFC_DELETE\x10\x03\x12\x17\n\x13OFPFC_DELETE_STRICT\x10\x04*\xa3\x01\n\x12ofp_flow_mod_flags\x12\x11\n\rOFPFF_INVALID\x10\x00\x12\x17\n\x13OFPFF_SEND_FLOW_REM\x10\x01\x12\x17\n\x13OFPFF_CHECK_OVERLAP\x10\x02\x12\x16\n\x12OFPFF_RESET_COUNTS\x10\x04\x12\x17\n\x13OFPFF_NO_PKT_COUNTS\x10\x08\x12\x17\n\x13OFPFF_NO_BYT_COUNTS\x10\x10*S\n\tofp_group\x12\x10\n\x0cOFPG_INVALID\x10\x00\x12\x10\n\x08OFPG_MAX\x10\x80\xfe\xff\xff\x07\x12\x10\n\x08OFPG_ALL\x10\xfc\xff\xff\xff\x07\x12\x10\n\x08OFPG_ANY\x10\xff\xff\xff\xff\x07*J\n\x15ofp_group_mod_command\x12\r\n\tOFPGC_ADD\x10\x00\x12\x10\n\x0cOFPGC_MODIFY\x10\x01\x12\x10\n\x0cOFPGC_DELETE\x10\x02*S\n\x0eofp_group_type\x12\r\n\tOFPGT_ALL\x10\x00\x12\x10\n\x0cOFPGT_SELECT\x10\x01\x12\x12\n\x0eOFPGT_INDIRECT\x10\x02\x12\x0c\n\x08OFPGT_FF\x10\x03*P\n\x14ofp_packet_in_reason\x12\x11\n\rOFPR_NO_MATCH\x10\x00\x12\x0f\n\x0bOFPR_ACTION\x10\x01\x12\x14\n\x10OFPR_INVALID_TTL\x10\x02*\x8b\x01\n\x17ofp_flow_removed_reason\x12\x16\n\x12OFPRR_IDLE_TIMEOUT\x10\x00\x12\x16\n\x12OFPRR_HARD_TIMEOUT\x10\x01\x12\x10\n\x0cOFPRR_DELETE\x10\x02\x12\x16\n\x12OFPRR_GROUP_DELETE\x10\x03\x12\x16\n\x12OFPRR_METER_DELETE\x10\x04*n\n\tofp_meter\x12\r\n\tOFPM_ZERO\x10\x00\x12\x10\n\x08OFPM_MAX\x10\x80\x80\xfc\xff\x07\x12\x15\n\rOFPM_SLOWPATH\x10\xfd\xff\xff\xff\x07\x12\x17\n\x0fOFPM_CONTROLLER\x10\xfe\xff\xff\xff\x07\x12\x10\n\x08OFPM_ALL\x10\xff\xff\xff\xff\x07*m\n\x13ofp_meter_band_type\x12\x12\n\x0eOFPMBT_INVALID\x10\x00\x12\x0f\n\x0bOFPMBT_DROP\x10\x01\x12\x16\n\x12OFPMBT_DSCP_REMARK\x10\x02\x12\x19\n\x13OFPMBT_EXPERIMENTER\x10\xff\xff\x03*J\n\x15ofp_meter_mod_command\x12\r\n\tOFPMC_ADD\x10\x00\x12\x10\n\x0cOFPMC_MODIFY\x10\x01\x12\x10\n\x0cOFPMC_DELETE\x10\x02*g\n\x0fofp_meter_flags\x12\x11\n\rOFPMF_INVALID\x10\x00\x12\x0e\n\nOFPMF_KBPS\x10\x01\x12\x0f\n\x0bOFPMF_PKTPS\x10\x02\x12\x0f\n\x0bOFPMF_BURST\x10\x04\x12\x0f\n\x0bOFPMF_STATS\x10\x08*\xa4\x03\n\x0eofp_error_type\x12\x16\n\x12OFPET_HELLO_FAILED\x10\x00\x12\x15\n\x11OFPET_BAD_REQUEST\x10\x01\x12\x14\n\x10OFPET_BAD_ACTION\x10\x02\x12\x19\n\x15OFPET_BAD_INSTRUCTION\x10\x03\x12\x13\n\x0fOFPET_BAD_MATCH\x10\x04\x12\x19\n\x15OFPET_FLOW_MOD_FAILED\x10\x05\x12\x1a\n\x16OFPET_GROUP_MOD_FAILED\x10\x06\x12\x19\n\x15OFPET_PORT_MOD_FAILED\x10\x07\x12\x1a\n\x16OFPET_TABLE_MOD_FAILED\x10\x08\x12\x19\n\x15OFPET_QUEUE_OP_FAILED\x10\t\x12\x1e\n\x1aOFPET_SWITCH_CONFIG_FAILED\x10\n\x12\x1d\n\x19OFPET_ROLE_REQUEST_FAILED\x10\x0b\x12\x1a\n\x16OFPET_METER_MOD_FAILED\x10\x0c\x12\x1f\n\x1bOFPET_TABLE_FEATURES_FAILED\x10\r\x12\x18\n\x12OFPET_EXPERIMENTER\x10\xff\xff\x03*B\n\x15ofp_hello_failed_code\x12\x17\n\x13OFPHFC_INCOMPATIBLE\x10\x00\x12\x10\n\x0cOFPHFC_EPERM\x10\x01*\xed\x02\n\x14ofp_bad_request_code\x12\x16\n\x12OFPBRC_BAD_VERSION\x10\x00\x12\x13\n\x0fOFPBRC_BAD_TYPE\x10\x01\x12\x18\n\x14OFPBRC_BAD_MULTIPART\x10\x02\x12\x1b\n\x17OFPBRC_BAD_EXPERIMENTER\x10\x03\x12\x17\n\x13OFPBRC_BAD_EXP_TYPE\x10\x04\x12\x10\n\x0cOFPBRC_EPERM\x10\x05\x12\x12\n\x0eOFPBRC_BAD_LEN\x10\x06\x12\x17\n\x13OFPBRC_BUFFER_EMPTY\x10\x07\x12\x19\n\x15OFPBRC_BUFFER_UNKNOWN\x10\x08\x12\x17\n\x13OFPBRC_BAD_TABLE_ID\x10\t\x12\x13\n\x0fOFPBRC_IS_SLAVE\x10\n\x12\x13\n\x0fOFPBRC_BAD_PORT\x10\x0b\x12\x15\n\x11OFPBRC_BAD_PACKET\x10\x0c\x12$\n OFPBRC_MULTIPART_BUFFER_OVERFLOW\x10\r*\x9c\x03\n\x13ofp_bad_action_code\x12\x13\n\x0fOFPBAC_BAD_TYPE\x10\x00\x12\x12\n\x0eOFPBAC_BAD_LEN\x10\x01\x12\x1b\n\x17OFPBAC_BAD_EXPERIMENTER\x10\x02\x12\x17\n\x13OFPBAC_BAD_EXP_TYPE\x10\x03\x12\x17\n\x13OFPBAC_BAD_OUT_PORT\x10\x04\x12\x17\n\x13OFPBAC_BAD_ARGUMENT\x10\x05\x12\x10\n\x0cOFPBAC_EPERM\x10\x06\x12\x13\n\x0fOFPBAC_TOO_MANY\x10\x07\x12\x14\n\x10OFPBAC_BAD_QUEUE\x10\x08\x12\x18\n\x14OFPBAC_BAD_OUT_GROUP\x10\t\x12\x1d\n\x19OFPBAC_MATCH_INCONSISTENT\x10\n\x12\x1c\n\x18OFPBAC_UNSUPPORTED_ORDER\x10\x0b\x12\x12\n\x0eOFPBAC_BAD_TAG\x10\x0c\x12\x17\n\x13OFPBAC_BAD_SET_TYPE\x10\r\x12\x16\n\x12OFPBAC_BAD_SET_LEN\x10\x0e\x12\x1b\n\x17OFPBAC_BAD_SET_ARGUMENT\x10\x0f*\xfa\x01\n\x18ofp_bad_instruction_code\x12\x17\n\x13OFPBIC_UNKNOWN_INST\x10\x00\x12\x15\n\x11OFPBIC_UNSUP_INST\x10\x01\x12\x17\n\x13OFPBIC_BAD_TABLE_ID\x10\x02\x12\x19\n\x15OFPBIC_UNSUP_METADATA\x10\x03\x12\x1e\n\x1aOFPBIC_UNSUP_METADATA_MASK\x10\x04\x12\x1b\n\x17OFPBIC_BAD_EXPERIMENTER\x10\x05\x12\x17\n\x13OFPBIC_BAD_EXP_TYPE\x10\x06\x12\x12\n\x0eOFPBIC_BAD_LEN\x10\x07\x12\x10\n\x0cOFPBIC_EPERM\x10\x08*\xa5\x02\n\x12ofp_bad_match_code\x12\x13\n\x0fOFPBMC_BAD_TYPE\x10\x00\x12\x12\n\x0eOFPBMC_BAD_LEN\x10\x01\x12\x12\n\x0eOFPBMC_BAD_TAG\x10\x02\x12\x1b\n\x17OFPBMC_BAD_DL_ADDR_MASK\x10\x03\x12\x1b\n\x17OFPBMC_BAD_NW_ADDR_MASK\x10\x04\x12\x18\n\x14OFPBMC_BAD_WILDCARDS\x10\x05\x12\x14\n\x10OFPBMC_BAD_FIELD\x10\x06\x12\x14\n\x10OFPBMC_BAD_VALUE\x10\x07\x12\x13\n\x0fOFPBMC_BAD_MASK\x10\x08\x12\x15\n\x11OFPBMC_BAD_PREREQ\x10\t\x12\x14\n\x10OFPBMC_DUP_FIELD\x10\n\x12\x10\n\x0cOFPBMC_EPERM\x10\x0b*\xd2\x01\n\x18ofp_flow_mod_failed_code\x12\x13\n\x0fOFPFMFC_UNKNOWN\x10\x00\x12\x16\n\x12OFPFMFC_TABLE_FULL\x10\x01\x12\x18\n\x14OFPFMFC_BAD_TABLE_ID\x10\x02\x12\x13\n\x0fOFPFMFC_OVERLAP\x10\x03\x12\x11\n\rOFPFMFC_EPERM\x10\x04\x12\x17\n\x13OFPFMFC_BAD_TIMEOUT\x10\x05\x12\x17\n\x13OFPFMFC_BAD_COMMAND\x10\x06\x12\x15\n\x11OFPFMFC_BAD_FLAGS\x10\x07*\xa1\x03\n\x19ofp_group_mod_failed_code\x12\x18\n\x14OFPGMFC_GROUP_EXISTS\x10\x00\x12\x19\n\x15OFPGMFC_INVALID_GROUP\x10\x01\x12\x1e\n\x1aOFPGMFC_WEIGHT_UNSUPPORTED\x10\x02\x12\x19\n\x15OFPGMFC_OUT_OF_GROUPS\x10\x03\x12\x1a\n\x16OFPGMFC_OUT_OF_BUCKETS\x10\x04\x12 \n\x1cOFPGMFC_CHAINING_UNSUPPORTED\x10\x05\x12\x1d\n\x19OFPGMFC_WATCH_UNSUPPORTED\x10\x06\x12\x10\n\x0cOFPGMFC_LOOP\x10\x07\x12\x19\n\x15OFPGMFC_UNKNOWN_GROUP\x10\x08\x12\x19\n\x15OFPGMFC_CHAINED_GROUP\x10\t\x12\x14\n\x10OFPGMFC_BAD_TYPE\x10\n\x12\x17\n\x13OFPGMFC_BAD_COMMAND\x10\x0b\x12\x16\n\x12OFPGMFC_BAD_BUCKET\x10\x0c\x12\x15\n\x11OFPGMFC_BAD_WATCH\x10\r\x12\x11\n\rOFPGMFC_EPERM\x10\x0e*\x8f\x01\n\x18ofp_port_mod_failed_code\x12\x14\n\x10OFPPMFC_BAD_PORT\x10\x00\x12\x17\n\x13OFPPMFC_BAD_HW_ADDR\x10\x01\x12\x16\n\x12OFPPMFC_BAD_CONFIG\x10\x02\x12\x19\n\x15OFPPMFC_BAD_ADVERTISE\x10\x03\x12\x11\n\rOFPPMFC_EPERM\x10\x04*]\n\x19ofp_table_mod_failed_code\x12\x15\n\x11OFPTMFC_BAD_TABLE\x10\x00\x12\x16\n\x12OFPTMFC_BAD_CONFIG\x10\x01\x12\x11\n\rOFPTMFC_EPERM\x10\x02*Z\n\x18ofp_queue_op_failed_code\x12\x14\n\x10OFPQOFC_BAD_PORT\x10\x00\x12\x15\n\x11OFPQOFC_BAD_QUEUE\x10\x01\x12\x11\n\rOFPQOFC_EPERM\x10\x02*^\n\x1dofp_switch_config_failed_code\x12\x15\n\x11OFPSCFC_BAD_FLAGS\x10\x00\x12\x13\n\x0fOFPSCFC_BAD_LEN\x10\x01\x12\x11\n\rOFPSCFC_EPERM\x10\x02*Z\n\x1cofp_role_request_failed_code\x12\x11\n\rOFPRRFC_STALE\x10\x00\x12\x11\n\rOFPRRFC_UNSUP\x10\x01\x12\x14\n\x10OFPRRFC_BAD_ROLE\x10\x02*\xc4\x02\n\x19ofp_meter_mod_failed_code\x12\x13\n\x0fOFPMMFC_UNKNOWN\x10\x00\x12\x18\n\x14OFPMMFC_METER_EXISTS\x10\x01\x12\x19\n\x15OFPMMFC_INVALID_METER\x10\x02\x12\x19\n\x15OFPMMFC_UNKNOWN_METER\x10\x03\x12\x17\n\x13OFPMMFC_BAD_COMMAND\x10\x04\x12\x15\n\x11OFPMMFC_BAD_FLAGS\x10\x05\x12\x14\n\x10OFPMMFC_BAD_RATE\x10\x06\x12\x15\n\x11OFPMMFC_BAD_BURST\x10\x07\x12\x14\n\x10OFPMMFC_BAD_BAND\x10\x08\x12\x1a\n\x16OFPMMFC_BAD_BAND_VALUE\x10\t\x12\x19\n\x15OFPMMFC_OUT_OF_METERS\x10\n\x12\x18\n\x14OFPMMFC_OUT_OF_BANDS\x10\x0b*\xa9\x01\n\x1eofp_table_features_failed_code\x12\x15\n\x11OFPTFFC_BAD_TABLE\x10\x00\x12\x18\n\x14OFPTFFC_BAD_METADATA\x10\x01\x12\x14\n\x10OFPTFFC_BAD_TYPE\x10\x02\x12\x13\n\x0fOFPTFFC_BAD_LEN\x10\x03\x12\x18\n\x14OFPTFFC_BAD_ARGUMENT\x10\x04\x12\x11\n\rOFPTFFC_EPERM\x10\x05*\xce\x02\n\x12ofp_multipart_type\x12\x0e\n\nOFPMP_DESC\x10\x00\x12\x0e\n\nOFPMP_FLOW\x10\x01\x12\x13\n\x0fOFPMP_AGGREGATE\x10\x02\x12\x0f\n\x0bOFPMP_TABLE\x10\x03\x12\x14\n\x10OFPMP_PORT_STATS\x10\x04\x12\x0f\n\x0bOFPMP_QUEUE\x10\x05\x12\x0f\n\x0bOFPMP_GROUP\x10\x06\x12\x14\n\x10OFPMP_GROUP_DESC\x10\x07\x12\x18\n\x14OFPMP_GROUP_FEATURES\x10\x08\x12\x0f\n\x0bOFPMP_METER\x10\t\x12\x16\n\x12OFPMP_METER_CONFIG\x10\n\x12\x18\n\x14OFPMP_METER_FEATURES\x10\x0b\x12\x18\n\x14OFPMP_TABLE_FEATURES\x10\x0c\x12\x13\n\x0fOFPMP_PORT_DESC\x10\r\x12\x18\n\x12OFPMP_EXPERIMENTER\x10\xff\xff\x03*J\n\x1bofp_multipart_request_flags\x12\x16\n\x12OFPMPF_REQ_INVALID\x10\x00\x12\x13\n\x0fOFPMPF_REQ_MORE\x10\x01*L\n\x19ofp_multipart_reply_flags\x12\x18\n\x14OFPMPF_REPLY_INVALID\x10\x00\x12\x15\n\x11OFPMPF_REPLY_MORE\x10\x01*\xe4\x03\n\x1bofp_table_feature_prop_type\x12\x18\n\x14OFPTFPT_INSTRUCTIONS\x10\x00\x12\x1d\n\x19OFPTFPT_INSTRUCTIONS_MISS\x10\x01\x12\x17\n\x13OFPTFPT_NEXT_TABLES\x10\x02\x12\x1c\n\x18OFPTFPT_NEXT_TABLES_MISS\x10\x03\x12\x19\n\x15OFPTFPT_WRITE_ACTIONS\x10\x04\x12\x1e\n\x1aOFPTFPT_WRITE_ACTIONS_MISS\x10\x05\x12\x19\n\x15OFPTFPT_APPLY_ACTIONS\x10\x06\x12\x1e\n\x1aOFPTFPT_APPLY_ACTIONS_MISS\x10\x07\x12\x11\n\rOFPTFPT_MATCH\x10\x08\x12\x15\n\x11OFPTFPT_WILDCARDS\x10\n\x12\x1a\n\x16OFPTFPT_WRITE_SETFIELD\x10\x0c\x12\x1f\n\x1bOFPTFPT_WRITE_SETFIELD_MISS\x10\r\x12\x1a\n\x16OFPTFPT_APPLY_SETFIELD\x10\x0e\x12\x1f\n\x1bOFPTFPT_APPLY_SETFIELD_MISS\x10\x0f\x12\x1a\n\x14OFPTFPT_EXPERIMENTER\x10\xfe\xff\x03\x12\x1f\n\x19OFPTFPT_EXPERIMENTER_MISS\x10\xff\xff\x03*\x93\x01\n\x16ofp_group_capabilities\x12\x12\n\x0eOFPGFC_INVALID\x10\x00\x12\x18\n\x14OFPGFC_SELECT_WEIGHT\x10\x01\x12\x1a\n\x16OFPGFC_SELECT_LIVENESS\x10\x02\x12\x13\n\x0fOFPGFC_CHAINING\x10\x04\x12\x1a\n\x16OFPGFC_CHAINING_CHECKS\x10\x08*k\n\x14ofp_queue_properties\x12\x11\n\rOFPQT_INVALID\x10\x00\x12\x12\n\x0eOFPQT_MIN_RATE\x10\x01\x12\x12\n\x0eOFPQT_MAX_RATE\x10\x02\x12\x18\n\x12OFPQT_EXPERIMENTER\x10\xff\xff\x03*q\n\x13ofp_controller_role\x12\x17\n\x13OFPCR_ROLE_NOCHANGE\x10\x00\x12\x14\n\x10OFPCR_ROLE_EQUAL\x10\x01\x12\x15\n\x11OFPCR_ROLE_MASTER\x10\x02\x12\x14\n\x10OFPCR_ROLE_SLAVE\x10\x03\x62\x06proto3')
+)
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+_OFP_PORT_NO = _descriptor.EnumDescriptor(
+  name='ofp_port_no',
+  full_name='openflow_13.ofp_port_no',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_MAX', index=1, number=2147483392,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_IN_PORT', index=2, number=2147483640,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_TABLE', index=3, number=2147483641,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_NORMAL', index=4, number=2147483642,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_FLOOD', index=5, number=2147483643,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_ALL', index=6, number=2147483644,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_CONTROLLER', index=7, number=2147483645,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_LOCAL', index=8, number=2147483646,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPP_ANY', index=9, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=11141,
+  serialized_end=11354,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_NO)
+
+ofp_port_no = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_NO)
+_OFP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_type',
+  full_name='openflow_13.ofp_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_HELLO', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ERROR', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ECHO_REQUEST', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ECHO_REPLY', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_EXPERIMENTER', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FEATURES_REQUEST', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FEATURES_REPLY', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_CONFIG_REQUEST', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_CONFIG_REPLY', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_SET_CONFIG', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PACKET_IN', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FLOW_REMOVED', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PORT_STATUS', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PACKET_OUT', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_FLOW_MOD', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GROUP_MOD', index=15, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_PORT_MOD', index=16, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_TABLE_MOD', index=17, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_MULTIPART_REQUEST', index=18, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_MULTIPART_REPLY', index=19, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_BARRIER_REQUEST', index=20, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_BARRIER_REPLY', index=21, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_QUEUE_GET_CONFIG_REQUEST', index=22, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_QUEUE_GET_CONFIG_REPLY', index=23, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ROLE_REQUEST', index=24, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_ROLE_REPLY', index=25, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_ASYNC_REQUEST', index=26, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_GET_ASYNC_REPLY', index=27, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_SET_ASYNC', index=28, number=28,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPT_METER_MOD', index=29, number=29,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=11357,
+  serialized_end=12069,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TYPE)
+
+ofp_type = enum_type_wrapper.EnumTypeWrapper(_OFP_TYPE)
+_OFP_HELLO_ELEM_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_hello_elem_type',
+  full_name='openflow_13.ofp_hello_elem_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPHET_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPHET_VERSIONBITMAP', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12071,
+  serialized_end=12138,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_HELLO_ELEM_TYPE)
+
+ofp_hello_elem_type = enum_type_wrapper.EnumTypeWrapper(_OFP_HELLO_ELEM_TYPE)
+_OFP_CONFIG_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_config_flags',
+  full_name='openflow_13.ofp_config_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_NORMAL', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_DROP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_REASM', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FRAG_MASK', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12140,
+  serialized_end=12241,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONFIG_FLAGS)
+
+ofp_config_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_CONFIG_FLAGS)
+_OFP_TABLE_CONFIG = _descriptor.EnumDescriptor(
+  name='ofp_table_config',
+  full_name='openflow_13.ofp_table_config',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTC_DEPRECATED_MASK', index=1, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12243,
+  serialized_end=12307,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_CONFIG)
+
+ofp_table_config = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_CONFIG)
+_OFP_TABLE = _descriptor.EnumDescriptor(
+  name='ofp_table',
+  full_name='openflow_13.ofp_table',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_MAX', index=1, number=254,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTT_ALL', index=2, number=255,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12309,
+  serialized_end=12371,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE)
+
+ofp_table = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE)
+_OFP_CAPABILITIES = _descriptor.EnumDescriptor(
+  name='ofp_capabilities',
+  full_name='openflow_13.ofp_capabilities',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_FLOW_STATS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_TABLE_STATS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_PORT_STATS', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_GROUP_STATS', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_IP_REASM', index=5, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_QUEUE_STATS', index=6, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPC_PORT_BLOCKED', index=7, number=256,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12374,
+  serialized_end=12561,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CAPABILITIES)
+
+ofp_capabilities = enum_type_wrapper.EnumTypeWrapper(_OFP_CAPABILITIES)
+_OFP_PORT_CONFIG = _descriptor.EnumDescriptor(
+  name='ofp_port_config',
+  full_name='openflow_13.ofp_port_config',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_PORT_DOWN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_RECV', index=2, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_FWD', index=3, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPC_NO_PACKET_IN', index=4, number=64,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12563,
+  serialized_end=12681,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_CONFIG)
+
+ofp_port_config = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_CONFIG)
+_OFP_PORT_STATE = _descriptor.EnumDescriptor(
+  name='ofp_port_state',
+  full_name='openflow_13.ofp_port_state',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_LINK_DOWN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_BLOCKED', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPS_LIVE', index=3, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12683,
+  serialized_end=12774,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_STATE)
+
+ofp_port_state = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_STATE)
+_OFP_PORT_FEATURES = _descriptor.EnumDescriptor(
+  name='ofp_port_features',
+  full_name='openflow_13.ofp_port_features',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10MB_HD', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10MB_FD', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100MB_HD', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100MB_FD', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1GB_HD', index=5, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1GB_FD', index=6, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_10GB_FD', index=7, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_40GB_FD', index=8, number=128,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_100GB_FD', index=9, number=256,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_1TB_FD', index=10, number=512,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_OTHER', index=11, number=1024,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_COPPER', index=12, number=2048,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_FIBER', index=13, number=4096,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_AUTONEG', index=14, number=8192,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_PAUSE', index=15, number=16384,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPF_PAUSE_ASYM', index=16, number=32768,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=12777,
+  serialized_end=13126,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_FEATURES)
+
+ofp_port_features = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_FEATURES)
+_OFP_PORT_REASON = _descriptor.EnumDescriptor(
+  name='ofp_port_reason',
+  full_name='openflow_13.ofp_port_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_DELETE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPR_MODIFY', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13128,
+  serialized_end=13196,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_REASON)
+
+ofp_port_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_REASON)
+_OFP_MATCH_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_match_type',
+  full_name='openflow_13.ofp_match_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMT_STANDARD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMT_OXM', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13198,
+  serialized_end=13249,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MATCH_TYPE)
+
+ofp_match_type = enum_type_wrapper.EnumTypeWrapper(_OFP_MATCH_TYPE)
+_OFP_OXM_CLASS = _descriptor.EnumDescriptor(
+  name='ofp_oxm_class',
+  full_name='openflow_13.ofp_oxm_class',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_NXM_0', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_NXM_1', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_OPENFLOW_BASIC', index=2, number=32768,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMC_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13251,
+  serialized_end=13358,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_OXM_CLASS)
+
+ofp_oxm_class = enum_type_wrapper.EnumTypeWrapper(_OFP_OXM_CLASS)
+_OXM_OFB_FIELD_TYPES = _descriptor.EnumDescriptor(
+  name='oxm_ofb_field_types',
+  full_name='openflow_13.oxm_ofb_field_types',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IN_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IN_PHY_PORT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_METADATA', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_DST', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_SRC', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ETH_TYPE', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_VLAN_VID', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_VLAN_PCP', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_DSCP', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_ECN', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IP_PROTO', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV4_SRC', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV4_DST', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TCP_SRC', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TCP_DST', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_UDP_SRC', index=15, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_UDP_DST', index=16, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_SCTP_SRC', index=17, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_SCTP_DST', index=18, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV4_TYPE', index=19, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV4_CODE', index=20, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_OP', index=21, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_SPA', index=22, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_TPA', index=23, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_SHA', index=24, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ARP_THA', index=25, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_SRC', index=26, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_DST', index=27, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_FLABEL', index=28, number=28,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV6_TYPE', index=29, number=29,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_ICMPV6_CODE', index=30, number=30,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_TARGET', index=31, number=31,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_SLL', index=32, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_ND_TLL', index=33, number=33,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_LABEL', index=34, number=34,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_TC', index=35, number=35,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_MPLS_BOS', index=36, number=36,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_PBB_ISID', index=37, number=37,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_TUNNEL_ID', index=38, number=38,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPXMT_OFB_IPV6_EXTHDR', index=39, number=39,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=13361,
+  serialized_end=14401,
+)
+_sym_db.RegisterEnumDescriptor(_OXM_OFB_FIELD_TYPES)
+
+oxm_ofb_field_types = enum_type_wrapper.EnumTypeWrapper(_OXM_OFB_FIELD_TYPES)
+_OFP_VLAN_ID = _descriptor.EnumDescriptor(
+  name='ofp_vlan_id',
+  full_name='openflow_13.ofp_vlan_id',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPVID_NONE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPVID_PRESENT', index=1, number=4096,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14403,
+  serialized_end=14454,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_VLAN_ID)
+
+ofp_vlan_id = enum_type_wrapper.EnumTypeWrapper(_OFP_VLAN_ID)
+_OFP_IPV6EXTHDR_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_ipv6exthdr_flags',
+  full_name='openflow_13.ofp_ipv6exthdr_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_NONEXT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_ESP', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_AUTH', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_DEST', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_FRAG', index=5, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_ROUTER', index=6, number=32,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_HOP', index=7, number=64,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_UNREP', index=8, number=128,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIEH_UNSEQ', index=9, number=256,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14457,
+  serialized_end=14658,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_IPV6EXTHDR_FLAGS)
+
+ofp_ipv6exthdr_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_IPV6EXTHDR_FLAGS)
+_OFP_ACTION_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_action_type',
+  full_name='openflow_13.ofp_action_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_OUTPUT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_COPY_TTL_OUT', index=1, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_COPY_TTL_IN', index=2, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_MPLS_TTL', index=3, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_DEC_MPLS_TTL', index=4, number=16,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_VLAN', index=5, number=17,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_VLAN', index=6, number=18,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_MPLS', index=7, number=19,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_MPLS', index=8, number=20,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_QUEUE', index=9, number=21,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_GROUP', index=10, number=22,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_NW_TTL', index=11, number=23,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_DEC_NW_TTL', index=12, number=24,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_SET_FIELD', index=13, number=25,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_PUSH_PBB', index=14, number=26,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_POP_PBB', index=15, number=27,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPAT_EXPERIMENTER', index=16, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=14661,
+  serialized_end=15041,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ACTION_TYPE)
+
+ofp_action_type = enum_type_wrapper.EnumTypeWrapper(_OFP_ACTION_TYPE)
+_OFP_CONTROLLER_MAX_LEN = _descriptor.EnumDescriptor(
+  name='ofp_controller_max_len',
+  full_name='openflow_13.ofp_controller_max_len',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_MAX', index=1, number=65509,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCML_NO_BUFFER', index=2, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15043,
+  serialized_end=15129,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONTROLLER_MAX_LEN)
+
+ofp_controller_max_len = enum_type_wrapper.EnumTypeWrapper(_OFP_CONTROLLER_MAX_LEN)
+_OFP_INSTRUCTION_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_instruction_type',
+  full_name='openflow_13.ofp_instruction_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_GOTO_TABLE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_WRITE_METADATA', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_WRITE_ACTIONS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_APPLY_ACTIONS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_CLEAR_ACTIONS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_METER', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPIT_EXPERIMENTER', index=7, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15132,
+  serialized_end=15339,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_INSTRUCTION_TYPE)
+
+ofp_instruction_type = enum_type_wrapper.EnumTypeWrapper(_OFP_INSTRUCTION_TYPE)
+_OFP_FLOW_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_command',
+  full_name='openflow_13.ofp_flow_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_MODIFY_STRICT', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_DELETE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFC_DELETE_STRICT', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15341,
+  serialized_end=15464,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_COMMAND)
+
+ofp_flow_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_COMMAND)
+_OFP_FLOW_MOD_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_flags',
+  full_name='openflow_13.ofp_flow_mod_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_SEND_FLOW_REM', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_CHECK_OVERLAP', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_RESET_COUNTS', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_NO_PKT_COUNTS', index=4, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFF_NO_BYT_COUNTS', index=5, number=16,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15467,
+  serialized_end=15630,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_FLAGS)
+
+ofp_flow_mod_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_FLAGS)
+_OFP_GROUP = _descriptor.EnumDescriptor(
+  name='ofp_group',
+  full_name='openflow_13.ofp_group',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_MAX', index=1, number=2147483392,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_ALL', index=2, number=2147483644,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPG_ANY', index=3, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15632,
+  serialized_end=15715,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP)
+
+ofp_group = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP)
+_OFP_GROUP_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_group_mod_command',
+  full_name='openflow_13.ofp_group_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGC_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15717,
+  serialized_end=15791,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_MOD_COMMAND)
+
+ofp_group_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_MOD_COMMAND)
+_OFP_GROUP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_group_type',
+  full_name='openflow_13.ofp_group_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_ALL', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_SELECT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_INDIRECT', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGT_FF', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15793,
+  serialized_end=15876,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_TYPE)
+
+ofp_group_type = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_TYPE)
+_OFP_PACKET_IN_REASON = _descriptor.EnumDescriptor(
+  name='ofp_packet_in_reason',
+  full_name='openflow_13.ofp_packet_in_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_NO_MATCH', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_ACTION', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPR_INVALID_TTL', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15878,
+  serialized_end=15958,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PACKET_IN_REASON)
+
+ofp_packet_in_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_PACKET_IN_REASON)
+_OFP_FLOW_REMOVED_REASON = _descriptor.EnumDescriptor(
+  name='ofp_flow_removed_reason',
+  full_name='openflow_13.ofp_flow_removed_reason',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_IDLE_TIMEOUT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_HARD_TIMEOUT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_GROUP_DELETE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRR_METER_DELETE', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=15961,
+  serialized_end=16100,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_REMOVED_REASON)
+
+ofp_flow_removed_reason = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_REMOVED_REASON)
+_OFP_METER = _descriptor.EnumDescriptor(
+  name='ofp_meter',
+  full_name='openflow_13.ofp_meter',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_ZERO', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_MAX', index=1, number=2147418112,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_SLOWPATH', index=2, number=2147483645,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_CONTROLLER', index=3, number=2147483646,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPM_ALL', index=4, number=2147483647,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16102,
+  serialized_end=16212,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER)
+
+ofp_meter = enum_type_wrapper.EnumTypeWrapper(_OFP_METER)
+_OFP_METER_BAND_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_meter_band_type',
+  full_name='openflow_13.ofp_meter_band_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_DROP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_DSCP_REMARK', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMBT_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16214,
+  serialized_end=16323,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_BAND_TYPE)
+
+ofp_meter_band_type = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_BAND_TYPE)
+_OFP_METER_MOD_COMMAND = _descriptor.EnumDescriptor(
+  name='ofp_meter_mod_command',
+  full_name='openflow_13.ofp_meter_mod_command',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_ADD', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_MODIFY', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMC_DELETE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16325,
+  serialized_end=16399,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_MOD_COMMAND)
+
+ofp_meter_mod_command = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_MOD_COMMAND)
+_OFP_METER_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_meter_flags',
+  full_name='openflow_13.ofp_meter_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_KBPS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_PKTPS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_BURST', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMF_STATS', index=4, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16401,
+  serialized_end=16504,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_FLAGS)
+
+ofp_meter_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_FLAGS)
+_OFP_ERROR_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_error_type',
+  full_name='openflow_13.ofp_error_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_HELLO_FAILED', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_REQUEST', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_ACTION', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_INSTRUCTION', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_BAD_MATCH', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_FLOW_MOD_FAILED', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_GROUP_MOD_FAILED', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_PORT_MOD_FAILED', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_TABLE_MOD_FAILED', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_QUEUE_OP_FAILED', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_SWITCH_CONFIG_FAILED', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_ROLE_REQUEST_FAILED', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_METER_MOD_FAILED', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_TABLE_FEATURES_FAILED', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPET_EXPERIMENTER', index=14, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16507,
+  serialized_end=16927,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ERROR_TYPE)
+
+ofp_error_type = enum_type_wrapper.EnumTypeWrapper(_OFP_ERROR_TYPE)
+_OFP_HELLO_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_hello_failed_code',
+  full_name='openflow_13.ofp_hello_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPHFC_INCOMPATIBLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPHFC_EPERM', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16929,
+  serialized_end=16995,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_HELLO_FAILED_CODE)
+
+ofp_hello_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_HELLO_FAILED_CODE)
+_OFP_BAD_REQUEST_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_request_code',
+  full_name='openflow_13.ofp_bad_request_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_VERSION', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_TYPE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_MULTIPART', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_EXPERIMENTER', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_EXP_TYPE', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_EPERM', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_LEN', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BUFFER_EMPTY', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BUFFER_UNKNOWN', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_TABLE_ID', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_IS_SLAVE', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_PORT', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_BAD_PACKET', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBRC_MULTIPART_BUFFER_OVERFLOW', index=13, number=13,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=16998,
+  serialized_end=17363,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_REQUEST_CODE)
+
+ofp_bad_request_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_REQUEST_CODE)
+_OFP_BAD_ACTION_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_action_code',
+  full_name='openflow_13.ofp_bad_action_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_TYPE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_EXPERIMENTER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_EXP_TYPE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_OUT_PORT', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_ARGUMENT', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_EPERM', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_TOO_MANY', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_QUEUE', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_OUT_GROUP', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_MATCH_INCONSISTENT', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_UNSUPPORTED_ORDER', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_TAG', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_TYPE', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_LEN', index=14, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBAC_BAD_SET_ARGUMENT', index=15, number=15,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=17366,
+  serialized_end=17778,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_ACTION_CODE)
+
+ofp_bad_action_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_ACTION_CODE)
+_OFP_BAD_INSTRUCTION_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_instruction_code',
+  full_name='openflow_13.ofp_bad_instruction_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNKNOWN_INST', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_INST', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_TABLE_ID', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_METADATA', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_UNSUP_METADATA_MASK', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_EXPERIMENTER', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_EXP_TYPE', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_BAD_LEN', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBIC_EPERM', index=8, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=17781,
+  serialized_end=18031,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_INSTRUCTION_CODE)
+
+ofp_bad_instruction_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_INSTRUCTION_CODE)
+_OFP_BAD_MATCH_CODE = _descriptor.EnumDescriptor(
+  name='ofp_bad_match_code',
+  full_name='openflow_13.ofp_bad_match_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_TYPE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_TAG', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_DL_ADDR_MASK', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_NW_ADDR_MASK', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_WILDCARDS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_FIELD', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_VALUE', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_MASK', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_BAD_PREREQ', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_DUP_FIELD', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPBMC_EPERM', index=11, number=11,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18034,
+  serialized_end=18327,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_BAD_MATCH_CODE)
+
+ofp_bad_match_code = enum_type_wrapper.EnumTypeWrapper(_OFP_BAD_MATCH_CODE)
+_OFP_FLOW_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_flow_mod_failed_code',
+  full_name='openflow_13.ofp_flow_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_UNKNOWN', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_TABLE_FULL', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_TABLE_ID', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_OVERLAP', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_EPERM', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_TIMEOUT', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_COMMAND', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPFMFC_BAD_FLAGS', index=7, number=7,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18330,
+  serialized_end=18540,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_FLOW_MOD_FAILED_CODE)
+
+ofp_flow_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_FLOW_MOD_FAILED_CODE)
+_OFP_GROUP_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_group_mod_failed_code',
+  full_name='openflow_13.ofp_group_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_GROUP_EXISTS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_INVALID_GROUP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_WEIGHT_UNSUPPORTED', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_OUT_OF_GROUPS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_OUT_OF_BUCKETS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_CHAINING_UNSUPPORTED', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_WATCH_UNSUPPORTED', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_LOOP', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_UNKNOWN_GROUP', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_CHAINED_GROUP', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_TYPE', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_COMMAND', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_BUCKET', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_BAD_WATCH', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGMFC_EPERM', index=14, number=14,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18543,
+  serialized_end=18960,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_MOD_FAILED_CODE)
+
+ofp_group_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_MOD_FAILED_CODE)
+_OFP_PORT_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_port_mod_failed_code',
+  full_name='openflow_13.ofp_port_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_HW_ADDR', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_CONFIG', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_BAD_ADVERTISE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPPMFC_EPERM', index=4, number=4,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=18963,
+  serialized_end=19106,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_PORT_MOD_FAILED_CODE)
+
+ofp_port_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_PORT_MOD_FAILED_CODE)
+_OFP_TABLE_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_table_mod_failed_code',
+  full_name='openflow_13.ofp_table_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_BAD_TABLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_BAD_CONFIG', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTMFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19108,
+  serialized_end=19201,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_MOD_FAILED_CODE)
+
+ofp_table_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_MOD_FAILED_CODE)
+_OFP_QUEUE_OP_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_queue_op_failed_code',
+  full_name='openflow_13.ofp_queue_op_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_BAD_PORT', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_BAD_QUEUE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQOFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19203,
+  serialized_end=19293,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_QUEUE_OP_FAILED_CODE)
+
+ofp_queue_op_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_QUEUE_OP_FAILED_CODE)
+_OFP_SWITCH_CONFIG_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_switch_config_failed_code',
+  full_name='openflow_13.ofp_switch_config_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_BAD_FLAGS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_BAD_LEN', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPSCFC_EPERM', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19295,
+  serialized_end=19389,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_SWITCH_CONFIG_FAILED_CODE)
+
+ofp_switch_config_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_SWITCH_CONFIG_FAILED_CODE)
+_OFP_ROLE_REQUEST_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_role_request_failed_code',
+  full_name='openflow_13.ofp_role_request_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_STALE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_UNSUP', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPRRFC_BAD_ROLE', index=2, number=2,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19391,
+  serialized_end=19481,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_ROLE_REQUEST_FAILED_CODE)
+
+ofp_role_request_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_ROLE_REQUEST_FAILED_CODE)
+_OFP_METER_MOD_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_meter_mod_failed_code',
+  full_name='openflow_13.ofp_meter_mod_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_UNKNOWN', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_METER_EXISTS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_INVALID_METER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_UNKNOWN_METER', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_COMMAND', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_FLAGS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_RATE', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BURST', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BAND', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_BAD_BAND_VALUE', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_OUT_OF_METERS', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMMFC_OUT_OF_BANDS', index=11, number=11,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19484,
+  serialized_end=19808,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_METER_MOD_FAILED_CODE)
+
+ofp_meter_mod_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_METER_MOD_FAILED_CODE)
+_OFP_TABLE_FEATURES_FAILED_CODE = _descriptor.EnumDescriptor(
+  name='ofp_table_features_failed_code',
+  full_name='openflow_13.ofp_table_features_failed_code',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_TABLE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_METADATA', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_TYPE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_LEN', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_BAD_ARGUMENT', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFFC_EPERM', index=5, number=5,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19811,
+  serialized_end=19980,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_FEATURES_FAILED_CODE)
+
+ofp_table_features_failed_code = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_FEATURES_FAILED_CODE)
+_OFP_MULTIPART_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_multipart_type',
+  full_name='openflow_13.ofp_multipart_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_DESC', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_FLOW', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_AGGREGATE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_TABLE', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_PORT_STATS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_QUEUE', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP_DESC', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_GROUP_FEATURES', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER', index=9, number=9,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER_CONFIG', index=10, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_METER_FEATURES', index=11, number=11,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_TABLE_FEATURES', index=12, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_PORT_DESC', index=13, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMP_EXPERIMENTER', index=14, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=19983,
+  serialized_end=20317,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_TYPE)
+
+ofp_multipart_type = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_TYPE)
+_OFP_MULTIPART_REQUEST_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_multipart_request_flags',
+  full_name='openflow_13.ofp_multipart_request_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REQ_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REQ_MORE', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20319,
+  serialized_end=20393,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_REQUEST_FLAGS)
+
+ofp_multipart_request_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_REQUEST_FLAGS)
+_OFP_MULTIPART_REPLY_FLAGS = _descriptor.EnumDescriptor(
+  name='ofp_multipart_reply_flags',
+  full_name='openflow_13.ofp_multipart_reply_flags',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REPLY_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPMPF_REPLY_MORE', index=1, number=1,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20395,
+  serialized_end=20471,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_MULTIPART_REPLY_FLAGS)
+
+ofp_multipart_reply_flags = enum_type_wrapper.EnumTypeWrapper(_OFP_MULTIPART_REPLY_FLAGS)
+_OFP_TABLE_FEATURE_PROP_TYPE = _descriptor.EnumDescriptor(
+  name='ofp_table_feature_prop_type',
+  full_name='openflow_13.ofp_table_feature_prop_type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_INSTRUCTIONS', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_INSTRUCTIONS_MISS', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_NEXT_TABLES', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_NEXT_TABLES_MISS', index=3, number=3,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_ACTIONS', index=4, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_ACTIONS_MISS', index=5, number=5,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_ACTIONS', index=6, number=6,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_ACTIONS_MISS', index=7, number=7,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_MATCH', index=8, number=8,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WILDCARDS', index=9, number=10,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_SETFIELD', index=10, number=12,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_WRITE_SETFIELD_MISS', index=11, number=13,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_SETFIELD', index=12, number=14,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_APPLY_SETFIELD_MISS', index=13, number=15,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_EXPERIMENTER', index=14, number=65534,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPTFPT_EXPERIMENTER_MISS', index=15, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20474,
+  serialized_end=20958,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_TABLE_FEATURE_PROP_TYPE)
+
+ofp_table_feature_prop_type = enum_type_wrapper.EnumTypeWrapper(_OFP_TABLE_FEATURE_PROP_TYPE)
+_OFP_GROUP_CAPABILITIES = _descriptor.EnumDescriptor(
+  name='ofp_group_capabilities',
+  full_name='openflow_13.ofp_group_capabilities',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_SELECT_WEIGHT', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_SELECT_LIVENESS', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_CHAINING', index=3, number=4,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPGFC_CHAINING_CHECKS', index=4, number=8,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=20961,
+  serialized_end=21108,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_GROUP_CAPABILITIES)
+
+ofp_group_capabilities = enum_type_wrapper.EnumTypeWrapper(_OFP_GROUP_CAPABILITIES)
+_OFP_QUEUE_PROPERTIES = _descriptor.EnumDescriptor(
+  name='ofp_queue_properties',
+  full_name='openflow_13.ofp_queue_properties',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_INVALID', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_MIN_RATE', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_MAX_RATE', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPQT_EXPERIMENTER', index=3, number=65535,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=21110,
+  serialized_end=21217,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_QUEUE_PROPERTIES)
+
+ofp_queue_properties = enum_type_wrapper.EnumTypeWrapper(_OFP_QUEUE_PROPERTIES)
+_OFP_CONTROLLER_ROLE = _descriptor.EnumDescriptor(
+  name='ofp_controller_role',
+  full_name='openflow_13.ofp_controller_role',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_NOCHANGE', index=0, number=0,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_EQUAL', index=1, number=1,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_MASTER', index=2, number=2,
+      options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OFPCR_ROLE_SLAVE', index=3, number=3,
+      options=None,
+      type=None),
+  ],
+  containing_type=None,
+  options=None,
+  serialized_start=21219,
+  serialized_end=21332,
+)
+_sym_db.RegisterEnumDescriptor(_OFP_CONTROLLER_ROLE)
+
+ofp_controller_role = enum_type_wrapper.EnumTypeWrapper(_OFP_CONTROLLER_ROLE)
+OFPP_INVALID = 0
+OFPP_MAX = 2147483392
+OFPP_IN_PORT = 2147483640
+OFPP_TABLE = 2147483641
+OFPP_NORMAL = 2147483642
+OFPP_FLOOD = 2147483643
+OFPP_ALL = 2147483644
+OFPP_CONTROLLER = 2147483645
+OFPP_LOCAL = 2147483646
+OFPP_ANY = 2147483647
+OFPT_HELLO = 0
+OFPT_ERROR = 1
+OFPT_ECHO_REQUEST = 2
+OFPT_ECHO_REPLY = 3
+OFPT_EXPERIMENTER = 4
+OFPT_FEATURES_REQUEST = 5
+OFPT_FEATURES_REPLY = 6
+OFPT_GET_CONFIG_REQUEST = 7
+OFPT_GET_CONFIG_REPLY = 8
+OFPT_SET_CONFIG = 9
+OFPT_PACKET_IN = 10
+OFPT_FLOW_REMOVED = 11
+OFPT_PORT_STATUS = 12
+OFPT_PACKET_OUT = 13
+OFPT_FLOW_MOD = 14
+OFPT_GROUP_MOD = 15
+OFPT_PORT_MOD = 16
+OFPT_TABLE_MOD = 17
+OFPT_MULTIPART_REQUEST = 18
+OFPT_MULTIPART_REPLY = 19
+OFPT_BARRIER_REQUEST = 20
+OFPT_BARRIER_REPLY = 21
+OFPT_QUEUE_GET_CONFIG_REQUEST = 22
+OFPT_QUEUE_GET_CONFIG_REPLY = 23
+OFPT_ROLE_REQUEST = 24
+OFPT_ROLE_REPLY = 25
+OFPT_GET_ASYNC_REQUEST = 26
+OFPT_GET_ASYNC_REPLY = 27
+OFPT_SET_ASYNC = 28
+OFPT_METER_MOD = 29
+OFPHET_INVALID = 0
+OFPHET_VERSIONBITMAP = 1
+OFPC_FRAG_NORMAL = 0
+OFPC_FRAG_DROP = 1
+OFPC_FRAG_REASM = 2
+OFPC_FRAG_MASK = 3
+OFPTC_INVALID = 0
+OFPTC_DEPRECATED_MASK = 3
+OFPTT_INVALID = 0
+OFPTT_MAX = 254
+OFPTT_ALL = 255
+OFPC_INVALID = 0
+OFPC_FLOW_STATS = 1
+OFPC_TABLE_STATS = 2
+OFPC_PORT_STATS = 4
+OFPC_GROUP_STATS = 8
+OFPC_IP_REASM = 32
+OFPC_QUEUE_STATS = 64
+OFPC_PORT_BLOCKED = 256
+OFPPC_INVALID = 0
+OFPPC_PORT_DOWN = 1
+OFPPC_NO_RECV = 4
+OFPPC_NO_FWD = 32
+OFPPC_NO_PACKET_IN = 64
+OFPPS_INVALID = 0
+OFPPS_LINK_DOWN = 1
+OFPPS_BLOCKED = 2
+OFPPS_LIVE = 4
+OFPPF_INVALID = 0
+OFPPF_10MB_HD = 1
+OFPPF_10MB_FD = 2
+OFPPF_100MB_HD = 4
+OFPPF_100MB_FD = 8
+OFPPF_1GB_HD = 16
+OFPPF_1GB_FD = 32
+OFPPF_10GB_FD = 64
+OFPPF_40GB_FD = 128
+OFPPF_100GB_FD = 256
+OFPPF_1TB_FD = 512
+OFPPF_OTHER = 1024
+OFPPF_COPPER = 2048
+OFPPF_FIBER = 4096
+OFPPF_AUTONEG = 8192
+OFPPF_PAUSE = 16384
+OFPPF_PAUSE_ASYM = 32768
+OFPPR_ADD = 0
+OFPPR_DELETE = 1
+OFPPR_MODIFY = 2
+OFPMT_STANDARD = 0
+OFPMT_OXM = 1
+OFPXMC_NXM_0 = 0
+OFPXMC_NXM_1 = 1
+OFPXMC_OPENFLOW_BASIC = 32768
+OFPXMC_EXPERIMENTER = 65535
+OFPXMT_OFB_IN_PORT = 0
+OFPXMT_OFB_IN_PHY_PORT = 1
+OFPXMT_OFB_METADATA = 2
+OFPXMT_OFB_ETH_DST = 3
+OFPXMT_OFB_ETH_SRC = 4
+OFPXMT_OFB_ETH_TYPE = 5
+OFPXMT_OFB_VLAN_VID = 6
+OFPXMT_OFB_VLAN_PCP = 7
+OFPXMT_OFB_IP_DSCP = 8
+OFPXMT_OFB_IP_ECN = 9
+OFPXMT_OFB_IP_PROTO = 10
+OFPXMT_OFB_IPV4_SRC = 11
+OFPXMT_OFB_IPV4_DST = 12
+OFPXMT_OFB_TCP_SRC = 13
+OFPXMT_OFB_TCP_DST = 14
+OFPXMT_OFB_UDP_SRC = 15
+OFPXMT_OFB_UDP_DST = 16
+OFPXMT_OFB_SCTP_SRC = 17
+OFPXMT_OFB_SCTP_DST = 18
+OFPXMT_OFB_ICMPV4_TYPE = 19
+OFPXMT_OFB_ICMPV4_CODE = 20
+OFPXMT_OFB_ARP_OP = 21
+OFPXMT_OFB_ARP_SPA = 22
+OFPXMT_OFB_ARP_TPA = 23
+OFPXMT_OFB_ARP_SHA = 24
+OFPXMT_OFB_ARP_THA = 25
+OFPXMT_OFB_IPV6_SRC = 26
+OFPXMT_OFB_IPV6_DST = 27
+OFPXMT_OFB_IPV6_FLABEL = 28
+OFPXMT_OFB_ICMPV6_TYPE = 29
+OFPXMT_OFB_ICMPV6_CODE = 30
+OFPXMT_OFB_IPV6_ND_TARGET = 31
+OFPXMT_OFB_IPV6_ND_SLL = 32
+OFPXMT_OFB_IPV6_ND_TLL = 33
+OFPXMT_OFB_MPLS_LABEL = 34
+OFPXMT_OFB_MPLS_TC = 35
+OFPXMT_OFB_MPLS_BOS = 36
+OFPXMT_OFB_PBB_ISID = 37
+OFPXMT_OFB_TUNNEL_ID = 38
+OFPXMT_OFB_IPV6_EXTHDR = 39
+OFPVID_NONE = 0
+OFPVID_PRESENT = 4096
+OFPIEH_INVALID = 0
+OFPIEH_NONEXT = 1
+OFPIEH_ESP = 2
+OFPIEH_AUTH = 4
+OFPIEH_DEST = 8
+OFPIEH_FRAG = 16
+OFPIEH_ROUTER = 32
+OFPIEH_HOP = 64
+OFPIEH_UNREP = 128
+OFPIEH_UNSEQ = 256
+OFPAT_OUTPUT = 0
+OFPAT_COPY_TTL_OUT = 11
+OFPAT_COPY_TTL_IN = 12
+OFPAT_SET_MPLS_TTL = 15
+OFPAT_DEC_MPLS_TTL = 16
+OFPAT_PUSH_VLAN = 17
+OFPAT_POP_VLAN = 18
+OFPAT_PUSH_MPLS = 19
+OFPAT_POP_MPLS = 20
+OFPAT_SET_QUEUE = 21
+OFPAT_GROUP = 22
+OFPAT_SET_NW_TTL = 23
+OFPAT_DEC_NW_TTL = 24
+OFPAT_SET_FIELD = 25
+OFPAT_PUSH_PBB = 26
+OFPAT_POP_PBB = 27
+OFPAT_EXPERIMENTER = 65535
+OFPCML_INVALID = 0
+OFPCML_MAX = 65509
+OFPCML_NO_BUFFER = 65535
+OFPIT_INVALID = 0
+OFPIT_GOTO_TABLE = 1
+OFPIT_WRITE_METADATA = 2
+OFPIT_WRITE_ACTIONS = 3
+OFPIT_APPLY_ACTIONS = 4
+OFPIT_CLEAR_ACTIONS = 5
+OFPIT_METER = 6
+OFPIT_EXPERIMENTER = 65535
+OFPFC_ADD = 0
+OFPFC_MODIFY = 1
+OFPFC_MODIFY_STRICT = 2
+OFPFC_DELETE = 3
+OFPFC_DELETE_STRICT = 4
+OFPFF_INVALID = 0
+OFPFF_SEND_FLOW_REM = 1
+OFPFF_CHECK_OVERLAP = 2
+OFPFF_RESET_COUNTS = 4
+OFPFF_NO_PKT_COUNTS = 8
+OFPFF_NO_BYT_COUNTS = 16
+OFPG_INVALID = 0
+OFPG_MAX = 2147483392
+OFPG_ALL = 2147483644
+OFPG_ANY = 2147483647
+OFPGC_ADD = 0
+OFPGC_MODIFY = 1
+OFPGC_DELETE = 2
+OFPGT_ALL = 0
+OFPGT_SELECT = 1
+OFPGT_INDIRECT = 2
+OFPGT_FF = 3
+OFPR_NO_MATCH = 0
+OFPR_ACTION = 1
+OFPR_INVALID_TTL = 2
+OFPRR_IDLE_TIMEOUT = 0
+OFPRR_HARD_TIMEOUT = 1
+OFPRR_DELETE = 2
+OFPRR_GROUP_DELETE = 3
+OFPRR_METER_DELETE = 4
+OFPM_ZERO = 0
+OFPM_MAX = 2147418112
+OFPM_SLOWPATH = 2147483645
+OFPM_CONTROLLER = 2147483646
+OFPM_ALL = 2147483647
+OFPMBT_INVALID = 0
+OFPMBT_DROP = 1
+OFPMBT_DSCP_REMARK = 2
+OFPMBT_EXPERIMENTER = 65535
+OFPMC_ADD = 0
+OFPMC_MODIFY = 1
+OFPMC_DELETE = 2
+OFPMF_INVALID = 0
+OFPMF_KBPS = 1
+OFPMF_PKTPS = 2
+OFPMF_BURST = 4
+OFPMF_STATS = 8
+OFPET_HELLO_FAILED = 0
+OFPET_BAD_REQUEST = 1
+OFPET_BAD_ACTION = 2
+OFPET_BAD_INSTRUCTION = 3
+OFPET_BAD_MATCH = 4
+OFPET_FLOW_MOD_FAILED = 5
+OFPET_GROUP_MOD_FAILED = 6
+OFPET_PORT_MOD_FAILED = 7
+OFPET_TABLE_MOD_FAILED = 8
+OFPET_QUEUE_OP_FAILED = 9
+OFPET_SWITCH_CONFIG_FAILED = 10
+OFPET_ROLE_REQUEST_FAILED = 11
+OFPET_METER_MOD_FAILED = 12
+OFPET_TABLE_FEATURES_FAILED = 13
+OFPET_EXPERIMENTER = 65535
+OFPHFC_INCOMPATIBLE = 0
+OFPHFC_EPERM = 1
+OFPBRC_BAD_VERSION = 0
+OFPBRC_BAD_TYPE = 1
+OFPBRC_BAD_MULTIPART = 2
+OFPBRC_BAD_EXPERIMENTER = 3
+OFPBRC_BAD_EXP_TYPE = 4
+OFPBRC_EPERM = 5
+OFPBRC_BAD_LEN = 6
+OFPBRC_BUFFER_EMPTY = 7
+OFPBRC_BUFFER_UNKNOWN = 8
+OFPBRC_BAD_TABLE_ID = 9
+OFPBRC_IS_SLAVE = 10
+OFPBRC_BAD_PORT = 11
+OFPBRC_BAD_PACKET = 12
+OFPBRC_MULTIPART_BUFFER_OVERFLOW = 13
+OFPBAC_BAD_TYPE = 0
+OFPBAC_BAD_LEN = 1
+OFPBAC_BAD_EXPERIMENTER = 2
+OFPBAC_BAD_EXP_TYPE = 3
+OFPBAC_BAD_OUT_PORT = 4
+OFPBAC_BAD_ARGUMENT = 5
+OFPBAC_EPERM = 6
+OFPBAC_TOO_MANY = 7
+OFPBAC_BAD_QUEUE = 8
+OFPBAC_BAD_OUT_GROUP = 9
+OFPBAC_MATCH_INCONSISTENT = 10
+OFPBAC_UNSUPPORTED_ORDER = 11
+OFPBAC_BAD_TAG = 12
+OFPBAC_BAD_SET_TYPE = 13
+OFPBAC_BAD_SET_LEN = 14
+OFPBAC_BAD_SET_ARGUMENT = 15
+OFPBIC_UNKNOWN_INST = 0
+OFPBIC_UNSUP_INST = 1
+OFPBIC_BAD_TABLE_ID = 2
+OFPBIC_UNSUP_METADATA = 3
+OFPBIC_UNSUP_METADATA_MASK = 4
+OFPBIC_BAD_EXPERIMENTER = 5
+OFPBIC_BAD_EXP_TYPE = 6
+OFPBIC_BAD_LEN = 7
+OFPBIC_EPERM = 8
+OFPBMC_BAD_TYPE = 0
+OFPBMC_BAD_LEN = 1
+OFPBMC_BAD_TAG = 2
+OFPBMC_BAD_DL_ADDR_MASK = 3
+OFPBMC_BAD_NW_ADDR_MASK = 4
+OFPBMC_BAD_WILDCARDS = 5
+OFPBMC_BAD_FIELD = 6
+OFPBMC_BAD_VALUE = 7
+OFPBMC_BAD_MASK = 8
+OFPBMC_BAD_PREREQ = 9
+OFPBMC_DUP_FIELD = 10
+OFPBMC_EPERM = 11
+OFPFMFC_UNKNOWN = 0
+OFPFMFC_TABLE_FULL = 1
+OFPFMFC_BAD_TABLE_ID = 2
+OFPFMFC_OVERLAP = 3
+OFPFMFC_EPERM = 4
+OFPFMFC_BAD_TIMEOUT = 5
+OFPFMFC_BAD_COMMAND = 6
+OFPFMFC_BAD_FLAGS = 7
+OFPGMFC_GROUP_EXISTS = 0
+OFPGMFC_INVALID_GROUP = 1
+OFPGMFC_WEIGHT_UNSUPPORTED = 2
+OFPGMFC_OUT_OF_GROUPS = 3
+OFPGMFC_OUT_OF_BUCKETS = 4
+OFPGMFC_CHAINING_UNSUPPORTED = 5
+OFPGMFC_WATCH_UNSUPPORTED = 6
+OFPGMFC_LOOP = 7
+OFPGMFC_UNKNOWN_GROUP = 8
+OFPGMFC_CHAINED_GROUP = 9
+OFPGMFC_BAD_TYPE = 10
+OFPGMFC_BAD_COMMAND = 11
+OFPGMFC_BAD_BUCKET = 12
+OFPGMFC_BAD_WATCH = 13
+OFPGMFC_EPERM = 14
+OFPPMFC_BAD_PORT = 0
+OFPPMFC_BAD_HW_ADDR = 1
+OFPPMFC_BAD_CONFIG = 2
+OFPPMFC_BAD_ADVERTISE = 3
+OFPPMFC_EPERM = 4
+OFPTMFC_BAD_TABLE = 0
+OFPTMFC_BAD_CONFIG = 1
+OFPTMFC_EPERM = 2
+OFPQOFC_BAD_PORT = 0
+OFPQOFC_BAD_QUEUE = 1
+OFPQOFC_EPERM = 2
+OFPSCFC_BAD_FLAGS = 0
+OFPSCFC_BAD_LEN = 1
+OFPSCFC_EPERM = 2
+OFPRRFC_STALE = 0
+OFPRRFC_UNSUP = 1
+OFPRRFC_BAD_ROLE = 2
+OFPMMFC_UNKNOWN = 0
+OFPMMFC_METER_EXISTS = 1
+OFPMMFC_INVALID_METER = 2
+OFPMMFC_UNKNOWN_METER = 3
+OFPMMFC_BAD_COMMAND = 4
+OFPMMFC_BAD_FLAGS = 5
+OFPMMFC_BAD_RATE = 6
+OFPMMFC_BAD_BURST = 7
+OFPMMFC_BAD_BAND = 8
+OFPMMFC_BAD_BAND_VALUE = 9
+OFPMMFC_OUT_OF_METERS = 10
+OFPMMFC_OUT_OF_BANDS = 11
+OFPTFFC_BAD_TABLE = 0
+OFPTFFC_BAD_METADATA = 1
+OFPTFFC_BAD_TYPE = 2
+OFPTFFC_BAD_LEN = 3
+OFPTFFC_BAD_ARGUMENT = 4
+OFPTFFC_EPERM = 5
+OFPMP_DESC = 0
+OFPMP_FLOW = 1
+OFPMP_AGGREGATE = 2
+OFPMP_TABLE = 3
+OFPMP_PORT_STATS = 4
+OFPMP_QUEUE = 5
+OFPMP_GROUP = 6
+OFPMP_GROUP_DESC = 7
+OFPMP_GROUP_FEATURES = 8
+OFPMP_METER = 9
+OFPMP_METER_CONFIG = 10
+OFPMP_METER_FEATURES = 11
+OFPMP_TABLE_FEATURES = 12
+OFPMP_PORT_DESC = 13
+OFPMP_EXPERIMENTER = 65535
+OFPMPF_REQ_INVALID = 0
+OFPMPF_REQ_MORE = 1
+OFPMPF_REPLY_INVALID = 0
+OFPMPF_REPLY_MORE = 1
+OFPTFPT_INSTRUCTIONS = 0
+OFPTFPT_INSTRUCTIONS_MISS = 1
+OFPTFPT_NEXT_TABLES = 2
+OFPTFPT_NEXT_TABLES_MISS = 3
+OFPTFPT_WRITE_ACTIONS = 4
+OFPTFPT_WRITE_ACTIONS_MISS = 5
+OFPTFPT_APPLY_ACTIONS = 6
+OFPTFPT_APPLY_ACTIONS_MISS = 7
+OFPTFPT_MATCH = 8
+OFPTFPT_WILDCARDS = 10
+OFPTFPT_WRITE_SETFIELD = 12
+OFPTFPT_WRITE_SETFIELD_MISS = 13
+OFPTFPT_APPLY_SETFIELD = 14
+OFPTFPT_APPLY_SETFIELD_MISS = 15
+OFPTFPT_EXPERIMENTER = 65534
+OFPTFPT_EXPERIMENTER_MISS = 65535
+OFPGFC_INVALID = 0
+OFPGFC_SELECT_WEIGHT = 1
+OFPGFC_SELECT_LIVENESS = 2
+OFPGFC_CHAINING = 4
+OFPGFC_CHAINING_CHECKS = 8
+OFPQT_INVALID = 0
+OFPQT_MIN_RATE = 1
+OFPQT_MAX_RATE = 2
+OFPQT_EXPERIMENTER = 65535
+OFPCR_ROLE_NOCHANGE = 0
+OFPCR_ROLE_EQUAL = 1
+OFPCR_ROLE_MASTER = 2
+OFPCR_ROLE_SLAVE = 3
+
+
+
+_OFP_HEADER = _descriptor.Descriptor(
+  name='ofp_header',
+  full_name='openflow_13.ofp_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='version', full_name='openflow_13.ofp_header.version', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_header.type', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='xid', full_name='openflow_13.ofp_header.xid', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=34,
+  serialized_end=113,
+)
+
+
+_OFP_HELLO_ELEM_HEADER = _descriptor.Descriptor(
+  name='ofp_hello_elem_header',
+  full_name='openflow_13.ofp_hello_elem_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_hello_elem_header.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='versionbitmap', full_name='openflow_13.ofp_hello_elem_header.versionbitmap', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='element', full_name='openflow_13.ofp_hello_elem_header.element',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=116,
+  serialized_end=266,
+)
+
+
+_OFP_HELLO_ELEM_VERSIONBITMAP = _descriptor.Descriptor(
+  name='ofp_hello_elem_versionbitmap',
+  full_name='openflow_13.ofp_hello_elem_versionbitmap',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='bitmaps', full_name='openflow_13.ofp_hello_elem_versionbitmap.bitmaps', index=0,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=268,
+  serialized_end=315,
+)
+
+
+_OFP_HELLO = _descriptor.Descriptor(
+  name='ofp_hello',
+  full_name='openflow_13.ofp_hello',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='elements', full_name='openflow_13.ofp_hello.elements', index=0,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=317,
+  serialized_end=382,
+)
+
+
+_OFP_SWITCH_CONFIG = _descriptor.Descriptor(
+  name='ofp_switch_config',
+  full_name='openflow_13.ofp_switch_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_switch_config.flags', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='miss_send_len', full_name='openflow_13.ofp_switch_config.miss_send_len', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=384,
+  serialized_end=441,
+)
+
+
+_OFP_TABLE_MOD = _descriptor.Descriptor(
+  name='ofp_table_mod',
+  full_name='openflow_13.ofp_table_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_mod.table_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_table_mod.config', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=443,
+  serialized_end=492,
+)
+
+
+_OFP_PORT = _descriptor.Descriptor(
+  name='ofp_port',
+  full_name='openflow_13.ofp_port',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_addr', full_name='openflow_13.ofp_port.hw_addr', index=1,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='openflow_13.ofp_port.name', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_port.config', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='state', full_name='openflow_13.ofp_port.state', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='curr', full_name='openflow_13.ofp_port.curr', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='advertised', full_name='openflow_13.ofp_port.advertised', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='supported', full_name='openflow_13.ofp_port.supported', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='peer', full_name='openflow_13.ofp_port.peer', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='curr_speed', full_name='openflow_13.ofp_port.curr_speed', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_speed', full_name='openflow_13.ofp_port.max_speed', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=495,
+  serialized_end=690,
+)
+
+
+_OFP_SWITCH_FEATURES = _descriptor.Descriptor(
+  name='ofp_switch_features',
+  full_name='openflow_13.ofp_switch_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='openflow_13.ofp_switch_features.datapath_id', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='n_buffers', full_name='openflow_13.ofp_switch_features.n_buffers', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='n_tables', full_name='openflow_13.ofp_switch_features.n_tables', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='auxiliary_id', full_name='openflow_13.ofp_switch_features.auxiliary_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_switch_features.capabilities', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=692,
+  serialized_end=815,
+)
+
+
+_OFP_PORT_STATUS = _descriptor.Descriptor(
+  name='ofp_port_status',
+  full_name='openflow_13.ofp_port_status',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_port_status.reason', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='openflow_13.ofp_port_status.desc', index=1,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=817,
+  serialized_end=917,
+)
+
+
+_OFP_PORT_MOD = _descriptor.Descriptor(
+  name='ofp_port_mod',
+  full_name='openflow_13.ofp_port_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_mod.port_no', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_addr', full_name='openflow_13.ofp_port_mod.hw_addr', index=1,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_port_mod.config', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mask', full_name='openflow_13.ofp_port_mod.mask', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='advertise', full_name='openflow_13.ofp_port_mod.advertise', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=919,
+  serialized_end=1016,
+)
+
+
+_OFP_MATCH = _descriptor.Descriptor(
+  name='ofp_match',
+  full_name='openflow_13.ofp_match',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_match.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='oxm_fields', full_name='openflow_13.ofp_match.oxm_fields', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1018,
+  serialized_end=1120,
+)
+
+
+_OFP_OXM_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_field',
+  full_name='openflow_13.ofp_oxm_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_class', full_name='openflow_13.ofp_oxm_field.oxm_class', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ofb_field', full_name='openflow_13.ofp_oxm_field.ofb_field', index=1,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter_field', full_name='openflow_13.ofp_oxm_field.experimenter_field', index=2,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='field', full_name='openflow_13.ofp_oxm_field.field',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=1123,
+  serialized_end=1318,
+)
+
+
+_OFP_OXM_OFB_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_ofb_field',
+  full_name='openflow_13.ofp_oxm_ofb_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_oxm_ofb_field.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='has_mask', full_name='openflow_13.ofp_oxm_ofb_field.has_mask', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_oxm_ofb_field.port', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='physical_port', full_name='openflow_13.ofp_oxm_ofb_field.physical_port', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_metadata', full_name='openflow_13.ofp_oxm_ofb_field.table_metadata', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_dst', full_name='openflow_13.ofp_oxm_ofb_field.eth_dst', index=5,
+      number=6, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_src', full_name='openflow_13.ofp_oxm_ofb_field.eth_src', index=6,
+      number=7, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_type', full_name='openflow_13.ofp_oxm_ofb_field.eth_type', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_vid', full_name='openflow_13.ofp_oxm_ofb_field.vlan_vid', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_pcp', full_name='openflow_13.ofp_oxm_ofb_field.vlan_pcp', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_dscp', full_name='openflow_13.ofp_oxm_ofb_field.ip_dscp', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_ecn', full_name='openflow_13.ofp_oxm_ofb_field.ip_ecn', index=11,
+      number=12, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ip_proto', full_name='openflow_13.ofp_oxm_ofb_field.ip_proto', index=12,
+      number=13, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_src', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_src', index=13,
+      number=14, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_dst', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_dst', index=14,
+      number=15, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tcp_src', full_name='openflow_13.ofp_oxm_ofb_field.tcp_src', index=15,
+      number=16, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tcp_dst', full_name='openflow_13.ofp_oxm_ofb_field.tcp_dst', index=16,
+      number=17, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='udp_src', full_name='openflow_13.ofp_oxm_ofb_field.udp_src', index=17,
+      number=18, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='udp_dst', full_name='openflow_13.ofp_oxm_ofb_field.udp_dst', index=18,
+      number=19, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sctp_src', full_name='openflow_13.ofp_oxm_ofb_field.sctp_src', index=19,
+      number=20, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sctp_dst', full_name='openflow_13.ofp_oxm_ofb_field.sctp_dst', index=20,
+      number=21, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv4_type', full_name='openflow_13.ofp_oxm_ofb_field.icmpv4_type', index=21,
+      number=22, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv4_code', full_name='openflow_13.ofp_oxm_ofb_field.icmpv4_code', index=22,
+      number=23, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_op', full_name='openflow_13.ofp_oxm_ofb_field.arp_op', index=23,
+      number=24, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_spa', full_name='openflow_13.ofp_oxm_ofb_field.arp_spa', index=24,
+      number=25, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tpa', full_name='openflow_13.ofp_oxm_ofb_field.arp_tpa', index=25,
+      number=26, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_sha', full_name='openflow_13.ofp_oxm_ofb_field.arp_sha', index=26,
+      number=27, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tha', full_name='openflow_13.ofp_oxm_ofb_field.arp_tha', index=27,
+      number=28, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_src', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_src', index=28,
+      number=29, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_dst', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_dst', index=29,
+      number=30, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_flabel', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_flabel', index=30,
+      number=31, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv6_type', full_name='openflow_13.ofp_oxm_ofb_field.icmpv6_type', index=31,
+      number=32, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='icmpv6_code', full_name='openflow_13.ofp_oxm_ofb_field.icmpv6_code', index=32,
+      number=33, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_target', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_target', index=33,
+      number=34, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_ssl', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_ssl', index=34,
+      number=35, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_nd_tll', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_nd_tll', index=35,
+      number=36, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_label', full_name='openflow_13.ofp_oxm_ofb_field.mpls_label', index=36,
+      number=37, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_tc', full_name='openflow_13.ofp_oxm_ofb_field.mpls_tc', index=37,
+      number=38, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_bos', full_name='openflow_13.ofp_oxm_ofb_field.mpls_bos', index=38,
+      number=39, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pbb_isid', full_name='openflow_13.ofp_oxm_ofb_field.pbb_isid', index=39,
+      number=40, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tunnel_id', full_name='openflow_13.ofp_oxm_ofb_field.tunnel_id', index=40,
+      number=41, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_exthdr', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_exthdr', index=41,
+      number=42, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_metadata_mask', full_name='openflow_13.ofp_oxm_ofb_field.table_metadata_mask', index=42,
+      number=105, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.eth_dst_mask', index=43,
+      number=106, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='eth_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.eth_src_mask', index=44,
+      number=107, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='vlan_vid_mask', full_name='openflow_13.ofp_oxm_ofb_field.vlan_vid_mask', index=45,
+      number=109, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_src_mask', index=46,
+      number=114, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv4_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv4_dst_mask', index=47,
+      number=115, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_spa_mask', full_name='openflow_13.ofp_oxm_ofb_field.arp_spa_mask', index=48,
+      number=125, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='arp_tpa_mask', full_name='openflow_13.ofp_oxm_ofb_field.arp_tpa_mask', index=49,
+      number=126, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_src_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_src_mask', index=50,
+      number=129, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_dst_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_dst_mask', index=51,
+      number=130, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_flabel_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_flabel_mask', index=52,
+      number=131, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pbb_isid_mask', full_name='openflow_13.ofp_oxm_ofb_field.pbb_isid_mask', index=53,
+      number=140, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tunnel_id_mask', full_name='openflow_13.ofp_oxm_ofb_field.tunnel_id_mask', index=54,
+      number=141, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ipv6_exthdr_mask', full_name='openflow_13.ofp_oxm_ofb_field.ipv6_exthdr_mask', index=55,
+      number=142, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='value', full_name='openflow_13.ofp_oxm_ofb_field.value',
+      index=0, containing_type=None, fields=[]),
+    _descriptor.OneofDescriptor(
+      name='mask', full_name='openflow_13.ofp_oxm_ofb_field.mask',
+      index=1, containing_type=None, fields=[]),
+  ],
+  serialized_start=1321,
+  serialized_end=2612,
+)
+
+
+_OFP_OXM_EXPERIMENTER_FIELD = _descriptor.Descriptor(
+  name='ofp_oxm_experimenter_field',
+  full_name='openflow_13.ofp_oxm_experimenter_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_header', full_name='openflow_13.ofp_oxm_experimenter_field.oxm_header', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_oxm_experimenter_field.experimenter', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2614,
+  serialized_end=2684,
+)
+
+
+_OFP_ACTION = _descriptor.Descriptor(
+  name='ofp_action',
+  full_name='openflow_13.ofp_action',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_action.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='output', full_name='openflow_13.ofp_action.output', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='mpls_ttl', full_name='openflow_13.ofp_action.mpls_ttl', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='push', full_name='openflow_13.ofp_action.push', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pop_mpls', full_name='openflow_13.ofp_action.pop_mpls', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group', full_name='openflow_13.ofp_action.group', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='nw_ttl', full_name='openflow_13.ofp_action.nw_ttl', index=6,
+      number=7, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='set_field', full_name='openflow_13.ofp_action.set_field', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_action.experimenter', index=8,
+      number=9, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='action', full_name='openflow_13.ofp_action.action',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=2687,
+  serialized_end=3173,
+)
+
+
+_OFP_ACTION_OUTPUT = _descriptor.Descriptor(
+  name='ofp_action_output',
+  full_name='openflow_13.ofp_action_output',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_action_output.port', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_len', full_name='openflow_13.ofp_action_output.max_len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3175,
+  serialized_end=3225,
+)
+
+
+_OFP_ACTION_MPLS_TTL = _descriptor.Descriptor(
+  name='ofp_action_mpls_ttl',
+  full_name='openflow_13.ofp_action_mpls_ttl',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='mpls_ttl', full_name='openflow_13.ofp_action_mpls_ttl.mpls_ttl', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3227,
+  serialized_end=3266,
+)
+
+
+_OFP_ACTION_PUSH = _descriptor.Descriptor(
+  name='ofp_action_push',
+  full_name='openflow_13.ofp_action_push',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ethertype', full_name='openflow_13.ofp_action_push.ethertype', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3268,
+  serialized_end=3304,
+)
+
+
+_OFP_ACTION_POP_MPLS = _descriptor.Descriptor(
+  name='ofp_action_pop_mpls',
+  full_name='openflow_13.ofp_action_pop_mpls',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ethertype', full_name='openflow_13.ofp_action_pop_mpls.ethertype', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3306,
+  serialized_end=3346,
+)
+
+
+_OFP_ACTION_GROUP = _descriptor.Descriptor(
+  name='ofp_action_group',
+  full_name='openflow_13.ofp_action_group',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_action_group.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3348,
+  serialized_end=3384,
+)
+
+
+_OFP_ACTION_NW_TTL = _descriptor.Descriptor(
+  name='ofp_action_nw_ttl',
+  full_name='openflow_13.ofp_action_nw_ttl',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nw_ttl', full_name='openflow_13.ofp_action_nw_ttl.nw_ttl', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3386,
+  serialized_end=3421,
+)
+
+
+_OFP_ACTION_SET_FIELD = _descriptor.Descriptor(
+  name='ofp_action_set_field',
+  full_name='openflow_13.ofp_action_set_field',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='field', full_name='openflow_13.ofp_action_set_field.field', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3423,
+  serialized_end=3488,
+)
+
+
+_OFP_ACTION_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_action_experimenter',
+  full_name='openflow_13.ofp_action_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_action_experimenter.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_action_experimenter.data', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3490,
+  serialized_end=3551,
+)
+
+
+_OFP_INSTRUCTION = _descriptor.Descriptor(
+  name='ofp_instruction',
+  full_name='openflow_13.ofp_instruction',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_instruction.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='goto_table', full_name='openflow_13.ofp_instruction.goto_table', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='write_metadata', full_name='openflow_13.ofp_instruction.write_metadata', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_instruction.actions', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter', full_name='openflow_13.ofp_instruction.meter', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_instruction.experimenter', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='data', full_name='openflow_13.ofp_instruction.data',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=3554,
+  serialized_end=3904,
+)
+
+
+_OFP_INSTRUCTION_GOTO_TABLE = _descriptor.Descriptor(
+  name='ofp_instruction_goto_table',
+  full_name='openflow_13.ofp_instruction_goto_table',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_instruction_goto_table.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3906,
+  serialized_end=3952,
+)
+
+
+_OFP_INSTRUCTION_WRITE_METADATA = _descriptor.Descriptor(
+  name='ofp_instruction_write_metadata',
+  full_name='openflow_13.ofp_instruction_write_metadata',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='metadata', full_name='openflow_13.ofp_instruction_write_metadata.metadata', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_mask', full_name='openflow_13.ofp_instruction_write_metadata.metadata_mask', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3954,
+  serialized_end=4027,
+)
+
+
+_OFP_INSTRUCTION_ACTIONS = _descriptor.Descriptor(
+  name='ofp_instruction_actions',
+  full_name='openflow_13.ofp_instruction_actions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_instruction_actions.actions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4029,
+  serialized_end=4096,
+)
+
+
+_OFP_INSTRUCTION_METER = _descriptor.Descriptor(
+  name='ofp_instruction_meter',
+  full_name='openflow_13.ofp_instruction_meter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_instruction_meter.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4098,
+  serialized_end=4139,
+)
+
+
+_OFP_INSTRUCTION_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_instruction_experimenter',
+  full_name='openflow_13.ofp_instruction_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_instruction_experimenter.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_instruction_experimenter.data', index=1,
+      number=2, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4141,
+  serialized_end=4207,
+)
+
+
+_OFP_FLOW_MOD = _descriptor.Descriptor(
+  name='ofp_flow_mod',
+  full_name='openflow_13.ofp_flow_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_mod.cookie', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_flow_mod.cookie_mask', index=1,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_mod.table_id', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_flow_mod.command', index=3,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_mod.idle_timeout', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_mod.hard_timeout', index=5,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_mod.priority', index=6,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_flow_mod.buffer_id', index=7,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_flow_mod.out_port', index=8,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_flow_mod.out_group', index=9,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_flow_mod.flags', index=10,
+      number=12, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_mod.match', index=11,
+      number=13, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_flow_mod.instructions', index=12,
+      number=14, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4210,
+  serialized_end=4555,
+)
+
+
+_OFP_BUCKET = _descriptor.Descriptor(
+  name='ofp_bucket',
+  full_name='openflow_13.ofp_bucket',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='weight', full_name='openflow_13.ofp_bucket.weight', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='watch_port', full_name='openflow_13.ofp_bucket.watch_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='watch_group', full_name='openflow_13.ofp_bucket.watch_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_bucket.actions', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4557,
+  serialized_end=4668,
+)
+
+
+_OFP_GROUP_MOD = _descriptor.Descriptor(
+  name='ofp_group_mod',
+  full_name='openflow_13.ofp_group_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_group_mod.command', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_group_mod.type', index=1,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_mod.group_id', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buckets', full_name='openflow_13.ofp_group_mod.buckets', index=3,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4671,
+  serialized_end=4842,
+)
+
+
+_OFP_PACKET_OUT = _descriptor.Descriptor(
+  name='ofp_packet_out',
+  full_name='openflow_13.ofp_packet_out',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_packet_out.buffer_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='in_port', full_name='openflow_13.ofp_packet_out.in_port', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions_len', full_name='openflow_13.ofp_packet_out.actions_len', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_packet_out.actions', index=3,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_packet_out.data', index=4,
+      number=6, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4845,
+  serialized_end=4974,
+)
+
+
+_OFP_PACKET_IN = _descriptor.Descriptor(
+  name='ofp_packet_in',
+  full_name='openflow_13.ofp_packet_in',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='buffer_id', full_name='openflow_13.ofp_packet_in.buffer_id', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='total_len', full_name='openflow_13.ofp_packet_in.total_len', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_packet_in.reason', index=2,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_packet_in.table_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_packet_in.cookie', index=4,
+      number=6, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_packet_in.match', index=5,
+      number=7, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_packet_in.data', index=6,
+      number=8, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4977,
+  serialized_end=5168,
+)
+
+
+_OFP_FLOW_REMOVED = _descriptor.Descriptor(
+  name='ofp_flow_removed',
+  full_name='openflow_13.ofp_flow_removed',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_removed.cookie', index=0,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_removed.priority', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='openflow_13.ofp_flow_removed.reason', index=2,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_removed.table_id', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_flow_removed.duration_sec', index=4,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_flow_removed.duration_nsec', index=5,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_removed.idle_timeout', index=6,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_removed.hard_timeout', index=7,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_flow_removed.packet_count', index=8,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_flow_removed.byte_count', index=9,
+      number=11, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_removed.match', index=10,
+      number=12, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5171,
+  serialized_end=5465,
+)
+
+
+_OFP_METER_BAND_HEADER = _descriptor.Descriptor(
+  name='ofp_meter_band_header',
+  full_name='openflow_13.ofp_meter_band_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_header.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_header.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_header.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_header.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5467,
+  serialized_end=5585,
+)
+
+
+_OFP_METER_BAND_DROP = _descriptor.Descriptor(
+  name='ofp_meter_band_drop',
+  full_name='openflow_13.ofp_meter_band_drop',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_drop.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_drop.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_drop.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_drop.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5587,
+  serialized_end=5669,
+)
+
+
+_OFP_METER_BAND_DSCP_REMARK = _descriptor.Descriptor(
+  name='ofp_meter_band_dscp_remark',
+  full_name='openflow_13.ofp_meter_band_dscp_remark',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_dscp_remark.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_dscp_remark.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_dscp_remark.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_dscp_remark.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='prec_level', full_name='openflow_13.ofp_meter_band_dscp_remark.prec_level', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5671,
+  serialized_end=5780,
+)
+
+
+_OFP_METER_BAND_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_meter_band_experimenter',
+  full_name='openflow_13.ofp_meter_band_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_meter_band_experimenter.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_meter_band_experimenter.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_meter_band_experimenter.rate', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='burst_size', full_name='openflow_13.ofp_meter_band_experimenter.burst_size', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_meter_band_experimenter.experimenter', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5783,
+  serialized_end=5929,
+)
+
+
+_OFP_METER_MOD = _descriptor.Descriptor(
+  name='ofp_meter_mod',
+  full_name='openflow_13.ofp_meter_mod',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='header', full_name='openflow_13.ofp_meter_mod.header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='command', full_name='openflow_13.ofp_meter_mod.command', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_meter_mod.flags', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_mod.meter_id', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bands', full_name='openflow_13.ofp_meter_mod.bands', index=4,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5932,
+  serialized_end=6125,
+)
+
+
+_OFP_ERROR_MSG = _descriptor.Descriptor(
+  name='ofp_error_msg',
+  full_name='openflow_13.ofp_error_msg',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_error_msg.type', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='code', full_name='openflow_13.ofp_error_msg.code', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_error_msg.data', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6127,
+  serialized_end=6184,
+)
+
+
+_OFP_ERROR_EXPERIMENTER_MSG = _descriptor.Descriptor(
+  name='ofp_error_experimenter_msg',
+  full_name='openflow_13.ofp_error_experimenter_msg',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_error_experimenter_msg.type', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_error_experimenter_msg.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_error_experimenter_msg.experimenter', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_error_experimenter_msg.data', index=3,
+      number=5, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6186,
+  serialized_end=6282,
+)
+
+
+_OFP_MULTIPART_REQUEST = _descriptor.Descriptor(
+  name='ofp_multipart_request',
+  full_name='openflow_13.ofp_multipart_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_multipart_request.type', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_multipart_request.flags', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='body', full_name='openflow_13.ofp_multipart_request.body', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6284,
+  serialized_end=6383,
+)
+
+
+_OFP_MULTIPART_REPLY = _descriptor.Descriptor(
+  name='ofp_multipart_reply',
+  full_name='openflow_13.ofp_multipart_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_multipart_reply.type', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_multipart_reply.flags', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='body', full_name='openflow_13.ofp_multipart_reply.body', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6385,
+  serialized_end=6482,
+)
+
+
+_OFP_DESC = _descriptor.Descriptor(
+  name='ofp_desc',
+  full_name='openflow_13.ofp_desc',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='mfr_desc', full_name='openflow_13.ofp_desc.mfr_desc', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hw_desc', full_name='openflow_13.ofp_desc.hw_desc', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='sw_desc', full_name='openflow_13.ofp_desc.sw_desc', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='serial_num', full_name='openflow_13.ofp_desc.serial_num', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='dp_desc', full_name='openflow_13.ofp_desc.dp_desc', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6484,
+  serialized_end=6583,
+)
+
+
+_OFP_FLOW_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_flow_stats_request',
+  full_name='openflow_13.ofp_flow_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_stats_request.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_flow_stats_request.out_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_flow_stats_request.out_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_stats_request.cookie', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_flow_stats_request.cookie_mask', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_stats_request.match', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6586,
+  serialized_end=6741,
+)
+
+
+_OFP_FLOW_STATS = _descriptor.Descriptor(
+  name='ofp_flow_stats',
+  full_name='openflow_13.ofp_flow_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_flow_stats.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_flow_stats.duration_sec', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_flow_stats.duration_nsec', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='priority', full_name='openflow_13.ofp_flow_stats.priority', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='idle_timeout', full_name='openflow_13.ofp_flow_stats.idle_timeout', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='hard_timeout', full_name='openflow_13.ofp_flow_stats.hard_timeout', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_flow_stats.flags', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_flow_stats.cookie', index=7,
+      number=8, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_flow_stats.packet_count', index=8,
+      number=9, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_flow_stats.byte_count', index=9,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_flow_stats.match', index=10,
+      number=12, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_flow_stats.instructions', index=11,
+      number=13, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6744,
+  serialized_end=7049,
+)
+
+
+_OFP_AGGREGATE_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_aggregate_stats_request',
+  full_name='openflow_13.ofp_aggregate_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_aggregate_stats_request.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_port', full_name='openflow_13.ofp_aggregate_stats_request.out_port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='out_group', full_name='openflow_13.ofp_aggregate_stats_request.out_group', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie', full_name='openflow_13.ofp_aggregate_stats_request.cookie', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='cookie_mask', full_name='openflow_13.ofp_aggregate_stats_request.cookie_mask', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='match', full_name='openflow_13.ofp_aggregate_stats_request.match', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7052,
+  serialized_end=7212,
+)
+
+
+_OFP_AGGREGATE_STATS_REPLY = _descriptor.Descriptor(
+  name='ofp_aggregate_stats_reply',
+  full_name='openflow_13.ofp_aggregate_stats_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_aggregate_stats_reply.packet_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_aggregate_stats_reply.byte_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_count', full_name='openflow_13.ofp_aggregate_stats_reply.flow_count', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7214,
+  serialized_end=7303,
+)
+
+
+_OFP_TABLE_FEATURE_PROPERTY = _descriptor.Descriptor(
+  name='ofp_table_feature_property',
+  full_name='openflow_13.ofp_table_feature_property',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_table_feature_property.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_table_feature_property.instructions', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='next_tables', full_name='openflow_13.ofp_table_feature_property.next_tables', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_table_feature_property.actions', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='oxm', full_name='openflow_13.ofp_table_feature_property.oxm', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_table_feature_property.experimenter', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='value', full_name='openflow_13.ofp_table_feature_property.value',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=7306,
+  serialized_end=7739,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_INSTRUCTIONS = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_instructions',
+  full_name='openflow_13.ofp_table_feature_prop_instructions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='instructions', full_name='openflow_13.ofp_table_feature_prop_instructions.instructions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7741,
+  serialized_end=7830,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_NEXT_TABLES = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_next_tables',
+  full_name='openflow_13.ofp_table_feature_prop_next_tables',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='next_table_ids', full_name='openflow_13.ofp_table_feature_prop_next_tables.next_table_ids', index=0,
+      number=1, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7832,
+  serialized_end=7892,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_ACTIONS = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_actions',
+  full_name='openflow_13.ofp_table_feature_prop_actions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_table_feature_prop_actions.actions', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7894,
+  serialized_end=7968,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_OXM = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_oxm',
+  full_name='openflow_13.ofp_table_feature_prop_oxm',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='oxm_ids', full_name='openflow_13.ofp_table_feature_prop_oxm.oxm_ids', index=0,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7970,
+  serialized_end=8015,
+)
+
+
+_OFP_TABLE_FEATURE_PROP_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_table_feature_prop_experimenter',
+  full_name='openflow_13.ofp_table_feature_prop_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_table_feature_prop_experimenter.experimenter', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_table_feature_prop_experimenter.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter_data', full_name='openflow_13.ofp_table_feature_prop_experimenter.experimenter_data', index=2,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8017,
+  serialized_end=8121,
+)
+
+
+_OFP_TABLE_FEATURES = _descriptor.Descriptor(
+  name='ofp_table_features',
+  full_name='openflow_13.ofp_table_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_features.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='openflow_13.ofp_table_features.name', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_match', full_name='openflow_13.ofp_table_features.metadata_match', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='metadata_write', full_name='openflow_13.ofp_table_features.metadata_write', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='config', full_name='openflow_13.ofp_table_features.config', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_entries', full_name='openflow_13.ofp_table_features.max_entries', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='properties', full_name='openflow_13.ofp_table_features.properties', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8124,
+  serialized_end=8322,
+)
+
+
+_OFP_TABLE_STATS = _descriptor.Descriptor(
+  name='ofp_table_stats',
+  full_name='openflow_13.ofp_table_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='table_id', full_name='openflow_13.ofp_table_stats.table_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='active_count', full_name='openflow_13.ofp_table_stats.active_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='lookup_count', full_name='openflow_13.ofp_table_stats.lookup_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='matched_count', full_name='openflow_13.ofp_table_stats.matched_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8324,
+  serialized_end=8426,
+)
+
+
+_OFP_PORT_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_port_stats_request',
+  full_name='openflow_13.ofp_port_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_stats_request.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8428,
+  serialized_end=8469,
+)
+
+
+_OFP_PORT_STATS = _descriptor.Descriptor(
+  name='ofp_port_stats',
+  full_name='openflow_13.ofp_port_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_port_stats.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_packets', full_name='openflow_13.ofp_port_stats.rx_packets', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_packets', full_name='openflow_13.ofp_port_stats.tx_packets', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_bytes', full_name='openflow_13.ofp_port_stats.rx_bytes', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_bytes', full_name='openflow_13.ofp_port_stats.tx_bytes', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_dropped', full_name='openflow_13.ofp_port_stats.rx_dropped', index=5,
+      number=6, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_dropped', full_name='openflow_13.ofp_port_stats.tx_dropped', index=6,
+      number=7, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_errors', full_name='openflow_13.ofp_port_stats.rx_errors', index=7,
+      number=8, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_errors', full_name='openflow_13.ofp_port_stats.tx_errors', index=8,
+      number=9, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_frame_err', full_name='openflow_13.ofp_port_stats.rx_frame_err', index=9,
+      number=10, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_over_err', full_name='openflow_13.ofp_port_stats.rx_over_err', index=10,
+      number=11, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rx_crc_err', full_name='openflow_13.ofp_port_stats.rx_crc_err', index=11,
+      number=12, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='collisions', full_name='openflow_13.ofp_port_stats.collisions', index=12,
+      number=13, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_port_stats.duration_sec', index=13,
+      number=14, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_port_stats.duration_nsec', index=14,
+      number=15, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8472,
+  serialized_end=8787,
+)
+
+
+_OFP_GROUP_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_group_stats_request',
+  full_name='openflow_13.ofp_group_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_stats_request.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8789,
+  serialized_end=8832,
+)
+
+
+_OFP_BUCKET_COUNTER = _descriptor.Descriptor(
+  name='ofp_bucket_counter',
+  full_name='openflow_13.ofp_bucket_counter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_bucket_counter.packet_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_bucket_counter.byte_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8834,
+  serialized_end=8896,
+)
+
+
+_OFP_GROUP_STATS = _descriptor.Descriptor(
+  name='ofp_group_stats',
+  full_name='openflow_13.ofp_group_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_stats.group_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='ref_count', full_name='openflow_13.ofp_group_stats.ref_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_count', full_name='openflow_13.ofp_group_stats.packet_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_count', full_name='openflow_13.ofp_group_stats.byte_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_group_stats.duration_sec', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_group_stats.duration_nsec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bucket_stats', full_name='openflow_13.ofp_group_stats.bucket_stats', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8899,
+  serialized_end=9095,
+)
+
+
+_OFP_GROUP_DESC = _descriptor.Descriptor(
+  name='ofp_group_desc',
+  full_name='openflow_13.ofp_group_desc',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_group_desc.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='pad', full_name='openflow_13.ofp_group_desc.pad', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='group_id', full_name='openflow_13.ofp_group_desc.group_id', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='buckets', full_name='openflow_13.ofp_group_desc.buckets', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9098,
+  serialized_end=9230,
+)
+
+
+_OFP_GROUP_FEATURES = _descriptor.Descriptor(
+  name='ofp_group_features',
+  full_name='openflow_13.ofp_group_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='types', full_name='openflow_13.ofp_group_features.types', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_group_features.capabilities', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_groups', full_name='openflow_13.ofp_group_features.max_groups', index=2,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='actions', full_name='openflow_13.ofp_group_features.actions', index=3,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9232,
+  serialized_end=9326,
+)
+
+
+_OFP_METER_MULTIPART_REQUEST = _descriptor.Descriptor(
+  name='ofp_meter_multipart_request',
+  full_name='openflow_13.ofp_meter_multipart_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_multipart_request.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9328,
+  serialized_end=9375,
+)
+
+
+_OFP_METER_BAND_STATS = _descriptor.Descriptor(
+  name='ofp_meter_band_stats',
+  full_name='openflow_13.ofp_meter_band_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_band_count', full_name='openflow_13.ofp_meter_band_stats.packet_band_count', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_band_count', full_name='openflow_13.ofp_meter_band_stats.byte_band_count', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9377,
+  serialized_end=9451,
+)
+
+
+_OFP_METER_STATS = _descriptor.Descriptor(
+  name='ofp_meter_stats',
+  full_name='openflow_13.ofp_meter_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_stats.meter_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_count', full_name='openflow_13.ofp_meter_stats.flow_count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='packet_in_count', full_name='openflow_13.ofp_meter_stats.packet_in_count', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='byte_in_count', full_name='openflow_13.ofp_meter_stats.byte_in_count', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_meter_stats.duration_sec', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_meter_stats.duration_nsec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='band_stats', full_name='openflow_13.ofp_meter_stats.band_stats', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9454,
+  serialized_end=9657,
+)
+
+
+_OFP_METER_CONFIG = _descriptor.Descriptor(
+  name='ofp_meter_config',
+  full_name='openflow_13.ofp_meter_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='flags', full_name='openflow_13.ofp_meter_config.flags', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='meter_id', full_name='openflow_13.ofp_meter_config.meter_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='bands', full_name='openflow_13.ofp_meter_config.bands', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9659,
+  serialized_end=9761,
+)
+
+
+_OFP_METER_FEATURES = _descriptor.Descriptor(
+  name='ofp_meter_features',
+  full_name='openflow_13.ofp_meter_features',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='max_meter', full_name='openflow_13.ofp_meter_features.max_meter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='band_types', full_name='openflow_13.ofp_meter_features.band_types', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='capabilities', full_name='openflow_13.ofp_meter_features.capabilities', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_bands', full_name='openflow_13.ofp_meter_features.max_bands', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='max_color', full_name='openflow_13.ofp_meter_features.max_color', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9763,
+  serialized_end=9882,
+)
+
+
+_OFP_EXPERIMENTER_MULTIPART_HEADER = _descriptor.Descriptor(
+  name='ofp_experimenter_multipart_header',
+  full_name='openflow_13.ofp_experimenter_multipart_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_experimenter_multipart_header.experimenter', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_experimenter_multipart_header.exp_type', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_experimenter_multipart_header.data', index=2,
+      number=3, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9884,
+  serialized_end=9973,
+)
+
+
+_OFP_EXPERIMENTER_HEADER = _descriptor.Descriptor(
+  name='ofp_experimenter_header',
+  full_name='openflow_13.ofp_experimenter_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_experimenter_header.experimenter', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='exp_type', full_name='openflow_13.ofp_experimenter_header.exp_type', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_experimenter_header.data', index=2,
+      number=4, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9975,
+  serialized_end=10054,
+)
+
+
+_OFP_QUEUE_PROP_HEADER = _descriptor.Descriptor(
+  name='ofp_queue_prop_header',
+  full_name='openflow_13.ofp_queue_prop_header',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='property', full_name='openflow_13.ofp_queue_prop_header.property', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='len', full_name='openflow_13.ofp_queue_prop_header.len', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10056,
+  serialized_end=10110,
+)
+
+
+_OFP_QUEUE_PROP_MIN_RATE = _descriptor.Descriptor(
+  name='ofp_queue_prop_min_rate',
+  full_name='openflow_13.ofp_queue_prop_min_rate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_min_rate.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_queue_prop_min_rate.rate', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10112,
+  serialized_end=10208,
+)
+
+
+_OFP_QUEUE_PROP_MAX_RATE = _descriptor.Descriptor(
+  name='ofp_queue_prop_max_rate',
+  full_name='openflow_13.ofp_queue_prop_max_rate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_max_rate.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='rate', full_name='openflow_13.ofp_queue_prop_max_rate.rate', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10210,
+  serialized_end=10306,
+)
+
+
+_OFP_QUEUE_PROP_EXPERIMENTER = _descriptor.Descriptor(
+  name='ofp_queue_prop_experimenter',
+  full_name='openflow_13.ofp_queue_prop_experimenter',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='prop_header', full_name='openflow_13.ofp_queue_prop_experimenter.prop_header', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='experimenter', full_name='openflow_13.ofp_queue_prop_experimenter.experimenter', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='data', full_name='openflow_13.ofp_queue_prop_experimenter.data', index=2,
+      number=3, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10308,
+  serialized_end=10430,
+)
+
+
+_OFP_PACKET_QUEUE = _descriptor.Descriptor(
+  name='ofp_packet_queue',
+  full_name='openflow_13.ofp_packet_queue',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_packet_queue.queue_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_packet_queue.port', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='properties', full_name='openflow_13.ofp_packet_queue.properties', index=2,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10432,
+  serialized_end=10538,
+)
+
+
+_OFP_QUEUE_GET_CONFIG_REQUEST = _descriptor.Descriptor(
+  name='ofp_queue_get_config_request',
+  full_name='openflow_13.ofp_queue_get_config_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_queue_get_config_request.port', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10540,
+  serialized_end=10584,
+)
+
+
+_OFP_QUEUE_GET_CONFIG_REPLY = _descriptor.Descriptor(
+  name='ofp_queue_get_config_reply',
+  full_name='openflow_13.ofp_queue_get_config_reply',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port', full_name='openflow_13.ofp_queue_get_config_reply.port', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queues', full_name='openflow_13.ofp_queue_get_config_reply.queues', index=1,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10586,
+  serialized_end=10675,
+)
+
+
+_OFP_ACTION_SET_QUEUE = _descriptor.Descriptor(
+  name='ofp_action_set_queue',
+  full_name='openflow_13.ofp_action_set_queue',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='openflow_13.ofp_action_set_queue.type', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_action_set_queue.queue_id', index=1,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10677,
+  serialized_end=10731,
+)
+
+
+_OFP_QUEUE_STATS_REQUEST = _descriptor.Descriptor(
+  name='ofp_queue_stats_request',
+  full_name='openflow_13.ofp_queue_stats_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_queue_stats_request.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_queue_stats_request.queue_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10733,
+  serialized_end=10793,
+)
+
+
+_OFP_QUEUE_STATS = _descriptor.Descriptor(
+  name='ofp_queue_stats',
+  full_name='openflow_13.ofp_queue_stats',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='port_no', full_name='openflow_13.ofp_queue_stats.port_no', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='queue_id', full_name='openflow_13.ofp_queue_stats.queue_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_bytes', full_name='openflow_13.ofp_queue_stats.tx_bytes', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_packets', full_name='openflow_13.ofp_queue_stats.tx_packets', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='tx_errors', full_name='openflow_13.ofp_queue_stats.tx_errors', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_sec', full_name='openflow_13.ofp_queue_stats.duration_sec', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='duration_nsec', full_name='openflow_13.ofp_queue_stats.duration_nsec', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10796,
+  serialized_end=10950,
+)
+
+
+_OFP_ROLE_REQUEST = _descriptor.Descriptor(
+  name='ofp_role_request',
+  full_name='openflow_13.ofp_role_request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='role', full_name='openflow_13.ofp_role_request.role', index=0,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='generation_id', full_name='openflow_13.ofp_role_request.generation_id', index=1,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10952,
+  serialized_end=11041,
+)
+
+
+_OFP_ASYNC_CONFIG = _descriptor.Descriptor(
+  name='ofp_async_config',
+  full_name='openflow_13.ofp_async_config',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packet_in_mask', full_name='openflow_13.ofp_async_config.packet_in_mask', index=0,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='port_status_mask', full_name='openflow_13.ofp_async_config.port_status_mask', index=1,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_removed_mask', full_name='openflow_13.ofp_async_config.flow_removed_mask', index=2,
+      number=4, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11043,
+  serialized_end=11138,
+)
+
+_OFP_HEADER.fields_by_name['type'].enum_type = _OFP_TYPE
+_OFP_HELLO_ELEM_HEADER.fields_by_name['type'].enum_type = _OFP_HELLO_ELEM_TYPE
+_OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'].message_type = _OFP_HELLO_ELEM_VERSIONBITMAP
+_OFP_HELLO_ELEM_HEADER.oneofs_by_name['element'].fields.append(
+  _OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'])
+_OFP_HELLO_ELEM_HEADER.fields_by_name['versionbitmap'].containing_oneof = _OFP_HELLO_ELEM_HEADER.oneofs_by_name['element']
+_OFP_HELLO.fields_by_name['elements'].message_type = _OFP_HELLO_ELEM_HEADER
+_OFP_PORT_STATUS.fields_by_name['reason'].enum_type = _OFP_PORT_REASON
+_OFP_PORT_STATUS.fields_by_name['desc'].message_type = _OFP_PORT
+_OFP_MATCH.fields_by_name['type'].enum_type = _OFP_MATCH_TYPE
+_OFP_MATCH.fields_by_name['oxm_fields'].message_type = _OFP_OXM_FIELD
+_OFP_OXM_FIELD.fields_by_name['oxm_class'].enum_type = _OFP_OXM_CLASS
+_OFP_OXM_FIELD.fields_by_name['ofb_field'].message_type = _OFP_OXM_OFB_FIELD
+_OFP_OXM_FIELD.fields_by_name['experimenter_field'].message_type = _OFP_OXM_EXPERIMENTER_FIELD
+_OFP_OXM_FIELD.oneofs_by_name['field'].fields.append(
+  _OFP_OXM_FIELD.fields_by_name['ofb_field'])
+_OFP_OXM_FIELD.fields_by_name['ofb_field'].containing_oneof = _OFP_OXM_FIELD.oneofs_by_name['field']
+_OFP_OXM_FIELD.oneofs_by_name['field'].fields.append(
+  _OFP_OXM_FIELD.fields_by_name['experimenter_field'])
+_OFP_OXM_FIELD.fields_by_name['experimenter_field'].containing_oneof = _OFP_OXM_FIELD.oneofs_by_name['field']
+_OFP_OXM_OFB_FIELD.fields_by_name['type'].enum_type = _OXM_OFB_FIELD_TYPES
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['port'])
+_OFP_OXM_OFB_FIELD.fields_by_name['port'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['physical_port'])
+_OFP_OXM_OFB_FIELD.fields_by_name['physical_port'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['table_metadata'])
+_OFP_OXM_OFB_FIELD.fields_by_name['table_metadata'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_pcp'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_pcp'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_dscp'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_dscp'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_ecn'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_ecn'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ip_proto'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ip_proto'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tcp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tcp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tcp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tcp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['udp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['udp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['udp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['udp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['sctp_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['sctp_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['sctp_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['sctp_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_code'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv4_code'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_op'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_op'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_spa'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_spa'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_sha'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_sha'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tha'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tha'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_type'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_type'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_code'])
+_OFP_OXM_OFB_FIELD.fields_by_name['icmpv6_code'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_target'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_target'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_ssl'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_ssl'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_tll'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_nd_tll'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_label'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_label'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_tc'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_tc'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['mpls_bos'])
+_OFP_OXM_OFB_FIELD.fields_by_name['mpls_bos'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid'])
+_OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['value'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['value']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['table_metadata_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['table_metadata_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['eth_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['eth_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['vlan_vid_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv4_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_spa_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_spa_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['arp_tpa_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_src_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_dst_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_flabel_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['pbb_isid_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['tunnel_id_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_OXM_OFB_FIELD.oneofs_by_name['mask'].fields.append(
+  _OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr_mask'])
+_OFP_OXM_OFB_FIELD.fields_by_name['ipv6_exthdr_mask'].containing_oneof = _OFP_OXM_OFB_FIELD.oneofs_by_name['mask']
+_OFP_ACTION.fields_by_name['type'].enum_type = _OFP_ACTION_TYPE
+_OFP_ACTION.fields_by_name['output'].message_type = _OFP_ACTION_OUTPUT
+_OFP_ACTION.fields_by_name['mpls_ttl'].message_type = _OFP_ACTION_MPLS_TTL
+_OFP_ACTION.fields_by_name['push'].message_type = _OFP_ACTION_PUSH
+_OFP_ACTION.fields_by_name['pop_mpls'].message_type = _OFP_ACTION_POP_MPLS
+_OFP_ACTION.fields_by_name['group'].message_type = _OFP_ACTION_GROUP
+_OFP_ACTION.fields_by_name['nw_ttl'].message_type = _OFP_ACTION_NW_TTL
+_OFP_ACTION.fields_by_name['set_field'].message_type = _OFP_ACTION_SET_FIELD
+_OFP_ACTION.fields_by_name['experimenter'].message_type = _OFP_ACTION_EXPERIMENTER
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['output'])
+_OFP_ACTION.fields_by_name['output'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['mpls_ttl'])
+_OFP_ACTION.fields_by_name['mpls_ttl'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['push'])
+_OFP_ACTION.fields_by_name['push'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['pop_mpls'])
+_OFP_ACTION.fields_by_name['pop_mpls'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['group'])
+_OFP_ACTION.fields_by_name['group'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['nw_ttl'])
+_OFP_ACTION.fields_by_name['nw_ttl'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['set_field'])
+_OFP_ACTION.fields_by_name['set_field'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION.oneofs_by_name['action'].fields.append(
+  _OFP_ACTION.fields_by_name['experimenter'])
+_OFP_ACTION.fields_by_name['experimenter'].containing_oneof = _OFP_ACTION.oneofs_by_name['action']
+_OFP_ACTION_SET_FIELD.fields_by_name['field'].message_type = _OFP_OXM_FIELD
+_OFP_INSTRUCTION.fields_by_name['goto_table'].message_type = _OFP_INSTRUCTION_GOTO_TABLE
+_OFP_INSTRUCTION.fields_by_name['write_metadata'].message_type = _OFP_INSTRUCTION_WRITE_METADATA
+_OFP_INSTRUCTION.fields_by_name['actions'].message_type = _OFP_INSTRUCTION_ACTIONS
+_OFP_INSTRUCTION.fields_by_name['meter'].message_type = _OFP_INSTRUCTION_METER
+_OFP_INSTRUCTION.fields_by_name['experimenter'].message_type = _OFP_INSTRUCTION_EXPERIMENTER
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['goto_table'])
+_OFP_INSTRUCTION.fields_by_name['goto_table'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['write_metadata'])
+_OFP_INSTRUCTION.fields_by_name['write_metadata'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['actions'])
+_OFP_INSTRUCTION.fields_by_name['actions'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['meter'])
+_OFP_INSTRUCTION.fields_by_name['meter'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION.oneofs_by_name['data'].fields.append(
+  _OFP_INSTRUCTION.fields_by_name['experimenter'])
+_OFP_INSTRUCTION.fields_by_name['experimenter'].containing_oneof = _OFP_INSTRUCTION.oneofs_by_name['data']
+_OFP_INSTRUCTION_ACTIONS.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_FLOW_MOD.fields_by_name['command'].enum_type = _OFP_FLOW_MOD_COMMAND
+_OFP_FLOW_MOD.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_MOD.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_BUCKET.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_GROUP_MOD.fields_by_name['command'].enum_type = _OFP_GROUP_MOD_COMMAND
+_OFP_GROUP_MOD.fields_by_name['type'].enum_type = _OFP_GROUP_TYPE
+_OFP_GROUP_MOD.fields_by_name['buckets'].message_type = _OFP_BUCKET
+_OFP_PACKET_OUT.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_PACKET_IN.fields_by_name['reason'].enum_type = _OFP_PACKET_IN_REASON
+_OFP_PACKET_IN.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_REMOVED.fields_by_name['reason'].enum_type = _OFP_FLOW_REMOVED_REASON
+_OFP_FLOW_REMOVED.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_METER_BAND_HEADER.fields_by_name['type'].enum_type = _OFP_METER_BAND_TYPE
+_OFP_METER_BAND_EXPERIMENTER.fields_by_name['type'].enum_type = _OFP_METER_BAND_TYPE
+_OFP_METER_MOD.fields_by_name['header'].message_type = _OFP_HEADER
+_OFP_METER_MOD.fields_by_name['command'].enum_type = _OFP_METER_MOD_COMMAND
+_OFP_METER_MOD.fields_by_name['bands'].message_type = _OFP_METER_BAND_HEADER
+_OFP_MULTIPART_REQUEST.fields_by_name['type'].enum_type = _OFP_MULTIPART_TYPE
+_OFP_MULTIPART_REPLY.fields_by_name['type'].enum_type = _OFP_MULTIPART_TYPE
+_OFP_FLOW_STATS_REQUEST.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_STATS.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_FLOW_STATS.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_AGGREGATE_STATS_REQUEST.fields_by_name['match'].message_type = _OFP_MATCH
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['type'].enum_type = _OFP_TABLE_FEATURE_PROP_TYPE
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'].message_type = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'].message_type = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'].message_type = _OFP_TABLE_FEATURE_PROP_ACTIONS
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'].message_type = _OFP_TABLE_FEATURE_PROP_OXM
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'].message_type = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['instructions'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['next_tables'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['actions'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['oxm'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value'].fields.append(
+  _OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'])
+_OFP_TABLE_FEATURE_PROPERTY.fields_by_name['experimenter'].containing_oneof = _OFP_TABLE_FEATURE_PROPERTY.oneofs_by_name['value']
+_OFP_TABLE_FEATURE_PROP_INSTRUCTIONS.fields_by_name['instructions'].message_type = _OFP_INSTRUCTION
+_OFP_TABLE_FEATURE_PROP_ACTIONS.fields_by_name['actions'].message_type = _OFP_ACTION
+_OFP_TABLE_FEATURES.fields_by_name['properties'].message_type = _OFP_TABLE_FEATURE_PROPERTY
+_OFP_GROUP_STATS.fields_by_name['bucket_stats'].message_type = _OFP_BUCKET_COUNTER
+_OFP_GROUP_DESC.fields_by_name['type'].enum_type = _OFP_GROUP_TYPE
+_OFP_GROUP_DESC.fields_by_name['buckets'].message_type = _OFP_BUCKET
+_OFP_METER_STATS.fields_by_name['band_stats'].message_type = _OFP_METER_BAND_STATS
+_OFP_METER_CONFIG.fields_by_name['bands'].message_type = _OFP_METER_BAND_HEADER
+_OFP_QUEUE_PROP_MIN_RATE.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_PROP_MAX_RATE.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_PROP_EXPERIMENTER.fields_by_name['prop_header'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_PACKET_QUEUE.fields_by_name['properties'].message_type = _OFP_QUEUE_PROP_HEADER
+_OFP_QUEUE_GET_CONFIG_REPLY.fields_by_name['queues'].message_type = _OFP_PACKET_QUEUE
+_OFP_ROLE_REQUEST.fields_by_name['role'].enum_type = _OFP_CONTROLLER_ROLE
+DESCRIPTOR.message_types_by_name['ofp_header'] = _OFP_HEADER
+DESCRIPTOR.message_types_by_name['ofp_hello_elem_header'] = _OFP_HELLO_ELEM_HEADER
+DESCRIPTOR.message_types_by_name['ofp_hello_elem_versionbitmap'] = _OFP_HELLO_ELEM_VERSIONBITMAP
+DESCRIPTOR.message_types_by_name['ofp_hello'] = _OFP_HELLO
+DESCRIPTOR.message_types_by_name['ofp_switch_config'] = _OFP_SWITCH_CONFIG
+DESCRIPTOR.message_types_by_name['ofp_table_mod'] = _OFP_TABLE_MOD
+DESCRIPTOR.message_types_by_name['ofp_port'] = _OFP_PORT
+DESCRIPTOR.message_types_by_name['ofp_switch_features'] = _OFP_SWITCH_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_port_status'] = _OFP_PORT_STATUS
+DESCRIPTOR.message_types_by_name['ofp_port_mod'] = _OFP_PORT_MOD
+DESCRIPTOR.message_types_by_name['ofp_match'] = _OFP_MATCH
+DESCRIPTOR.message_types_by_name['ofp_oxm_field'] = _OFP_OXM_FIELD
+DESCRIPTOR.message_types_by_name['ofp_oxm_ofb_field'] = _OFP_OXM_OFB_FIELD
+DESCRIPTOR.message_types_by_name['ofp_oxm_experimenter_field'] = _OFP_OXM_EXPERIMENTER_FIELD
+DESCRIPTOR.message_types_by_name['ofp_action'] = _OFP_ACTION
+DESCRIPTOR.message_types_by_name['ofp_action_output'] = _OFP_ACTION_OUTPUT
+DESCRIPTOR.message_types_by_name['ofp_action_mpls_ttl'] = _OFP_ACTION_MPLS_TTL
+DESCRIPTOR.message_types_by_name['ofp_action_push'] = _OFP_ACTION_PUSH
+DESCRIPTOR.message_types_by_name['ofp_action_pop_mpls'] = _OFP_ACTION_POP_MPLS
+DESCRIPTOR.message_types_by_name['ofp_action_group'] = _OFP_ACTION_GROUP
+DESCRIPTOR.message_types_by_name['ofp_action_nw_ttl'] = _OFP_ACTION_NW_TTL
+DESCRIPTOR.message_types_by_name['ofp_action_set_field'] = _OFP_ACTION_SET_FIELD
+DESCRIPTOR.message_types_by_name['ofp_action_experimenter'] = _OFP_ACTION_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_instruction'] = _OFP_INSTRUCTION
+DESCRIPTOR.message_types_by_name['ofp_instruction_goto_table'] = _OFP_INSTRUCTION_GOTO_TABLE
+DESCRIPTOR.message_types_by_name['ofp_instruction_write_metadata'] = _OFP_INSTRUCTION_WRITE_METADATA
+DESCRIPTOR.message_types_by_name['ofp_instruction_actions'] = _OFP_INSTRUCTION_ACTIONS
+DESCRIPTOR.message_types_by_name['ofp_instruction_meter'] = _OFP_INSTRUCTION_METER
+DESCRIPTOR.message_types_by_name['ofp_instruction_experimenter'] = _OFP_INSTRUCTION_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_flow_mod'] = _OFP_FLOW_MOD
+DESCRIPTOR.message_types_by_name['ofp_bucket'] = _OFP_BUCKET
+DESCRIPTOR.message_types_by_name['ofp_group_mod'] = _OFP_GROUP_MOD
+DESCRIPTOR.message_types_by_name['ofp_packet_out'] = _OFP_PACKET_OUT
+DESCRIPTOR.message_types_by_name['ofp_packet_in'] = _OFP_PACKET_IN
+DESCRIPTOR.message_types_by_name['ofp_flow_removed'] = _OFP_FLOW_REMOVED
+DESCRIPTOR.message_types_by_name['ofp_meter_band_header'] = _OFP_METER_BAND_HEADER
+DESCRIPTOR.message_types_by_name['ofp_meter_band_drop'] = _OFP_METER_BAND_DROP
+DESCRIPTOR.message_types_by_name['ofp_meter_band_dscp_remark'] = _OFP_METER_BAND_DSCP_REMARK
+DESCRIPTOR.message_types_by_name['ofp_meter_band_experimenter'] = _OFP_METER_BAND_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_meter_mod'] = _OFP_METER_MOD
+DESCRIPTOR.message_types_by_name['ofp_error_msg'] = _OFP_ERROR_MSG
+DESCRIPTOR.message_types_by_name['ofp_error_experimenter_msg'] = _OFP_ERROR_EXPERIMENTER_MSG
+DESCRIPTOR.message_types_by_name['ofp_multipart_request'] = _OFP_MULTIPART_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_multipart_reply'] = _OFP_MULTIPART_REPLY
+DESCRIPTOR.message_types_by_name['ofp_desc'] = _OFP_DESC
+DESCRIPTOR.message_types_by_name['ofp_flow_stats_request'] = _OFP_FLOW_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_flow_stats'] = _OFP_FLOW_STATS
+DESCRIPTOR.message_types_by_name['ofp_aggregate_stats_request'] = _OFP_AGGREGATE_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_aggregate_stats_reply'] = _OFP_AGGREGATE_STATS_REPLY
+DESCRIPTOR.message_types_by_name['ofp_table_feature_property'] = _OFP_TABLE_FEATURE_PROPERTY
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_instructions'] = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_next_tables'] = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_actions'] = _OFP_TABLE_FEATURE_PROP_ACTIONS
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_oxm'] = _OFP_TABLE_FEATURE_PROP_OXM
+DESCRIPTOR.message_types_by_name['ofp_table_feature_prop_experimenter'] = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_table_features'] = _OFP_TABLE_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_table_stats'] = _OFP_TABLE_STATS
+DESCRIPTOR.message_types_by_name['ofp_port_stats_request'] = _OFP_PORT_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_port_stats'] = _OFP_PORT_STATS
+DESCRIPTOR.message_types_by_name['ofp_group_stats_request'] = _OFP_GROUP_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_bucket_counter'] = _OFP_BUCKET_COUNTER
+DESCRIPTOR.message_types_by_name['ofp_group_stats'] = _OFP_GROUP_STATS
+DESCRIPTOR.message_types_by_name['ofp_group_desc'] = _OFP_GROUP_DESC
+DESCRIPTOR.message_types_by_name['ofp_group_features'] = _OFP_GROUP_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_meter_multipart_request'] = _OFP_METER_MULTIPART_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_meter_band_stats'] = _OFP_METER_BAND_STATS
+DESCRIPTOR.message_types_by_name['ofp_meter_stats'] = _OFP_METER_STATS
+DESCRIPTOR.message_types_by_name['ofp_meter_config'] = _OFP_METER_CONFIG
+DESCRIPTOR.message_types_by_name['ofp_meter_features'] = _OFP_METER_FEATURES
+DESCRIPTOR.message_types_by_name['ofp_experimenter_multipart_header'] = _OFP_EXPERIMENTER_MULTIPART_HEADER
+DESCRIPTOR.message_types_by_name['ofp_experimenter_header'] = _OFP_EXPERIMENTER_HEADER
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_header'] = _OFP_QUEUE_PROP_HEADER
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_min_rate'] = _OFP_QUEUE_PROP_MIN_RATE
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_max_rate'] = _OFP_QUEUE_PROP_MAX_RATE
+DESCRIPTOR.message_types_by_name['ofp_queue_prop_experimenter'] = _OFP_QUEUE_PROP_EXPERIMENTER
+DESCRIPTOR.message_types_by_name['ofp_packet_queue'] = _OFP_PACKET_QUEUE
+DESCRIPTOR.message_types_by_name['ofp_queue_get_config_request'] = _OFP_QUEUE_GET_CONFIG_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_queue_get_config_reply'] = _OFP_QUEUE_GET_CONFIG_REPLY
+DESCRIPTOR.message_types_by_name['ofp_action_set_queue'] = _OFP_ACTION_SET_QUEUE
+DESCRIPTOR.message_types_by_name['ofp_queue_stats_request'] = _OFP_QUEUE_STATS_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_queue_stats'] = _OFP_QUEUE_STATS
+DESCRIPTOR.message_types_by_name['ofp_role_request'] = _OFP_ROLE_REQUEST
+DESCRIPTOR.message_types_by_name['ofp_async_config'] = _OFP_ASYNC_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_port_no'] = _OFP_PORT_NO
+DESCRIPTOR.enum_types_by_name['ofp_type'] = _OFP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_hello_elem_type'] = _OFP_HELLO_ELEM_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_config_flags'] = _OFP_CONFIG_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_table_config'] = _OFP_TABLE_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_table'] = _OFP_TABLE
+DESCRIPTOR.enum_types_by_name['ofp_capabilities'] = _OFP_CAPABILITIES
+DESCRIPTOR.enum_types_by_name['ofp_port_config'] = _OFP_PORT_CONFIG
+DESCRIPTOR.enum_types_by_name['ofp_port_state'] = _OFP_PORT_STATE
+DESCRIPTOR.enum_types_by_name['ofp_port_features'] = _OFP_PORT_FEATURES
+DESCRIPTOR.enum_types_by_name['ofp_port_reason'] = _OFP_PORT_REASON
+DESCRIPTOR.enum_types_by_name['ofp_match_type'] = _OFP_MATCH_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_oxm_class'] = _OFP_OXM_CLASS
+DESCRIPTOR.enum_types_by_name['oxm_ofb_field_types'] = _OXM_OFB_FIELD_TYPES
+DESCRIPTOR.enum_types_by_name['ofp_vlan_id'] = _OFP_VLAN_ID
+DESCRIPTOR.enum_types_by_name['ofp_ipv6exthdr_flags'] = _OFP_IPV6EXTHDR_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_action_type'] = _OFP_ACTION_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_controller_max_len'] = _OFP_CONTROLLER_MAX_LEN
+DESCRIPTOR.enum_types_by_name['ofp_instruction_type'] = _OFP_INSTRUCTION_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_command'] = _OFP_FLOW_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_flags'] = _OFP_FLOW_MOD_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_group'] = _OFP_GROUP
+DESCRIPTOR.enum_types_by_name['ofp_group_mod_command'] = _OFP_GROUP_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_group_type'] = _OFP_GROUP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_packet_in_reason'] = _OFP_PACKET_IN_REASON
+DESCRIPTOR.enum_types_by_name['ofp_flow_removed_reason'] = _OFP_FLOW_REMOVED_REASON
+DESCRIPTOR.enum_types_by_name['ofp_meter'] = _OFP_METER
+DESCRIPTOR.enum_types_by_name['ofp_meter_band_type'] = _OFP_METER_BAND_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_meter_mod_command'] = _OFP_METER_MOD_COMMAND
+DESCRIPTOR.enum_types_by_name['ofp_meter_flags'] = _OFP_METER_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_error_type'] = _OFP_ERROR_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_hello_failed_code'] = _OFP_HELLO_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_request_code'] = _OFP_BAD_REQUEST_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_action_code'] = _OFP_BAD_ACTION_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_instruction_code'] = _OFP_BAD_INSTRUCTION_CODE
+DESCRIPTOR.enum_types_by_name['ofp_bad_match_code'] = _OFP_BAD_MATCH_CODE
+DESCRIPTOR.enum_types_by_name['ofp_flow_mod_failed_code'] = _OFP_FLOW_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_group_mod_failed_code'] = _OFP_GROUP_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_port_mod_failed_code'] = _OFP_PORT_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_table_mod_failed_code'] = _OFP_TABLE_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_queue_op_failed_code'] = _OFP_QUEUE_OP_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_switch_config_failed_code'] = _OFP_SWITCH_CONFIG_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_role_request_failed_code'] = _OFP_ROLE_REQUEST_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_meter_mod_failed_code'] = _OFP_METER_MOD_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_table_features_failed_code'] = _OFP_TABLE_FEATURES_FAILED_CODE
+DESCRIPTOR.enum_types_by_name['ofp_multipart_type'] = _OFP_MULTIPART_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_multipart_request_flags'] = _OFP_MULTIPART_REQUEST_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_multipart_reply_flags'] = _OFP_MULTIPART_REPLY_FLAGS
+DESCRIPTOR.enum_types_by_name['ofp_table_feature_prop_type'] = _OFP_TABLE_FEATURE_PROP_TYPE
+DESCRIPTOR.enum_types_by_name['ofp_group_capabilities'] = _OFP_GROUP_CAPABILITIES
+DESCRIPTOR.enum_types_by_name['ofp_queue_properties'] = _OFP_QUEUE_PROPERTIES
+DESCRIPTOR.enum_types_by_name['ofp_controller_role'] = _OFP_CONTROLLER_ROLE
+
+ofp_header = _reflection.GeneratedProtocolMessageType('ofp_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_header)
+  ))
+_sym_db.RegisterMessage(ofp_header)
+
+ofp_hello_elem_header = _reflection.GeneratedProtocolMessageType('ofp_hello_elem_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO_ELEM_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello_elem_header)
+  ))
+_sym_db.RegisterMessage(ofp_hello_elem_header)
+
+ofp_hello_elem_versionbitmap = _reflection.GeneratedProtocolMessageType('ofp_hello_elem_versionbitmap', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO_ELEM_VERSIONBITMAP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello_elem_versionbitmap)
+  ))
+_sym_db.RegisterMessage(ofp_hello_elem_versionbitmap)
+
+ofp_hello = _reflection.GeneratedProtocolMessageType('ofp_hello', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_HELLO,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_hello)
+  ))
+_sym_db.RegisterMessage(ofp_hello)
+
+ofp_switch_config = _reflection.GeneratedProtocolMessageType('ofp_switch_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_SWITCH_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_switch_config)
+  ))
+_sym_db.RegisterMessage(ofp_switch_config)
+
+ofp_table_mod = _reflection.GeneratedProtocolMessageType('ofp_table_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_mod)
+  ))
+_sym_db.RegisterMessage(ofp_table_mod)
+
+ofp_port = _reflection.GeneratedProtocolMessageType('ofp_port', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port)
+  ))
+_sym_db.RegisterMessage(ofp_port)
+
+ofp_switch_features = _reflection.GeneratedProtocolMessageType('ofp_switch_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_SWITCH_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_switch_features)
+  ))
+_sym_db.RegisterMessage(ofp_switch_features)
+
+ofp_port_status = _reflection.GeneratedProtocolMessageType('ofp_port_status', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATUS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_status)
+  ))
+_sym_db.RegisterMessage(ofp_port_status)
+
+ofp_port_mod = _reflection.GeneratedProtocolMessageType('ofp_port_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_mod)
+  ))
+_sym_db.RegisterMessage(ofp_port_mod)
+
+ofp_match = _reflection.GeneratedProtocolMessageType('ofp_match', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MATCH,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_match)
+  ))
+_sym_db.RegisterMessage(ofp_match)
+
+ofp_oxm_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_field)
+
+ofp_oxm_ofb_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_ofb_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_OFB_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_ofb_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_ofb_field)
+
+ofp_oxm_experimenter_field = _reflection.GeneratedProtocolMessageType('ofp_oxm_experimenter_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_OXM_EXPERIMENTER_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_oxm_experimenter_field)
+  ))
+_sym_db.RegisterMessage(ofp_oxm_experimenter_field)
+
+ofp_action = _reflection.GeneratedProtocolMessageType('ofp_action', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action)
+  ))
+_sym_db.RegisterMessage(ofp_action)
+
+ofp_action_output = _reflection.GeneratedProtocolMessageType('ofp_action_output', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_OUTPUT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_output)
+  ))
+_sym_db.RegisterMessage(ofp_action_output)
+
+ofp_action_mpls_ttl = _reflection.GeneratedProtocolMessageType('ofp_action_mpls_ttl', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_MPLS_TTL,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_mpls_ttl)
+  ))
+_sym_db.RegisterMessage(ofp_action_mpls_ttl)
+
+ofp_action_push = _reflection.GeneratedProtocolMessageType('ofp_action_push', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_PUSH,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_push)
+  ))
+_sym_db.RegisterMessage(ofp_action_push)
+
+ofp_action_pop_mpls = _reflection.GeneratedProtocolMessageType('ofp_action_pop_mpls', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_POP_MPLS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_pop_mpls)
+  ))
+_sym_db.RegisterMessage(ofp_action_pop_mpls)
+
+ofp_action_group = _reflection.GeneratedProtocolMessageType('ofp_action_group', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_GROUP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_group)
+  ))
+_sym_db.RegisterMessage(ofp_action_group)
+
+ofp_action_nw_ttl = _reflection.GeneratedProtocolMessageType('ofp_action_nw_ttl', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_NW_TTL,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_nw_ttl)
+  ))
+_sym_db.RegisterMessage(ofp_action_nw_ttl)
+
+ofp_action_set_field = _reflection.GeneratedProtocolMessageType('ofp_action_set_field', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_SET_FIELD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_set_field)
+  ))
+_sym_db.RegisterMessage(ofp_action_set_field)
+
+ofp_action_experimenter = _reflection.GeneratedProtocolMessageType('ofp_action_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_action_experimenter)
+
+ofp_instruction = _reflection.GeneratedProtocolMessageType('ofp_instruction', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction)
+  ))
+_sym_db.RegisterMessage(ofp_instruction)
+
+ofp_instruction_goto_table = _reflection.GeneratedProtocolMessageType('ofp_instruction_goto_table', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_GOTO_TABLE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_goto_table)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_goto_table)
+
+ofp_instruction_write_metadata = _reflection.GeneratedProtocolMessageType('ofp_instruction_write_metadata', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_WRITE_METADATA,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_write_metadata)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_write_metadata)
+
+ofp_instruction_actions = _reflection.GeneratedProtocolMessageType('ofp_instruction_actions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_ACTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_actions)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_actions)
+
+ofp_instruction_meter = _reflection.GeneratedProtocolMessageType('ofp_instruction_meter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_METER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_meter)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_meter)
+
+ofp_instruction_experimenter = _reflection.GeneratedProtocolMessageType('ofp_instruction_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_INSTRUCTION_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_instruction_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_instruction_experimenter)
+
+ofp_flow_mod = _reflection.GeneratedProtocolMessageType('ofp_flow_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_mod)
+  ))
+_sym_db.RegisterMessage(ofp_flow_mod)
+
+ofp_bucket = _reflection.GeneratedProtocolMessageType('ofp_bucket', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_BUCKET,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_bucket)
+  ))
+_sym_db.RegisterMessage(ofp_bucket)
+
+ofp_group_mod = _reflection.GeneratedProtocolMessageType('ofp_group_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_mod)
+  ))
+_sym_db.RegisterMessage(ofp_group_mod)
+
+ofp_packet_out = _reflection.GeneratedProtocolMessageType('ofp_packet_out', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_OUT,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_out)
+  ))
+_sym_db.RegisterMessage(ofp_packet_out)
+
+ofp_packet_in = _reflection.GeneratedProtocolMessageType('ofp_packet_in', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_IN,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_in)
+  ))
+_sym_db.RegisterMessage(ofp_packet_in)
+
+ofp_flow_removed = _reflection.GeneratedProtocolMessageType('ofp_flow_removed', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_REMOVED,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_removed)
+  ))
+_sym_db.RegisterMessage(ofp_flow_removed)
+
+ofp_meter_band_header = _reflection.GeneratedProtocolMessageType('ofp_meter_band_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_header)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_header)
+
+ofp_meter_band_drop = _reflection.GeneratedProtocolMessageType('ofp_meter_band_drop', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_DROP,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_drop)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_drop)
+
+ofp_meter_band_dscp_remark = _reflection.GeneratedProtocolMessageType('ofp_meter_band_dscp_remark', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_DSCP_REMARK,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_dscp_remark)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_dscp_remark)
+
+ofp_meter_band_experimenter = _reflection.GeneratedProtocolMessageType('ofp_meter_band_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_experimenter)
+
+ofp_meter_mod = _reflection.GeneratedProtocolMessageType('ofp_meter_mod', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_MOD,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_mod)
+  ))
+_sym_db.RegisterMessage(ofp_meter_mod)
+
+ofp_error_msg = _reflection.GeneratedProtocolMessageType('ofp_error_msg', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ERROR_MSG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_error_msg)
+  ))
+_sym_db.RegisterMessage(ofp_error_msg)
+
+ofp_error_experimenter_msg = _reflection.GeneratedProtocolMessageType('ofp_error_experimenter_msg', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ERROR_EXPERIMENTER_MSG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_error_experimenter_msg)
+  ))
+_sym_db.RegisterMessage(ofp_error_experimenter_msg)
+
+ofp_multipart_request = _reflection.GeneratedProtocolMessageType('ofp_multipart_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MULTIPART_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_multipart_request)
+  ))
+_sym_db.RegisterMessage(ofp_multipart_request)
+
+ofp_multipart_reply = _reflection.GeneratedProtocolMessageType('ofp_multipart_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_MULTIPART_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_multipart_reply)
+  ))
+_sym_db.RegisterMessage(ofp_multipart_reply)
+
+ofp_desc = _reflection.GeneratedProtocolMessageType('ofp_desc', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_DESC,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_desc)
+  ))
+_sym_db.RegisterMessage(ofp_desc)
+
+ofp_flow_stats_request = _reflection.GeneratedProtocolMessageType('ofp_flow_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_flow_stats_request)
+
+ofp_flow_stats = _reflection.GeneratedProtocolMessageType('ofp_flow_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_FLOW_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_flow_stats)
+  ))
+_sym_db.RegisterMessage(ofp_flow_stats)
+
+ofp_aggregate_stats_request = _reflection.GeneratedProtocolMessageType('ofp_aggregate_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_AGGREGATE_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_aggregate_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_aggregate_stats_request)
+
+ofp_aggregate_stats_reply = _reflection.GeneratedProtocolMessageType('ofp_aggregate_stats_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_AGGREGATE_STATS_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_aggregate_stats_reply)
+  ))
+_sym_db.RegisterMessage(ofp_aggregate_stats_reply)
+
+ofp_table_feature_property = _reflection.GeneratedProtocolMessageType('ofp_table_feature_property', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROPERTY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_property)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_property)
+
+ofp_table_feature_prop_instructions = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_instructions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_INSTRUCTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_instructions)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_instructions)
+
+ofp_table_feature_prop_next_tables = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_next_tables', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_NEXT_TABLES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_next_tables)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_next_tables)
+
+ofp_table_feature_prop_actions = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_actions', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_ACTIONS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_actions)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_actions)
+
+ofp_table_feature_prop_oxm = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_oxm', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_OXM,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_oxm)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_oxm)
+
+ofp_table_feature_prop_experimenter = _reflection.GeneratedProtocolMessageType('ofp_table_feature_prop_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURE_PROP_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_feature_prop_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_table_feature_prop_experimenter)
+
+ofp_table_features = _reflection.GeneratedProtocolMessageType('ofp_table_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_features)
+  ))
+_sym_db.RegisterMessage(ofp_table_features)
+
+ofp_table_stats = _reflection.GeneratedProtocolMessageType('ofp_table_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_TABLE_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_table_stats)
+  ))
+_sym_db.RegisterMessage(ofp_table_stats)
+
+ofp_port_stats_request = _reflection.GeneratedProtocolMessageType('ofp_port_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_port_stats_request)
+
+ofp_port_stats = _reflection.GeneratedProtocolMessageType('ofp_port_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PORT_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_port_stats)
+  ))
+_sym_db.RegisterMessage(ofp_port_stats)
+
+ofp_group_stats_request = _reflection.GeneratedProtocolMessageType('ofp_group_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_group_stats_request)
+
+ofp_bucket_counter = _reflection.GeneratedProtocolMessageType('ofp_bucket_counter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_BUCKET_COUNTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_bucket_counter)
+  ))
+_sym_db.RegisterMessage(ofp_bucket_counter)
+
+ofp_group_stats = _reflection.GeneratedProtocolMessageType('ofp_group_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_stats)
+  ))
+_sym_db.RegisterMessage(ofp_group_stats)
+
+ofp_group_desc = _reflection.GeneratedProtocolMessageType('ofp_group_desc', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_DESC,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_desc)
+  ))
+_sym_db.RegisterMessage(ofp_group_desc)
+
+ofp_group_features = _reflection.GeneratedProtocolMessageType('ofp_group_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_GROUP_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_group_features)
+  ))
+_sym_db.RegisterMessage(ofp_group_features)
+
+ofp_meter_multipart_request = _reflection.GeneratedProtocolMessageType('ofp_meter_multipart_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_MULTIPART_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_multipart_request)
+  ))
+_sym_db.RegisterMessage(ofp_meter_multipart_request)
+
+ofp_meter_band_stats = _reflection.GeneratedProtocolMessageType('ofp_meter_band_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_BAND_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_band_stats)
+  ))
+_sym_db.RegisterMessage(ofp_meter_band_stats)
+
+ofp_meter_stats = _reflection.GeneratedProtocolMessageType('ofp_meter_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_stats)
+  ))
+_sym_db.RegisterMessage(ofp_meter_stats)
+
+ofp_meter_config = _reflection.GeneratedProtocolMessageType('ofp_meter_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_config)
+  ))
+_sym_db.RegisterMessage(ofp_meter_config)
+
+ofp_meter_features = _reflection.GeneratedProtocolMessageType('ofp_meter_features', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_METER_FEATURES,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_meter_features)
+  ))
+_sym_db.RegisterMessage(ofp_meter_features)
+
+ofp_experimenter_multipart_header = _reflection.GeneratedProtocolMessageType('ofp_experimenter_multipart_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_EXPERIMENTER_MULTIPART_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_experimenter_multipart_header)
+  ))
+_sym_db.RegisterMessage(ofp_experimenter_multipart_header)
+
+ofp_experimenter_header = _reflection.GeneratedProtocolMessageType('ofp_experimenter_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_EXPERIMENTER_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_experimenter_header)
+  ))
+_sym_db.RegisterMessage(ofp_experimenter_header)
+
+ofp_queue_prop_header = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_header', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_HEADER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_header)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_header)
+
+ofp_queue_prop_min_rate = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_min_rate', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_MIN_RATE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_min_rate)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_min_rate)
+
+ofp_queue_prop_max_rate = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_max_rate', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_MAX_RATE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_max_rate)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_max_rate)
+
+ofp_queue_prop_experimenter = _reflection.GeneratedProtocolMessageType('ofp_queue_prop_experimenter', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_PROP_EXPERIMENTER,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_prop_experimenter)
+  ))
+_sym_db.RegisterMessage(ofp_queue_prop_experimenter)
+
+ofp_packet_queue = _reflection.GeneratedProtocolMessageType('ofp_packet_queue', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_PACKET_QUEUE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_packet_queue)
+  ))
+_sym_db.RegisterMessage(ofp_packet_queue)
+
+ofp_queue_get_config_request = _reflection.GeneratedProtocolMessageType('ofp_queue_get_config_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_GET_CONFIG_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_get_config_request)
+  ))
+_sym_db.RegisterMessage(ofp_queue_get_config_request)
+
+ofp_queue_get_config_reply = _reflection.GeneratedProtocolMessageType('ofp_queue_get_config_reply', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_GET_CONFIG_REPLY,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_get_config_reply)
+  ))
+_sym_db.RegisterMessage(ofp_queue_get_config_reply)
+
+ofp_action_set_queue = _reflection.GeneratedProtocolMessageType('ofp_action_set_queue', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ACTION_SET_QUEUE,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_action_set_queue)
+  ))
+_sym_db.RegisterMessage(ofp_action_set_queue)
+
+ofp_queue_stats_request = _reflection.GeneratedProtocolMessageType('ofp_queue_stats_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_STATS_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_stats_request)
+  ))
+_sym_db.RegisterMessage(ofp_queue_stats_request)
+
+ofp_queue_stats = _reflection.GeneratedProtocolMessageType('ofp_queue_stats', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_QUEUE_STATS,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_queue_stats)
+  ))
+_sym_db.RegisterMessage(ofp_queue_stats)
+
+ofp_role_request = _reflection.GeneratedProtocolMessageType('ofp_role_request', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ROLE_REQUEST,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_role_request)
+  ))
+_sym_db.RegisterMessage(ofp_role_request)
+
+ofp_async_config = _reflection.GeneratedProtocolMessageType('ofp_async_config', (_message.Message,), dict(
+  DESCRIPTOR = _OFP_ASYNC_CONFIG,
+  __module__ = 'openflow_13_pb2'
+  # @@protoc_insertion_point(class_scope:openflow_13.ofp_async_config)
+  ))
+_sym_db.RegisterMessage(ofp_async_config)
+
+
+import grpc
+from grpc.beta import implementations as beta_implementations
+from grpc.beta import interfaces as beta_interfaces
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
+# @@protoc_insertion_point(module_scope)
diff --git a/voltha/protos/voltha.desc b/voltha/protos/voltha.desc
index de0bfe8..4c2e3ad 100644
--- a/voltha/protos/voltha.desc
+++ b/voltha/protos/voltha.desc
Binary files differ
diff --git a/voltha/protos/voltha.proto b/voltha/protos/voltha.proto
index 53e8a8a..85217f6 100644
--- a/voltha/protos/voltha.proto
+++ b/voltha/protos/voltha.proto
@@ -3,185 +3,318 @@
 package voltha;
 
 import "google/api/annotations.proto";
+import "openflow_13.proto";
 
 option java_package = "org.opencord.voltha";
 option java_outer_classname = "VolthaProtos";
 option csharp_namespace = "Opencord.Voltha.Voltha";
 
-// Empty message
 message NullMessage {}
 
 // Encode health status of a Voltha instance
 message HealthStatus {
+    // Health states
+    enum HealthState {
+        HEALTHY = 0;  // The instance is healthy
+        OVERLOADED = 1;  // The instance is overloaded, decrease query rate
+        DYING = 2;  // The instance is in a critical condition, do not use it
+    }
 
-  // Health states
-  enum HealthState {
-    HEALTHY = 0;  // The instance is healthy
-    OVERLOADED = 1;  // The instance is overloaded, decrease query rate
-    DYING = 2;  // The instance is in a critical condition, do not use it
-  }
-
-  // Current state of health of this Voltha instance
-  HealthState state = 1;
-
+    // Current state of health of this Voltha instance
+    HealthState state = 1;
 }
 
 // Health related services
 service HealthService {
-
-  // Return current health status of a Voltha instance
-  rpc GetHealthStatus(NullMessage) returns (HealthStatus) {
-    option (google.api.http) = {
-      get: "/health"
-    };
-  }
-
+    // Return current health status of a Voltha instance
+    rpc GetHealthStatus(NullMessage) returns (HealthStatus) {
+        option (google.api.http) = {
+            get: "/health"
+        };
+    }
 }
 
 // (placeholder) Address as example message
 message Address {
-  string id = 7;  // ID of address record
-  string street = 1;  // Street address
-  string street2 = 2;  // Apartment, suite, building, etc.
-  string street3 = 3;  // Apartment, suite, building, etc.
-  string city = 4;  // City
-  string state = 5;  // State
-  uint32 zip = 6;   // Zip code
+    string id = 7;  // ID of address record
+    string street = 1;  // Street address
+    string street2 = 2;  // Apartment, suite, building, etc.
+    string street3 = 3;  // Apartment, suite, building, etc.
+    string city = 4;  // City
+    string state = 5;  // State
+    uint32 zip = 6;   // Zip code
 }
 
 message Addresses {
-  repeated Address addresses = 1;
+    repeated Address addresses = 1;
 }
 
 // (placeholder) A more complex message type for testing purposes
 message MoreComplex {
-  HealthStatus health = 1; // Embedded health status
-  int32 foo_counter = 2; // Counting foos
-  string name = 3;  // Name of this thing
-  repeated MoreComplex children = 4;  // Nested object to test recursion type
-  Address address = 5;
+    HealthStatus health = 1; // Embedded health status
+    int32 foo_counter = 2; // Counting foos
+    string name = 3;  // Name of this thing
+    repeated MoreComplex children = 4;  // Nested object to test recursion type
+    Address address = 5;
 }
 
 // (placeholder) Convey an identifier
 message ID {
-  string id = 1;
+    string id = 1;
 }
 
 // Subscriber
 message Subscriber {
-  string id = 1;
-  // TODO add meat here
+    string id = 1;
+    // TODO add meat here
 }
 
 message Subscribers {
-  repeated Subscriber subscribers = 1;
+    repeated Subscriber items = 1;
 }
 
-/*
-message FlowSwitch {
-  string id = 1;
-  string name = 2;
-  uint64 device_id = 3;
-  repeated FlowPort ports = 4;
+message LogicalDevice {
+    string id = 1;
+    uint64 datapath_id = 2;
+    openflow_13.ofp_desc desc = 3;
 }
 
-enum PortSpeed {
-  // TODO
+message LogicalDevices {
+    repeated LogicalDevice items = 1;  // List of logical device identifiers
 }
 
-enum PortType {
-  // TODO
+message LogicalPorts {
+    repeated openflow_13.ofp_port items = 1;
 }
 
-message FlowPort {
-  string id = 1;
-  string name = 2;
-  uint32 number = 3;
-  string mac_address = 4;
-  PortSpeed speed = 5;
-  PortType type = 6;
-  string flow_switch_id = 7;
+message LogicalDeviceDetails {
+    string id = 1;
+    uint64 datapath_id = 2;
+    openflow_13.ofp_desc desc = 3;
+    openflow_13.ofp_switch_features switch_features = 4;
 }
-*/
 
-service VolthaService {
+message FlowTableUpdate {
+    string id = 1; // device id
+    openflow_13.ofp_flow_mod flow_mod = 2;
+}
 
-  // Create a subscriber record
-  rpc CreateSubscriber(Subscriber) returns (Subscriber) {
-    option (google.api.http) = {
-      post: "/subscribers"
-      body: "*"
-    };
-  }
+message Flows {
+    repeated openflow_13.ofp_flow_stats items = 1;
+}
 
-  // Return an subscriber by ID
-  rpc GetSubscriber(ID) returns (Subscriber) {
-    option (google.api.http) = {
-      get: "/subscribers/{id}"
-    };
-  }
+service VolthaLogicalLayer {
 
-  // Update an existing subscriber record by ID
-  rpc UpdateSubscriber(Subscriber) returns (Subscriber) {
-    option (google.api.http) = {
-      patch: "/subscribers/{id}"
-      body: "*"
-    };
-  }
+    // List logical devices owned by this Voltha instance
+    rpc ListLogicalDevices(NullMessage) returns(LogicalDevices) {
+        option (google.api.http) = {
+            get: "/local/devices"
+        };
+    }
 
-  // Delete a subscriber record by ID
-  rpc DeleteSubscriber(ID) returns (NullMessage) {
-    option (google.api.http) = {
-      delete: "/subscribers/{id}"
-    };
-  }
+    // Get detailed info on logical device owned by this Voltha instance
+    rpc GetLogicalDevice(ID) returns(LogicalDeviceDetails) {
+        option (google.api.http) = {
+            get: "/local/devices/{id}"
+        };
+    }
 
-  // List subscribers
-  rpc ListSubscribers(NullMessage) returns (Subscribers) {
-    option (google.api.http) = {
-      get: "/subscribers"
-    };
-  }
+    // List ports of a logical device
+    rpc ListLogicalDevicePorts(ID) returns(LogicalPorts) {
+        option (google.api.http) = {
+            get: "/local/devices/{id}/ports"
+        };
+    }
 
+    // Update flow table for device
+    rpc UpdateFlowTable(FlowTableUpdate) returns(NullMessage) {
+        option (google.api.http) = {
+            post: "/local/devices/{id}/flows"
+            body: "*"
+        };
+    }
+
+    // List all flows of a logical device
+    rpc ListDeviceFlows(ID) returns(Flows) {
+        option (google.api.http) = {
+            get: "/local/devices/{id}/flows"
+        };
+    }
+
+    // Create a subscriber record
+    rpc CreateSubscriber(Subscriber) returns (Subscriber) {
+        option (google.api.http) = {
+            post: "/subscribers"
+            body: "*"
+        };
+    }
+
+    // Return an subscriber by ID
+    rpc GetSubscriber(ID) returns (Subscriber) {
+        option (google.api.http) = {
+            get: "/subscribers/{id}"
+        };
+    }
+
+    // Update an existing subscriber record by ID
+    rpc UpdateSubscriber(Subscriber) returns (Subscriber) {
+        option (google.api.http) = {
+            patch: "/subscribers/{id}"
+            body: "*"
+        };
+    }
+
+    // Delete a subscriber record by ID
+    rpc DeleteSubscriber(ID) returns (NullMessage) {
+        option (google.api.http) = {
+            delete: "/subscribers/{id}"
+        };
+    }
+
+    // List subscribers
+    rpc ListSubscribers(NullMessage) returns (Subscribers) {
+        option (google.api.http) = {
+            get: "/subscribers"
+        };
+    }
 }
 
 // (placeholder) This is an example service
 service ExampleService {
 
-  // Create an address record
-  rpc CreateAddress(Address) returns (Address) {
-    option (google.api.http) = {
-      post: "/addresses"
-      body: "*"
-    };
-  }
+    // Create an address record
+    rpc CreateAddress(Address) returns (Address) {
+        option (google.api.http) = {
+            post: "/addresses"
+            body: "*"
+        };
+    }
 
-  // Return an address by ID
-  rpc GetAddress(ID) returns (Address) {
-    option (google.api.http) = {
-      get: "/addresses/{id}"
-    };
-  }
+    // Return an address by ID
+    rpc GetAddress(ID) returns (Address) {
+        option (google.api.http) = {
+            get: "/addresses/{id}"
+        };
+    }
 
-  // Update an existing address record by ID
-  rpc UpdateAddress(Address) returns (Address) {
-    option (google.api.http) = {
-      patch: "/addresses/{id}"
-      body: "*"
-    };
-  }
+    // Update an existing address record by ID
+    rpc UpdateAddress(Address) returns (Address) {
+        option (google.api.http) = {
+            patch: "/addresses/{id}"
+            body: "*"
+        };
+    }
 
-  // Delete an address record by ID
-  rpc DeleteAddress(ID) returns (NullMessage) {
-    option (google.api.http) = {
-      delete: "/addresses/{id}"
-    };
-  }
+    // Delete an address record by ID
+    rpc DeleteAddress(ID) returns (NullMessage) {
+        option (google.api.http) = {
+            delete: "/addresses/{id}"
+        };
+    }
 
-  // Return a bit more complex objects
-  rpc ListAddresses(NullMessage) returns (Addresses) {
-    option (google.api.http) = {
-      get: "/addresses"
-    };
-  }
+    // Return a bit more complex objects
+    rpc ListAddresses(NullMessage) returns (Addresses) {
+        option (google.api.http) = {
+            get: "/addresses"
+        };
+    }
+
 }
+
+service OpenFlow {
+
+    /*
+     * Hello message handshake, initiated by the client (controller)
+     */
+    rpc GetHello(openflow_13.ofp_hello)
+        returns(openflow_13.ofp_hello) {
+        // TODO http option
+    }
+
+    /*
+     * Echo request / reply, initiated by the client (controller)
+     */
+    rpc EchoRequest(openflow_13.ofp_header)
+        returns(openflow_13.ofp_header) {
+        // TODO http option
+    }
+
+    /*
+     * Experimental (extension) RPC
+     */
+    rpc ExperimenterRequest(openflow_13.ofp_experimenter_header)
+        returns(openflow_13.ofp_experimenter_header) {
+        // TODO http option
+    }
+
+    /*
+     * Get Switch Features
+     */
+    rpc GetSwitchFeatures(openflow_13.ofp_header)
+        returns(openflow_13.ofp_switch_features) {
+        // TODO http option
+    }
+
+    /*
+     * Get Switch Config
+     */
+    rpc GetSwitchConfig(openflow_13.ofp_header)
+        returns(openflow_13.ofp_switch_config) {
+        // TODO http option
+    }
+
+    /*
+     * Set Config
+     */
+    rpc SetConfig(openflow_13.ofp_switch_config)
+        returns(openflow_13.ofp_header) {
+        // TODO http option
+    }
+
+    /*
+     * Receive Packet-In messages
+     */
+    rpc ReceivePacketInMessages(openflow_13.ofp_header)
+        returns(stream openflow_13.ofp_packet_in) {
+        // TODO http option
+    }
+
+    /*
+     * Send Packet-Out messages
+     */
+    rpc SendPacketOutMessages(openflow_13.ofp_packet_out)
+        returns(openflow_13.ofp_header) {
+        // TODO http option
+    }
+
+    // TODO continue
+
+}
+
+/*
+message FlowSwitch {
+    string id = 1;
+    string name = 2;
+    uint64 device_id = 3;
+    repeated FlowPort ports = 4;
+}
+
+enum PortSpeed {
+    // TODO
+}
+
+enum PortType {
+    // TODO
+}
+
+message FlowPort {
+    string id = 1;
+    string name = 2;
+    uint32 number = 3;
+    string mac_address = 4;
+    PortSpeed speed = 5;
+    PortType type = 6;
+    string flow_switch_id = 7;
+}
+*/
+
diff --git a/voltha/protos/voltha_pb2.py b/voltha/protos/voltha_pb2.py
index 180943b..d800877 100644
--- a/voltha/protos/voltha_pb2.py
+++ b/voltha/protos/voltha_pb2.py
@@ -14,15 +14,16 @@
 
 
 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
+import openflow_13_pb2 as openflow__13__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
   name='voltha.proto',
   package='voltha',
   syntax='proto3',
-  serialized_pb=_b('\n\x0cvoltha.proto\x12\x06voltha\x1a\x1cgoogle/api/annotations.proto\"\r\n\x0bNullMessage\"v\n\x0cHealthStatus\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .voltha.HealthStatus.HealthState\"5\n\x0bHealthState\x12\x0b\n\x07HEALTHY\x10\x00\x12\x0e\n\nOVERLOADED\x10\x01\x12\t\n\x05\x44YING\x10\x02\"q\n\x07\x41\x64\x64ress\x12\n\n\x02id\x18\x07 \x01(\t\x12\x0e\n\x06street\x18\x01 \x01(\t\x12\x0f\n\x07street2\x18\x02 \x01(\t\x12\x0f\n\x07street3\x18\x03 \x01(\t\x12\x0c\n\x04\x63ity\x18\x04 \x01(\t\x12\r\n\x05state\x18\x05 \x01(\t\x12\x0b\n\x03zip\x18\x06 \x01(\r\"/\n\tAddresses\x12\"\n\taddresses\x18\x01 \x03(\x0b\x32\x0f.voltha.Address\"\x9f\x01\n\x0bMoreComplex\x12$\n\x06health\x18\x01 \x01(\x0b\x32\x14.voltha.HealthStatus\x12\x13\n\x0b\x66oo_counter\x18\x02 \x01(\x05\x12\x0c\n\x04name\x18\x03 \x01(\t\x12%\n\x08\x63hildren\x18\x04 \x03(\x0b\x32\x13.voltha.MoreComplex\x12 \n\x07\x61\x64\x64ress\x18\x05 \x01(\x0b\x32\x0f.voltha.Address\"\x10\n\x02ID\x12\n\n\x02id\x18\x01 \x01(\t\"\x18\n\nSubscriber\x12\n\n\x02id\x18\x01 \x01(\t\"6\n\x0bSubscribers\x12\'\n\x0bsubscribers\x18\x01 \x03(\x0b\x32\x12.voltha.Subscriber2^\n\rHealthService\x12M\n\x0fGetHealthStatus\x12\x13.voltha.NullMessage\x1a\x14.voltha.HealthStatus\"\x0f\x82\xd3\xe4\x93\x02\t\x12\x07/health2\xad\x03\n\rVolthaService\x12S\n\x10\x43reateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x17\x82\xd3\xe4\x93\x02\x11\"\x0c/subscribers:\x01*\x12J\n\rGetSubscriber\x12\n.voltha.ID\x1a\x12.voltha.Subscriber\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/subscribers/{id}\x12X\n\x10UpdateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x1c\x82\xd3\xe4\x93\x02\x16\x32\x11/subscribers/{id}:\x01*\x12N\n\x10\x44\x65leteSubscriber\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x19\x82\xd3\xe4\x93\x02\x13*\x11/subscribers/{id}\x12Q\n\x0fListSubscribers\x12\x13.voltha.NullMessage\x1a\x13.voltha.Subscribers\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/subscribers2\x85\x03\n\x0e\x45xampleService\x12H\n\rCreateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x15\x82\xd3\xe4\x93\x02\x0f\"\n/addresses:\x01*\x12\x42\n\nGetAddress\x12\n.voltha.ID\x1a\x0f.voltha.Address\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/addresses/{id}\x12M\n\rUpdateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x1a\x82\xd3\xe4\x93\x02\x14\x32\x0f/addresses/{id}:\x01*\x12I\n\rDeleteAddress\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x17\x82\xd3\xe4\x93\x02\x11*\x0f/addresses/{id}\x12K\n\rListAddresses\x12\x13.voltha.NullMessage\x1a\x11.voltha.Addresses\"\x12\x82\xd3\xe4\x93\x02\x0c\x12\n/addressesB<\n\x13org.opencord.volthaB\x0cVolthaProtos\xaa\x02\x16Opencord.Voltha.Volthab\x06proto3')
+  serialized_pb=_b('\n\x0cvoltha.proto\x12\x06voltha\x1a\x1cgoogle/api/annotations.proto\x1a\x11openflow_13.proto\"\r\n\x0bNullMessage\"v\n\x0cHealthStatus\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .voltha.HealthStatus.HealthState\"5\n\x0bHealthState\x12\x0b\n\x07HEALTHY\x10\x00\x12\x0e\n\nOVERLOADED\x10\x01\x12\t\n\x05\x44YING\x10\x02\"q\n\x07\x41\x64\x64ress\x12\n\n\x02id\x18\x07 \x01(\t\x12\x0e\n\x06street\x18\x01 \x01(\t\x12\x0f\n\x07street2\x18\x02 \x01(\t\x12\x0f\n\x07street3\x18\x03 \x01(\t\x12\x0c\n\x04\x63ity\x18\x04 \x01(\t\x12\r\n\x05state\x18\x05 \x01(\t\x12\x0b\n\x03zip\x18\x06 \x01(\r\"/\n\tAddresses\x12\"\n\taddresses\x18\x01 \x03(\x0b\x32\x0f.voltha.Address\"\x9f\x01\n\x0bMoreComplex\x12$\n\x06health\x18\x01 \x01(\x0b\x32\x14.voltha.HealthStatus\x12\x13\n\x0b\x66oo_counter\x18\x02 \x01(\x05\x12\x0c\n\x04name\x18\x03 \x01(\t\x12%\n\x08\x63hildren\x18\x04 \x03(\x0b\x32\x13.voltha.MoreComplex\x12 \n\x07\x61\x64\x64ress\x18\x05 \x01(\x0b\x32\x0f.voltha.Address\"\x10\n\x02ID\x12\n\n\x02id\x18\x01 \x01(\t\"\x18\n\nSubscriber\x12\n\n\x02id\x18\x01 \x01(\t\"0\n\x0bSubscribers\x12!\n\x05items\x18\x01 \x03(\x0b\x32\x12.voltha.Subscriber\"U\n\rLogicalDevice\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_desc\"6\n\x0eLogicalDevices\x12$\n\x05items\x18\x01 \x03(\x0b\x32\x15.voltha.LogicalDevice\"4\n\x0cLogicalPorts\x12$\n\x05items\x18\x01 \x03(\x0b\x32\x15.openflow_13.ofp_port\"\x97\x01\n\x14LogicalDeviceDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61tapath_id\x18\x02 \x01(\x04\x12#\n\x04\x64\x65sc\x18\x03 \x01(\x0b\x32\x15.openflow_13.ofp_desc\x12\x39\n\x0fswitch_features\x18\x04 \x01(\x0b\x32 .openflow_13.ofp_switch_features\"J\n\x0f\x46lowTableUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12+\n\x08\x66low_mod\x18\x02 \x01(\x0b\x32\x19.openflow_13.ofp_flow_mod\"3\n\x05\x46lows\x12*\n\x05items\x18\x01 \x03(\x0b\x32\x1b.openflow_13.ofp_flow_stats2^\n\rHealthService\x12M\n\x0fGetHealthStatus\x12\x13.voltha.NullMessage\x1a\x14.voltha.HealthStatus\"\x0f\x82\xd3\xe4\x93\x02\t\x12\x07/health2\xff\x06\n\x12VolthaLogicalLayer\x12Y\n\x12ListLogicalDevices\x12\x13.voltha.NullMessage\x1a\x16.voltha.LogicalDevices\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/local/devices\x12Y\n\x10GetLogicalDevice\x12\n.voltha.ID\x1a\x1c.voltha.LogicalDeviceDetails\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/local/devices/{id}\x12]\n\x16ListLogicalDevicePorts\x12\n.voltha.ID\x1a\x14.voltha.LogicalPorts\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/local/devices/{id}/ports\x12\x65\n\x0fUpdateFlowTable\x12\x17.voltha.FlowTableUpdate\x1a\x13.voltha.NullMessage\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/local/devices/{id}/flows:\x01*\x12O\n\x0fListDeviceFlows\x12\n.voltha.ID\x1a\r.voltha.Flows\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/local/devices/{id}/flows\x12S\n\x10\x43reateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x17\x82\xd3\xe4\x93\x02\x11\"\x0c/subscribers:\x01*\x12J\n\rGetSubscriber\x12\n.voltha.ID\x1a\x12.voltha.Subscriber\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/subscribers/{id}\x12X\n\x10UpdateSubscriber\x12\x12.voltha.Subscriber\x1a\x12.voltha.Subscriber\"\x1c\x82\xd3\xe4\x93\x02\x16\x32\x11/subscribers/{id}:\x01*\x12N\n\x10\x44\x65leteSubscriber\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x19\x82\xd3\xe4\x93\x02\x13*\x11/subscribers/{id}\x12Q\n\x0fListSubscribers\x12\x13.voltha.NullMessage\x1a\x13.voltha.Subscribers\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/subscribers2\x85\x03\n\x0e\x45xampleService\x12H\n\rCreateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x15\x82\xd3\xe4\x93\x02\x0f\"\n/addresses:\x01*\x12\x42\n\nGetAddress\x12\n.voltha.ID\x1a\x0f.voltha.Address\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/addresses/{id}\x12M\n\rUpdateAddress\x12\x0f.voltha.Address\x1a\x0f.voltha.Address\"\x1a\x82\xd3\xe4\x93\x02\x14\x32\x0f/addresses/{id}:\x01*\x12I\n\rDeleteAddress\x12\n.voltha.ID\x1a\x13.voltha.NullMessage\"\x17\x82\xd3\xe4\x93\x02\x11*\x0f/addresses/{id}\x12K\n\rListAddresses\x12\x13.voltha.NullMessage\x1a\x11.voltha.Addresses\"\x12\x82\xd3\xe4\x93\x02\x0c\x12\n/addresses2\xfd\x04\n\x08OpenFlow\x12<\n\x08GetHello\x12\x16.openflow_13.ofp_hello\x1a\x16.openflow_13.ofp_hello\"\x00\x12\x41\n\x0b\x45\x63hoRequest\x12\x17.openflow_13.ofp_header\x1a\x17.openflow_13.ofp_header\"\x00\x12\x63\n\x13\x45xperimenterRequest\x12$.openflow_13.ofp_experimenter_header\x1a$.openflow_13.ofp_experimenter_header\"\x00\x12P\n\x11GetSwitchFeatures\x12\x17.openflow_13.ofp_header\x1a .openflow_13.ofp_switch_features\"\x00\x12L\n\x0fGetSwitchConfig\x12\x17.openflow_13.ofp_header\x1a\x1e.openflow_13.ofp_switch_config\"\x00\x12\x46\n\tSetConfig\x12\x1e.openflow_13.ofp_switch_config\x1a\x17.openflow_13.ofp_header\"\x00\x12R\n\x17ReceivePacketInMessages\x12\x17.openflow_13.ofp_header\x1a\x1a.openflow_13.ofp_packet_in\"\x00\x30\x01\x12O\n\x15SendPacketOutMessages\x12\x1b.openflow_13.ofp_packet_out\x1a\x17.openflow_13.ofp_header\"\x00\x42<\n\x13org.opencord.volthaB\x0cVolthaProtos\xaa\x02\x16Opencord.Voltha.Volthab\x06proto3')
   ,
-  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,])
+  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,openflow__13__pb2.DESCRIPTOR,])
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 
@@ -48,8 +49,8 @@
   ],
   containing_type=None,
   options=None,
-  serialized_start=134,
-  serialized_end=187,
+  serialized_start=153,
+  serialized_end=206,
 )
 _sym_db.RegisterEnumDescriptor(_HEALTHSTATUS_HEALTHSTATE)
 
@@ -73,8 +74,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=54,
-  serialized_end=67,
+  serialized_start=73,
+  serialized_end=86,
 )
 
 
@@ -105,8 +106,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=69,
-  serialized_end=187,
+  serialized_start=88,
+  serialized_end=206,
 )
 
 
@@ -178,8 +179,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=189,
-  serialized_end=302,
+  serialized_start=208,
+  serialized_end=321,
 )
 
 
@@ -209,8 +210,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=304,
-  serialized_end=351,
+  serialized_start=323,
+  serialized_end=370,
 )
 
 
@@ -268,8 +269,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=354,
-  serialized_end=513,
+  serialized_start=373,
+  serialized_end=532,
 )
 
 
@@ -299,8 +300,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=515,
-  serialized_end=531,
+  serialized_start=534,
+  serialized_end=550,
 )
 
 
@@ -330,8 +331,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=533,
-  serialized_end=557,
+  serialized_start=552,
+  serialized_end=576,
 )
 
 
@@ -343,7 +344,7 @@
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='subscribers', full_name='voltha.Subscribers.subscribers', index=0,
+      name='items', full_name='voltha.Subscribers.items', index=0,
       number=1, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
@@ -361,8 +362,236 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=559,
-  serialized_end=613,
+  serialized_start=578,
+  serialized_end=626,
+)
+
+
+_LOGICALDEVICE = _descriptor.Descriptor(
+  name='LogicalDevice',
+  full_name='voltha.LogicalDevice',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.LogicalDevice.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='voltha.LogicalDevice.datapath_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='voltha.LogicalDevice.desc', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=628,
+  serialized_end=713,
+)
+
+
+_LOGICALDEVICES = _descriptor.Descriptor(
+  name='LogicalDevices',
+  full_name='voltha.LogicalDevices',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.LogicalDevices.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=715,
+  serialized_end=769,
+)
+
+
+_LOGICALPORTS = _descriptor.Descriptor(
+  name='LogicalPorts',
+  full_name='voltha.LogicalPorts',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.LogicalPorts.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=771,
+  serialized_end=823,
+)
+
+
+_LOGICALDEVICEDETAILS = _descriptor.Descriptor(
+  name='LogicalDeviceDetails',
+  full_name='voltha.LogicalDeviceDetails',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.LogicalDeviceDetails.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='datapath_id', full_name='voltha.LogicalDeviceDetails.datapath_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='desc', full_name='voltha.LogicalDeviceDetails.desc', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='switch_features', full_name='voltha.LogicalDeviceDetails.switch_features', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=826,
+  serialized_end=977,
+)
+
+
+_FLOWTABLEUPDATE = _descriptor.Descriptor(
+  name='FlowTableUpdate',
+  full_name='voltha.FlowTableUpdate',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='voltha.FlowTableUpdate.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='flow_mod', full_name='voltha.FlowTableUpdate.flow_mod', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=979,
+  serialized_end=1053,
+)
+
+
+_FLOWS = _descriptor.Descriptor(
+  name='Flows',
+  full_name='voltha.Flows',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='items', full_name='voltha.Flows.items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1055,
+  serialized_end=1106,
 )
 
 _HEALTHSTATUS.fields_by_name['state'].enum_type = _HEALTHSTATUS_HEALTHSTATE
@@ -371,7 +600,14 @@
 _MORECOMPLEX.fields_by_name['health'].message_type = _HEALTHSTATUS
 _MORECOMPLEX.fields_by_name['children'].message_type = _MORECOMPLEX
 _MORECOMPLEX.fields_by_name['address'].message_type = _ADDRESS
-_SUBSCRIBERS.fields_by_name['subscribers'].message_type = _SUBSCRIBER
+_SUBSCRIBERS.fields_by_name['items'].message_type = _SUBSCRIBER
+_LOGICALDEVICE.fields_by_name['desc'].message_type = openflow__13__pb2._OFP_DESC
+_LOGICALDEVICES.fields_by_name['items'].message_type = _LOGICALDEVICE
+_LOGICALPORTS.fields_by_name['items'].message_type = openflow__13__pb2._OFP_PORT
+_LOGICALDEVICEDETAILS.fields_by_name['desc'].message_type = openflow__13__pb2._OFP_DESC
+_LOGICALDEVICEDETAILS.fields_by_name['switch_features'].message_type = openflow__13__pb2._OFP_SWITCH_FEATURES
+_FLOWTABLEUPDATE.fields_by_name['flow_mod'].message_type = openflow__13__pb2._OFP_FLOW_MOD
+_FLOWS.fields_by_name['items'].message_type = openflow__13__pb2._OFP_FLOW_STATS
 DESCRIPTOR.message_types_by_name['NullMessage'] = _NULLMESSAGE
 DESCRIPTOR.message_types_by_name['HealthStatus'] = _HEALTHSTATUS
 DESCRIPTOR.message_types_by_name['Address'] = _ADDRESS
@@ -380,6 +616,12 @@
 DESCRIPTOR.message_types_by_name['ID'] = _ID
 DESCRIPTOR.message_types_by_name['Subscriber'] = _SUBSCRIBER
 DESCRIPTOR.message_types_by_name['Subscribers'] = _SUBSCRIBERS
+DESCRIPTOR.message_types_by_name['LogicalDevice'] = _LOGICALDEVICE
+DESCRIPTOR.message_types_by_name['LogicalDevices'] = _LOGICALDEVICES
+DESCRIPTOR.message_types_by_name['LogicalPorts'] = _LOGICALPORTS
+DESCRIPTOR.message_types_by_name['LogicalDeviceDetails'] = _LOGICALDEVICEDETAILS
+DESCRIPTOR.message_types_by_name['FlowTableUpdate'] = _FLOWTABLEUPDATE
+DESCRIPTOR.message_types_by_name['Flows'] = _FLOWS
 
 NullMessage = _reflection.GeneratedProtocolMessageType('NullMessage', (_message.Message,), dict(
   DESCRIPTOR = _NULLMESSAGE,
@@ -437,6 +679,48 @@
   ))
 _sym_db.RegisterMessage(Subscribers)
 
+LogicalDevice = _reflection.GeneratedProtocolMessageType('LogicalDevice', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICE,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDevice)
+  ))
+_sym_db.RegisterMessage(LogicalDevice)
+
+LogicalDevices = _reflection.GeneratedProtocolMessageType('LogicalDevices', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICES,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDevices)
+  ))
+_sym_db.RegisterMessage(LogicalDevices)
+
+LogicalPorts = _reflection.GeneratedProtocolMessageType('LogicalPorts', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALPORTS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalPorts)
+  ))
+_sym_db.RegisterMessage(LogicalPorts)
+
+LogicalDeviceDetails = _reflection.GeneratedProtocolMessageType('LogicalDeviceDetails', (_message.Message,), dict(
+  DESCRIPTOR = _LOGICALDEVICEDETAILS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.LogicalDeviceDetails)
+  ))
+_sym_db.RegisterMessage(LogicalDeviceDetails)
+
+FlowTableUpdate = _reflection.GeneratedProtocolMessageType('FlowTableUpdate', (_message.Message,), dict(
+  DESCRIPTOR = _FLOWTABLEUPDATE,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.FlowTableUpdate)
+  ))
+_sym_db.RegisterMessage(FlowTableUpdate)
+
+Flows = _reflection.GeneratedProtocolMessageType('Flows', (_message.Message,), dict(
+  DESCRIPTOR = _FLOWS,
+  __module__ = 'voltha_pb2'
+  # @@protoc_insertion_point(class_scope:voltha.Flows)
+  ))
+_sym_db.RegisterMessage(Flows)
+
 
 DESCRIPTOR.has_options = True
 DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023org.opencord.volthaB\014VolthaProtos\252\002\026Opencord.Voltha.Voltha'))
@@ -536,34 +820,7 @@
   return beta_implementations.dynamic_stub(channel, 'voltha.HealthService', cardinalities, options=stub_options)
 
 
-class VolthaServiceStub(object):
-  """
-  message FlowSwitch {
-  string id = 1;
-  string name = 2;
-  uint64 device_id = 3;
-  repeated FlowPort ports = 4;
-  }
-
-  enum PortSpeed {
-  // TODO
-  }
-
-  enum PortType {
-  // TODO
-  }
-
-  message FlowPort {
-  string id = 1;
-  string name = 2;
-  uint32 number = 3;
-  string mac_address = 4;
-  PortSpeed speed = 5;
-  PortType type = 6;
-  string flow_switch_id = 7;
-  }
-
-  """
+class VolthaLogicalLayerStub(object):
 
   def __init__(self, channel):
     """Constructor.
@@ -571,61 +828,94 @@
     Args:
       channel: A grpc.Channel.
     """
+    self.ListLogicalDevices = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListLogicalDevices',
+        request_serializer=NullMessage.SerializeToString,
+        response_deserializer=LogicalDevices.FromString,
+        )
+    self.GetLogicalDevice = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/GetLogicalDevice',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=LogicalDeviceDetails.FromString,
+        )
+    self.ListLogicalDevicePorts = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListLogicalDevicePorts',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=LogicalPorts.FromString,
+        )
+    self.UpdateFlowTable = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/UpdateFlowTable',
+        request_serializer=FlowTableUpdate.SerializeToString,
+        response_deserializer=NullMessage.FromString,
+        )
+    self.ListDeviceFlows = channel.unary_unary(
+        '/voltha.VolthaLogicalLayer/ListDeviceFlows',
+        request_serializer=ID.SerializeToString,
+        response_deserializer=Flows.FromString,
+        )
     self.CreateSubscriber = channel.unary_unary(
-        '/voltha.VolthaService/CreateSubscriber',
+        '/voltha.VolthaLogicalLayer/CreateSubscriber',
         request_serializer=Subscriber.SerializeToString,
         response_deserializer=Subscriber.FromString,
         )
     self.GetSubscriber = channel.unary_unary(
-        '/voltha.VolthaService/GetSubscriber',
+        '/voltha.VolthaLogicalLayer/GetSubscriber',
         request_serializer=ID.SerializeToString,
         response_deserializer=Subscriber.FromString,
         )
     self.UpdateSubscriber = channel.unary_unary(
-        '/voltha.VolthaService/UpdateSubscriber',
+        '/voltha.VolthaLogicalLayer/UpdateSubscriber',
         request_serializer=Subscriber.SerializeToString,
         response_deserializer=Subscriber.FromString,
         )
     self.DeleteSubscriber = channel.unary_unary(
-        '/voltha.VolthaService/DeleteSubscriber',
+        '/voltha.VolthaLogicalLayer/DeleteSubscriber',
         request_serializer=ID.SerializeToString,
         response_deserializer=NullMessage.FromString,
         )
     self.ListSubscribers = channel.unary_unary(
-        '/voltha.VolthaService/ListSubscribers',
+        '/voltha.VolthaLogicalLayer/ListSubscribers',
         request_serializer=NullMessage.SerializeToString,
         response_deserializer=Subscribers.FromString,
         )
 
 
-class VolthaServiceServicer(object):
-  """
-  message FlowSwitch {
-  string id = 1;
-  string name = 2;
-  uint64 device_id = 3;
-  repeated FlowPort ports = 4;
-  }
+class VolthaLogicalLayerServicer(object):
 
-  enum PortSpeed {
-  // TODO
-  }
+  def ListLogicalDevices(self, request, context):
+    """List logical devices owned by this Voltha instance
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
 
-  enum PortType {
-  // TODO
-  }
+  def GetLogicalDevice(self, request, context):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
 
-  message FlowPort {
-  string id = 1;
-  string name = 2;
-  uint32 number = 3;
-  string mac_address = 4;
-  PortSpeed speed = 5;
-  PortType type = 6;
-  string flow_switch_id = 7;
-  }
+  def ListLogicalDevicePorts(self, request, context):
+    """List ports of a logical device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
 
-  """
+  def UpdateFlowTable(self, request, context):
+    """Update flow table for device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ListDeviceFlows(self, request, context):
+    """List all flows of a logical device
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
 
   def CreateSubscriber(self, request, context):
     """Create a subscriber record
@@ -663,8 +953,33 @@
     raise NotImplementedError('Method not implemented!')
 
 
-def add_VolthaServiceServicer_to_server(servicer, server):
+def add_VolthaLogicalLayerServicer_to_server(servicer, server):
   rpc_method_handlers = {
+      'ListLogicalDevices': grpc.unary_unary_rpc_method_handler(
+          servicer.ListLogicalDevices,
+          request_deserializer=NullMessage.FromString,
+          response_serializer=LogicalDevices.SerializeToString,
+      ),
+      'GetLogicalDevice': grpc.unary_unary_rpc_method_handler(
+          servicer.GetLogicalDevice,
+          request_deserializer=ID.FromString,
+          response_serializer=LogicalDeviceDetails.SerializeToString,
+      ),
+      'ListLogicalDevicePorts': grpc.unary_unary_rpc_method_handler(
+          servicer.ListLogicalDevicePorts,
+          request_deserializer=ID.FromString,
+          response_serializer=LogicalPorts.SerializeToString,
+      ),
+      'UpdateFlowTable': grpc.unary_unary_rpc_method_handler(
+          servicer.UpdateFlowTable,
+          request_deserializer=FlowTableUpdate.FromString,
+          response_serializer=NullMessage.SerializeToString,
+      ),
+      'ListDeviceFlows': grpc.unary_unary_rpc_method_handler(
+          servicer.ListDeviceFlows,
+          request_deserializer=ID.FromString,
+          response_serializer=Flows.SerializeToString,
+      ),
       'CreateSubscriber': grpc.unary_unary_rpc_method_handler(
           servicer.CreateSubscriber,
           request_deserializer=Subscriber.FromString,
@@ -692,38 +1007,31 @@
       ),
   }
   generic_handler = grpc.method_handlers_generic_handler(
-      'voltha.VolthaService', rpc_method_handlers)
+      'voltha.VolthaLogicalLayer', rpc_method_handlers)
   server.add_generic_rpc_handlers((generic_handler,))
 
 
-class BetaVolthaServiceServicer(object):
-  """
-  message FlowSwitch {
-  string id = 1;
-  string name = 2;
-  uint64 device_id = 3;
-  repeated FlowPort ports = 4;
-  }
-
-  enum PortSpeed {
-  // TODO
-  }
-
-  enum PortType {
-  // TODO
-  }
-
-  message FlowPort {
-  string id = 1;
-  string name = 2;
-  uint32 number = 3;
-  string mac_address = 4;
-  PortSpeed speed = 5;
-  PortType type = 6;
-  string flow_switch_id = 7;
-  }
-
-  """
+class BetaVolthaLogicalLayerServicer(object):
+  def ListLogicalDevices(self, request, context):
+    """List logical devices owned by this Voltha instance
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetLogicalDevice(self, request, context):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListLogicalDevicePorts(self, request, context):
+    """List ports of a logical device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def UpdateFlowTable(self, request, context):
+    """Update flow table for device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ListDeviceFlows(self, request, context):
+    """List all flows of a logical device
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
   def CreateSubscriber(self, request, context):
     """Create a subscriber record
     """
@@ -746,34 +1054,32 @@
     context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
 
 
-class BetaVolthaServiceStub(object):
-  """
-  message FlowSwitch {
-  string id = 1;
-  string name = 2;
-  uint64 device_id = 3;
-  repeated FlowPort ports = 4;
-  }
-
-  enum PortSpeed {
-  // TODO
-  }
-
-  enum PortType {
-  // TODO
-  }
-
-  message FlowPort {
-  string id = 1;
-  string name = 2;
-  uint32 number = 3;
-  string mac_address = 4;
-  PortSpeed speed = 5;
-  PortType type = 6;
-  string flow_switch_id = 7;
-  }
-
-  """
+class BetaVolthaLogicalLayerStub(object):
+  def ListLogicalDevices(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List logical devices owned by this Voltha instance
+    """
+    raise NotImplementedError()
+  ListLogicalDevices.future = None
+  def GetLogicalDevice(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Get detailed info on logical device owned by this Voltha instance
+    """
+    raise NotImplementedError()
+  GetLogicalDevice.future = None
+  def ListLogicalDevicePorts(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List ports of a logical device
+    """
+    raise NotImplementedError()
+  ListLogicalDevicePorts.future = None
+  def UpdateFlowTable(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """Update flow table for device
+    """
+    raise NotImplementedError()
+  UpdateFlowTable.future = None
+  def ListDeviceFlows(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """List all flows of a logical device
+    """
+    raise NotImplementedError()
+  ListDeviceFlows.future = None
   def CreateSubscriber(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
     """Create a subscriber record
     """
@@ -801,56 +1107,86 @@
   ListSubscribers.future = None
 
 
-def beta_create_VolthaService_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+def beta_create_VolthaLogicalLayer_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
   request_deserializers = {
-    ('voltha.VolthaService', 'CreateSubscriber'): Subscriber.FromString,
-    ('voltha.VolthaService', 'DeleteSubscriber'): ID.FromString,
-    ('voltha.VolthaService', 'GetSubscriber'): ID.FromString,
-    ('voltha.VolthaService', 'ListSubscribers'): NullMessage.FromString,
-    ('voltha.VolthaService', 'UpdateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): ID.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): FlowTableUpdate.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.FromString,
   }
   response_serializers = {
-    ('voltha.VolthaService', 'CreateSubscriber'): Subscriber.SerializeToString,
-    ('voltha.VolthaService', 'DeleteSubscriber'): NullMessage.SerializeToString,
-    ('voltha.VolthaService', 'GetSubscriber'): Subscriber.SerializeToString,
-    ('voltha.VolthaService', 'ListSubscribers'): Subscribers.SerializeToString,
-    ('voltha.VolthaService', 'UpdateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): LogicalDeviceDetails.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): Flows.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): LogicalPorts.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): LogicalDevices.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): Subscribers.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.SerializeToString,
   }
   method_implementations = {
-    ('voltha.VolthaService', 'CreateSubscriber'): face_utilities.unary_unary_inline(servicer.CreateSubscriber),
-    ('voltha.VolthaService', 'DeleteSubscriber'): face_utilities.unary_unary_inline(servicer.DeleteSubscriber),
-    ('voltha.VolthaService', 'GetSubscriber'): face_utilities.unary_unary_inline(servicer.GetSubscriber),
-    ('voltha.VolthaService', 'ListSubscribers'): face_utilities.unary_unary_inline(servicer.ListSubscribers),
-    ('voltha.VolthaService', 'UpdateSubscriber'): face_utilities.unary_unary_inline(servicer.UpdateSubscriber),
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): face_utilities.unary_unary_inline(servicer.CreateSubscriber),
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): face_utilities.unary_unary_inline(servicer.DeleteSubscriber),
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): face_utilities.unary_unary_inline(servicer.GetLogicalDevice),
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): face_utilities.unary_unary_inline(servicer.GetSubscriber),
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): face_utilities.unary_unary_inline(servicer.ListDeviceFlows),
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): face_utilities.unary_unary_inline(servicer.ListLogicalDevicePorts),
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): face_utilities.unary_unary_inline(servicer.ListLogicalDevices),
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): face_utilities.unary_unary_inline(servicer.ListSubscribers),
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): face_utilities.unary_unary_inline(servicer.UpdateFlowTable),
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): face_utilities.unary_unary_inline(servicer.UpdateSubscriber),
   }
   server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
   return beta_implementations.server(method_implementations, options=server_options)
 
 
-def beta_create_VolthaService_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+def beta_create_VolthaLogicalLayer_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
   request_serializers = {
-    ('voltha.VolthaService', 'CreateSubscriber'): Subscriber.SerializeToString,
-    ('voltha.VolthaService', 'DeleteSubscriber'): ID.SerializeToString,
-    ('voltha.VolthaService', 'GetSubscriber'): ID.SerializeToString,
-    ('voltha.VolthaService', 'ListSubscribers'): NullMessage.SerializeToString,
-    ('voltha.VolthaService', 'UpdateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): ID.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): NullMessage.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): FlowTableUpdate.SerializeToString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.SerializeToString,
   }
   response_deserializers = {
-    ('voltha.VolthaService', 'CreateSubscriber'): Subscriber.FromString,
-    ('voltha.VolthaService', 'DeleteSubscriber'): NullMessage.FromString,
-    ('voltha.VolthaService', 'GetSubscriber'): Subscriber.FromString,
-    ('voltha.VolthaService', 'ListSubscribers'): Subscribers.FromString,
-    ('voltha.VolthaService', 'UpdateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'CreateSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'DeleteSubscriber'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetLogicalDevice'): LogicalDeviceDetails.FromString,
+    ('voltha.VolthaLogicalLayer', 'GetSubscriber'): Subscriber.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListDeviceFlows'): Flows.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevicePorts'): LogicalPorts.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListLogicalDevices'): LogicalDevices.FromString,
+    ('voltha.VolthaLogicalLayer', 'ListSubscribers'): Subscribers.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateFlowTable'): NullMessage.FromString,
+    ('voltha.VolthaLogicalLayer', 'UpdateSubscriber'): Subscriber.FromString,
   }
   cardinalities = {
     'CreateSubscriber': cardinality.Cardinality.UNARY_UNARY,
     'DeleteSubscriber': cardinality.Cardinality.UNARY_UNARY,
+    'GetLogicalDevice': cardinality.Cardinality.UNARY_UNARY,
     'GetSubscriber': cardinality.Cardinality.UNARY_UNARY,
+    'ListDeviceFlows': cardinality.Cardinality.UNARY_UNARY,
+    'ListLogicalDevicePorts': cardinality.Cardinality.UNARY_UNARY,
+    'ListLogicalDevices': cardinality.Cardinality.UNARY_UNARY,
     'ListSubscribers': cardinality.Cardinality.UNARY_UNARY,
+    'UpdateFlowTable': cardinality.Cardinality.UNARY_UNARY,
     'UpdateSubscriber': cardinality.Cardinality.UNARY_UNARY,
   }
   stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
-  return beta_implementations.dynamic_stub(channel, 'voltha.VolthaService', cardinalities, options=stub_options)
+  return beta_implementations.dynamic_stub(channel, 'voltha.VolthaLogicalLayer', cardinalities, options=stub_options)
 
 
 class ExampleServiceStub(object):
@@ -1068,4 +1404,356 @@
   }
   stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
   return beta_implementations.dynamic_stub(channel, 'voltha.ExampleService', cardinalities, options=stub_options)
+
+
+class OpenFlowStub(object):
+
+  def __init__(self, channel):
+    """Constructor.
+
+    Args:
+      channel: A grpc.Channel.
+    """
+    self.GetHello = channel.unary_unary(
+        '/voltha.OpenFlow/GetHello',
+        request_serializer=openflow__13__pb2.ofp_hello.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_hello.FromString,
+        )
+    self.EchoRequest = channel.unary_unary(
+        '/voltha.OpenFlow/EchoRequest',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+    self.ExperimenterRequest = channel.unary_unary(
+        '/voltha.OpenFlow/ExperimenterRequest',
+        request_serializer=openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_experimenter_header.FromString,
+        )
+    self.GetSwitchFeatures = channel.unary_unary(
+        '/voltha.OpenFlow/GetSwitchFeatures',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_switch_features.FromString,
+        )
+    self.GetSwitchConfig = channel.unary_unary(
+        '/voltha.OpenFlow/GetSwitchConfig',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_switch_config.FromString,
+        )
+    self.SetConfig = channel.unary_unary(
+        '/voltha.OpenFlow/SetConfig',
+        request_serializer=openflow__13__pb2.ofp_switch_config.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+    self.ReceivePacketInMessages = channel.unary_stream(
+        '/voltha.OpenFlow/ReceivePacketInMessages',
+        request_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_packet_in.FromString,
+        )
+    self.SendPacketOutMessages = channel.unary_unary(
+        '/voltha.OpenFlow/SendPacketOutMessages',
+        request_serializer=openflow__13__pb2.ofp_packet_out.SerializeToString,
+        response_deserializer=openflow__13__pb2.ofp_header.FromString,
+        )
+
+
+class OpenFlowServicer(object):
+
+  def GetHello(self, request, context):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def EchoRequest(self, request, context):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ExperimenterRequest(self, request, context):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetSwitchFeatures(self, request, context):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def GetSwitchConfig(self, request, context):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def SetConfig(self, request, context):
+    """
+    Set Config
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def ReceivePacketInMessages(self, request, context):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+  def SendPacketOutMessages(self, request, context):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+    context.set_details('Method not implemented!')
+    raise NotImplementedError('Method not implemented!')
+
+
+def add_OpenFlowServicer_to_server(servicer, server):
+  rpc_method_handlers = {
+      'GetHello': grpc.unary_unary_rpc_method_handler(
+          servicer.GetHello,
+          request_deserializer=openflow__13__pb2.ofp_hello.FromString,
+          response_serializer=openflow__13__pb2.ofp_hello.SerializeToString,
+      ),
+      'EchoRequest': grpc.unary_unary_rpc_method_handler(
+          servicer.EchoRequest,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+      'ExperimenterRequest': grpc.unary_unary_rpc_method_handler(
+          servicer.ExperimenterRequest,
+          request_deserializer=openflow__13__pb2.ofp_experimenter_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+      ),
+      'GetSwitchFeatures': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSwitchFeatures,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_switch_features.SerializeToString,
+      ),
+      'GetSwitchConfig': grpc.unary_unary_rpc_method_handler(
+          servicer.GetSwitchConfig,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_switch_config.SerializeToString,
+      ),
+      'SetConfig': grpc.unary_unary_rpc_method_handler(
+          servicer.SetConfig,
+          request_deserializer=openflow__13__pb2.ofp_switch_config.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+      'ReceivePacketInMessages': grpc.unary_stream_rpc_method_handler(
+          servicer.ReceivePacketInMessages,
+          request_deserializer=openflow__13__pb2.ofp_header.FromString,
+          response_serializer=openflow__13__pb2.ofp_packet_in.SerializeToString,
+      ),
+      'SendPacketOutMessages': grpc.unary_unary_rpc_method_handler(
+          servicer.SendPacketOutMessages,
+          request_deserializer=openflow__13__pb2.ofp_packet_out.FromString,
+          response_serializer=openflow__13__pb2.ofp_header.SerializeToString,
+      ),
+  }
+  generic_handler = grpc.method_handlers_generic_handler(
+      'voltha.OpenFlow', rpc_method_handlers)
+  server.add_generic_rpc_handlers((generic_handler,))
+
+
+class BetaOpenFlowServicer(object):
+  def GetHello(self, request, context):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def EchoRequest(self, request, context):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ExperimenterRequest(self, request, context):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetSwitchFeatures(self, request, context):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def GetSwitchConfig(self, request, context):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def SetConfig(self, request, context):
+    """
+    Set Config
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def ReceivePacketInMessages(self, request, context):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+  def SendPacketOutMessages(self, request, context):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
+
+
+class BetaOpenFlowStub(object):
+  def GetHello(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Hello message handshake, initiated by the client (controller)
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetHello.future = None
+  def EchoRequest(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Echo request / reply, initiated by the client (controller)
+    TODO http option
+    """
+    raise NotImplementedError()
+  EchoRequest.future = None
+  def ExperimenterRequest(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Experimental (extension) RPC
+    TODO http option
+    """
+    raise NotImplementedError()
+  ExperimenterRequest.future = None
+  def GetSwitchFeatures(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Get Switch Features
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetSwitchFeatures.future = None
+  def GetSwitchConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Get Switch Config
+    TODO http option
+    """
+    raise NotImplementedError()
+  GetSwitchConfig.future = None
+  def SetConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Set Config
+    TODO http option
+    """
+    raise NotImplementedError()
+  SetConfig.future = None
+  def ReceivePacketInMessages(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Receive Packet-In messages
+    TODO http option
+    """
+    raise NotImplementedError()
+  def SendPacketOutMessages(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
+    """
+    Send Packet-Out messages
+    TODO http option
+    """
+    raise NotImplementedError()
+  SendPacketOutMessages.future = None
+
+
+def beta_create_OpenFlow_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
+  request_deserializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.FromString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.FromString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_packet_out.FromString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_switch_config.FromString,
+  }
+  response_serializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_switch_config.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_switch_features.SerializeToString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_packet_in.SerializeToString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_header.SerializeToString,
+  }
+  method_implementations = {
+    ('voltha.OpenFlow', 'EchoRequest'): face_utilities.unary_unary_inline(servicer.EchoRequest),
+    ('voltha.OpenFlow', 'ExperimenterRequest'): face_utilities.unary_unary_inline(servicer.ExperimenterRequest),
+    ('voltha.OpenFlow', 'GetHello'): face_utilities.unary_unary_inline(servicer.GetHello),
+    ('voltha.OpenFlow', 'GetSwitchConfig'): face_utilities.unary_unary_inline(servicer.GetSwitchConfig),
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): face_utilities.unary_unary_inline(servicer.GetSwitchFeatures),
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): face_utilities.unary_stream_inline(servicer.ReceivePacketInMessages),
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): face_utilities.unary_unary_inline(servicer.SendPacketOutMessages),
+    ('voltha.OpenFlow', 'SetConfig'): face_utilities.unary_unary_inline(servicer.SetConfig),
+  }
+  server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
+  return beta_implementations.server(method_implementations, options=server_options)
+
+
+def beta_create_OpenFlow_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
+  request_serializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_header.SerializeToString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_packet_out.SerializeToString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_switch_config.SerializeToString,
+  }
+  response_deserializers = {
+    ('voltha.OpenFlow', 'EchoRequest'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'ExperimenterRequest'): openflow__13__pb2.ofp_experimenter_header.FromString,
+    ('voltha.OpenFlow', 'GetHello'): openflow__13__pb2.ofp_hello.FromString,
+    ('voltha.OpenFlow', 'GetSwitchConfig'): openflow__13__pb2.ofp_switch_config.FromString,
+    ('voltha.OpenFlow', 'GetSwitchFeatures'): openflow__13__pb2.ofp_switch_features.FromString,
+    ('voltha.OpenFlow', 'ReceivePacketInMessages'): openflow__13__pb2.ofp_packet_in.FromString,
+    ('voltha.OpenFlow', 'SendPacketOutMessages'): openflow__13__pb2.ofp_header.FromString,
+    ('voltha.OpenFlow', 'SetConfig'): openflow__13__pb2.ofp_header.FromString,
+  }
+  cardinalities = {
+    'EchoRequest': cardinality.Cardinality.UNARY_UNARY,
+    'ExperimenterRequest': cardinality.Cardinality.UNARY_UNARY,
+    'GetHello': cardinality.Cardinality.UNARY_UNARY,
+    'GetSwitchConfig': cardinality.Cardinality.UNARY_UNARY,
+    'GetSwitchFeatures': cardinality.Cardinality.UNARY_UNARY,
+    'ReceivePacketInMessages': cardinality.Cardinality.UNARY_STREAM,
+    'SendPacketOutMessages': cardinality.Cardinality.UNARY_UNARY,
+    'SetConfig': cardinality.Cardinality.UNARY_UNARY,
+  }
+  stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+  return beta_implementations.dynamic_stub(channel, 'voltha.OpenFlow', cardinalities, options=stub_options)
 # @@protoc_insertion_point(module_scope)
diff --git a/voltha/structlog_setup.py b/voltha/structlog_setup.py
deleted file mode 100644
index d4b2e8e..0000000
--- a/voltha/structlog_setup.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#
-# Copyright 2016 the original author or authors.
-#
-# 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.
-#
-
-"""Setting up proper logging for Voltha"""
-
-import logging
-import logging.config
-from collections import OrderedDict
-
-import structlog
-from structlog.stdlib import BoundLogger, INFO
-
-try:
-    from thread import get_ident as _get_ident
-except ImportError:
-    from dummy_thread import get_ident as _get_ident
-
-
-class FluentRenderer(object):
-    def __call__(self, logger, name, event_dict):
-        # in order to keep structured log data in event_dict to be forwarded as
-        # is to the fluent logger, we need to pass it into the logger framework
-        # as the first positional argument.
-        args = (event_dict, )
-        kwargs = {}
-        return args, kwargs
-
-
-class PlainRenderedOrderedDict(OrderedDict):
-    """Our special version of OrderedDict that renders into string as a dict,
-       to make the log stream output cleaner.
-    """
-    def __repr__(self, _repr_running={}):
-        'od.__repr__() <==> repr(od)'
-        call_key = id(self), _get_ident()
-        if call_key in _repr_running:
-            return '...'
-        _repr_running[call_key] = 1
-        try:
-            if not self:
-                return '{}'
-            return '{%s}' % ", ".join("%s: %s" % (k, v)
-                                      for k, v in self.items())
-        finally:
-            del _repr_running[call_key]
-
-
-def setup_logging(log_config, instance_id, verbosity_adjust=0, fluentd=None):
-    """
-    Set up logging such that:
-    - The primary logging entry method is structlog
-      (see http://structlog.readthedocs.io/en/stable/index.html)
-    - By default, the logging backend is Python standard lib logger
-    - Alternatively, fluentd can be configured with to be the backend,
-      providing direct bridge to a fluent logging agent.
-    """
-
-    def add_exc_info_flag_for_exception(_, name, event_dict):
-        if name == 'exception':
-            event_dict['exc_info'] = True
-        return event_dict
-
-    def add_instance_id(_, __, event_dict):
-        event_dict['instance_id'] = instance_id
-        return event_dict
-
-    # if fluentd is specified, we need to override the config data with
-    # its host and port info
-    if fluentd is not None:
-        fluentd_host = fluentd.split(':')[0].strip()
-        fluentd_port = int(fluentd.split(':')[1].strip())
-
-        handlers = log_config.get('handlers', None)
-        if isinstance(handlers, dict):
-            for _, defs in handlers.iteritems():
-                if isinstance(defs, dict):
-                    if defs.get('class', '').endswith('FluentHandler'):
-                        defs['host'] = fluentd_host
-                        defs['port'] = fluentd_port
-
-    # Configure standard logging
-    logging.config.dictConfig(log_config)
-    logging.root.level -= 10 * verbosity_adjust
-
-    processors = [
-        add_exc_info_flag_for_exception,
-        structlog.processors.StackInfoRenderer(),
-        structlog.processors.format_exc_info,
-        add_instance_id,
-        FluentRenderer(),
-    ]
-    structlog.configure(logger_factory=structlog.stdlib.LoggerFactory(),
-                        context_class=PlainRenderedOrderedDict,
-                        wrapper_class=BoundLogger,
-                        processors=processors)
-
-    # Mark first line of log
-    log = structlog.get_logger()
-    log.info("first-line")
-    return log
diff --git a/voltha/worker.py b/voltha/worker.py
index 69020e5..2e531a4 100644
--- a/voltha/worker.py
+++ b/voltha/worker.py
@@ -20,7 +20,7 @@
 from twisted.internet.base import DelayedCall
 from twisted.internet.defer import inlineCallbacks
 
-from asleep import asleep
+from common.utils.asleep import asleep
 
 
 class Worker(object):
