const struct ofputil_msg_type **);
enum ofputil_msg_code ofputil_msg_type_code(const struct ofputil_msg_type *);
const char *ofputil_msg_type_name(const struct ofputil_msg_type *);
+
+/* Port numbers. */
int ofputil_check_output_port(uint16_t ofp_port, int max_ports);
+bool ofputil_port_from_string(const char *, uint16_t *port);
+void ofputil_format_port(uint16_t port, struct ds *);
/* Converting OFPFW_NW_SRC_MASK and OFPFW_NW_DST_MASK wildcard bit counts to
* and from IP bitmasks. */
bool flow_mod_table_id);
/* Flow stats or aggregate stats request, independent of flow format. */
-struct flow_stats_request {
+struct ofputil_flow_stats_request {
bool aggregate; /* Aggregate results? */
struct cls_rule match;
uint16_t out_port;
uint8_t table_id;
};
-int ofputil_decode_flow_stats_request(struct flow_stats_request *,
+int ofputil_decode_flow_stats_request(struct ofputil_flow_stats_request *,
const struct ofp_header *);
struct ofpbuf *ofputil_encode_flow_stats_request(
- const struct flow_stats_request *, enum nx_flow_format);
+ const struct ofputil_flow_stats_request *, enum nx_flow_format);
/* Flow stats reply, independent of flow format. */
struct ofputil_flow_stats {
OFPUTIL_NXAST_AUTOPATH,
OFPUTIL_NXAST_BUNDLE,
OFPUTIL_NXAST_BUNDLE_LOAD,
- OFPUTIL_NXAST_RESUBMIT_TABLE
+ OFPUTIL_NXAST_RESUBMIT_TABLE,
+ OFPUTIL_NXAST_OUTPUT_REG
};
int ofputil_decode_action(const union ofp_action *);