X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=lib%2Fclassifier.h;h=932234503b29246ea1862ca6fecbc23ea6713f1d;hb=b546a4f73828e30186e2e5423eb70ed7f2347306;hp=92ccc2fbbdaa1be6ea479d97f0b2c2a0aaec95a5;hpb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;p=openvswitch diff --git a/lib/classifier.h b/lib/classifier.h index 92ccc2fb..93223450 100644 --- a/lib/classifier.h +++ b/lib/classifier.h @@ -87,15 +87,23 @@ void cls_rule_init_catchall(struct cls_rule *, unsigned int priority); void cls_rule_zero_wildcarded_fields(struct cls_rule *); +bool cls_rule_is_loose_match(const struct cls_rule *rule, + const struct cls_rule *criteria); + void cls_rule_set_reg(struct cls_rule *, unsigned int reg_idx, uint32_t value); void cls_rule_set_reg_masked(struct cls_rule *, unsigned int reg_idx, uint32_t value, uint32_t mask); +void cls_rule_set_metadata(struct cls_rule *, ovs_be64 metadata); +void cls_rule_set_metadata_masked(struct cls_rule *, ovs_be64 metadata, + ovs_be64 mask); void cls_rule_set_tun_id(struct cls_rule *, ovs_be64 tun_id); void cls_rule_set_tun_id_masked(struct cls_rule *, ovs_be64 tun_id, ovs_be64 mask); void cls_rule_set_in_port(struct cls_rule *, uint16_t ofp_port); void cls_rule_set_dl_type(struct cls_rule *, ovs_be16); void cls_rule_set_dl_src(struct cls_rule *, const uint8_t[6]); +void cls_rule_set_dl_src_masked(struct cls_rule *, const uint8_t dl_src[6], + const uint8_t mask[6]); void cls_rule_set_dl_dst(struct cls_rule *, const uint8_t[6]); void cls_rule_set_dl_dst_masked(struct cls_rule *, const uint8_t dl_dst[6], const uint8_t mask[6]); @@ -104,6 +112,9 @@ void cls_rule_set_dl_tci_masked(struct cls_rule *, ovs_be16 tci, ovs_be16 mask); void cls_rule_set_any_vid(struct cls_rule *); void cls_rule_set_dl_vlan(struct cls_rule *, ovs_be16); +void cls_rule_set_vlan_vid(struct cls_rule *, ovs_be16); +void cls_rule_set_vlan_vid_masked(struct cls_rule *, + ovs_be16 vid, ovs_be16 mask); void cls_rule_set_any_pcp(struct cls_rule *); void cls_rule_set_dl_vlan_pcp(struct cls_rule *, uint8_t); void cls_rule_set_tp_src(struct cls_rule *, ovs_be16); @@ -126,7 +137,11 @@ void cls_rule_set_nw_frag_masked(struct cls_rule *, void cls_rule_set_icmp_type(struct cls_rule *, uint8_t); void cls_rule_set_icmp_code(struct cls_rule *, uint8_t); void cls_rule_set_arp_sha(struct cls_rule *, const uint8_t[6]); +void cls_rule_set_arp_sha_masked(struct cls_rule *, const uint8_t[6], + const uint8_t [6]); void cls_rule_set_arp_tha(struct cls_rule *, const uint8_t[6]); +void cls_rule_set_arp_tha_masked(struct cls_rule *, const uint8_t[6], + const uint8_t [6]); void cls_rule_set_ipv6_src(struct cls_rule *, const struct in6_addr *); void cls_rule_set_ipv6_src_masked(struct cls_rule *, const struct in6_addr *, const struct in6_addr *); @@ -134,6 +149,7 @@ void cls_rule_set_ipv6_dst(struct cls_rule *, const struct in6_addr *); void cls_rule_set_ipv6_dst_masked(struct cls_rule *, const struct in6_addr *, const struct in6_addr *); void cls_rule_set_ipv6_label(struct cls_rule *, ovs_be32); +void cls_rule_set_ipv6_label_masked(struct cls_rule *, ovs_be32, ovs_be32); void cls_rule_set_nd_target(struct cls_rule *, const struct in6_addr *); void cls_rule_set_nd_target_masked(struct cls_rule *, const struct in6_addr *, const struct in6_addr *);