X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fofp-util.h;h=b110d71667711abf53239bb0be779b0c35719dd0;hb=e408762f;hp=48b0a4cfbed5de0edf73851c673b48508202a423;hpb=38f2e36072c9065cae3d4fbab4a70e4f502706cd;p=sliver-openvswitch.git diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 48b0a4cfb..b110d7166 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -92,6 +92,7 @@ int ofputil_decode_msg_type(const struct ofp_header *, 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 *); +int ofputil_check_output_port(uint16_t ofp_port, int max_ports); /* Converting OFPFW_NW_SRC_MASK and OFPFW_NW_DST_MASK wildcard bit counts to * and from IP bitmasks. */ @@ -121,7 +122,7 @@ struct ofpbuf *ofputil_make_set_flow_format(enum nx_flow_format); struct ofpbuf *ofputil_make_flow_mod_table_id(bool flow_mod_table_id); /* Flow format independent flow_mod. */ -struct flow_mod { +struct ofputil_flow_mod { struct cls_rule cr; ovs_be64 cookie; uint8_t table_id; @@ -135,24 +136,24 @@ struct flow_mod { size_t n_actions; }; -int ofputil_decode_flow_mod(struct flow_mod *, const struct ofp_header *, - bool flow_mod_table_id); -struct ofpbuf *ofputil_encode_flow_mod(const struct flow_mod *, +int ofputil_decode_flow_mod(struct ofputil_flow_mod *, + const struct ofp_header *, bool flow_mod_table_id); +struct ofpbuf *ofputil_encode_flow_mod(const struct ofputil_flow_mod *, enum nx_flow_format, 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 { @@ -300,7 +301,11 @@ enum ofputil_action_code { OFPUTIL_NXAST_NOTE, OFPUTIL_NXAST_SET_TUNNEL64, OFPUTIL_NXAST_MULTIPATH, - OFPUTIL_NXAST_AUTOPATH + OFPUTIL_NXAST_AUTOPATH, + OFPUTIL_NXAST_BUNDLE, + OFPUTIL_NXAST_BUNDLE_LOAD, + OFPUTIL_NXAST_RESUBMIT_TABLE, + OFPUTIL_NXAST_OUTPUT_REG }; int ofputil_decode_action(const union ofp_action *); @@ -312,7 +317,8 @@ enum ofputil_action_code ofputil_decode_action_unsafe( static inline union ofp_action * ofputil_action_next(const union ofp_action *a) { - return (void *) ((uint8_t *) a + ntohs(a->header.len)); + return ((union ofp_action *) (void *) + ((uint8_t *) a + ntohs(a->header.len))); } static inline bool