X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fofp-util.h;h=f8c4260fea80ae0be11445823e1c95453449025e;hb=85b20fd6ee585f462e012fbcc7f966a81edab2ed;hp=9e9f32a27e710ae6fc48d52ac56d4772f00b9e9d;hpb=e71bff1bef0252209d01e618a33d80d59e366829;p=sliver-openvswitch.git diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 9e9f32a27..f8c4260fe 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -94,8 +94,7 @@ enum ofputil_protocol { /* Protocols in which a specific table may be specified in flow_mods. */ #define OFPUTIL_P_TID (OFPUTIL_P_OF10_STD_TID | \ OFPUTIL_P_OF10_NXM_TID | \ - OFPUTIL_P_OF12_OXM | \ - OFPUTIL_P_OF13_OXM) + OFPUTIL_P_ANY_OXM) }; /* Protocols to use for flow dumps, from most to least preferred. */ @@ -103,7 +102,8 @@ extern enum ofputil_protocol ofputil_flow_dump_protocols[]; extern size_t ofputil_n_flow_dump_protocols; enum ofputil_protocol ofputil_protocol_from_ofp_version(enum ofp_version); -enum ofp_version ofputil_protocol_to_ofp_version(enum ofputil_protocol); +enum ofputil_protocol ofputil_protocols_from_ofp_version(enum ofp_version); +enum ofp_version ofputil_protocol_to_ofp_version(enum ofputil_protocol); bool ofputil_protocol_is_valid(enum ofputil_protocol); enum ofputil_protocol ofputil_protocol_set_tid(enum ofputil_protocol, @@ -130,6 +130,9 @@ void ofputil_format_version_name(struct ds *, enum ofp_version); void ofputil_format_version_bitmap(struct ds *msg, uint32_t bitmap); void ofputil_format_version_bitmap_names(struct ds *msg, uint32_t bitmap); +uint32_t ofputil_protocols_to_version_bitmap(enum ofputil_protocol); +enum ofputil_protocol ofputil_protocols_from_version_bitmap(uint32_t bitmap); + /* Bitmap of OpenFlow versions that Open vSwitch supports. */ #define OFPUTIL_SUPPORTED_VERSIONS \ ((1u << OFP10_VERSION) | (1u << OFP12_VERSION) | (1u << OFP13_VERSION)) @@ -504,6 +507,19 @@ enum ofperr ofputil_decode_port_mod(const struct ofp_header *, struct ofpbuf *ofputil_encode_port_mod(const struct ofputil_port_mod *, enum ofputil_protocol); +/* Abstract ofp_role_request and reply. */ +struct ofputil_role_request { + bool request_current_role_only; /* no role change */ + bool have_generation_id; + enum nx_role role; + uint64_t generation_id; +}; + +enum ofperr ofputil_decode_role_message(const struct ofp_header *, + struct ofputil_role_request *); +struct ofpbuf *ofputil_encode_role_reply(const struct ofp_header *, + enum nx_role current_role); + /* Abstract table stats. * * For now we use ofp12_table_stats as a superset of the other protocol