datapath: Add NULL check for mask pointer.
[cascardo/ovs.git] / lib / ofp-util.h
index 63e1fd5..ce6045b 100644 (file)
@@ -110,7 +110,11 @@ enum ofputil_protocol {
     OFPUTIL_P_OF12_OXM      = 1 << 5,
     OFPUTIL_P_OF13_OXM      = 1 << 6,
     OFPUTIL_P_OF14_OXM      = 1 << 7,
-#define OFPUTIL_P_ANY_OXM (OFPUTIL_P_OF12_OXM | OFPUTIL_P_OF13_OXM | OFPUTIL_P_OF14_OXM)
+    OFPUTIL_P_OF15_OXM      = 1 << 8,
+#define OFPUTIL_P_ANY_OXM (OFPUTIL_P_OF12_OXM | \
+                           OFPUTIL_P_OF13_OXM | \
+                           OFPUTIL_P_OF14_OXM | \
+                           OFPUTIL_P_OF15_OXM)
 
 #define OFPUTIL_P_NXM_OF11_UP (OFPUTIL_P_OF10_NXM_ANY | OFPUTIL_P_OF11_STD | \
                                OFPUTIL_P_ANY_OXM)
@@ -121,10 +125,11 @@ enum ofputil_protocol {
 
 #define OFPUTIL_P_OF12_UP (OFPUTIL_P_OF12_OXM | OFPUTIL_P_OF13_UP)
 #define OFPUTIL_P_OF13_UP (OFPUTIL_P_OF13_OXM | OFPUTIL_P_OF14_UP)
-#define OFPUTIL_P_OF14_UP OFPUTIL_P_OF14_OXM
+#define OFPUTIL_P_OF14_UP (OFPUTIL_P_OF14_OXM | OFPUTIL_P_OF15_UP)
+#define OFPUTIL_P_OF15_UP OFPUTIL_P_OF15_OXM
 
     /* All protocols. */
-#define OFPUTIL_P_ANY ((1 << 8) - 1)
+#define OFPUTIL_P_ANY ((1 << 9) - 1)
 
     /* Protocols in which a specific table may be specified in flow_mods. */
 #define OFPUTIL_P_TID (OFPUTIL_P_OF10_STD_TID | \
@@ -165,6 +170,8 @@ void ofputil_format_version_name(struct ds *, enum ofp_version);
 void ofputil_format_version_bitmap(struct ds *msg, uint32_t bitmap);
 void ofputil_format_version_bitmap_names(struct ds *msg, uint32_t bitmap);
 
+enum ofp_version ofputil_version_from_string(const char *s);
+
 uint32_t ofputil_protocols_to_version_bitmap(enum ofputil_protocol);
 enum ofputil_protocol ofputil_protocols_from_version_bitmap(uint32_t bitmap);
 
@@ -870,7 +877,12 @@ void ofputil_append_flow_update(const struct ofputil_flow_update *,
 uint32_t ofputil_decode_flow_monitor_cancel(const struct ofp_header *);
 struct ofpbuf *ofputil_encode_flow_monitor_cancel(uint32_t id);
 
-/* Encoding OpenFlow stats messages. */
+/* Port desc stats requests and replies. */
+enum ofperr ofputil_decode_port_desc_stats_request(const struct ofp_header *,
+                                                   ofp_port_t *portp);
+struct ofpbuf *ofputil_encode_port_desc_stats_request(
+    enum ofp_version ofp_version, ofp_port_t);
+
 void ofputil_append_port_desc_stats_reply(const struct ofputil_phy_port *pp,
                                           struct list *replies);
 
@@ -1125,13 +1137,16 @@ enum ofperr ofputil_decode_group_mod(const struct ofp_header *,
 int ofputil_decode_group_stats_reply(struct ofpbuf *,
                                      struct ofputil_group_stats *);
 
+uint32_t ofputil_decode_group_desc_request(const struct ofp_header *);
+struct ofpbuf *ofputil_encode_group_desc_request(enum ofp_version,
+                                                 uint32_t group_id);
+
 int ofputil_decode_group_desc_reply(struct ofputil_group_desc *,
                                     struct ofpbuf *, enum ofp_version);
 
 void ofputil_append_group_desc_reply(const struct ofputil_group_desc *,
                                      struct list *buckets,
                                      struct list *replies);
-struct ofpbuf *ofputil_encode_group_desc_request(enum ofp_version);
 
 struct ofputil_bundle_ctrl_msg {
     uint32_t    bundle_id;