X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-util.h;h=aaab83cbdbc091f0b65af45a4ad4d250863b71cc;hb=648f4f1fe4ee22cf9d5e9dc0eb9b53a40f9035db;hp=3aa1e0952df6b77f3d291f1c9364d1de0ae5bd5e;hpb=623e1caf2f493bfcd96e3f9381d4e89257c92798;p=openvswitch diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 3aa1e095..aaab83cb 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -112,8 +112,8 @@ enum ofperr 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. */ +/* Converting OFPFW10_NW_SRC_MASK and OFPFW10_NW_DST_MASK wildcard bit counts + * to and from IP bitmasks. */ ovs_be32 ofputil_wcbits_to_netmask(int wcbits); int ofputil_netmask_to_wcbits(ovs_be32 netmask); @@ -177,12 +177,21 @@ enum ofputil_protocol ofputil_nx_flow_format_to_protocol(enum nx_flow_format); bool ofputil_nx_flow_format_is_valid(enum nx_flow_format); const char *ofputil_nx_flow_format_to_string(enum nx_flow_format); -/* Work with OpenFlow 1.0 ofp_match. */ -void ofputil_wildcard_from_openflow(uint32_t ofpfw, struct flow_wildcards *); -void ofputil_cls_rule_from_match(const struct ofp_match *, - unsigned int priority, struct cls_rule *); +/* Work with ofp10_match. */ +void ofputil_wildcard_from_ofpfw10(uint32_t ofpfw, struct flow_wildcards *); +void ofputil_cls_rule_from_ofp10_match(const struct ofp10_match *, + unsigned int priority, + struct cls_rule *); void ofputil_normalize_rule(struct cls_rule *); -void ofputil_cls_rule_to_match(const struct cls_rule *, struct ofp_match *); +void ofputil_cls_rule_to_ofp10_match(const struct cls_rule *, + struct ofp10_match *); + +/* Work with ofp11_match. */ +enum ofperr ofputil_cls_rule_from_ofp11_match(const struct ofp11_match *, + unsigned int priority, + struct cls_rule *); +void ofputil_cls_rule_to_ofp11_match(const struct cls_rule *, + struct ofp11_match *); /* dl_type translation between OpenFlow and 'struct flow' format. */ ovs_be16 ofputil_dl_type_to_openflow(ovs_be16 flow_dl_type); @@ -325,8 +334,8 @@ struct ofputil_packet_in { struct flow_metadata fmd; /* Metadata at creation time. */ }; -int ofputil_decode_packet_in(struct ofputil_packet_in *, - const struct ofp_header *); +enum ofperr ofputil_decode_packet_in(struct ofputil_packet_in *, + const struct ofp_header *); struct ofpbuf *ofputil_encode_packet_in(const struct ofputil_packet_in *, enum nx_packet_in_format); @@ -537,10 +546,6 @@ struct ofpbuf *make_flow_mod(uint16_t command, const struct cls_rule *, size_t actions_len); struct ofpbuf *make_add_flow(const struct cls_rule *, uint32_t buffer_id, uint16_t max_idle, size_t actions_len); -struct ofpbuf *make_del_flow(const struct cls_rule *); -struct ofpbuf *make_add_simple_flow(const struct cls_rule *, - uint32_t buffer_id, uint16_t out_port, - uint16_t max_idle); struct ofpbuf *make_packet_in(uint32_t buffer_id, uint16_t in_port, uint8_t reason, const struct ofpbuf *payload, int max_send_len);