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/pcap: support imissed stats
[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
6bcdc25
..
8bae0c4
100644
(file)
--- a/
drivers/net/bnxt/bnxt_filter.h
+++ b/
drivers/net/bnxt/bnxt_filter.h
@@
-1,5
+1,5
@@
/* SPDX-License-Identifier: BSD-3-Clause
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-20
18
Broadcom
+ * Copyright(c) 2014-20
21
Broadcom
* All rights reserved.
*/
* All rights reserved.
*/
@@
-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,9
+21,18
@@
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)
+#define BNXT_FLOW_MARK_FLAG BIT(7)
+
+struct bnxt_flow_stats {
+ uint64_t packets;
+ uint64_t bytes;
+};
struct bnxt_filter_info {
STAILQ_ENTRY(bnxt_filter_info) next;
struct bnxt_filter_info {
STAILQ_ENTRY(bnxt_filter_info) next;
+ uint32_t flow_id;
uint64_t fw_l2_filter_id;
struct bnxt_filter_info *matching_l2_fltr_ptr;
uint64_t fw_em_filter_id;
uint64_t fw_l2_filter_id;
struct bnxt_filter_info *matching_l2_fltr_ptr;
uint64_t fw_em_filter_id;
@@
-69,11
+84,16
@@
struct bnxt_filter_info {
uint16_t ip_addr_type;
uint16_t ethertype;
uint32_t priority;
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;
+ uint32_t mark;
+ struct bnxt_flow_stats hw_stats;
};
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);
@@
-148,4
+168,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