* [dpdk-dev] [PATCH 00/12] bnxt patchset
@ 2018-05-01 1:06 Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 01/12] net/bnxt: add support for lsc interrupt event Ajit Khaparde
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev
Patchset against dpdk-next-net.
Please apply.
Ajit Khaparde (3):
net/bnxt: fix MTU calculation
net/bnxt: fix to reset status of initialization
net/bnxt: fix usage of vnic id
Jay Ding (2):
net/bnxt: return EINVAL instead of ENOSPC on invalid max ring
net/bnxt: return error if init is not complete before accessing stats
Qingmin Liu (2):
net/bnxt: add support for lsc interrupt event
net/bnxt: set MTU in dev config for jumbo packets
Rahul Gupta (1):
net/bnxt: Validate structs and pointers before use
Randy Schacher (1):
net/bnxt: clear HWRM sniffer list for PFs
Scott Branden (2):
net/bnxt: rename function checking MAC address
net/bnxt: rename driver version from Cumulus to NetXtreme
Xiaoxin Peng (1):
net/bnxt: fix rx mbuf and agg ring leak in dev stop
drivers/net/bnxt/bnxt.h | 1 +
drivers/net/bnxt/bnxt_ethdev.c | 23 ++++++++++++++++-------
drivers/net/bnxt/bnxt_filter.c | 8 +++++---
drivers/net/bnxt/bnxt_filter.h | 2 +-
drivers/net/bnxt/bnxt_hwrm.c | 26 +++++++++++++++++++-------
drivers/net/bnxt/bnxt_ring.c | 3 +++
drivers/net/bnxt/bnxt_rxq.c | 14 +++++++-------
drivers/net/bnxt/bnxt_stats.c | 2 +-
drivers/net/bnxt/bnxt_txq.c | 11 ++++++-----
9 files changed, 59 insertions(+), 31 deletions(-)
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 01/12] net/bnxt: add support for lsc interrupt event
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 02/12] net/bnxt: rename function checking MAC address Ajit Khaparde
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Qingmin Liu, Scott Branden, Ajit Kumar Khaparde
From: Qingmin Liu <qingmin.liu@broadcom.com>
Add support to bnxt driver to register RTE_ETH_EVENT_INTR_LSC
event and monitor physical link status.
Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 348129dad..229017ace 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -780,6 +780,11 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)
new.link_speed != eth_dev->data->dev_link.link_speed) {
memcpy(ð_dev->data->dev_link, &new,
sizeof(struct rte_eth_link));
+
+ _rte_eth_dev_callback_process(eth_dev,
+ RTE_ETH_EVENT_INTR_LSC,
+ NULL);
+
bnxt_print_link_info(eth_dev);
}
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 02/12] net/bnxt: rename function checking MAC address
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 01/12] net/bnxt: add support for lsc interrupt event Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 03/12] net/bnxt: rename driver version from Cumulus to NetXtreme Ajit Khaparde
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Scott Branden, Ajit Kumar Khaparde
From: Scott Branden <scott.branden@broadcom.com>
rename check_zero_bytes to bnxt_check_zero_bytes to match proper prefix.
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 2 +-
drivers/net/bnxt/bnxt_filter.c | 8 +++++---
drivers/net/bnxt/bnxt_filter.h | 2 +-
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 229017ace..3e2ccfa90 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3286,7 +3286,7 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev)
goto error_free;
}
- if (check_zero_bytes(bp->dflt_mac_addr, ETHER_ADDR_LEN)) {
+ if (bnxt_check_zero_bytes(bp->dflt_mac_addr, ETHER_ADDR_LEN)) {
PMD_DRV_LOG(ERR,
"Invalid MAC addr %02X:%02X:%02X:%02X:%02X:%02X\n",
bp->dflt_mac_addr[0], bp->dflt_mac_addr[1],
diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c
index dadd1e32f..e36da9977 100644
--- a/drivers/net/bnxt/bnxt_filter.c
+++ b/drivers/net/bnxt/bnxt_filter.c
@@ -231,7 +231,7 @@ nxt_non_void_action(const struct rte_flow_action *cur)
}
}
-int check_zero_bytes(const uint8_t *bytes, int len)
+int bnxt_check_zero_bytes(const uint8_t *bytes, int len)
{
int i;
for (i = 0; i < len; i++)
@@ -512,13 +512,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
ipv6_spec->hdr.src_addr, 16);
rte_memcpy(filter->dst_ipaddr,
ipv6_spec->hdr.dst_addr, 16);
- if (!check_zero_bytes(ipv6_mask->hdr.src_addr, 16)) {
+ if (!bnxt_check_zero_bytes(ipv6_mask->hdr.src_addr,
+ 16)) {
rte_memcpy(filter->src_ipaddr_mask,
ipv6_mask->hdr.src_addr, 16);
en |= !use_ntuple ? 0 :
NTUPLE_FLTR_ALLOC_INPUT_EN_SRC_IPADDR_MASK;
}
- if (!check_zero_bytes(ipv6_mask->hdr.dst_addr, 16)) {
+ if (!bnxt_check_zero_bytes(ipv6_mask->hdr.dst_addr,
+ 16)) {
rte_memcpy(filter->dst_ipaddr_mask,
ipv6_mask->hdr.dst_addr, 16);
en |= !use_ntuple ? 0 :
diff --git a/drivers/net/bnxt/bnxt_filter.h b/drivers/net/bnxt/bnxt_filter.h
index c70b127ac..d27be7032 100644
--- a/drivers/net/bnxt/bnxt_filter.h
+++ b/drivers/net/bnxt/bnxt_filter.h
@@ -69,7 +69,7 @@ struct bnxt_filter_info *bnxt_get_unused_filter(struct bnxt *bp);
void bnxt_free_filter(struct bnxt *bp, struct bnxt_filter_info *filter);
struct bnxt_filter_info *bnxt_get_l2_filter(struct bnxt *bp,
struct bnxt_filter_info *nf, struct bnxt_vnic_info *vnic);
-int check_zero_bytes(const uint8_t *bytes, int len);
+int bnxt_check_zero_bytes(const uint8_t *bytes, int len);
#define NTUPLE_FLTR_ALLOC_INPUT_EN_SRC_MACADDR \
HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_SRC_MACADDR
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 03/12] net/bnxt: rename driver version from Cumulus to NetXtreme
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 01/12] net/bnxt: add support for lsc interrupt event Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 02/12] net/bnxt: rename function checking MAC address Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 04/12] net/bnxt: return EINVAL instead of ENOSPC on invalid max ring Ajit Khaparde
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Scott Branden
From: Scott Branden <scott.branden@broadcom.com>
Rename driver version from "Broadcom Cumulus driver" to
"Broadcom NetXtreme driver" to reflect this driver is applicable to
NetXtreme family beyond Cumulus.
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 3e2ccfa90..58241ccac 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -29,7 +29,7 @@
#define DRV_MODULE_NAME "bnxt"
static const char bnxt_version[] =
- "Broadcom Cumulus driver " DRV_MODULE_NAME "\n";
+ "Broadcom NetXtreme driver " DRV_MODULE_NAME "\n";
int bnxt_logtype_driver;
#define PCI_VENDOR_ID_BROADCOM 0x14E4
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 04/12] net/bnxt: return EINVAL instead of ENOSPC on invalid max ring
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (2 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 03/12] net/bnxt: rename driver version from Cumulus to NetXtreme Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 05/12] net/bnxt: Validate structs and pointers before use Ajit Khaparde
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Jay Ding, Scott Branden
From: Jay Ding <jay.ding@broadcom.com>
Return EINVAL instead of ENOSPC when invalid queue_idx passed in
during rx and tx queue_setup_op routines.
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_rxq.c | 2 +-
drivers/net/bnxt/bnxt_txq.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index e939c9ac0..4e6fa4e30 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -290,7 +290,7 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev,
PMD_DRV_LOG(ERR,
"Cannot create Rx ring %d. Only %d rings available\n",
queue_idx, bp->max_rx_rings);
- return -ENOSPC;
+ return -EINVAL;
}
if (!nb_desc || nb_desc > MAX_RX_DESC_CNT) {
diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c
index 07e25d77b..b50f37cf2 100644
--- a/drivers/net/bnxt/bnxt_txq.c
+++ b/drivers/net/bnxt/bnxt_txq.c
@@ -86,7 +86,7 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev,
PMD_DRV_LOG(ERR,
"Cannot create Tx ring %d. Only %d rings available\n",
queue_idx, bp->max_tx_rings);
- return -ENOSPC;
+ return -EINVAL;
}
if (!nb_desc || nb_desc > MAX_TX_DESC_CNT) {
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 05/12] net/bnxt: Validate structs and pointers before use
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (3 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 04/12] net/bnxt: return EINVAL instead of ENOSPC on invalid max ring Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 06/12] net/bnxt: set MTU in dev config for jumbo packets Ajit Khaparde
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Rahul Gupta, Jay Ding, Scott Branden
From: Rahul Gupta <rahul.gupta@broadcom.com>
Validate pointers aren't pointing to uninitialized areas
including txq and rxq before using them to avoid
bnxt driver from crashing.
Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Tested-by: Randy Schacher <stuart.schacher@broadcom.com>
---
drivers/net/bnxt/bnxt_ring.c | 3 +++
drivers/net/bnxt/bnxt_rxq.c | 6 ++----
drivers/net/bnxt/bnxt_txq.c | 9 +++++----
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index 8e822e11f..aa9f3f4cc 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -24,6 +24,9 @@
void bnxt_free_ring(struct bnxt_ring *ring)
{
+ if (!ring)
+ return;
+
if (ring->vmem_size && *ring->vmem) {
memset((char *)*ring->vmem, 0, ring->vmem_size);
*ring->vmem = NULL;
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 4e6fa4e30..4b380d4f0 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -23,10 +23,8 @@
void bnxt_free_rxq_stats(struct bnxt_rx_queue *rxq)
{
- struct bnxt_cp_ring_info *cpr = rxq->cp_ring;
-
- if (cpr->hw_stats)
- cpr->hw_stats = NULL;
+ if (rxq && rxq->cp_ring && rxq->cp_ring->hw_stats)
+ rxq->cp_ring->hw_stats = NULL;
}
int bnxt_mq_rx_configure(struct bnxt *bp)
diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c
index b50f37cf2..b9b975e4c 100644
--- a/drivers/net/bnxt/bnxt_txq.c
+++ b/drivers/net/bnxt/bnxt_txq.c
@@ -19,10 +19,8 @@
void bnxt_free_txq_stats(struct bnxt_tx_queue *txq)
{
- struct bnxt_cp_ring_info *cpr = txq->cp_ring;
-
- if (cpr->hw_stats)
- cpr->hw_stats = NULL;
+ if (txq && txq->cp_ring && txq->cp_ring->hw_stats)
+ txq->cp_ring->hw_stats = NULL;
}
static void bnxt_tx_queue_release_mbufs(struct bnxt_tx_queue *txq)
@@ -30,6 +28,9 @@ static void bnxt_tx_queue_release_mbufs(struct bnxt_tx_queue *txq)
struct bnxt_sw_tx_bd *sw_ring;
uint16_t i;
+ if (!txq)
+ return;
+
sw_ring = txq->tx_ring->tx_buf_ring;
if (sw_ring) {
for (i = 0; i < txq->tx_ring->tx_ring_struct->ring_size; i++) {
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 06/12] net/bnxt: set MTU in dev config for jumbo packets
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (4 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 05/12] net/bnxt: Validate structs and pointers before use Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 07/12] net/bnxt: fix MTU calculation Ajit Khaparde
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Qingmin Liu, stable, Scott Branden
From: Qingmin Liu <qingmin.liu@broadcom.com>
MTU setting does not take effect after rte_eth_dev_configure
is called with jumbo enable unless it is configured using the
set_mtu dev_op.
Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org
Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Jay Ding <jay.ding@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 58241ccac..e68608f61 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -151,6 +151,7 @@ static const struct rte_pci_id bnxt_pci_id_map[] = {
static int bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int mask);
static void bnxt_print_link_info(struct rte_eth_dev *eth_dev);
+static int bnxt_mtu_set_op(struct rte_eth_dev *eth_dev, uint16_t new_mtu);
/***********************/
@@ -548,10 +549,12 @@ static int bnxt_dev_configure_op(struct rte_eth_dev *eth_dev)
bp->rx_cp_nr_rings = bp->rx_nr_rings;
bp->tx_cp_nr_rings = bp->tx_nr_rings;
- if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
+ if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
eth_dev->data->mtu =
eth_dev->data->dev_conf.rxmode.max_rx_pkt_len -
ETHER_HDR_LEN - ETHER_CRC_LEN - VLAN_TAG_SIZE;
+ bnxt_mtu_set_op(eth_dev, eth_dev->data->mtu);
+ }
return 0;
}
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 07/12] net/bnxt: fix MTU calculation
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (5 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 06/12] net/bnxt: set MTU in dev config for jumbo packets Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 08/12] net/bnxt: return error if init is not complete before accessing stats Ajit Khaparde
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: stable, Qingmin Liu, Scott Branden
We were not considering the case of nested VLANs while
calculating MTU. This patch takes care of the same.
Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org
Signed-off-by: Qingmin Liu <qingmin.liu@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Jay Ding <jay.ding@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt.h | 1 +
drivers/net/bnxt/bnxt_ethdev.c | 3 ++-
drivers/net/bnxt/bnxt_hwrm.c | 9 ++++++---
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index 97b0e0853..110cdb992 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -23,6 +23,7 @@
#define BNXT_MAX_MTU 9500
#define VLAN_TAG_SIZE 4
#define BNXT_MAX_LED 4
+#define BNXT_NUM_VLANS 2
struct bnxt_led_info {
uint8_t led_id;
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index e68608f61..20ed0a31f 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -552,7 +552,8 @@ static int bnxt_dev_configure_op(struct rte_eth_dev *eth_dev)
if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
eth_dev->data->mtu =
eth_dev->data->dev_conf.rxmode.max_rx_pkt_len -
- ETHER_HDR_LEN - ETHER_CRC_LEN - VLAN_TAG_SIZE;
+ ETHER_HDR_LEN - ETHER_CRC_LEN - VLAN_TAG_SIZE *
+ BNXT_NUM_VLANS;
bnxt_mtu_set_op(eth_dev, eth_dev->data->mtu);
}
return 0;
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index bc8773509..c136edc06 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -2360,7 +2360,8 @@ static int bnxt_hwrm_pf_func_cfg(struct bnxt *bp, int tx_rings)
req.flags = rte_cpu_to_le_32(bp->pf.func_cfg_flags);
req.mtu = rte_cpu_to_le_16(BNXT_MAX_MTU);
req.mru = rte_cpu_to_le_16(bp->eth_dev->data->mtu + ETHER_HDR_LEN +
- ETHER_CRC_LEN + VLAN_TAG_SIZE);
+ ETHER_CRC_LEN + VLAN_TAG_SIZE *
+ BNXT_NUM_VLANS);
req.num_rsscos_ctxs = rte_cpu_to_le_16(bp->max_rsscos_ctx);
req.num_stat_ctxs = rte_cpu_to_le_16(bp->max_stat_ctx);
req.num_cmpl_rings = rte_cpu_to_le_16(bp->max_cp_rings);
@@ -2397,9 +2398,11 @@ static void populate_vf_func_cfg_req(struct bnxt *bp,
HWRM_FUNC_CFG_INPUT_ENABLES_NUM_HW_RING_GRPS);
req->mtu = rte_cpu_to_le_16(bp->eth_dev->data->mtu + ETHER_HDR_LEN +
- ETHER_CRC_LEN + VLAN_TAG_SIZE);
+ ETHER_CRC_LEN + VLAN_TAG_SIZE *
+ BNXT_NUM_VLANS);
req->mru = rte_cpu_to_le_16(bp->eth_dev->data->mtu + ETHER_HDR_LEN +
- ETHER_CRC_LEN + VLAN_TAG_SIZE);
+ ETHER_CRC_LEN + VLAN_TAG_SIZE *
+ BNXT_NUM_VLANS);
req->num_rsscos_ctxs = rte_cpu_to_le_16(bp->max_rsscos_ctx /
(num_vfs + 1));
req->num_stat_ctxs = rte_cpu_to_le_16(bp->max_stat_ctx / (num_vfs + 1));
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 08/12] net/bnxt: return error if init is not complete before accessing stats
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (6 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 07/12] net/bnxt: fix MTU calculation Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 09/12] net/bnxt: fix to reset status of initialization Ajit Khaparde
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Jay Ding, stable, Scott Branden
From: Jay Ding <jay.ding@broadcom.com>
return error if init is not complete before accessing stats.
Fixes: ed2ced6fe927 ("net/bnxt: check initialization before accessing stats")
Cc: stable@dpdk.org
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_stats.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index 1b586f333..c1a8fad09 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -210,7 +210,7 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev,
memset(bnxt_stats, 0, sizeof(*bnxt_stats));
if (!(bp->flags & BNXT_FLAG_INIT_DONE)) {
PMD_DRV_LOG(ERR, "Device Initialization not complete!\n");
- return 0;
+ return -1;
}
for (i = 0; i < bp->rx_cp_nr_rings; i++) {
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 09/12] net/bnxt: fix to reset status of initialization
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (7 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 08/12] net/bnxt: return error if init is not complete before accessing stats Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 10/12] net/bnxt: fix rx mbuf and agg ring leak in dev stop Ajit Khaparde
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: stable
clear flag on stop at proper location to avoid race conditions.
Fixes: ed2ced6fe927 ("net/bnxt: check initialization before accessing stats")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 20ed0a31f..352fc30b4 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -648,13 +648,13 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
{
struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
+ bp->flags &= ~BNXT_FLAG_INIT_DONE;
if (bp->eth_dev->data->dev_started) {
/* TBD: STOP HW queues DMA */
eth_dev->data->dev_link.link_status = 0;
}
bnxt_set_hwrm_link_config(bp, false);
bnxt_hwrm_port_clr_stats(bp);
- bp->flags &= ~BNXT_FLAG_INIT_DONE;
bnxt_shutdown_nic(bp);
bp->dev_stopped = 1;
}
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 10/12] net/bnxt: fix rx mbuf and agg ring leak in dev stop
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (8 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 09/12] net/bnxt: fix to reset status of initialization Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 11/12] net/bnxt: fix usage of vnic id Ajit Khaparde
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Xiaoxin Peng, stable, Jay Ding, Scott Branden
From: Xiaoxin Peng <xiaoxin.peng@broadcom.com>
In the start/stop_op operation, mbufs allocated for rings were not freed
1) add bnxt_free_tx_mbuf/bnxt_free_rx_mbuf in bnxt_dev_stop_op to free MBUF
before freeing the rings.
2) MBUF allocation and free routines were not in sync. Allocation uses the
ring->ring_size including any rounded up and multiple factors while the
free routine uses the requested queue size.
Fixes: c09f57b49c13 ("net/bnxt: add start/stop/link update operations")
Cc: stable@dpdk.org
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Xiaoxin Peng <xiaoxin.peng@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 4 ++--
drivers/net/bnxt/bnxt_rxq.c | 6 ++++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 352fc30b4..dc445f9a5 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -655,6 +655,8 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
}
bnxt_set_hwrm_link_config(bp, false);
bnxt_hwrm_port_clr_stats(bp);
+ bnxt_free_tx_mbufs(bp);
+ bnxt_free_rx_mbufs(bp);
bnxt_shutdown_nic(bp);
bp->dev_stopped = 1;
}
@@ -666,8 +668,6 @@ static void bnxt_dev_close_op(struct rte_eth_dev *eth_dev)
if (bp->dev_stopped == 0)
bnxt_dev_stop_op(eth_dev);
- bnxt_free_tx_mbufs(bp);
- bnxt_free_rx_mbufs(bp);
bnxt_free_mem(bp);
if (eth_dev->data->mac_addrs != NULL) {
rte_free(eth_dev->data->mac_addrs);
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 4b380d4f0..866fb56b1 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -207,7 +207,8 @@ static void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq)
if (rxq) {
sw_ring = rxq->rx_ring->rx_buf_ring;
if (sw_ring) {
- for (i = 0; i < rxq->nb_rx_desc; i++) {
+ for (i = 0;
+ i < rxq->rx_ring->rx_ring_struct->ring_size; i++) {
if (sw_ring[i].mbuf) {
rte_pktmbuf_free_seg(sw_ring[i].mbuf);
sw_ring[i].mbuf = NULL;
@@ -217,7 +218,8 @@ static void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq)
/* Free up mbufs in Agg ring */
sw_ring = rxq->rx_ring->ag_buf_ring;
if (sw_ring) {
- for (i = 0; i < rxq->nb_rx_desc; i++) {
+ for (i = 0;
+ i < rxq->rx_ring->ag_ring_struct->ring_size; i++) {
if (sw_ring[i].mbuf) {
rte_pktmbuf_free_seg(sw_ring[i].mbuf);
sw_ring[i].mbuf = NULL;
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 11/12] net/bnxt: fix usage of vnic id
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (9 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 10/12] net/bnxt: fix rx mbuf and agg ring leak in dev stop Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 12/12] net/bnxt: clear HWRM sniffer list for PFs Ajit Khaparde
2018-05-08 16:30 ` [dpdk-dev] [PATCH 00/12] bnxt patchset Ferruh Yigit
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: stable, Scott Branden
VNIC ID returned by the FW is a 16-bit field.
We are incorrectly using it as a 32-bit value in few places.
This patch corrects that.
Fixes: daef48efe5e5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Michael Wildt <michael.wildt@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
---
drivers/net/bnxt/bnxt_hwrm.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index c136edc06..d3c50e490 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1212,7 +1212,7 @@ static int bnxt_hwrm_vnic_plcmodes_qcfg(struct bnxt *bp,
HWRM_PREP(req, VNIC_PLCMODES_QCFG);
- req.vnic_id = rte_cpu_to_le_32(vnic->fw_vnic_id);
+ req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id);
rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
@@ -1240,7 +1240,7 @@ static int bnxt_hwrm_vnic_plcmodes_cfg(struct bnxt *bp,
HWRM_PREP(req, VNIC_PLCMODES_CFG);
- req.vnic_id = rte_cpu_to_le_32(vnic->fw_vnic_id);
+ req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id);
req.flags = rte_cpu_to_le_32(pmode->flags);
req.jumbo_thresh = rte_cpu_to_le_16(pmode->jumbo_thresh);
req.hds_offset = rte_cpu_to_le_16(pmode->hds_offset);
@@ -1484,7 +1484,7 @@ int bnxt_hwrm_vnic_plcmode_cfg(struct bnxt *bp,
size -= RTE_PKTMBUF_HEADROOM;
req.jumbo_thresh = rte_cpu_to_le_16(size);
- req.vnic_id = rte_cpu_to_le_32(vnic->fw_vnic_id);
+ req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id);
rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
@@ -1520,7 +1520,7 @@ int bnxt_hwrm_vnic_tpa_cfg(struct bnxt *bp,
rte_cpu_to_le_16(HWRM_VNIC_TPA_CFG_INPUT_MAX_AGGS_MAX);
req.min_agg_len = rte_cpu_to_le_32(512);
}
- req.vnic_id = rte_cpu_to_le_32(vnic->fw_vnic_id);
+ req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id);
rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH 12/12] net/bnxt: clear HWRM sniffer list for PFs
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (10 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 11/12] net/bnxt: fix usage of vnic id Ajit Khaparde
@ 2018-05-01 1:06 ` Ajit Khaparde
2018-05-08 16:30 ` [dpdk-dev] [PATCH 00/12] bnxt patchset Ferruh Yigit
12 siblings, 0 replies; 14+ messages in thread
From: Ajit Khaparde @ 2018-05-01 1:06 UTC (permalink / raw)
To: dev; +Cc: Randy Schacher, Scott Branden
From: Randy Schacher <stuart.schacher@broadcom.com>
Clear HWRM sniffer list for DPDK PFs so that VFs on
DPDK PFs initialize successfully. DPDK PF driver does not
handle HWRM commands from VFs.
Signed-off-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_hwrm.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index d3c50e490..5b9840d4f 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -611,6 +611,15 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)
memcpy(req.vf_req_fwd, bp->pf.vf_req_fwd,
RTE_MIN(sizeof(req.vf_req_fwd),
sizeof(bp->pf.vf_req_fwd)));
+
+ /*
+ * PF can sniff HWRM API issued by VF. This can be set up by
+ * linux driver and inherited by the DPDK PF driver. Clear
+ * this HWRM sniffer list in FW because DPDK PF driver does
+ * not support this.
+ */
+ req.flags =
+ rte_cpu_to_le_32(HWRM_FUNC_DRV_RGTR_INPUT_FLAGS_FWD_NONE_MODE);
}
req.async_event_fwd[0] |=
--
2.15.1 (Apple Git-101)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH 00/12] bnxt patchset
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
` (11 preceding siblings ...)
2018-05-01 1:06 ` [dpdk-dev] [PATCH 12/12] net/bnxt: clear HWRM sniffer list for PFs Ajit Khaparde
@ 2018-05-08 16:30 ` Ferruh Yigit
12 siblings, 0 replies; 14+ messages in thread
From: Ferruh Yigit @ 2018-05-08 16:30 UTC (permalink / raw)
To: Ajit Khaparde, dev
On 5/1/2018 2:06 AM, Ajit Khaparde wrote:
> Patchset against dpdk-next-net.
> Please apply.
>
> Ajit Khaparde (3):
> net/bnxt: fix MTU calculation
> net/bnxt: fix to reset status of initialization
> net/bnxt: fix usage of vnic id
>
> Jay Ding (2):
> net/bnxt: return EINVAL instead of ENOSPC on invalid max ring
> net/bnxt: return error if init is not complete before accessing stats
>
> Qingmin Liu (2):
> net/bnxt: add support for lsc interrupt event
> net/bnxt: set MTU in dev config for jumbo packets
>
> Rahul Gupta (1):
> net/bnxt: Validate structs and pointers before use
>
> Randy Schacher (1):
> net/bnxt: clear HWRM sniffer list for PFs
>
> Scott Branden (2):
> net/bnxt: rename function checking MAC address
> net/bnxt: rename driver version from Cumulus to NetXtreme
>
> Xiaoxin Peng (1):
> net/bnxt: fix rx mbuf and agg ring leak in dev stop
Series applied to dpdk-next-net/master, thanks.
There were some ./devtools/check-git-log.sh errors fixed while applying, please
check them next time, thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-05-08 16:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-01 1:06 [dpdk-dev] [PATCH 00/12] bnxt patchset Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 01/12] net/bnxt: add support for lsc interrupt event Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 02/12] net/bnxt: rename function checking MAC address Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 03/12] net/bnxt: rename driver version from Cumulus to NetXtreme Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 04/12] net/bnxt: return EINVAL instead of ENOSPC on invalid max ring Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 05/12] net/bnxt: Validate structs and pointers before use Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 06/12] net/bnxt: set MTU in dev config for jumbo packets Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 07/12] net/bnxt: fix MTU calculation Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 08/12] net/bnxt: return error if init is not complete before accessing stats Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 09/12] net/bnxt: fix to reset status of initialization Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 10/12] net/bnxt: fix rx mbuf and agg ring leak in dev stop Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 11/12] net/bnxt: fix usage of vnic id Ajit Khaparde
2018-05-01 1:06 ` [dpdk-dev] [PATCH 12/12] net/bnxt: clear HWRM sniffer list for PFs Ajit Khaparde
2018-05-08 16:30 ` [dpdk-dev] [PATCH 00/12] bnxt patchset Ferruh Yigit
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).