[ovs-dev] [PATCH v4 11/22] Move lib/match.h to include/openvswitch directory
ben at skyportsystems.com
ben at skyportsystems.com
Tue Mar 22 23:17:42 UTC 2016
From: Ben Warren <ben at skyportsystems.com>
Signed-off-by: Ben Warren <ben at skyportsystems.com>
---
include/openvswitch/automake.mk | 1 +
include/openvswitch/match.h | 214 ++++++++++++++++++++++++++++++++++++++++
lib/automake.mk | 1 -
lib/classifier.h | 2 +-
lib/dpctl.c | 2 +-
lib/dpif-netdev.c | 2 +-
lib/flow.c | 2 +-
lib/learn.c | 2 +-
lib/match.c | 3 +-
lib/match.h | 214 ----------------------------------------
lib/ofp-util.h | 2 +-
lib/tun-metadata.c | 2 +-
ofproto/bond.c | 2 +-
ofproto/connmgr.h | 2 +-
ovn/controller/ofctrl.c | 2 +-
ovn/controller/physical.c | 2 +-
ovn/lib/expr.c | 2 +-
ovn/lib/expr.h | 2 +-
tests/test-odp.c | 2 +-
tests/test-ovn.c | 2 +-
20 files changed, 232 insertions(+), 231 deletions(-)
create mode 100644 include/openvswitch/match.h
delete mode 100644 lib/match.h
diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk
index 184dd89..0d79bb4 100644
--- a/include/openvswitch/automake.mk
+++ b/include/openvswitch/automake.mk
@@ -5,6 +5,7 @@ openvswitchinclude_HEADERS = \
include/openvswitch/flow.h \
include/openvswitch/geneve.h \
include/openvswitch/list.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
index 0000000..3dc2521
--- /dev/null
+++ b/include/openvswitch/match.h
@@ -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 MATCH_H
+#define 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 *);
+
+/* 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 */
diff --git a/lib/automake.mk b/lib/automake.mk
index 7b829d0..b9e26e4 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -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 \
diff --git a/lib/classifier.h b/lib/classifier.h
index 889dc1e..975a4f0 100644
--- a/lib/classifier.h
+++ b/lib/classifier.h
@@ -299,7 +299,7 @@
* 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"
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 5f70031..11b6ed0 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
@@ -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"
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 119dc2d..a3c9b08 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -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"
diff --git a/lib/flow.c b/lib/flow.c
index b9ce331..560a90f 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -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"
diff --git a/lib/learn.c b/lib/learn.c
index effb827..1a9dc2d 100644
--- a/lib/learn.c
+++ b/lib/learn.c
@@ -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"
diff --git a/lib/match.c b/lib/match.c
index fd571d9..42955b8 100644
--- a/lib/match.c
+++ b/lib/match.c
@@ -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
index 0a6ac29..0000000
--- a/lib/match.h
+++ /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 *);
-
-/* 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 */
diff --git a/lib/ofp-util.h b/lib/ofp-util.h
index 379257c..0e5b440 100644
--- a/lib/ofp-util.h
+++ b/lib/ofp-util.h
@@ -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"
diff --git a/lib/tun-metadata.c b/lib/tun-metadata.c
index 1e6ef46..7768870 100644
--- a/lib/tun-metadata.c
+++ b/lib/tun-metadata.c
@@ -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"
diff --git a/ofproto/bond.c b/ofproto/bond.c
index 836f00f..83d6f4c 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -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"
diff --git a/ofproto/connmgr.h b/ofproto/connmgr.h
index 637ad17..5b42499 100644
--- a/ofproto/connmgr.h
+++ b/ofproto/connmgr.h
@@ -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"
diff --git a/ovn/controller/ofctrl.c b/ovn/controller/ofctrl.c
index 55ca98d..b0f0932 100644
--- a/ovn/controller/ofctrl.c
+++ b/ovn/controller/ofctrl.c
@@ -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"
diff --git a/ovn/controller/physical.c b/ovn/controller/physical.c
index b699664..4eb253f 100644
--- a/ovn/controller/physical.c
+++ b/ovn/controller/physical.c
@@ -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"
diff --git a/ovn/lib/expr.c b/ovn/lib/expr.c
index aae5df6..c4a600f 100644
--- a/ovn/lib/expr.c
+++ b/ovn/lib/expr.c
@@ -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"
diff --git a/ovn/lib/expr.h b/ovn/lib/expr.h
index fa7ccbe..3725771 100644
--- a/ovn/lib/expr.h
+++ b/ovn/lib/expr.h
@@ -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;
diff --git a/tests/test-odp.c b/tests/test-odp.c
index b1e20c3..602a6b6 100644
--- a/tests/test-odp.c
+++ b/tests/test-odp.c
@@ -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"
diff --git a/tests/test-ovn.c b/tests/test-ovn.c
index 9290692..52e0ac3 100644
--- a/tests/test-ovn.c
+++ b/tests/test-ovn.c
@@ -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"
--
2.5.0
More information about the dev
mailing list