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/cnxk: support Rx security offload on cn10k
[dpdk.git]
/
drivers
/
net
/
bnxt
/
bnxt_ethdev.c
diff --git
a/drivers/net/bnxt/bnxt_ethdev.c
b/drivers/net/bnxt/bnxt_ethdev.c
index
dc7dee1
..
aa7e7fd
100644
(file)
--- a/
drivers/net/bnxt/bnxt_ethdev.c
+++ b/
drivers/net/bnxt/bnxt_ethdev.c
@@
-814,6
+814,16
@@
skip_cosq_cfg:
}
}
}
}
+ for (j = 0; j < bp->tx_nr_rings; j++) {
+ struct bnxt_tx_queue *txq = bp->tx_queues[j];
+
+ if (!txq->tx_deferred_start) {
+ bp->eth_dev->data->tx_queue_state[j] =
+ RTE_ETH_QUEUE_STATE_STARTED;
+ txq->tx_started = true;
+ }
+ }
+
rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, &bp->vnic_info[0], 0, NULL);
if (rc) {
PMD_DRV_LOG(ERR,
rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, &bp->vnic_info[0], 0, NULL);
if (rc) {
PMD_DRV_LOG(ERR,
@@
-2359,7
+2369,6
@@
bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
}
tunnel_type =
HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN;
}
tunnel_type =
HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN;
- bp->vxlan_port_cnt++;
break;
case RTE_TUNNEL_TYPE_GENEVE:
if (bp->geneve_port_cnt) {
break;
case RTE_TUNNEL_TYPE_GENEVE:
if (bp->geneve_port_cnt) {
@@
-2374,7
+2383,6
@@
bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
}
tunnel_type =
HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_GENEVE;
}
tunnel_type =
HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_GENEVE;
- bp->geneve_port_cnt++;
break;
default:
PMD_DRV_LOG(ERR, "Tunnel type is not supported\n");
break;
default:
PMD_DRV_LOG(ERR, "Tunnel type is not supported\n");
@@
-2382,6
+2390,18
@@
bnxt_udp_tunnel_port_add_op(struct rte_eth_dev *eth_dev,
}
rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_tunnel->udp_port,
tunnel_type);
}
rc = bnxt_hwrm_tunnel_dst_port_alloc(bp, udp_tunnel->udp_port,
tunnel_type);
+
+ if (rc != 0)
+ return rc;
+
+ if (tunnel_type ==
+ HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN)
+ bp->vxlan_port_cnt++;
+
+ if (tunnel_type ==
+ HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_GENEVE)
+ bp->geneve_port_cnt++;
+
return rc;
}
return rc;
}
@@
-4443,11
+4463,11
@@
static int bnxt_fw_reset_all(struct bnxt *bp)
int rc = 0;
if (info->flags & BNXT_FLAG_ERROR_RECOVERY_HOST) {
int rc = 0;
if (info->flags & BNXT_FLAG_ERROR_RECOVERY_HOST) {
- /* Reset through
master
function driver */
+ /* Reset through
primary
function driver */
for (i = 0; i < info->reg_array_cnt; i++)
bnxt_write_fw_reset_reg(bp, i);
/* Wait for time specified by FW after triggering reset */
for (i = 0; i < info->reg_array_cnt; i++)
bnxt_write_fw_reset_reg(bp, i);
/* Wait for time specified by FW after triggering reset */
- rte_delay_ms(info->
master
_func_wait_period_after_reset);
+ rte_delay_ms(info->
primary
_func_wait_period_after_reset);
} else if (info->flags & BNXT_FLAG_ERROR_RECOVERY_CO_CPU) {
/* Reset with the help of Kong processor */
rc = bnxt_hwrm_fw_reset(bp);
} else if (info->flags & BNXT_FLAG_ERROR_RECOVERY_CO_CPU) {
/* Reset with the help of Kong processor */
rc = bnxt_hwrm_fw_reset(bp);
@@
-4464,8
+4484,8
@@
static void bnxt_fw_reset_cb(void *arg)
struct bnxt_error_recovery_info *info = bp->recovery_info;
int rc = 0;
struct bnxt_error_recovery_info *info = bp->recovery_info;
int rc = 0;
- /* Only
Master
function can do FW reset */
- if (bnxt_is_
master
_func(bp) &&
+ /* Only
Primary
function can do FW reset */
+ if (bnxt_is_
primary
_func(bp) &&
bnxt_is_recovery_enabled(bp)) {
rc = bnxt_fw_reset_all(bp);
if (rc) {
bnxt_is_recovery_enabled(bp)) {
rc = bnxt_fw_reset_all(bp);
if (rc) {
@@
-4493,8
+4513,8
@@
static void bnxt_fw_reset_cb(void *arg)
* advertised by FW in HWRM_ERROR_RECOVERY_QCFG.
* When the driver detects heartbeat stop or change in reset_counter,
* it has to trigger a reset to recover from the error condition.
* advertised by FW in HWRM_ERROR_RECOVERY_QCFG.
* When the driver detects heartbeat stop or change in reset_counter,
* it has to trigger a reset to recover from the error condition.
- * A “
master PF
” is the function who will have the privilege to
- * initiate the chimp reset. The
master PF
will be elected by the
+ * A “
primary function
” is the function who will have the privilege to
+ * initiate the chimp reset. The
primary function
will be elected by the
* firmware and will be notified through async message.
*/
static void bnxt_check_fw_health(void *arg)
* firmware and will be notified through async message.
*/
static void bnxt_check_fw_health(void *arg)
@@
-4532,8
+4552,8
@@
reset:
PMD_DRV_LOG(ERR, "Detected FW dead condition\n");
PMD_DRV_LOG(ERR, "Detected FW dead condition\n");
- if (bnxt_is_
master
_func(bp))
- wait_msec = info->
master
_func_wait_period;
+ if (bnxt_is_
primary
_func(bp))
+ wait_msec = info->
primary
_func_wait_period;
else
wait_msec = info->normal_func_wait_period;
else
wait_msec = info->normal_func_wait_period;