|
@@ -1857,9 +1857,10 @@ enum ib_flow_spec_type {
|
|
|
IB_FLOW_SPEC_ACTION_TAG = 0x1000,
|
|
|
IB_FLOW_SPEC_ACTION_DROP = 0x1001,
|
|
|
IB_FLOW_SPEC_ACTION_HANDLE = 0x1002,
|
|
|
+ IB_FLOW_SPEC_ACTION_COUNT = 0x1003,
|
|
|
};
|
|
|
#define IB_FLOW_SPEC_LAYER_MASK 0xF0
|
|
|
-#define IB_FLOW_SPEC_SUPPORT_LAYERS 8
|
|
|
+#define IB_FLOW_SPEC_SUPPORT_LAYERS 10
|
|
|
|
|
|
/* Flow steering rule priority is set according to it's domain.
|
|
|
* Lower domain value means higher priority.
|
|
@@ -2011,6 +2012,17 @@ struct ib_flow_spec_action_handle {
|
|
|
struct ib_flow_action *act;
|
|
|
};
|
|
|
|
|
|
+enum ib_counters_description {
|
|
|
+ IB_COUNTER_PACKETS,
|
|
|
+ IB_COUNTER_BYTES,
|
|
|
+};
|
|
|
+
|
|
|
+struct ib_flow_spec_action_count {
|
|
|
+ enum ib_flow_spec_type type;
|
|
|
+ u16 size;
|
|
|
+ struct ib_counters *counters;
|
|
|
+};
|
|
|
+
|
|
|
union ib_flow_spec {
|
|
|
struct {
|
|
|
u32 type;
|
|
@@ -2026,6 +2038,7 @@ union ib_flow_spec {
|
|
|
struct ib_flow_spec_action_tag flow_tag;
|
|
|
struct ib_flow_spec_action_drop drop;
|
|
|
struct ib_flow_spec_action_handle action;
|
|
|
+ struct ib_flow_spec_action_count flow_count;
|
|
|
};
|
|
|
|
|
|
struct ib_flow_attr {
|