This is in preparation for supporting EXT-187: flow entry notification
extension (ONF flow monitor).

Signed-off-by: Simon Horman <ho...@verge.net.au>

---
v2
* First post
---
 lib/ofp-msgs.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/lib/ofp-msgs.c b/lib/ofp-msgs.c
index 99c7e01..27ac1b2 100644
--- a/lib/ofp-msgs.c
+++ b/lib/ofp-msgs.c
@@ -677,11 +677,19 @@ ofpraw_put__(enum ofpraw raw, uint8_t version, ovs_be32 
xid,
     oh->xid = xid;
 
     if (hdrs->type == OFPT_VENDOR) {
-        struct nicira_header *nh = buf->frame;
+        if (version >= OFP13_VERSION && hdrs->vendor == ONF_VENDOR_ID) {
+            struct onf13_experimenter_header *onfeh = buf->frame;
 
-        ovs_assert(hdrs->vendor == NX_VENDOR_ID);
-        nh->vendor = htonl(hdrs->vendor);
-        nh->subtype = htonl(hdrs->subtype);
+            onfeh->vendor = htonl(hdrs->vendor);
+            onfeh->subtype = htonl(hdrs->subtype);
+        } else if (hdrs->vendor == NX_VENDOR_ID) {
+            struct nicira_header *nh = buf->frame;
+
+            nh->vendor = htonl(hdrs->vendor);
+            nh->subtype = htonl(hdrs->subtype);
+        } else {
+            OVS_NOT_REACHED();
+        }
     } else if (version == OFP10_VERSION
                && (hdrs->type == OFPT10_STATS_REQUEST ||
                    hdrs->type == OFPT10_STATS_REPLY)) {
@@ -716,7 +724,11 @@ ofpraw_put__(enum ofpraw raw, uint8_t version, ovs_be32 
xid,
             struct ofp11_vendor_stats_msg *ovsm = buf->frame;
 
             ovsm->vendor = htonl(hdrs->vendor);
-            if (hdrs->vendor == NX_VENDOR_ID) {
+            if (version >= OFP13_VERSION && hdrs->vendor == ONF_VENDOR_ID) {
+                struct onf13_experimenter_multipart_msg *onfemm = buf->frame;
+
+                onfemm->mp_type = htonl(hdrs->subtype);
+            } else if (hdrs->vendor == NX_VENDOR_ID) {
                 struct nicira11_stats_msg *nsm = buf->frame;
 
                 nsm->subtype = htonl(hdrs->subtype);
-- 
2.0.0.rc2

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to