ofp-util: Move ofputil_check_output_port() to ofp-actions, rename.
authorBen Pfaff <blp@nicira.com>
Wed, 30 Oct 2013 23:31:28 +0000 (16:31 -0700)
committerBen Pfaff <blp@nicira.com>
Sat, 2 Nov 2013 05:18:38 +0000 (22:18 -0700)
This function is related to actions to ofp-actions seems like a logical
place for it.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
lib/bundle.c
lib/ofp-actions.c
lib/ofp-actions.h
lib/ofp-util.c
lib/ofp-util.h

index dcabaaa..7d00f87 100644 (file)
@@ -204,7 +204,7 @@ bundle_check(const struct ofpact_bundle *bundle, ofp_port_t max_ports,
         ofp_port_t ofp_port = bundle->slaves[i];
         enum ofperr error;
 
-        error = ofputil_check_output_port(ofp_port, max_ports);
+        error = ofpact_check_output_port(ofp_port, max_ports);
         if (error) {
             VLOG_WARN_RL(&rl, "invalid slave %"PRIu16, ofp_port);
             return error;
index 5dab219..216bc7a 100644 (file)
@@ -89,7 +89,7 @@ output_from_openflow10(const struct ofp10_action_output *oao,
     output->port = u16_to_ofp(ntohs(oao->port));
     output->max_len = ntohs(oao->max_len);
 
-    return ofputil_check_output_port(output->port, OFPP_MAX);
+    return ofpact_check_output_port(output->port, OFPP_MAX);
 }
 
 static enum ofperr
@@ -1088,7 +1088,7 @@ output_from_openflow11(const struct ofp11_action_output *oao,
         return error;
     }
 
-    return ofputil_check_output_port(output->port, OFPP_MAX);
+    return ofpact_check_output_port(output->port, OFPP_MAX);
 }
 
 static enum ofperr
@@ -1793,6 +1793,31 @@ exit:
     return error;
 }
 \f
+/* Checks that 'port' is a valid output port for OFPACT_OUTPUT, given that the
+ * switch will never have more than 'max_ports' ports.  Returns 0 if 'port' is
+ * valid, otherwise an OpenFlow error code. */
+enum ofperr
+ofpact_check_output_port(ofp_port_t port, ofp_port_t max_ports)
+{
+    switch (port) {
+    case OFPP_IN_PORT:
+    case OFPP_TABLE:
+    case OFPP_NORMAL:
+    case OFPP_FLOOD:
+    case OFPP_ALL:
+    case OFPP_CONTROLLER:
+    case OFPP_NONE:
+    case OFPP_LOCAL:
+        return 0;
+
+    default:
+        if (ofp_to_u16(port) < ofp_to_u16(max_ports)) {
+            return 0;
+        }
+        return OFPERR_OFPBAC_BAD_OUT_PORT;
+    }
+}
+
 /* May modify flow->dl_type and flow->vlan_tci, caller must restore them.
  *
  * Modifies some actions, filling in fields that could not be properly set
@@ -1806,8 +1831,8 @@ ofpact_check__(struct ofpact *a, struct flow *flow, ofp_port_t max_ports,
 
     switch (a->type) {
     case OFPACT_OUTPUT:
-        return ofputil_check_output_port(ofpact_get_OUTPUT(a)->port,
-                                         max_ports);
+        return ofpact_check_output_port(ofpact_get_OUTPUT(a)->port,
+                                        max_ports);
 
     case OFPACT_CONTROLLER:
         return 0;
index 8bbbee1..ed40a9d 100644 (file)
@@ -590,6 +590,7 @@ enum ofperr ofpacts_check(struct ofpact[], size_t ofpacts_len,
                           struct flow *, ofp_port_t max_ports,
                           uint8_t table_id, bool enforce_consistency);
 enum ofperr ofpacts_verify(const struct ofpact ofpacts[], size_t ofpacts_len);
+enum ofperr ofpact_check_output_port(ofp_port_t port, ofp_port_t max_ports);
 
 /* Converting ofpacts to OpenFlow. */
 size_t ofpacts_put_openflow_actions(const struct ofpact[], size_t ofpacts_len,
index 2223c97..3cffe34 100644 (file)
@@ -4847,31 +4847,6 @@ ofputil_port_to_ofp11(ofp_port_t ofp10_port)
                  : ofp_to_u16(ofp10_port) + OFPP11_OFFSET);
 }
 
-/* Checks that 'port' is a valid output port for the OFPAT10_OUTPUT action, given
- * that the switch will never have more than 'max_ports' ports.  Returns 0 if
- * 'port' is valid, otherwise an OpenFlow return code. */
-enum ofperr
-ofputil_check_output_port(ofp_port_t port, ofp_port_t max_ports)
-{
-    switch (port) {
-    case OFPP_IN_PORT:
-    case OFPP_TABLE:
-    case OFPP_NORMAL:
-    case OFPP_FLOOD:
-    case OFPP_ALL:
-    case OFPP_CONTROLLER:
-    case OFPP_NONE:
-    case OFPP_LOCAL:
-        return 0;
-
-    default:
-        if (ofp_to_u16(port) < ofp_to_u16(max_ports)) {
-            return 0;
-        }
-        return OFPERR_OFPBAC_BAD_OUT_PORT;
-    }
-}
-
 #define OFPUTIL_NAMED_PORTS                     \
         OFPUTIL_NAMED_PORT(IN_PORT)             \
         OFPUTIL_NAMED_PORT(TABLE)               \
index f9b0be7..d72e0a8 100644 (file)
@@ -38,8 +38,6 @@ enum ofperr ofputil_port_from_ofp11(ovs_be32 ofp11_port,
                                     ofp_port_t *ofp10_port);
 ovs_be32 ofputil_port_to_ofp11(ofp_port_t ofp10_port);
 
-enum ofperr ofputil_check_output_port(ofp_port_t ofp_port,
-                                      ofp_port_t max_ports);
 bool ofputil_port_from_string(const char *, ofp_port_t *portp);
 void ofputil_format_port(ofp_port_t port, struct ds *);
 void ofputil_port_to_string(ofp_port_t, char namebuf[OFP_MAX_PORT_NAME_LEN],