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/bnxt: fix reusing L2 filter
[dpdk.git]
/
drivers
/
net
/
bnxt
/
bnxt_filter.h
diff --git
a/drivers/net/bnxt/bnxt_filter.h
b/drivers/net/bnxt/bnxt_filter.h
index
8bd9d35
..
fc40f11
100644
(file)
--- a/
drivers/net/bnxt/bnxt_filter.h
+++ b/
drivers/net/bnxt/bnxt_filter.h
@@
-8,6
+8,12
@@
#include <rte_ether.h>
#include <rte_ether.h>
+#define bnxt_vlan_filter_exists(bp, filter, chk, vlan_id) \
+ (((filter)->enables & (chk)) && \
+ ((filter)->l2_ivlan == (vlan_id) && \
+ (filter)->l2_ivlan_mask == 0x0FFF) && \
+ !memcmp((filter)->l2_addr, (bp)->mac_addr, \
+ RTE_ETHER_ADDR_LEN))
struct bnxt;
#define BNXT_FLOW_L2_VALID_FLAG BIT(0)
struct bnxt;
#define BNXT_FLOW_L2_VALID_FLAG BIT(0)
@@
-15,6
+21,8
@@
struct bnxt;
#define BNXT_FLOW_L2_INNER_SRC_VALID_FLAG BIT(2)
#define BNXT_FLOW_L2_DST_VALID_FLAG BIT(3)
#define BNXT_FLOW_L2_INNER_DST_VALID_FLAG BIT(4)
#define BNXT_FLOW_L2_INNER_SRC_VALID_FLAG BIT(2)
#define BNXT_FLOW_L2_DST_VALID_FLAG BIT(3)
#define BNXT_FLOW_L2_INNER_DST_VALID_FLAG BIT(4)
+#define BNXT_FLOW_L2_DROP_FLAG BIT(5)
+#define BNXT_FLOW_PARSE_INNER_FLAG BIT(6)
struct bnxt_filter_info {
STAILQ_ENTRY(bnxt_filter_info) next;
struct bnxt_filter_info {
STAILQ_ENTRY(bnxt_filter_info) next;
@@
-68,11
+76,15
@@
struct bnxt_filter_info {
uint16_t ip_protocol;
uint16_t ip_addr_type;
uint16_t ethertype;
uint16_t ip_protocol;
uint16_t ip_addr_type;
uint16_t ethertype;
+ uint32_t priority;
+ /* Backptr to vnic. As of now, used only by an L2 filter
+ * to remember which vnic it was created on
+ */
+ struct bnxt_vnic_info *vnic;
};
struct bnxt_filter_info *bnxt_alloc_filter(struct bnxt *bp);
struct bnxt_filter_info *bnxt_alloc_vf_filter(struct bnxt *bp, uint16_t vf);
};
struct bnxt_filter_info *bnxt_alloc_filter(struct bnxt *bp);
struct bnxt_filter_info *bnxt_alloc_vf_filter(struct bnxt *bp, uint16_t vf);
-void bnxt_init_filters(struct bnxt *bp);
void bnxt_free_all_filters(struct bnxt *bp);
void bnxt_free_filter_mem(struct bnxt *bp);
int bnxt_alloc_filter_mem(struct bnxt *bp);
void bnxt_free_all_filters(struct bnxt *bp);
void bnxt_free_filter_mem(struct bnxt *bp);
int bnxt_alloc_filter_mem(struct bnxt *bp);
@@
-147,4
+159,8
@@
struct bnxt_filter_info *bnxt_get_l2_filter(struct bnxt *bp,
HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_MIRROR_VNIC_ID
#define NTUPLE_FLTR_ALLOC_INPUT_EN_MIRROR_VNIC_ID \
HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_MIRROR_VNIC_ID
HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_MIRROR_VNIC_ID
#define NTUPLE_FLTR_ALLOC_INPUT_EN_MIRROR_VNIC_ID \
HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_MIRROR_VNIC_ID
+#define L2_FILTER_ALLOC_INPUT_EN_T_NUM_VLANS \
+ HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_T_NUM_VLANS
+#define L2_FILTER_ALLOC_INPUT_EN_NUM_VLANS \
+ HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_NUM_VLANS
#endif
#endif