git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/hns3: fix maximum queues on configuration failure
[dpdk.git]
/
drivers
/
net
/
octeontx2
/
otx2_flow.h
diff --git
a/drivers/net/octeontx2/otx2_flow.h
b/drivers/net/octeontx2/otx2_flow.h
index
df78f41
..
790e6ef
100644
(file)
--- a/
drivers/net/octeontx2/otx2_flow.h
+++ b/
drivers/net/octeontx2/otx2_flow.h
@@
-30,11
+30,11
@@
enum {
#define NPC_IH_LENGTH 8
#define NPC_TPID_LENGTH 2
#define NPC_HIGIG2_LENGTH 16
#define NPC_IH_LENGTH 8
#define NPC_TPID_LENGTH 2
#define NPC_HIGIG2_LENGTH 16
+#define NPC_MAX_RAW_ITEM_LEN 16
#define NPC_COUNTER_NONE (-1)
/* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
#define NPC_MAX_EXTRACT_DATA_LEN (64)
#define NPC_LDATA_LFLAG_LEN (16)
#define NPC_COUNTER_NONE (-1)
/* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
#define NPC_MAX_EXTRACT_DATA_LEN (64)
#define NPC_LDATA_LFLAG_LEN (16)
-#define NPC_MCAM_TOT_ENTRIES (4096)
#define NPC_MAX_KEY_NIBBLES (31)
/* Nibble offsets */
#define NPC_LAYER_KEYX_SZ (3)
#define NPC_MAX_KEY_NIBBLES (31)
/* Nibble offsets */
#define NPC_LAYER_KEYX_SZ (3)
@@
-55,6
+55,10
@@
enum {
#define OTX2_FLOW_ACT_COUNT (1 << 7)
#define OTX2_FLOW_ACT_PF (1 << 8)
#define OTX2_FLOW_ACT_VF (1 << 9)
#define OTX2_FLOW_ACT_COUNT (1 << 7)
#define OTX2_FLOW_ACT_PF (1 << 8)
#define OTX2_FLOW_ACT_VF (1 << 9)
+#define OTX2_FLOW_ACT_VLAN_STRIP (1 << 10)
+#define OTX2_FLOW_ACT_VLAN_INSERT (1 << 11)
+#define OTX2_FLOW_ACT_VLAN_ETHTYPE_INSERT (1 << 12)
+#define OTX2_FLOW_ACT_VLAN_PCP_INSERT (1 << 13)
/* terminating actions */
#define OTX2_FLOW_ACT_TERM (OTX2_FLOW_ACT_DROP | \
/* terminating actions */
#define OTX2_FLOW_ACT_TERM (OTX2_FLOW_ACT_DROP | \
@@
-145,6
+149,11
@@
struct otx2_mcam_ents_info {
uint32_t live_ent;
};
uint32_t live_ent;
};
+struct otx2_flow_dump_data {
+ uint8_t lid;
+ uint16_t ltype;
+};
+
struct rte_flow {
uint8_t nix_intf;
uint32_t mcam_id;
struct rte_flow {
uint8_t nix_intf;
uint32_t mcam_id;
@@
-154,6
+163,9
@@
struct rte_flow {
uint64_t mcam_data[OTX2_MAX_MCAM_WIDTH_DWORDS];
uint64_t mcam_mask[OTX2_MAX_MCAM_WIDTH_DWORDS];
uint64_t npc_action;
uint64_t mcam_data[OTX2_MAX_MCAM_WIDTH_DWORDS];
uint64_t mcam_mask[OTX2_MAX_MCAM_WIDTH_DWORDS];
uint64_t npc_action;
+ uint64_t vtag_action;
+ struct otx2_flow_dump_data dump_data[32];
+ uint16_t num_patterns;
TAILQ_ENTRY(rte_flow) next;
};
TAILQ_ENTRY(rte_flow) next;
};
@@
-162,6
+174,7
@@
TAILQ_HEAD(otx2_flow_list, rte_flow);
/* Accessed from ethdev private - otx2_eth_dev */
struct otx2_npc_flow_info {
rte_atomic32_t mark_actions;
/* Accessed from ethdev private - otx2_eth_dev */
struct otx2_npc_flow_info {
rte_atomic32_t mark_actions;
+ uint32_t vtag_actions;
uint32_t keyx_supp_nmask[NPC_MAX_INTF];/* nibble mask */
uint32_t keyx_len[NPC_MAX_INTF]; /* per intf key len in bits */
uint32_t datax_len[NPC_MAX_INTF]; /* per intf data len in bits */
uint32_t keyx_supp_nmask[NPC_MAX_INTF];/* nibble mask */
uint32_t keyx_len[NPC_MAX_INTF]; /* per intf key len in bits */
uint32_t datax_len[NPC_MAX_INTF]; /* per intf data len in bits */
@@
-207,6
+220,7
@@
struct otx2_parse_state {
uint8_t flags[NPC_MAX_LID];
uint8_t *mcam_data; /* point to flow->mcam_data + key_len */
uint8_t *mcam_mask; /* point to flow->mcam_mask + key_len */
uint8_t flags[NPC_MAX_LID];
uint8_t *mcam_data; /* point to flow->mcam_data + key_len */
uint8_t *mcam_mask; /* point to flow->mcam_mask + key_len */
+ bool is_vf;
};
struct otx2_flow_item_info {
};
struct otx2_flow_item_info {
@@
-394,4
+408,7
@@
int otx2_flow_parse_actions(struct rte_eth_dev *dev,
int otx2_flow_free_all_resources(struct otx2_eth_dev *hw);
int otx2_flow_parse_mpls(struct otx2_parse_state *pst, int lid);
int otx2_flow_free_all_resources(struct otx2_eth_dev *hw);
int otx2_flow_parse_mpls(struct otx2_parse_state *pst, int lid);
+
+void otx2_flow_dump(FILE *file, struct otx2_eth_dev *hw,
+ struct rte_flow *flow);
#endif /* __OTX2_FLOW_H__ */
#endif /* __OTX2_FLOW_H__ */