ixgbe: add MAC control forward
Signed-off-by: Intel
This commit is contained in:
parent
03c95df15a
commit
940b3cc0c0
@ -2028,6 +2028,7 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
|
||||
int err;
|
||||
uint32_t rx_buf_size;
|
||||
uint32_t max_high_water;
|
||||
uint32_t mflcn;
|
||||
enum ixgbe_fc_mode rte_fcmode_2_ixgbe_fcmode[] = {
|
||||
ixgbe_fc_none,
|
||||
ixgbe_fc_rx_pause,
|
||||
@ -2060,8 +2061,24 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
|
||||
hw->fc.send_xon = fc_conf->send_xon;
|
||||
|
||||
err = ixgbe_fc_enable(hw);
|
||||
|
||||
/* Not negotiated is not an error case */
|
||||
if ((err == IXGBE_SUCCESS) || (err == IXGBE_ERR_FC_NOT_NEGOTIATED)) {
|
||||
|
||||
/* check if we want to forward MAC frames - driver doesn't have native
|
||||
* capability to do that, so we'll write the registers ourselves */
|
||||
|
||||
mflcn = IXGBE_READ_REG(hw, IXGBE_MFLCN);
|
||||
|
||||
/* set or clear MFLCN.PMCF bit depending on configuration */
|
||||
if (fc_conf->mac_ctrl_frame_fwd != 0)
|
||||
mflcn |= IXGBE_MFLCN_PMCF;
|
||||
else
|
||||
mflcn &= ~IXGBE_MFLCN_PMCF;
|
||||
|
||||
IXGBE_WRITE_REG(hw, IXGBE_MFLCN, mflcn);
|
||||
IXGBE_WRITE_FLUSH(hw);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user