Begin breaking openflow-1.0.h into common and version-specific definitions.
authorBen Pfaff <blp@nicira.com>
Wed, 7 Dec 2011 06:33:49 +0000 (22:33 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 7 Mar 2012 22:05:04 +0000 (14:05 -0800)
The intention is that, as each OpenFlow 1.1 and 1.2 feature is added to Open
vSwitch, the corresponding protocol definitions will be broken up this way:

  - Definitions that are the same in OF1.0 and OF1.1 will retain the "OFP"
    or "ofp" prefix and move to openflow-common.h.

  - Definitions that are specific to OF1.0 will be renamed with an "OFP10"
    or "ofp10" prefix and stay in openflow-1.0.h.

  - Definitions that are specific to OF1.1 or to OF1.1 and OF1.2 will be
    renamed with an "OFP11" or "ofp11" prefix and move to openflow-1.1.h.

  - Definitions that are specific to OF1.2 will be renamed with an "OFP12"
    or "ofp12" prefix and move to openflow-1.2.h.

This commit starts this process with some basic OpenFlow definitions.

Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
14 files changed:
include/openflow/automake.mk
include/openflow/openflow-1.0.h
include/openflow/openflow-1.1.h [new file with mode: 0644]
include/openflow/openflow-common.h [new file with mode: 0644]
include/openflow/openflow.h
lib/ofp-util.c
lib/rconn.c
lib/stream.c
lib/vconn.c
ofproto/connmgr.c
tests/test-vconn.c
utilities/ovs-controller.c
utilities/ovs-ofctl.c
vswitchd/ovs-vswitchd.c

index 70cd520d3f06a5b26b82c907a84a122a6745299c..f037a2b981cb43884e774a10d2220b3bd1172a46 100644 (file)
@@ -1,6 +1,8 @@
 noinst_HEADERS += \
        include/openflow/nicira-ext.h \
        include/openflow/openflow-1.0.h \
+       include/openflow/openflow-1.1.h \
+       include/openflow/openflow-common.h \
        include/openflow/openflow.h
 
 if HAVE_PYTHON
@@ -11,15 +13,19 @@ SUFFIXES += .h .hstamp
        touch $@
 
 HSTAMP_FILES = \
-       include/openflow/openflow.hstamp \
+       include/openflow/nicira.hstamp \
        include/openflow/openflow-1.0.hstamp \
-       include/openflow/nicira.hstamp
+       include/openflow/openflow-1.1.hstamp \
+       include/openflow/openflow.hstamp
 ALL_LOCAL += $(HSTAMP_FILES)
 $(HSTAMP_FILES): build-aux/check-structs
 
-include/openflow/openflow-1.0.hstamp: include/openflow/openflow.h
+include/openflow/openflow-1.0.hstamp: include/openflow/openflow-common.h
+include/openflow/openflow-1.1.hstamp: include/openflow/openflow-common.h
 include/openflow/nicira-ext.hstamp: \
        include/openflow/openflow-1.0.h \
+       include/openflow/openflow-1.1.h \
+       include/openflow/openflow-common.h \
        include/openflow/openflow.h
 endif
 
index d86243f950d9acf8bab70fa1b10d6915cdbeeb07..7cc53831e1619f10fb9cea75023d9ca7c44a4506 100644 (file)
 #ifndef OPENFLOW_OPENFLOW10_H
 #define OPENFLOW_OPENFLOW10_H 1
 
-#include "openvswitch/types.h"
-
-#ifdef SWIG
-#define OFP_ASSERT(EXPR)        /* SWIG can't handle OFP_ASSERT. */
-#elif !defined(__cplusplus)
-/* Build-time assertion for use in a declaration context. */
-#define OFP_ASSERT(EXPR)                                                \
-        extern int (*build_assert(void))[ sizeof(struct {               \
-                    unsigned int build_assert_failed : (EXPR) ? 1 : -1; })]
-#else /* __cplusplus */
-#include <boost/static_assert.hpp>
-#define OFP_ASSERT BOOST_STATIC_ASSERT
-#endif /* __cplusplus */
-
-/* Version number:
- * Non-experimental versions released: 0x01
- * Experimental versions released: 0x81 -- 0x99
- */
-/* The most significant bit being set in the version field indicates an
- * experimental OpenFlow version.
- */
-#define OFP_VERSION   0x01
-#define OFP10_VERSION 0x01
-
-#define OFP_MAX_TABLE_NAME_LEN 32
-#define OFP_MAX_PORT_NAME_LEN  16
-
-#define OFP_TCP_PORT  6633
-#define OFP_SSL_PORT  6633
-
-#define OFP_ETH_ALEN 6          /* Bytes in an Ethernet address. */
+#include "openflow/openflow-common.h"
 
 /* Port numbering.  Physical ports are numbered starting from 1. */
 enum ofp_port {
@@ -113,7 +83,7 @@ enum ofp_type {
 
 /* Header on all OpenFlow packets. */
 struct ofp_header {
-    uint8_t version;    /* OFP_VERSION. */
+    uint8_t version;    /* An OpenFlow version number, e.g. OFP10_VERSION. */
     uint8_t type;       /* One of the OFPT_ constants. */
     ovs_be16 length;    /* Length including this ofp_header. */
     ovs_be32 xid;       /* Transaction id associated with this packet.
diff --git a/include/openflow/openflow-1.1.h b/include/openflow/openflow-1.1.h
new file mode 100644 (file)
index 0000000..8b407e3
--- /dev/null
@@ -0,0 +1,59 @@
+/* Copyright (c) 2008, 2011 The Board of Trustees of The Leland Stanford
+ * Junior University
+ *
+ * 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.
+ */
+
+/*
+ * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
+ *
+ * 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.
+ */
+
+/* OpenFlow: protocol between controller and datapath. */
+
+#ifndef OPENFLOW_11_H
+#define OPENFLOW_11_H 1
+
+#include "openflow/openflow-common.h"
+
+/* Nothing here yet. */
+
+#endif /* openflow/openflow-1.1.h */
diff --git a/include/openflow/openflow-common.h b/include/openflow/openflow-common.h
new file mode 100644 (file)
index 0000000..9163efd
--- /dev/null
@@ -0,0 +1,85 @@
+/* Copyright (c) 2008, 2011 The Board of Trustees of The Leland Stanford
+ * Junior University
+ *
+ * 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.
+ */
+
+/*
+ * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
+ *
+ * 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.
+ */
+
+#ifndef OPENFLOW_COMMON_H
+#define OPENFLOW_COMMON_H 1
+
+#include "openvswitch/types.h"
+
+#ifdef SWIG
+#define OFP_ASSERT(EXPR)        /* SWIG can't handle OFP_ASSERT. */
+#elif !defined(__cplusplus)
+/* Build-time assertion for use in a declaration context. */
+#define OFP_ASSERT(EXPR)                                                \
+        extern int (*build_assert(void))[ sizeof(struct {               \
+                    unsigned int build_assert_failed : (EXPR) ? 1 : -1; })]
+#else /* __cplusplus */
+#include <boost/static_assert.hpp>
+#define OFP_ASSERT BOOST_STATIC_ASSERT
+#endif /* __cplusplus */
+
+/* Version number:
+ * Non-experimental versions released: 0x01 0x02
+ * Experimental versions released: 0x81 -- 0x99
+ */
+/* The most significant bit being set in the version field indicates an
+ * experimental OpenFlow version.
+ */
+#define OFP10_VERSION   0x01
+#define OFP11_VERSION   0x02
+
+#define OFP_MAX_TABLE_NAME_LEN 32
+#define OFP_MAX_PORT_NAME_LEN  16
+
+#define OFP_TCP_PORT  6633
+#define OFP_SSL_PORT  6633
+
+#define OFP_ETH_ALEN 6          /* Bytes in an Ethernet address. */
+
+#endif /* openflow/openflow-common.h */
index 1c02da398b8957d8a093a2ef69d7dcb468cb55e5..769a0ad7719bc6990e04fd6c730f9a8c12eaf64e 100644 (file)
@@ -18,5 +18,6 @@
 #define OPENFLOW_OPENFLOW_H 1
 
 #include "openflow/openflow-1.0.h"
+#include "openflow/openflow-1.1.h"
 
 #endif /* openflow/openflow.h */
index acddf3cc2d4f795a3135367e37a0f58b7156d1f6..db954220cff237a5f42186541f55ad8377a226fd 100644 (file)
@@ -869,7 +869,7 @@ enum ofputil_protocol
 ofputil_protocol_from_ofp_version(int version)
 {
     switch (version) {
-    case OFP_VERSION: return OFPUTIL_P_OF10;
+    case OFP10_VERSION: return OFPUTIL_P_OF10;
     default: return 0;
     }
 }
@@ -2094,7 +2094,7 @@ ofputil_encode_packet_in(const struct ofputil_packet_in *pin,
 
         packet = ofpbuf_new(send_len + header_len);
         opi = ofpbuf_put_zeros(packet, header_len);
-        opi->header.version = OFP_VERSION;
+        opi->header.version = OFP10_VERSION;
         opi->header.type = OFPT_PACKET_IN;
         opi->total_len = htons(pin->total_len);
         opi->in_port = htons(pin->fmd.in_port);
@@ -2131,7 +2131,7 @@ ofputil_encode_packet_in(const struct ofputil_packet_in *pin,
         ofpbuf_put(packet, pin->packet, send_len);
 
         npi = packet->data;
-        npi->nxh.header.version = OFP_VERSION;
+        npi->nxh.header.version = OFP10_VERSION;
         npi->nxh.header.type = OFPT_VENDOR;
         npi->nxh.vendor = htonl(NX_VENDOR_ID);
         npi->nxh.subtype = htonl(NXT_PACKET_IN);
@@ -2352,7 +2352,7 @@ put_openflow_xid(size_t openflow_len, uint8_t type, ovs_be32 xid,
     assert(openflow_len <= UINT16_MAX);
 
     oh = ofpbuf_put_uninit(buffer, openflow_len);
-    oh->version = OFP_VERSION;
+    oh->version = OFP10_VERSION;
     oh->type = type;
     oh->length = htons(openflow_len);
     oh->xid = xid;
@@ -2557,7 +2557,7 @@ make_flow_mod(uint16_t command, const struct cls_rule *rule,
     size_t size = sizeof *ofm + actions_len;
     struct ofpbuf *out = ofpbuf_new(size);
     ofm = ofpbuf_put_zeros(out, sizeof *ofm);
-    ofm->header.version = OFP_VERSION;
+    ofm->header.version = OFP10_VERSION;
     ofm->header.type = OFPT_FLOW_MOD;
     ofm->header.length = htons(size);
     ofm->cookie = 0;
@@ -2634,7 +2634,7 @@ make_echo_request(void)
     struct ofp_header *rq;
     struct ofpbuf *out = ofpbuf_new(sizeof *rq);
     rq = ofpbuf_put_uninit(out, sizeof *rq);
-    rq->version = OFP_VERSION;
+    rq->version = OFP10_VERSION;
     rq->type = OFPT_ECHO_REQUEST;
     rq->length = htons(sizeof *rq);
     rq->xid = htonl(0);
index 072e1ad824a05fe4f639351c4d51c5c0ef012425..f6d85a7bdd43f74d35b224963ff6b92d7668e31e 100644 (file)
@@ -335,7 +335,7 @@ reconnect(struct rconn *rc)
         VLOG_INFO("%s: connecting...", rc->name);
     }
     rc->n_attempted_connections++;
-    retval = vconn_open(rc->target, OFP_VERSION, &rc->vconn);
+    retval = vconn_open(rc->target, OFP10_VERSION, &rc->vconn);
     if (!retval) {
         rc->remote_ip = vconn_get_remote_ip(rc->vconn);
         rc->local_ip = vconn_get_local_ip(rc->vconn);
index 4c3583c4fa8663b85a894e79dc06d35588dbebc5..066de4e8772488697e8b87509f99c268df03ab8d 100644 (file)
@@ -757,7 +757,7 @@ stream_guess_content(const uint8_t *data, ssize_t size)
             return STREAM_SSL;
         case PAIR('{', '"'):
             return STREAM_JSONRPC;
-        case PAIR(OFP_VERSION, OFPT_HELLO):
+        case PAIR(OFP10_VERSION, OFPT_HELLO):
             return STREAM_OPENFLOW;
         }
     }
index 93d6388cf44c3ce6622cecdfdf3f4a5b9f7caf92..f0be46a3da9cccd27241dd2f5abe0de9ef1cd837 100644 (file)
@@ -213,7 +213,7 @@ vconn_verify_name(const char *name)
  *
  * The vconn will automatically negotiate an OpenFlow protocol version
  * acceptable to both peers on the connection.  The version negotiated will be
- * no lower than 'min_version' and no higher than OFP_VERSION.
+ * no lower than 'min_version' and no higher than OFP10_VERSION.
  *
  * Returns 0 if successful, otherwise a positive errno value.  If successful,
  * stores a pointer to the new connection in '*vconnp', otherwise a null
@@ -415,13 +415,13 @@ vcs_recv_hello(struct vconn *vconn)
                 ds_destroy(&msg);
             }
 
-            vconn->version = MIN(OFP_VERSION, oh->version);
+            vconn->version = MIN(OFP10_VERSION, oh->version);
             if (vconn->version < vconn->min_version) {
                 VLOG_WARN_RL(&bad_ofmsg_rl,
                              "%s: version negotiation failed: we support "
                              "versions 0x%02x to 0x%02x inclusive but peer "
                              "supports no later than version 0x%02"PRIx8,
-                             vconn->name, vconn->min_version, OFP_VERSION,
+                             vconn->name, vconn->min_version, OFP10_VERSION,
                              oh->version);
                 vconn->state = VCS_SEND_ERROR;
             } else {
@@ -429,7 +429,7 @@ vcs_recv_hello(struct vconn *vconn)
                          "(we support versions 0x%02x to 0x%02x inclusive, "
                          "peer no later than version 0x%02"PRIx8")",
                          vconn->name, vconn->version, vconn->min_version,
-                         OFP_VERSION, oh->version);
+                         OFP10_VERSION, oh->version);
                 vconn->state = VCS_CONNECTED;
             }
             ofpbuf_delete(b);
@@ -460,7 +460,7 @@ vcs_send_error(struct vconn *vconn)
 
     snprintf(s, sizeof s, "We support versions 0x%02x to 0x%02x inclusive but "
              "you support no later than version 0x%02"PRIx8".",
-             vconn->min_version, OFP_VERSION, vconn->version);
+             vconn->min_version, OFP10_VERSION, vconn->version);
     b = ofperr_encode_hello(OFPERR_OFPHFC_INCOMPATIBLE,
                             ofperr_domain_from_version(vconn->version), s);
     retval = do_send(vconn, b);
@@ -956,7 +956,7 @@ pvconn_close(struct pvconn *pvconn)
  *
  * The new vconn will automatically negotiate an OpenFlow protocol version
  * acceptable to both peers on the connection.  The version negotiated will be
- * no lower than 'min_version' and no higher than OFP_VERSION.
+ * no lower than 'min_version' and no higher than OFP10_VERSION.
  *
  * pvconn_accept() will not block waiting for a connection.  If no connection
  * is ready to be accepted, it returns EAGAIN immediately. */
index a94f2916e0e742f58a9dbc497707f57eb6fe8aa6..b01a471830e30b294ca8c524fae4cdbf3eea1542 100644 (file)
@@ -275,7 +275,7 @@ connmgr_run(struct connmgr *mgr,
         struct vconn *vconn;
         int retval;
 
-        retval = pvconn_accept(ofservice->pvconn, OFP_VERSION, &vconn);
+        retval = pvconn_accept(ofservice->pvconn, OFP10_VERSION, &vconn);
         if (!retval) {
             struct rconn *rconn;
             char *name;
@@ -298,7 +298,7 @@ connmgr_run(struct connmgr *mgr,
         struct vconn *vconn;
         int retval;
 
-        retval = pvconn_accept(mgr->snoops[i], OFP_VERSION, &vconn);
+        retval = pvconn_accept(mgr->snoops[i], OFP10_VERSION, &vconn);
         if (!retval) {
             add_snooper(mgr, vconn);
         } else if (retval != EAGAIN) {
index 42940c302ce8f7d839cb291918e318f243cd518e..8dfc1e43708e3421d7b5f72f0f0b57a3c9304305 100644 (file)
@@ -147,7 +147,7 @@ test_refuse_connection(int argc OVS_UNUSED, char *argv[])
                       : EPROTO);
 
     fpv_create(type, &fpv);
-    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP_VERSION, &vconn), 0);
+    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP10_VERSION, &vconn), 0);
     fpv_close(&fpv);
     vconn_run(vconn);
     CHECK_ERRNO(vconn_connect(vconn), expected_error);
@@ -171,7 +171,7 @@ test_accept_then_close(int argc OVS_UNUSED, char *argv[])
                       : EPROTO);
 
     fpv_create(type, &fpv);
-    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP_VERSION, &vconn), 0);
+    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP10_VERSION, &vconn), 0);
     vconn_run(vconn);
     stream_close(fpv_accept(&fpv));
     fpv_close(&fpv);
@@ -192,7 +192,7 @@ test_read_hello(int argc OVS_UNUSED, char *argv[])
     struct stream *stream;
 
     fpv_create(type, &fpv);
-    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP_VERSION, &vconn), 0);
+    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP10_VERSION, &vconn), 0);
     vconn_run(vconn);
     stream = fpv_accept(&fpv);
     fpv_destroy(&fpv);
@@ -202,7 +202,7 @@ test_read_hello(int argc OVS_UNUSED, char *argv[])
 
        retval = stream_recv(stream, &hello, sizeof hello);
        if (retval == sizeof hello) {
-           CHECK(hello.version, OFP_VERSION);
+           CHECK(hello.version, OFP10_VERSION);
            CHECK(hello.type, OFPT_HELLO);
            CHECK(ntohs(hello.length), sizeof hello);
            break;
@@ -238,7 +238,7 @@ test_send_hello(const char *type, const void *out, size_t out_size,
     size_t n_sent;
 
     fpv_create(type, &fpv);
-    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP_VERSION, &vconn), 0);
+    CHECK_ERRNO(vconn_open(fpv.vconn_name, OFP10_VERSION, &vconn), 0);
     vconn_run(vconn);
     stream = fpv_accept(&fpv);
     fpv_destroy(&fpv);
@@ -268,7 +268,7 @@ test_send_hello(const char *type, const void *out, size_t out_size,
            struct ofp_header hello;
            int retval = stream_recv(stream, &hello, sizeof hello);
            if (retval == sizeof hello) {
-               CHECK(hello.version, OFP_VERSION);
+               CHECK(hello.version, OFP10_VERSION);
                CHECK(hello.type, OFPT_HELLO);
                CHECK(ntohs(hello.length), sizeof hello);
                read_hello = true;
@@ -318,7 +318,7 @@ test_send_plain_hello(int argc OVS_UNUSED, char *argv[])
     const char *type = argv[1];
     struct ofp_header hello;
 
-    hello.version = OFP_VERSION;
+    hello.version = OFP10_VERSION;
     hello.type = OFPT_HELLO;
     hello.length = htons(sizeof hello);
     hello.xid = htonl(0x12345678);
@@ -335,7 +335,7 @@ test_send_long_hello(int argc OVS_UNUSED, char *argv[])
     struct ofp_header hello;
     char buffer[sizeof hello * 2];
 
-    hello.version = OFP_VERSION;
+    hello.version = OFP10_VERSION;
     hello.type = OFPT_HELLO;
     hello.length = htons(sizeof buffer);
     hello.xid = htonl(0x12345678);
@@ -352,7 +352,7 @@ test_send_echo_hello(int argc OVS_UNUSED, char *argv[])
     const char *type = argv[1];
     struct ofp_header echo;
 
-    echo.version = OFP_VERSION;
+    echo.version = OFP10_VERSION;
     echo.type = OFPT_ECHO_REQUEST;
     echo.length = htons(sizeof echo);
     echo.xid = htonl(0x89abcdef);
@@ -379,7 +379,7 @@ test_send_invalid_version_hello(int argc OVS_UNUSED, char *argv[])
     const char *type = argv[1];
     struct ofp_header hello;
 
-    hello.version = OFP_VERSION - 1;
+    hello.version = OFP10_VERSION - 1;
     hello.type = OFPT_HELLO;
     hello.length = htons(sizeof hello);
     hello.xid = htonl(0x12345678);
index 25deaffd9e5b43ad29652026e5fc30311c389036..da9b17d00f86354bb7b3d25fab781d1e5038c433 100644 (file)
@@ -115,7 +115,7 @@ main(int argc, char *argv[])
         const char *name = argv[i];
         struct vconn *vconn;
 
-        retval = vconn_open(name, OFP_VERSION, &vconn);
+        retval = vconn_open(name, OFP10_VERSION, &vconn);
         if (!retval) {
             if (n_switches >= MAX_SWITCHES) {
                 ovs_fatal(0, "max %d switch connections", n_switches);
@@ -156,7 +156,7 @@ main(int argc, char *argv[])
         for (i = 0; i < n_listeners && n_switches < MAX_SWITCHES; ) {
             struct vconn *new_vconn;
 
-            retval = pvconn_accept(listeners[i], OFP_VERSION, &new_vconn);
+            retval = pvconn_accept(listeners[i], OFP10_VERSION, &new_vconn);
             if (!retval || retval == EAGAIN) {
                 if (!retval) {
                     new_switch(&switches[n_switches++], new_vconn);
@@ -376,7 +376,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            ovs_print_version(OFP_VERSION, OFP_VERSION);
+            ovs_print_version(OFP10_VERSION, OFP10_VERSION);
             exit(EXIT_SUCCESS);
 
         VLOG_OPTION_HANDLERS
index 7936c1182c46c8a1111616511871afe87d42d81b..3a2fca976602e06b22946f7059bfd05840953a90 100644 (file)
@@ -168,7 +168,7 @@ parse_options(int argc, char *argv[])
             usage();
 
         case 'V':
-            ovs_print_version(OFP_VERSION, OFP_VERSION);
+            ovs_print_version(OFP10_VERSION, OFP10_VERSION);
             exit(EXIT_SUCCESS);
 
         case OPT_STRICT:
@@ -277,7 +277,7 @@ open_vconn_socket(const char *name, struct vconn **vconnp)
 {
     char *vconn_name = xasprintf("unix:%s", name);
     VLOG_DBG("connecting to %s", vconn_name);
-    run(vconn_open_block(vconn_name, OFP_VERSION, vconnp),
+    run(vconn_open_block(vconn_name, OFP10_VERSION, vconnp),
         "connecting to %s", vconn_name);
     free(vconn_name);
 }
@@ -301,7 +301,7 @@ open_vconn__(const char *name, const char *default_suffix,
     free(datapath_type);
 
     if (strchr(name, ':')) {
-        run(vconn_open_block(name, OFP_VERSION, vconnp),
+        run(vconn_open_block(name, OFP10_VERSION, vconnp),
             "connecting to %s", name);
     } else if (!stat(name, &s) && S_ISSOCK(s.st_mode)) {
         open_vconn_socket(name, vconnp);
index 76dc52bb531b9278cd86273c2d3f823a4cca30fb..22a26c1cc7d643a2eee9bd99eb85c081a1eb8dca 100644 (file)
@@ -159,7 +159,7 @@ parse_options(int argc, char *argv[], char **unixctl_pathp)
             usage();
 
         case 'V':
-            ovs_print_version(OFP_VERSION, OFP_VERSION);
+            ovs_print_version(OFP10_VERSION, OFP10_VERSION);
             exit(EXIT_SUCCESS);
 
         case OPT_MLOCKALL: