[ovs-dev] [PATCH 5/6] OF1.5/EXT-334 OXS/Flow Removal -1

satyavalli.rama at gmail.com satyavalli.rama at gmail.com
Wed May 17 17:12:25 UTC 2017


From: SatyaValli <satyavalli.rama at tcs.com>

OXS support for FLOW REMOVED messages

Signed-off-by: Satya Valli <satyavalli.rama at tcs.com> 
Co-authored-by: Harivelam Lavanya <harivelam.lavanya at tcs.com>
---
 include/openflow/openflow-1.5.h | 11 +++++++++++
 include/openvswitch/ofp-msgs.h  |  3 +++
 lib/ox-stat.h                   |  6 ++++++
 3 files changed, 20 insertions(+)

diff --git a/include/openflow/openflow-1.5.h b/include/openflow/openflow-1.5.h
index 3b66f7f..f8a95dd 100644
--- a/include/openflow/openflow-1.5.h
+++ b/include/openflow/openflow-1.5.h
@@ -200,4 +200,15 @@ enum oxs_ofb_stat_fields {
     OFPXST_OFB_BYTE_COUNT = 4,   /* Number of bytes in flow entry.  */
 };
 
+/* Flow removed (datapath -> controller). */
+struct ofp15_flow_removed {
+    ovs_be64 cookie;            /* Opaque controller-issued identifier. */
+    ovs_be16 priority;          /* Priority level of flow entry. */
+    uint8_t reason;             /* One of OFPRR_*. */
+    uint8_t table_id;           /* ID of the table */
+    uint8_t pad2[4];            /* Align to 64-bits. */
+};
+
+OFP_ASSERT(sizeof (struct ofp15_flow_removed) == 16);
+
 #endif /* openflow/openflow-1.5.h */
diff --git a/include/openvswitch/ofp-msgs.h b/include/openvswitch/ofp-msgs.h
index 7d49bc7..3763261 100644
--- a/include/openvswitch/ofp-msgs.h
+++ b/include/openvswitch/ofp-msgs.h
@@ -163,6 +163,8 @@ enum ofpraw {
     OFPRAW_OFPT10_FLOW_REMOVED,
     /* OFPT 1.1+ (11): struct ofp11_flow_removed, uint8_t[8][]. */
     OFPRAW_OFPT11_FLOW_REMOVED,
+    /* OFPT 1.5+ (35): struct ofp15_flow_removed,uint8_t[8][]. */
+    OFPRAW_OFPT15_FLOW_REMOVED,
     /* NXT 1.0+ (14): struct nx_flow_removed, uint8_t[8][]. */
     OFPRAW_NXT_FLOW_REMOVED,
 
@@ -561,6 +563,7 @@ enum ofptype {
                                   * OFPRAW_NXT_PACKET_IN. */
     OFPTYPE_FLOW_REMOVED,        /* OFPRAW_OFPT10_FLOW_REMOVED.
                                   * OFPRAW_OFPT11_FLOW_REMOVED.
+                                  * OFPRAW_OFPT15_FLOW_REMOVED.
                                   * OFPRAW_NXT_FLOW_REMOVED. */
     OFPTYPE_PORT_STATUS,         /* OFPRAW_OFPT10_PORT_STATUS.
                                   * OFPRAW_OFPT11_PORT_STATUS.
diff --git a/lib/ox-stat.h b/lib/ox-stat.h
index 3ff7f07..826bbe4 100644
--- a/lib/ox-stat.h
+++ b/lib/ox-stat.h
@@ -33,4 +33,10 @@ int oxs_pull_stat(struct ofpbuf *,struct ofputil_flow_stats *,
 int oxs_put_agg_stat(struct ofpbuf *, const struct ofputil_aggregate_stats *,
                      enum ofp_version);
 int oxs_pull_agg_stat(struct ofpbuf , struct ofputil_aggregate_stats *);
+int oxs_flow_removed_stat_put(struct ofpbuf *b,
+                              const struct ofputil_flow_removed *fr,
+                              enum ofp_version version);
+int oxs_flow_removed_stat_pull(struct ofpbuf *b,
+                               struct ofputil_flow_removed *ofr);
+
 #endif /* ox_stat.h */
-- 
1.9.1



More information about the dev mailing list