net/cnxk: fix Rx/Tx function update
When Rx/Tx functions are updated such as in a rte flow rule creation with VLAN stripping or marking action, update the fastpath ops table as well. Fixes:b951c2efcb
("net/cnxk: add Rx burst for CN9K") Fixes:f742a9a668
("net/cnxk: add Rx burst for CN10K") Cc: stable@dpdk.org Signed-off-by: Satheesh Paul <psatheesh@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
parent
0fb2b46be7
commit
3cebc8f35f
@ -31,6 +31,10 @@ pick_rx_func(struct rte_eth_dev *eth_dev,
|
||||
[!!(dev->rx_offload_flags & NIX_RX_OFFLOAD_PTYPE_F)]
|
||||
[!!(dev->rx_offload_flags & NIX_RX_OFFLOAD_RSS_F)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].rx_pkt_burst =
|
||||
eth_dev->rx_pkt_burst;
|
||||
|
||||
rte_atomic_thread_fence(__ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,10 @@ pick_rx_func(struct rte_eth_dev *eth_dev,
|
||||
eth_dev->rx_pkt_burst =
|
||||
rx_burst[dev->rx_offload_flags & (NIX_RX_OFFLOAD_MAX - 1)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].rx_pkt_burst =
|
||||
eth_dev->rx_pkt_burst;
|
||||
|
||||
rte_atomic_thread_fence(__ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,10 @@ pick_tx_func(struct rte_eth_dev *eth_dev,
|
||||
/* [SEC] [TSP] [TSO] [NOFF] [VLAN] [OL3_OL4_CSUM] [IL3_IL4_CSUM] */
|
||||
eth_dev->tx_pkt_burst =
|
||||
tx_burst[dev->tx_offload_flags & (NIX_TX_OFFLOAD_MAX - 1)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].tx_pkt_burst =
|
||||
eth_dev->tx_pkt_burst;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -31,6 +31,10 @@ pick_rx_func(struct rte_eth_dev *eth_dev,
|
||||
[!!(dev->rx_offload_flags & NIX_RX_OFFLOAD_PTYPE_F)]
|
||||
[!!(dev->rx_offload_flags & NIX_RX_OFFLOAD_RSS_F)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].rx_pkt_burst =
|
||||
eth_dev->rx_pkt_burst;
|
||||
|
||||
rte_atomic_thread_fence(__ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,10 @@ pick_rx_func(struct rte_eth_dev *eth_dev,
|
||||
eth_dev->rx_pkt_burst =
|
||||
rx_burst[dev->rx_offload_flags & (NIX_RX_OFFLOAD_MAX - 1)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].rx_pkt_burst =
|
||||
eth_dev->rx_pkt_burst;
|
||||
|
||||
rte_atomic_thread_fence(__ATOMIC_RELEASE);
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,10 @@ pick_tx_func(struct rte_eth_dev *eth_dev,
|
||||
[!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_VLAN_QINQ_F)]
|
||||
[!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)]
|
||||
[!!(dev->tx_offload_flags & NIX_TX_OFFLOAD_L3_L4_CSUM_F)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].tx_pkt_burst =
|
||||
eth_dev->tx_pkt_burst;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -14,6 +14,10 @@ pick_tx_func(struct rte_eth_dev *eth_dev,
|
||||
/* [TS] [TSO] [NOFF] [VLAN] [OL3_OL4_CSUM] [IL3_IL4_CSUM] */
|
||||
eth_dev->tx_pkt_burst =
|
||||
tx_burst[dev->tx_offload_flags & (NIX_TX_OFFLOAD_MAX - 1)];
|
||||
|
||||
if (eth_dev->data->dev_started)
|
||||
rte_eth_fp_ops[eth_dev->data->port_id].tx_pkt_burst =
|
||||
eth_dev->tx_pkt_burst;
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user