i40e/i40evf: Add ATR HW eviction support for X722
X722 supports evicting ATR filters in the HW. With this patch, we enable the feature in the driver and avoid filter deletion by the driver. Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Jim Young <james.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
0d8e14392f
commit
52eb95ef32
|
@ -2040,6 +2040,13 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
|
|||
/* Due to lack of space, no more new filters can be programmed */
|
||||
if (th->syn && (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED))
|
||||
return;
|
||||
if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) {
|
||||
/* HW ATR eviction will take care of removing filters on FIN
|
||||
* and RST packets.
|
||||
*/
|
||||
if (th->fin || th->rst)
|
||||
return;
|
||||
}
|
||||
|
||||
tx_ring->atr_count++;
|
||||
|
||||
|
@ -2095,6 +2102,9 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
|
|||
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
|
||||
I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
|
||||
|
||||
if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)
|
||||
dtype_cmd |= I40E_TXD_FLTR_QW1_ATR_MASK;
|
||||
|
||||
fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(flex_ptype);
|
||||
fdir_desc->rsvd = cpu_to_le32(0);
|
||||
fdir_desc->dtype_cmd_cntindex = cpu_to_le32(dtype_cmd);
|
||||
|
|
|
@ -1049,6 +1049,10 @@ enum i40e_filter_program_desc_pcmd {
|
|||
#define I40E_TXD_FLTR_QW1_FD_STATUS_MASK (0x3ULL << \
|
||||
I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT)
|
||||
|
||||
#define I40E_TXD_FLTR_QW1_ATR_SHIFT (0xEULL + \
|
||||
I40E_TXD_FLTR_QW1_CMD_SHIFT)
|
||||
#define I40E_TXD_FLTR_QW1_ATR_MASK BIT_ULL(I40E_TXD_FLTR_QW1_ATR_SHIFT)
|
||||
|
||||
#define I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT 20
|
||||
#define I40E_TXD_FLTR_QW1_CNTINDEX_MASK (0x1FFUL << \
|
||||
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT)
|
||||
|
|
Loading…
Reference in New Issue