This function will be used by later commit.
Signed-off-by: Pravin B Shelar <[email protected]>
---
lib/dpif-netdev.c | 16 +---------------
lib/meta-flow.c | 20 ++++++++++++++++++++
lib/meta-flow.h | 1 +
3 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 8687a47..1fa4a3c 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -1139,21 +1139,7 @@ dpif_netdev_mask_from_nlattrs(const struct nlattr *key,
uint32_t key_len,
/* Force unwildcard the in_port. */
mask->in_port.odp_port = u32_to_odp(UINT32_MAX);
} else {
- enum mf_field_id id;
- /* No mask key, unwildcard everything except fields whose
- * prerequisities are not met. */
- memset(mask, 0x0, sizeof *mask);
-
- for (id = 0; id < MFF_N_IDS; ++id) {
- /* Skip registers and metadata. */
- if (!(id >= MFF_REG0 && id < MFF_REG0 + FLOW_N_REGS)
- && id != MFF_METADATA) {
- const struct mf_field *mf = mf_from_id(id);
- if (mf_are_prereqs_ok(mf, flow)) {
- mf_mask_field(mf, mask);
- }
- }
- }
+ flow_mask_unwildcard_all(flow, mask);
}
return 0;
diff --git a/lib/meta-flow.c b/lib/meta-flow.c
index 6ef564e..ddc2f27 100644
--- a/lib/meta-flow.c
+++ b/lib/meta-flow.c
@@ -1657,6 +1657,26 @@ mf_mask_field(const struct mf_field *mf, struct flow
*mask)
}
}
+void
+flow_mask_unwildcard_all(const struct flow *flow, struct flow *mask)
+{
+ enum mf_field_id id;
+ /* No mask key, unwildcard everything except fields whose
+ * prerequisities are not met. */
+ memset(mask, 0x0, sizeof *mask);
+
+ for (id = 0; id < MFF_N_IDS; ++id) {
+ /* Skip registers and metadata. */
+ if (!(id >= MFF_REG0 && id < MFF_REG0 + FLOW_N_REGS)
+ && id != MFF_METADATA) {
+ const struct mf_field *mf = mf_from_id(id);
+ if (mf_are_prereqs_ok(mf, flow)) {
+ mf_mask_field(mf, mask);
+ }
+ }
+ }
+}
+
/* Sets 'flow' member field described by 'mf' to 'value'. The caller is
* responsible for ensuring that 'flow' meets 'mf''s prerequisites.*/
void
diff --git a/lib/meta-flow.h b/lib/meta-flow.h
index 91dfecd..8b3cd5e 100644
--- a/lib/meta-flow.h
+++ b/lib/meta-flow.h
@@ -413,4 +413,5 @@ void mf_format(const struct mf_field *,
struct ds *);
void mf_format_subvalue(const union mf_subvalue *subvalue, struct ds *s);
+void flow_mask_unwildcard_all(const struct flow *flow, struct flow *mask);
#endif /* meta-flow.h */
--
1.7.9.5
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev