ofp-actions, nx-match: Use mf_oxm_header() instead of explicit constants.
authorBen Pfaff <blp@nicira.com>
Tue, 2 Sep 2014 23:47:01 +0000 (16:47 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 29 Sep 2014 22:01:53 +0000 (15:01 -0700)
Following this change, only meta-flow.c uses any explicit NXM_* or OXM_*
constants.  An upcoming commit will actually remove the definitions of
these constants, hiding them behind a functional interface, for better
abstraction.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
lib/nx-match.c
lib/ofp-actions.c

index c18e8ea..b896450 100644 (file)
@@ -477,8 +477,9 @@ nxm_put_ipv6(struct ofpbuf *b, uint32_t header,
 }
 
 static void
-nxm_put_frag(struct ofpbuf *b, const struct match *match)
+nxm_put_frag(struct ofpbuf *b, const struct match *match, enum ofp_version oxm)
 {
+    uint32_t header = mf_oxm_header(MFF_IP_FRAG, oxm);
     uint8_t nw_frag = match->flow.nw_frag;
     uint8_t nw_frag_mask = match->wc.masks.nw_frag;
 
@@ -487,12 +488,11 @@ nxm_put_frag(struct ofpbuf *b, const struct match *match)
         break;
 
     case FLOW_NW_FRAG_MASK:
-        nxm_put_8(b, NXM_NX_IP_FRAG, nw_frag);
+        nxm_put_8(b, header, nw_frag);
         break;
 
     default:
-        nxm_put_8m(b, NXM_NX_IP_FRAG, nw_frag,
-                   nw_frag_mask & FLOW_NW_FRAG_MASK);
+        nxm_put_8m(b, header, nw_frag, nw_frag_mask & FLOW_NW_FRAG_MASK);
         break;
     }
 }
@@ -516,7 +516,7 @@ nxm_put_ip(struct ofpbuf *b, const struct match *match, enum ofp_version oxm)
                      &flow->ipv6_dst, &match->wc.masks.ipv6_dst);
     }
 
-    nxm_put_frag(b, match);
+    nxm_put_frag(b, match, oxm);
 
     if (match->wc.masks.nw_tos & IP_DSCP_MASK) {
         if (oxm) {
@@ -622,14 +622,15 @@ nx_put_raw(struct ofpbuf *b, enum ofp_version oxm, const struct match *match,
     /* Metadata. */
     if (match->wc.masks.dp_hash) {
         if (!oxm) {
-            nxm_put_32m(b, NXM_NX_DP_HASH, htonl(flow->dp_hash),
-                        htonl(match->wc.masks.dp_hash));
+            nxm_put_32m(b, mf_oxm_header(MFF_DP_HASH, oxm),
+                        htonl(flow->dp_hash), htonl(match->wc.masks.dp_hash));
         }
     }
 
     if (match->wc.masks.recirc_id) {
         if (!oxm) {
-            nxm_put_32(b, NXM_NX_RECIRC_ID, htonl(flow->recirc_id));
+            nxm_put_32(b, mf_oxm_header(MFF_RECIRC_ID, oxm),
+                       htonl(flow->recirc_id));
         }
     }
 
index 46651da..219f492 100644 (file)
@@ -843,7 +843,7 @@ decode_bundle(bool load, const struct nx_action_bundle *nab,
     } else if (bundle->algorithm != NX_BD_ALG_HRW
                && bundle->algorithm != NX_BD_ALG_ACTIVE_BACKUP) {
         VLOG_WARN_RL(&rl, "unsupported algorithm %d", (int) bundle->algorithm);
-    } else if (slave_type != NXM_OF_IN_PORT) {
+    } else if (slave_type != mf_oxm_header(MFF_IN_PORT, 0)) {
         VLOG_WARN_RL(&rl, "unsupported slave type %"PRIu16, slave_type);
     } else {
         error = 0;
@@ -924,7 +924,7 @@ encode_BUNDLE(const struct ofpact_bundle *bundle,
     nab->algorithm = htons(bundle->algorithm);
     nab->fields = htons(bundle->fields);
     nab->basis = htons(bundle->basis);
-    nab->slave_type = htonl(NXM_OF_IN_PORT);
+    nab->slave_type = htonl(mf_oxm_header(MFF_IN_PORT, 0));
     nab->n_slaves = htons(bundle->n_slaves);
     if (bundle->dst.field) {
         nab->ofs_nbits = nxm_encode_ofs_nbits(bundle->dst.ofs,