Project

General

Profile

Actions

Bug #16527

open

cxgbe: want support for CPL_TX_PKT_XT

Added by Ryan Zezeski 24 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
driver - device drivers
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

We should probably add support for the CPL_TX_PKT_XT opcode for sending packets. This tells the firmware to disable the chip's internal parser and relies on the driver to provide the L2 and L3 header lengths. This method is used by both FreeBSD and Linux so that they could support L2/L3 encapsulations that the ASIC doesn't support. I believe we should default to this opcode but add a driver property to fallback to CPL_TX_PKT when requested.

See this FreeBSD commit for an example:

commit c0236bd93d9514e4b5049b5764dc31832402a0d8
Author: Navdeep Parhar <np@FreeBSD.org>
Date:   Fri Dec 13 20:38:58 2019 +0000

    cxgbe(4): Use the _XT variant of the CPL used to transmit NIC traffic.

    CPL_TX_PKT_XT disables the internal parser on the chip and instead
    relies on the driver to provide the exact length of the L2 and L3
    headers.  This allows hw checksumming and TSO to be used with L2 and
    L3 encapsulations that the chip doesn't understand directly.

    Note that netmap tx still uses the old CPL as it never uses the hw
    to generate the checksum on tx.

    Reviewed by:    jhb@
    MFC after:      1 month
    Sponsored by:   Chelsio Communications
    Differential Revision:  https://reviews.freebsd.org/D22788

No data to display

Actions

Also available in: Atom PDF