]> git.proxmox.com Git - mirror_ovs.git/commitdiff
Move lib/match.h to include/openvswitch directory
authorBen Warren <ben@skyportsystems.com>
Tue, 5 Apr 2016 01:32:06 +0000 (21:32 -0400)
committerBen Pfaff <blp@ovn.org>
Thu, 14 Apr 2016 20:46:49 +0000 (13:46 -0700)
Signed-off-by: Ben Warren <ben@skyportsystems.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
20 files changed:
include/openvswitch/automake.mk
include/openvswitch/match.h [new file with mode: 0644]
lib/automake.mk
lib/classifier.h
lib/dpctl.c
lib/dpif-netdev.c
lib/flow.c
lib/learn.c
lib/match.c
lib/match.h [deleted file]
lib/ofp-util.h
lib/tun-metadata.c
ofproto/bond.c
ofproto/connmgr.h
ovn/controller/ofctrl.c
ovn/controller/physical.c
ovn/lib/expr.c
ovn/lib/expr.h
tests/test-odp.c
tests/test-ovn.c

index 6d93b26ed971d6a954bd316a757070b61842dde4..b64b6c15d3e4e41059f8741dc4f7b7ae5930aca0 100644 (file)
@@ -6,6 +6,7 @@ openvswitchinclude_HEADERS = \
        include/openvswitch/geneve.h \
        include/openvswitch/list.h \
        include/openvswitch/netdev.h \
+       include/openvswitch/match.h \
        include/openvswitch/ofpbuf.h \
        include/openvswitch/ofp-errors.h \
        include/openvswitch/ofp-parse.h \
diff --git a/include/openvswitch/match.h b/include/openvswitch/match.h
new file mode 100644 (file)
index 0000000..c955753
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef OPENVSWITCH_MATCH_H
+#define OPENVSWITCH_MATCH_H 1
+
+#include "openvswitch/flow.h"
+#include "openvswitch/packets.h"
+#include "openvswitch/tun-metadata.h"
+
+struct ds;
+
+/* A flow classification match.
+ *
+ * Use one of the match_*() functions to initialize a "struct match".
+ *
+ * The match_*() functions below maintain the following important invariant.
+ * If a bit or a field is wildcarded in 'wc', then the corresponding bit or
+ * field in 'flow' is set to all-0-bits.  (The match_zero_wildcarded_fields()
+ * function can be used to restore this invariant after adding wildcards.) */
+struct match {
+    struct flow flow;
+    struct flow_wildcards wc;
+    struct tun_metadata_allocation tun_md;
+};
+
+/* Initializer for a "struct match" that matches every packet. */
+#define MATCH_CATCHALL_INITIALIZER { .flow = { .dl_type = 0 } }
+
+void match_init(struct match *,
+                const struct flow *, const struct flow_wildcards *);
+void match_wc_init(struct match *match, const struct flow *flow);
+void match_init_catchall(struct match *);
+
+void match_zero_wildcarded_fields(struct match *);
+
+void match_set_dp_hash(struct match *, uint32_t value);
+void match_set_dp_hash_masked(struct match *, uint32_t value, uint32_t mask);
+
+void match_set_recirc_id(struct match *, uint32_t value);
+
+void match_set_conj_id(struct match *, uint32_t value);
+
+void match_set_reg(struct match *, unsigned int reg_idx, uint32_t value);
+void match_set_reg_masked(struct match *, unsigned int reg_idx,
+                          uint32_t value, uint32_t mask);
+void match_set_xreg(struct match *, unsigned int xreg_idx, uint64_t value);
+void match_set_xreg_masked(struct match *, unsigned int xreg_idx,
+                           uint64_t value, uint64_t mask);
+void match_set_actset_output(struct match *, ofp_port_t actset_output);
+void match_set_metadata(struct match *, ovs_be64 metadata);
+void match_set_metadata_masked(struct match *,
+                               ovs_be64 metadata, ovs_be64 mask);
+void match_set_tun_id(struct match *, ovs_be64 tun_id);
+void match_set_tun_id_masked(struct match *, ovs_be64 tun_id, ovs_be64 mask);
+void match_set_tun_src(struct match *match, ovs_be32 src);
+void match_set_tun_src_masked(struct match *match, ovs_be32 src, ovs_be32 mask);
+void match_set_tun_dst(struct match *match, ovs_be32 dst);
+void match_set_tun_dst_masked(struct match *match, ovs_be32 dst, ovs_be32 mask);
+void match_set_tun_ipv6_src(struct match *, const struct in6_addr *);
+void match_set_tun_ipv6_src_masked(struct match *, const struct in6_addr *,
+                                   const struct in6_addr *);
+void match_set_tun_ipv6_dst(struct match *, const struct in6_addr *);
+void match_set_tun_ipv6_dst_masked(struct match *, const struct in6_addr *,
+                                   const struct in6_addr *);
+void match_set_tun_ttl(struct match *match, uint8_t ttl);
+void match_set_tun_ttl_masked(struct match *match, uint8_t ttl, uint8_t mask);
+void match_set_tun_tos(struct match *match, uint8_t tos);
+void match_set_tun_tos_masked(struct match *match, uint8_t tos, uint8_t mask);
+void match_set_tun_flags(struct match *match, uint16_t flags);
+void match_set_tun_flags_masked(struct match *match, uint16_t flags, uint16_t mask);
+void match_set_tun_gbp_id_masked(struct match *match, ovs_be16 gbp_id, ovs_be16 mask);
+void match_set_tun_gbp_id(struct match *match, ovs_be16 gbp_id);
+void match_set_tun_gbp_flags_masked(struct match *match, uint8_t flags, uint8_t mask);
+void match_set_tun_gbp_flags(struct match *match, uint8_t flags);
+void match_set_in_port(struct match *, ofp_port_t ofp_port);
+void match_set_pkt_mark(struct match *, uint32_t pkt_mark);
+void match_set_pkt_mark_masked(struct match *, uint32_t pkt_mark, uint32_t mask);
+void match_set_ct_state(struct match *, uint32_t ct_state);
+void match_set_ct_state_masked(struct match *, uint32_t ct_state, uint32_t mask);
+void match_set_ct_zone(struct match *, uint16_t ct_zone);
+void match_set_ct_mark(struct match *, uint32_t ct_mark);
+void match_set_ct_mark_masked(struct match *, uint32_t ct_mark, uint32_t mask);
+void match_set_ct_label(struct match *, ovs_u128 ct_label);
+void match_set_ct_label_masked(struct match *, ovs_u128 ct_label, ovs_u128 mask);
+void match_set_skb_priority(struct match *, uint32_t skb_priority);
+void match_set_dl_type(struct match *, ovs_be16);
+void match_set_dl_src(struct match *, const struct eth_addr );
+void match_set_dl_src_masked(struct match *, const struct eth_addr dl_src,
+                             const struct eth_addr mask);
+void match_set_dl_dst(struct match *, const struct eth_addr);
+void match_set_dl_dst_masked(struct match *, const struct eth_addr dl_dst,
+                             const struct eth_addr mask);
+void match_set_dl_tci(struct match *, ovs_be16 tci);
+void match_set_dl_tci_masked(struct match *, ovs_be16 tci, ovs_be16 mask);
+void match_set_any_vid(struct match *);
+void match_set_dl_vlan(struct match *, ovs_be16);
+void match_set_vlan_vid(struct match *, ovs_be16);
+void match_set_vlan_vid_masked(struct match *, ovs_be16 vid, ovs_be16 mask);
+void match_set_any_pcp(struct match *);
+void match_set_dl_vlan_pcp(struct match *, uint8_t);
+void match_set_any_mpls_lse(struct match *, int idx);
+void match_set_mpls_lse(struct match *, int idx, ovs_be32);
+void match_set_any_mpls_label(struct match *, int idx);
+void match_set_mpls_label(struct match *, int idx, ovs_be32);
+void match_set_any_mpls_tc(struct match *, int idx);
+void match_set_mpls_tc(struct match *, int idx, uint8_t);
+void match_set_any_mpls_bos(struct match *, int idx);
+void match_set_mpls_bos(struct match *, int idx, uint8_t);
+void match_set_any_mpls_ttl(struct match *, int idx);
+void match_set_mpls_ttl(struct match *, int idx, uint8_t);
+void match_set_tp_src(struct match *, ovs_be16);
+void match_set_mpls_lse(struct match *, int idx, ovs_be32 lse);
+void match_set_tp_src_masked(struct match *, ovs_be16 port, ovs_be16 mask);
+void match_set_tp_dst(struct match *, ovs_be16);
+void match_set_tp_dst_masked(struct match *, ovs_be16 port, ovs_be16 mask);
+void match_set_tcp_flags(struct match *, ovs_be16);
+void match_set_tcp_flags_masked(struct match *, ovs_be16 flags, ovs_be16 mask);
+void match_set_nw_proto(struct match *, uint8_t);
+void match_set_nw_src(struct match *, ovs_be32);
+void match_set_nw_src_masked(struct match *, ovs_be32 ip, ovs_be32 mask);
+void match_set_nw_dst(struct match *, ovs_be32);
+void match_set_nw_dst_masked(struct match *, ovs_be32 ip, ovs_be32 mask);
+void match_set_nw_dscp(struct match *, uint8_t);
+void match_set_nw_ecn(struct match *, uint8_t);
+void match_set_nw_ttl(struct match *, uint8_t);
+void match_set_nw_frag(struct match *, uint8_t nw_frag);
+void match_set_nw_frag_masked(struct match *, uint8_t nw_frag, uint8_t mask);
+void match_set_icmp_type(struct match *, uint8_t);
+void match_set_icmp_code(struct match *, uint8_t);
+void match_set_arp_sha(struct match *, const struct eth_addr);
+void match_set_arp_sha_masked(struct match *,
+                              const struct eth_addr arp_sha,
+                              const struct eth_addr mask);
+void match_set_arp_tha(struct match *, const struct eth_addr);
+void match_set_arp_tha_masked(struct match *,
+                              const struct eth_addr arp_tha,
+                              const struct eth_addr mask);
+void match_set_ipv6_src(struct match *, const struct in6_addr *);
+void match_set_ipv6_src_masked(struct match *, const struct in6_addr *,
+                               const struct in6_addr *);
+void match_set_ipv6_dst(struct match *, const struct in6_addr *);
+void match_set_ipv6_dst_masked(struct match *, const struct in6_addr *,
+                               const struct in6_addr *);
+void match_set_ipv6_label(struct match *, ovs_be32);
+void match_set_ipv6_label_masked(struct match *, ovs_be32, ovs_be32);
+void match_set_nd_target(struct match *, const struct in6_addr *);
+void match_set_nd_target_masked(struct match *, const struct in6_addr *,
+                                const struct in6_addr *);
+
+bool match_equal(const struct match *, const struct match *);
+uint32_t match_hash(const struct match *, uint32_t basis);
+
+void match_init_hidden_fields(struct match *);
+bool match_has_default_hidden_fields(const struct match *);
+
+void match_format(const struct match *, struct ds *, int priority);
+char *match_to_string(const struct match *, int priority);
+void match_print(const struct match *);
+\f
+/* Compressed match. */
+
+/* A sparse representation of a "struct match".
+ *
+ * 'flows' is used for allocating both 'flow' and 'mask' with one
+ * miniflow_alloc() call.
+ *
+ * There are two invariants:
+ *
+ *   - The same invariant as "struct match", that is, a 1-bit in the 'flow'
+ *     must correspond to a 1-bit in 'mask'.
+ *
+ *   - 'flow' and 'mask' have the same 'map'.  This implies that 'flow' and
+ *     'mask' have the same part of "struct flow" at the same offset into
+ *     'values', which makes minimatch_matches_flow() faster.
+ */
+struct minimatch {
+    union {
+        struct {
+            struct miniflow *flow;
+            struct minimask *mask;
+        };
+        struct miniflow *flows[2];
+    };
+};
+
+void minimatch_init(struct minimatch *, const struct match *);
+void minimatch_clone(struct minimatch *, const struct minimatch *);
+void minimatch_move(struct minimatch *dst, struct minimatch *src);
+void minimatch_destroy(struct minimatch *);
+
+void minimatch_expand(const struct minimatch *, struct match *);
+
+bool minimatch_equal(const struct minimatch *a, const struct minimatch *b);
+
+bool minimatch_matches_flow(const struct minimatch *, const struct flow *);
+
+void minimatch_format(const struct minimatch *, struct ds *, int priority);
+char *minimatch_to_string(const struct minimatch *, int priority);
+
+#endif /* match.h */
index 7b829d0db65f9dff40a0627f206ddb7ed25e56d0..b9e26e40d56f00f93ef0b8f2fedf65da0f879548 100644 (file)
@@ -115,7 +115,6 @@ lib_libopenvswitch_la_SOURCES = \
        lib/mac-learning.c \
        lib/mac-learning.h \
        lib/match.c \
-       lib/match.h \
        lib/mcast-snooping.c \
        lib/mcast-snooping.h \
        lib/memory.c \
index 889dc1e58e47c4419c48fbf6bc1d154b5814b4b4..975a4f07ec602297efd12e7f5b1f090133b867fe 100644 (file)
  * parallel to the rule's removal. */
 
 #include "cmap.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "meta-flow.h"
 #include "pvector.h"
 #include "rculist.h"
index 5f70031278e24e18af9c94b2707dd0d456b0a691..11b6ed0e4e39a593727165d58897df82a697d567 100644 (file)
@@ -34,7 +34,7 @@
 #include "dpif.h"
 #include "openvswitch/dynamic-string.h"
 #include "flow.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "netdev.h"
 #include "netdev-dpdk.h"
 #include "netlink.h"
index 2870951fe4e8a730e852e1a292289158c75a0ce3..b14d641d26f61cd5abcf5f4bf9d9fc696decba8b 100644 (file)
@@ -45,7 +45,7 @@
 #include "hmapx.h"
 #include "latch.h"
 #include "openvswitch/list.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "netdev.h"
 #include "netdev-dpdk.h"
 #include "netdev-vport.h"
index b9ce3311dbbaa649b4757d55720b1d33a7304ad7..560a90f20f5921283222e869aca8f69e74f2049e 100644 (file)
@@ -32,7 +32,7 @@
 #include "openvswitch/dynamic-string.h"
 #include "hash.h"
 #include "jhash.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "dp-packet.h"
 #include "openflow/openflow.h"
 #include "packets.h"
index ca0cb6b164cb9b90188d96477f25546769969a15..af8e1e86e28f23b9927aa87f3b1485c2ee776be3 100644 (file)
@@ -21,7 +21,7 @@
 #include "byte-order.h"
 #include "colors.h"
 #include "openvswitch/dynamic-string.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "meta-flow.h"
 #include "nx-match.h"
 #include "ofp-actions.h"
index fd571d91a95a159bab100be0d38de1a6c5aa1c9d..42955b80453aee1b009029b3dbb8674f61ba4ec6 100644 (file)
@@ -15,8 +15,9 @@
  */
 
 #include <config.h>
-#include "match.h"
+#include "openvswitch/match.h"
 #include <stdlib.h>
+#include "flow.h"
 #include "byte-order.h"
 #include "colors.h"
 #include "openvswitch/dynamic-string.h"
diff --git a/lib/match.h b/lib/match.h
deleted file mode 100644 (file)
index 0a6ac29..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Nicira, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef MATCH_H
-#define MATCH_H 1
-
-#include "flow.h"
-#include "packets.h"
-#include "tun-metadata.h"
-
-struct ds;
-
-/* A flow classification match.
- *
- * Use one of the match_*() functions to initialize a "struct match".
- *
- * The match_*() functions below maintain the following important invariant.
- * If a bit or a field is wildcarded in 'wc', then the corresponding bit or
- * field in 'flow' is set to all-0-bits.  (The match_zero_wildcarded_fields()
- * function can be used to restore this invariant after adding wildcards.) */
-struct match {
-    struct flow flow;
-    struct flow_wildcards wc;
-    struct tun_metadata_allocation tun_md;
-};
-
-/* Initializer for a "struct match" that matches every packet. */
-#define MATCH_CATCHALL_INITIALIZER { .flow = { .dl_type = 0 } }
-
-void match_init(struct match *,
-                const struct flow *, const struct flow_wildcards *);
-void match_wc_init(struct match *match, const struct flow *flow);
-void match_init_catchall(struct match *);
-
-void match_zero_wildcarded_fields(struct match *);
-
-void match_set_dp_hash(struct match *, uint32_t value);
-void match_set_dp_hash_masked(struct match *, uint32_t value, uint32_t mask);
-
-void match_set_recirc_id(struct match *, uint32_t value);
-
-void match_set_conj_id(struct match *, uint32_t value);
-
-void match_set_reg(struct match *, unsigned int reg_idx, uint32_t value);
-void match_set_reg_masked(struct match *, unsigned int reg_idx,
-                          uint32_t value, uint32_t mask);
-void match_set_xreg(struct match *, unsigned int xreg_idx, uint64_t value);
-void match_set_xreg_masked(struct match *, unsigned int xreg_idx,
-                           uint64_t value, uint64_t mask);
-void match_set_actset_output(struct match *, ofp_port_t actset_output);
-void match_set_metadata(struct match *, ovs_be64 metadata);
-void match_set_metadata_masked(struct match *,
-                               ovs_be64 metadata, ovs_be64 mask);
-void match_set_tun_id(struct match *, ovs_be64 tun_id);
-void match_set_tun_id_masked(struct match *, ovs_be64 tun_id, ovs_be64 mask);
-void match_set_tun_src(struct match *match, ovs_be32 src);
-void match_set_tun_src_masked(struct match *match, ovs_be32 src, ovs_be32 mask);
-void match_set_tun_dst(struct match *match, ovs_be32 dst);
-void match_set_tun_dst_masked(struct match *match, ovs_be32 dst, ovs_be32 mask);
-void match_set_tun_ipv6_src(struct match *, const struct in6_addr *);
-void match_set_tun_ipv6_src_masked(struct match *, const struct in6_addr *,
-                                   const struct in6_addr *);
-void match_set_tun_ipv6_dst(struct match *, const struct in6_addr *);
-void match_set_tun_ipv6_dst_masked(struct match *, const struct in6_addr *,
-                                   const struct in6_addr *);
-void match_set_tun_ttl(struct match *match, uint8_t ttl);
-void match_set_tun_ttl_masked(struct match *match, uint8_t ttl, uint8_t mask);
-void match_set_tun_tos(struct match *match, uint8_t tos);
-void match_set_tun_tos_masked(struct match *match, uint8_t tos, uint8_t mask);
-void match_set_tun_flags(struct match *match, uint16_t flags);
-void match_set_tun_flags_masked(struct match *match, uint16_t flags, uint16_t mask);
-void match_set_tun_gbp_id_masked(struct match *match, ovs_be16 gbp_id, ovs_be16 mask);
-void match_set_tun_gbp_id(struct match *match, ovs_be16 gbp_id);
-void match_set_tun_gbp_flags_masked(struct match *match, uint8_t flags, uint8_t mask);
-void match_set_tun_gbp_flags(struct match *match, uint8_t flags);
-void match_set_in_port(struct match *, ofp_port_t ofp_port);
-void match_set_pkt_mark(struct match *, uint32_t pkt_mark);
-void match_set_pkt_mark_masked(struct match *, uint32_t pkt_mark, uint32_t mask);
-void match_set_ct_state(struct match *, uint32_t ct_state);
-void match_set_ct_state_masked(struct match *, uint32_t ct_state, uint32_t mask);
-void match_set_ct_zone(struct match *, uint16_t ct_zone);
-void match_set_ct_mark(struct match *, uint32_t ct_mark);
-void match_set_ct_mark_masked(struct match *, uint32_t ct_mark, uint32_t mask);
-void match_set_ct_label(struct match *, ovs_u128 ct_label);
-void match_set_ct_label_masked(struct match *, ovs_u128 ct_label, ovs_u128 mask);
-void match_set_skb_priority(struct match *, uint32_t skb_priority);
-void match_set_dl_type(struct match *, ovs_be16);
-void match_set_dl_src(struct match *, const struct eth_addr );
-void match_set_dl_src_masked(struct match *, const struct eth_addr dl_src,
-                             const struct eth_addr mask);
-void match_set_dl_dst(struct match *, const struct eth_addr);
-void match_set_dl_dst_masked(struct match *, const struct eth_addr dl_dst,
-                             const struct eth_addr mask);
-void match_set_dl_tci(struct match *, ovs_be16 tci);
-void match_set_dl_tci_masked(struct match *, ovs_be16 tci, ovs_be16 mask);
-void match_set_any_vid(struct match *);
-void match_set_dl_vlan(struct match *, ovs_be16);
-void match_set_vlan_vid(struct match *, ovs_be16);
-void match_set_vlan_vid_masked(struct match *, ovs_be16 vid, ovs_be16 mask);
-void match_set_any_pcp(struct match *);
-void match_set_dl_vlan_pcp(struct match *, uint8_t);
-void match_set_any_mpls_lse(struct match *, int idx);
-void match_set_mpls_lse(struct match *, int idx, ovs_be32);
-void match_set_any_mpls_label(struct match *, int idx);
-void match_set_mpls_label(struct match *, int idx, ovs_be32);
-void match_set_any_mpls_tc(struct match *, int idx);
-void match_set_mpls_tc(struct match *, int idx, uint8_t);
-void match_set_any_mpls_bos(struct match *, int idx);
-void match_set_mpls_bos(struct match *, int idx, uint8_t);
-void match_set_any_mpls_ttl(struct match *, int idx);
-void match_set_mpls_ttl(struct match *, int idx, uint8_t);
-void match_set_tp_src(struct match *, ovs_be16);
-void match_set_mpls_lse(struct match *, int idx, ovs_be32 lse);
-void match_set_tp_src_masked(struct match *, ovs_be16 port, ovs_be16 mask);
-void match_set_tp_dst(struct match *, ovs_be16);
-void match_set_tp_dst_masked(struct match *, ovs_be16 port, ovs_be16 mask);
-void match_set_tcp_flags(struct match *, ovs_be16);
-void match_set_tcp_flags_masked(struct match *, ovs_be16 flags, ovs_be16 mask);
-void match_set_nw_proto(struct match *, uint8_t);
-void match_set_nw_src(struct match *, ovs_be32);
-void match_set_nw_src_masked(struct match *, ovs_be32 ip, ovs_be32 mask);
-void match_set_nw_dst(struct match *, ovs_be32);
-void match_set_nw_dst_masked(struct match *, ovs_be32 ip, ovs_be32 mask);
-void match_set_nw_dscp(struct match *, uint8_t);
-void match_set_nw_ecn(struct match *, uint8_t);
-void match_set_nw_ttl(struct match *, uint8_t);
-void match_set_nw_frag(struct match *, uint8_t nw_frag);
-void match_set_nw_frag_masked(struct match *, uint8_t nw_frag, uint8_t mask);
-void match_set_icmp_type(struct match *, uint8_t);
-void match_set_icmp_code(struct match *, uint8_t);
-void match_set_arp_sha(struct match *, const struct eth_addr);
-void match_set_arp_sha_masked(struct match *,
-                              const struct eth_addr arp_sha,
-                              const struct eth_addr mask);
-void match_set_arp_tha(struct match *, const struct eth_addr);
-void match_set_arp_tha_masked(struct match *,
-                              const struct eth_addr arp_tha,
-                              const struct eth_addr mask);
-void match_set_ipv6_src(struct match *, const struct in6_addr *);
-void match_set_ipv6_src_masked(struct match *, const struct in6_addr *,
-                               const struct in6_addr *);
-void match_set_ipv6_dst(struct match *, const struct in6_addr *);
-void match_set_ipv6_dst_masked(struct match *, const struct in6_addr *,
-                               const struct in6_addr *);
-void match_set_ipv6_label(struct match *, ovs_be32);
-void match_set_ipv6_label_masked(struct match *, ovs_be32, ovs_be32);
-void match_set_nd_target(struct match *, const struct in6_addr *);
-void match_set_nd_target_masked(struct match *, const struct in6_addr *,
-                                const struct in6_addr *);
-
-bool match_equal(const struct match *, const struct match *);
-uint32_t match_hash(const struct match *, uint32_t basis);
-
-void match_init_hidden_fields(struct match *);
-bool match_has_default_hidden_fields(const struct match *);
-
-void match_format(const struct match *, struct ds *, int priority);
-char *match_to_string(const struct match *, int priority);
-void match_print(const struct match *);
-\f
-/* Compressed match. */
-
-/* A sparse representation of a "struct match".
- *
- * 'flows' is used for allocating both 'flow' and 'mask' with one
- * miniflow_alloc() call.
- *
- * There are two invariants:
- *
- *   - The same invariant as "struct match", that is, a 1-bit in the 'flow'
- *     must correspond to a 1-bit in 'mask'.
- *
- *   - 'flow' and 'mask' have the same 'map'.  This implies that 'flow' and
- *     'mask' have the same part of "struct flow" at the same offset into
- *     'values', which makes minimatch_matches_flow() faster.
- */
-struct minimatch {
-    union {
-        struct {
-            struct miniflow *flow;
-            struct minimask *mask;
-        };
-        struct miniflow *flows[2];
-    };
-};
-
-void minimatch_init(struct minimatch *, const struct match *);
-void minimatch_clone(struct minimatch *, const struct minimatch *);
-void minimatch_move(struct minimatch *dst, struct minimatch *src);
-void minimatch_destroy(struct minimatch *);
-
-void minimatch_expand(const struct minimatch *, struct match *);
-
-bool minimatch_equal(const struct minimatch *a, const struct minimatch *b);
-
-bool minimatch_matches_flow(const struct minimatch *, const struct flow *);
-
-void minimatch_format(const struct minimatch *, struct ds *, int priority);
-char *minimatch_to_string(const struct minimatch *, int priority);
-
-#endif /* match.h */
index 379257c41b61d8e4bf4f8cd11ee104d14a931527..0e5b440b67685622e0ba68df0d0acd62dcf47452 100644 (file)
@@ -24,7 +24,7 @@
 #include "compiler.h"
 #include "flow.h"
 #include "openvswitch/list.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "meta-flow.h"
 #include "netdev.h"
 #include "openflow/netronome-ext.h"
index 1e6ef4684bfd1ec7c860314ccfc63e49a327903c..77688701d063f5a3c65ed64fdf38815855f8518c 100644 (file)
@@ -21,7 +21,7 @@
 #include "bitmap.h"
 #include "compiler.h"
 #include "hmap.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "nx-match.h"
 #include "odp-netlink.h"
 #include "ofp-util.h"
index f668a24f1b75b4cb85fb2489501ac40048971f14..27c4c922b3eaf4188dc07bb1e0c3ba2df310a163 100644 (file)
@@ -43,7 +43,7 @@
 #include "dp-packet.h"
 #include "poll-loop.h"
 #include "seq.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "shash.h"
 #include "timeval.h"
 #include "unixctl.h"
index 637ad170ccba04f967b9e3a1189ec3a0c10d12aa..5b424994bbd66ab20e71016bcf5a7d182dea3792 100644 (file)
@@ -20,7 +20,7 @@
 #include "classifier.h"
 #include "hmap.h"
 #include "openvswitch/list.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "ofp-util.h"
 #include "ofproto.h"
 #include "ofproto-provider.h"
index 55ca98dd2a7f3561bcaffd3d3f518a2ec3794895..b0f0932aedfc6f3c13dac2bf25804393198e900b 100644 (file)
@@ -18,7 +18,7 @@
 #include "dirs.h"
 #include "openvswitch/dynamic-string.h"
 #include "hmap.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "ofp-actions.h"
 #include "ofp-msgs.h"
 #include "ofp-print.h"
index a210b396a148ea55d773eaebde3fe28610111154..3276e2e9b0787bcff03dc155c36b3f89d31cc45e 100644 (file)
@@ -16,7 +16,7 @@
 #include <config.h>
 #include "physical.h"
 #include "lflow.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "ofctrl.h"
 #include "ofp-actions.h"
 #include "openvswitch/ofpbuf.h"
index aae5df6c1c27ae861bf11e9e062ce165af403c05..c4a600fda795269012116af82e552ddb590fd421 100644 (file)
@@ -20,7 +20,7 @@
 #include "json.h"
 #include "lex.h"
 #include "logical-fields.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "ofp-actions.h"
 #include "shash.h"
 #include "simap.h"
index fa7ccbebb763c1a6d268f576a067814b00a36524..372577152c7fbd000d34d75ad769236410c2e172 100644 (file)
@@ -56,7 +56,7 @@
 #include "lex.h"
 #include "hmap.h"
 #include "openvswitch/list.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "meta-flow.h"
 
 struct ds;
index b1e20c3e9134b3bbe187da90b3dcda5ae10e93d1..602a6b6118bd08c43ae4450e21fa6e449736d28f 100644 (file)
@@ -20,7 +20,7 @@
 #include <stdio.h>
 #include "openvswitch/dynamic-string.h"
 #include "flow.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "openvswitch/ofpbuf.h"
 #include "ovstest.h"
 #include "util.h"
index 92906922ce46e1e23d92ec80452bdc43d18a36e0..52e0ac322b0e0a7c446d7c2e6090d787434b18f1 100644 (file)
@@ -21,7 +21,7 @@
 #include <sys/wait.h>
 #include "openvswitch/dynamic-string.h"
 #include "fatal-signal.h"
-#include "match.h"
+#include "openvswitch/match.h"
 #include "ofp-actions.h"
 #include "openvswitch/ofpbuf.h"
 #include "ovn/lib/actions.h"