bnxt_en: add support for Flower based vxlan encap/decap offload
This patch adds IPv4 vxlan encap/decap action support to TC-flower offload. For vxlan encap, the driver maintains a tunnel encap hash-table. When a new flow with a tunnel encap action arrives, this table is looked up; if an encap entry exists, it uses the already programmed encap_record_handle as the tunnel_handle in the hwrm_cfa_flow_alloc cmd. Else, a new encap node is added and the L2 header fields are queried via a route lookup. hwrm_cfa_encap_record_alloc cmd is used to create a new encap record and the encap_record_handle is used as the tunnel_handle while adding the flow. For vxlan decap, the driver maintains a tunnel decap hash-table. When a new flow with a tunnel decap action arrives, this table is looked up; if a decap entry exists, it uses the already programmed decap_filter_handle as the tunnel_handle in the hwrm_cfa_flow_alloc cmd. Else, a new decap node is added and a decap_filter_handle is alloc'd via the hwrm_cfa_decap_filter_alloc cmd. This handle is used as the tunnel_handle while adding the flow. The code to issue the HWRM FW cmds is introduced in a follow-up patch. Signed-off-by:Sathya Perla <sathya.perla@broadcom.com> Signed-off-by:
Michael Chan <michael.chan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/ethernet/broadcom/bnxt/bnxt.h 9 additions, 0 deletionsdrivers/net/ethernet/broadcom/bnxt/bnxt.h
- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c 1 addition, 1 deletiondrivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c
- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 559 additions, 7 deletionsdrivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h 62 additions, 4 deletionsdrivers/net/ethernet/broadcom/bnxt/bnxt_tc.h
Loading
Please register or sign in to comment