[ovs-dev] [PATCH 05/17] connmgr: connmgr_destroy(): Paramatise Open Flow version

Simon Horman horms at verge.net.au
Thu Oct 4 02:41:20 UTC 2012


Signed-off-by: Simon Horman <horms at verge.net.au>
---
 ofproto/connmgr.c |    9 +++++----
 ofproto/connmgr.h |    3 ++-
 ofproto/ofproto.c |    6 +++---
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
index 4a2600a..e588bac 100644
--- a/ofproto/connmgr.c
+++ b/ofproto/connmgr.c
@@ -260,7 +260,8 @@ connmgr_destroy(struct connmgr *mgr)
  * other activities that could affect the flow table (in-band processing,
  * fail-open processing) are suppressed too. */
 void
-connmgr_run(struct connmgr *mgr,
+connmgr_run(struct connmgr *mgr, enum ofp_version min_version,
+            enum ofp_version max_version,
             bool (*handle_openflow)(struct ofconn *, struct ofpbuf *ofp_msg))
 {
     struct ofconn *ofconn, *next_ofconn;
@@ -289,8 +290,8 @@ connmgr_run(struct connmgr *mgr,
         struct vconn *vconn;
         int retval;
 
-        retval = pvconn_accept(ofservice->pvconn, OFP10_VERSION,
-                               OFP10_VERSION, &vconn);
+        retval = pvconn_accept(ofservice->pvconn, min_version,
+                               max_version, &vconn);
         if (!retval) {
             struct rconn *rconn;
             char *name;
@@ -314,7 +315,7 @@ connmgr_run(struct connmgr *mgr,
         struct vconn *vconn;
         int retval;
 
-        retval = pvconn_accept(mgr->snoops[i], OFP10_VERSION, OFP10_VERSION,
+        retval = pvconn_accept(mgr->snoops[i], min_version, max_version,
                                &vconn);
         if (!retval) {
             add_snooper(mgr, vconn);
diff --git a/ofproto/connmgr.h b/ofproto/connmgr.h
index 9a080f2..c4aff0e 100644
--- a/ofproto/connmgr.h
+++ b/ofproto/connmgr.h
@@ -69,7 +69,8 @@ struct connmgr *connmgr_create(struct ofproto *ofproto,
                                const char *dpif_name, const char *local_name);
 void connmgr_destroy(struct connmgr *);
 
-void connmgr_run(struct connmgr *,
+void connmgr_run(struct connmgr *, enum ofp_version min_version,
+                 enum ofp_version max_version,
                  bool (*handle_openflow)(struct ofconn *,
                                          struct ofpbuf *ofp_msg));
 void connmgr_wait(struct connmgr *, bool handling_openflow);
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 52203fd..83c6125 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -1107,11 +1107,11 @@ ofproto_run(struct ofproto *p)
 
     switch (p->state) {
     case S_OPENFLOW:
-        connmgr_run(p->connmgr, handle_openflow);
+        connmgr_run(p->connmgr, OFP10_VERSION, OFP10_VERSION, handle_openflow);
         break;
 
     case S_EVICT:
-        connmgr_run(p->connmgr, NULL);
+        connmgr_run(p->connmgr, OFP10_VERSION, OFP10_VERSION, NULL);
         ofproto_evict(p);
         if (list_is_empty(&p->pending) && hmap_is_empty(&p->deletions)) {
             p->state = S_OPENFLOW;
@@ -1119,7 +1119,7 @@ ofproto_run(struct ofproto *p)
         break;
 
     case S_FLUSH:
-        connmgr_run(p->connmgr, NULL);
+        connmgr_run(p->connmgr, OFP10_VERSION, OFP10_VERSION, NULL);
         ofproto_flush__(p);
         if (list_is_empty(&p->pending) && hmap_is_empty(&p->deletions)) {
             connmgr_flushed(p->connmgr);
-- 
1.7.10.4




More information about the dev mailing list