net/ixgbe: add API to update SBP bit
Add ixgbe API to enable SBP bit in FCTRL register to allow receiving packets that may otherwise be considered length errors by ixgbe and dropped Signed-off-by: Shweta Choudaha <shweta.choudaha@att.com> Reviewed-by: Chas Williams <chas3@att.com> Reviewed-by: Luca Boccassi <bluca@debian.org> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
This commit is contained in:
parent
169a9da64a
commit
c2071c19ad
@ -881,6 +881,34 @@ rte_pmd_ixgbe_set_tc_bw_alloc(uint16_t port,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __rte_experimental
|
||||
rte_pmd_ixgbe_upd_fctrl_sbp(uint16_t port, int enable)
|
||||
{
|
||||
struct ixgbe_hw *hw;
|
||||
struct rte_eth_dev *dev;
|
||||
uint32_t fctrl;
|
||||
|
||||
RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
|
||||
dev = &rte_eth_devices[port];
|
||||
if (!is_ixgbe_supported(dev))
|
||||
return -ENOTSUP;
|
||||
|
||||
hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
|
||||
if (!hw)
|
||||
return -ENOTSUP;
|
||||
|
||||
fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
|
||||
|
||||
/* If 'enable' set the SBP bit else clear it */
|
||||
if (enable)
|
||||
fctrl |= IXGBE_FCTRL_SBP;
|
||||
else
|
||||
fctrl &= ~(IXGBE_FCTRL_SBP);
|
||||
|
||||
IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef RTE_LIBRTE_IXGBE_BYPASS
|
||||
int
|
||||
rte_pmd_ixgbe_bypass_init(uint16_t port_id)
|
||||
|
@ -708,4 +708,17 @@ enum {
|
||||
((x) > RTE_PMD_IXGBE_BYPASS_TMT_OFF && \
|
||||
(x) < RTE_PMD_IXGBE_BYPASS_TMT_NUM))
|
||||
|
||||
/**
|
||||
* @param port
|
||||
* The port identifier of the Ethernet device.
|
||||
* @param enable
|
||||
* 0 to disable and nonzero to enable 'SBP' bit in FCTRL register
|
||||
* to receive all packets
|
||||
* @return
|
||||
* - (0) if successful.
|
||||
* - (-ENODEV) if *port* invalid.
|
||||
* - (-ENOTSUP) if hardware doesn't support this feature.
|
||||
*/
|
||||
int __rte_experimental
|
||||
rte_pmd_ixgbe_upd_fctrl_sbp(uint16_t port, int enable);
|
||||
#endif /* _PMD_IXGBE_H_ */
|
||||
|
@ -60,4 +60,5 @@ EXPERIMENTAL {
|
||||
rte_pmd_ixgbe_mdio_unlock;
|
||||
rte_pmd_ixgbe_mdio_unlocked_read;
|
||||
rte_pmd_ixgbe_mdio_unlocked_write;
|
||||
rte_pmd_ixgbe_upd_fctrl_sbp;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user