Browse Source

i40e: Delete ATR filter on RST

We currently delete ATR filter on FIN alone, delete on RST as well.

Change-ID: Ie7cae5d1046b9d1d4a0d6ef5bdbf41224c3dade6
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Anjali Singhai Jain 11 years ago
parent
commit
ce806783bd
1 changed files with 6 additions and 3 deletions
  1. 6 3
      drivers/net/ethernet/intel/i40e/i40e_txrx.c

+ 6 - 3
drivers/net/ethernet/intel/i40e/i40e_txrx.c

@@ -1624,8 +1624,11 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
 
 
 	tx_ring->atr_count++;
 	tx_ring->atr_count++;
 
 
-	/* sample on all syn/fin packets or once every atr sample rate */
-	if (!th->fin && !th->syn && (tx_ring->atr_count < tx_ring->atr_sample_rate))
+	/* sample on all syn/fin/rst packets or once every atr sample rate */
+	if (!th->fin &&
+	    !th->syn &&
+	    !th->rst &&
+	    (tx_ring->atr_count < tx_ring->atr_sample_rate))
 		return;
 		return;
 
 
 	tx_ring->atr_count = 0;
 	tx_ring->atr_count = 0;
@@ -1649,7 +1652,7 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
 
 
 	dtype_cmd = I40E_TX_DESC_DTYPE_FILTER_PROG;
 	dtype_cmd = I40E_TX_DESC_DTYPE_FILTER_PROG;
 
 
-	dtype_cmd |= th->fin ?
+	dtype_cmd |= (th->fin || th->rst) ?
 		     (I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE <<
 		     (I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE <<
 		      I40E_TXD_FLTR_QW1_PCMD_SHIFT) :
 		      I40E_TXD_FLTR_QW1_PCMD_SHIFT) :
 		     (I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE <<
 		     (I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE <<