@@ -124,6 +124,26 @@ struct dp_netdev_flow {
/* 'cr' must be the last member. */
};
+static uint32_t
+dp_netdev_flow_hash(const ovs_u128 *ufid)
+{
+ return ufid->u32[0];
+}
+
+/* A set of datapath actions within a "struct dp_netdev_flow".
+ *
+ *
+ * Thread-safety
+ * =============
+ *
+ * A struct dp_netdev_actions 'actions' is protected with RCU. */
+struct dp_netdev_actions {
+ /* These members are immutable: they do not change during the struct's
+ * lifetime. */
+ unsigned int size; /* Size of 'actions', in bytes. */
+ struct nlattr actions[]; /* Sequence of OVS_ACTION_ATTR_* attributes. */
+};
+
#ifdef __cplusplus
}
#endif
@@ -83,6 +83,8 @@
#include "util.h"
#include "uuid.h"
+#include "dpif-netdev-private-hwol.h"
+
VLOG_DEFINE_THIS_MODULE(dpif_netdev);
/* Auto Load Balancing Defaults */
@@ -406,20 +408,6 @@ static bool dp_netdev_flow_ref(struct dp_netdev_flow *);
static int dpif_netdev_flow_from_nlattrs(const struct nlattr *, uint32_t,
struct flow *, bool);
-/* A set of datapath actions within a "struct dp_netdev_flow".
- *
- *
- * Thread-safety
- * =============
- *
- * A struct dp_netdev_actions 'actions' is protected with RCU. */
-struct dp_netdev_actions {
- /* These members are immutable: they do not change during the struct's
- * lifetime. */
- unsigned int size; /* Size of 'actions', in bytes. */
- struct nlattr actions[]; /* Sequence of OVS_ACTION_ATTR_* attributes. */
-};
-
struct dp_netdev_actions *dp_netdev_actions_create(const struct nlattr *,
size_t);
struct dp_netdev_actions *dp_netdev_flow_get_actions(
@@ -1929,12 +1917,6 @@ static void dp_netdev_flow_unref(struct dp_netdev_flow *flow)
}
}
-static uint32_t
-dp_netdev_flow_hash(const ovs_u128 *ufid)
-{
- return ufid->u32[0];
-}
-
static inline struct dpcls *
dp_netdev_pmd_lookup_dpcls(struct dp_netdev_pmd_thread *pmd,
odp_port_t in_port)
@@ -1969,26 +1951,8 @@ dp_netdev_pmd_find_dpcls(struct dp_netdev_pmd_thread *pmd,
return cls;
}
-#define MAX_FLOW_MARK (UINT32_MAX - 1)
-#define INVALID_FLOW_MARK 0
-/* Zero flow mark is used to indicate the HW to remove the mark. A packet
- * marked with zero mark is received in SW without a mark at all, so it
- * cannot be used as a valid mark.
- */
-
-struct megaflow_to_mark_data {
- const struct cmap_node node;
- ovs_u128 mega_ufid;
- uint32_t mark;
-};
-
-struct flow_mark {
- struct cmap megaflow_to_mark;
- struct cmap mark_to_flow;
- struct id_pool *pool;
-};
-static struct flow_mark flow_mark = {
+struct flow_mark flow_mark = {
.megaflow_to_mark = CMAP_INITIALIZER,
.mark_to_flow = CMAP_INITIALIZER,
};
@@ -2157,23 +2121,6 @@ flow_mark_flush(struct dp_netdev_pmd_thread *pmd)
}
}
-static struct dp_netdev_flow *
-mark_to_flow_find(const struct dp_netdev_pmd_thread *pmd,
- const uint32_t mark)
-{
- struct dp_netdev_flow *flow;
-
- CMAP_FOR_EACH_WITH_HASH (flow, mark_node, hash_int(mark, 0),
- &flow_mark.mark_to_flow) {
- if (flow->mark == mark && flow->pmd_id == pmd->core_id &&
- flow->dead == false) {
- return flow;
- }
- }
-
- return NULL;
-}
-
static struct dp_flow_offload_item *
dp_netdev_alloc_flow_offload(struct dp_netdev_pmd_thread *pmd,
struct dp_netdev_flow *flow,
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> --- lib/dpif-netdev-private-flow.h | 20 ++++++++++++ lib/dpif-netdev.c | 59 ++-------------------------------- 2 files changed, 23 insertions(+), 56 deletions(-)