nx-match: Move all knowledge of OXM/NXM here.
[cascardo/ovs.git] / lib / meta-flow.h
index 2dd087a..7cdacca 100644 (file)
@@ -1448,39 +1448,6 @@ struct mf_field {
     enum mf_prereqs prereqs;
     bool writable;              /* May be written by actions? */
 
-    /* NXM and OXM properties.
-     *
-     * There are the following possibilities for these members for a given
-     * mf_field:
-     *
-     *   - Neither NXM nor OXM defines such a field: these members will all be
-     *     zero or NULL.
-     *
-     *   - NXM and OXM both define such a field: nxm_header and oxm_header will
-     *     both be nonzero and different, similarly for nxm_name and oxm_name.
-     *     In this case, 'oxm_version' is significant: if it is greater than
-     *     OFP12_VERSION, then only that version of OpenFlow introduced this
-     *     OXM header, so ovs-vswitchd should send 'nxm_header' instead with
-     *     earlier protocol versions to avoid confusing controllers that were
-     *     using a previous Open vSwitch extension.
-     *
-     *   - Only NXM or only OXM defines such a field: nxm_header and oxm_header
-     *     will both have the same value (either an OXM_* or NXM_* value) and
-     *     similarly for nxm_name and oxm_name.
-     *
-     * Thus, 'nxm_header' is the appropriate header to use when outputting an
-     * NXM formatted match, since it will be an NXM_* constant when possible
-     * for compatibility with OpenFlow implementations that expect that, with
-     * OXM_* constants used for fields that OXM adds.  Conversely, 'oxm_header'
-     * is the header to use when outputting an OXM formatted match to an
-     * OpenFlow connection of version 'oxm_version' or above (and otherwise
-     * 'nxm_header'). */
-    uint32_t nxm_header;        /* An NXM_* (or OXM_*) constant. */
-    const char *nxm_name;       /* The nxm_header constant's name. */
-    uint32_t oxm_header;        /* An OXM_* (or NXM_*) constant. */
-    const char *oxm_name;       /* The oxm_header constant's name */
-    enum ofp_version oxm_version; /* OpenFlow version that added oxm_header. */
-
     /* Usable protocols.
      *
      * NXM and OXM are extensible, allowing later extensions to be sent in
@@ -1536,8 +1503,6 @@ BUILD_ASSERT_DECL(sizeof(union mf_value) == sizeof (union mf_subvalue));
 
 /* Finding mf_fields. */
 const struct mf_field *mf_from_name(const char *name);
-const struct mf_field *mf_from_nxm_header(uint32_t nxm_header);
-const struct mf_field *mf_from_nxm_name(const char *nxm_name);
 
 static inline const struct mf_field *
 mf_from_id(enum mf_field_id id)
@@ -1547,9 +1512,6 @@ mf_from_id(enum mf_field_id id)
     return &mf_fields[id];
 }
 
-/* NXM and OXM protocol headers. */
-uint32_t mf_oxm_header(enum mf_field_id, enum ofp_version oxm_version);
-
 /* Inspecting wildcarded bits. */
 bool mf_is_all_wild(const struct mf_field *, const struct flow_wildcards *);
 
@@ -1601,12 +1563,6 @@ void mf_read_subfield(const struct mf_subfield *, const struct flow *,
 uint64_t mf_get_subfield(const struct mf_subfield *, const struct flow *);
 
 
-void mf_format_subfield(const struct mf_subfield *, struct ds *);
-char *mf_parse_subfield__(struct mf_subfield *sf, const char **s)
-    WARN_UNUSED_RESULT;
-char *mf_parse_subfield(struct mf_subfield *, const char *s)
-    WARN_UNUSED_RESULT;
-
 enum ofperr mf_check_src(const struct mf_subfield *, const struct flow *);
 enum ofperr mf_check_dst(const struct mf_subfield *, const struct flow *);