• Hui Zhou's avatar
    nfp: flower: fix hardware offload for the transfer layer port · 3a007b80
    Hui Zhou authored
    The nfp driver will merge the tp source port and tp destination port
    into one dword which the offset must be zero to do hardware offload.
    However, the mangle action for the tp source port and tp destination
    port is separated for tc ct action. Modify the mangle action for the
    FLOW_ACT_MANGLE_HDR_TYPE_TCP and FLOW_ACT_MANGLE_HDR_TYPE_UDP to
    satisfy the nfp driver offload check for the tp port.
    
    The mangle action provides a 4B value for source, and a 4B value for
    the destination, but only 2B of each contains the useful information.
    For offload the 2B of each is combined into a single 4B word. Since the
    incoming mask for the source is '0xFFFF<mask>' the shift-left will
    throw away the 0xFFFF part. When this gets combined together in the
    offload it will clear the destination field. Fix this by setting the
    lower bits back to 0xFFFF, effectively doing a rotate-left operation on
    the mask.
    
    Fixes: 5cee92c6 ("nfp: flower: support hw offload for ct nat action")
    CC: stable@vger.kernel.org # 6.1+
    Signed-off-by: default avatarHui Zhou <hui.zhou@corigine.com>
    Signed-off-by: default avatarLouis Peens <louis.peens@corigine.com>
    Link: https://lore.kernel.org/r/20240124151909.31603-3-louis.peens@corigine.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    3a007b80
conntrack.c 64.6 KB