bnxt_en: Ignore src port field in decap filter nodes
authorSriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Wed, 11 Apr 2018 15:50:15 +0000 (11:50 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Apr 2018 18:41:59 +0000 (14:41 -0400)
The driver currently uses src port field (along with other fields) in the
decap tunnel key, while looking up and adding tunnel nodes. This leads to
redundant cfa_decap_filter_alloc() requests to the FW and flow-miss in the
flow engine. Fix this by ignoring the src port field in decap tunnel nodes.

Fixes: f484f6782e01 ("bnxt_en: add hwrm FW cmds for cfa_encap_record and decap_filter")
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c

index ac193408a418621b8eb33638694ceabe827f83b8..795f45024c209e65591a3e9fe60814315ebb3cb0 100644 (file)
@@ -1051,8 +1051,10 @@ static int bnxt_tc_get_decap_handle(struct bnxt *bp, struct bnxt_tc_flow *flow,
 
        /* Check if there's another flow using the same tunnel decap.
         * If not, add this tunnel to the table and resolve the other
-        * tunnel header fileds
+        * tunnel header fileds. Ignore src_port in the tunnel_key,
+        * since it is not required for decap filters.
         */
+       decap_key->tp_src = 0;
        decap_node = bnxt_tc_get_tunnel_node(bp, &tc_info->decap_table,
                                             &tc_info->decap_ht_params,
                                             decap_key);