• Pablo Neira Ayuso's avatar
    netfilter: nft_payload: layer 4 checksum adjustment for pseudoheader fields · 18140969
    Pablo Neira Ayuso authored
    This patch adds a new flag that signals the kernel to update layer 4
    checksum if the packet field belongs to the layer 4 pseudoheader. This
    implicitly provides stateless NAT 1:1 that is useful under very specific
    usecases.
    
    Since rules mangling layer 3 fields that are part of the pseudoheader
    may potentially convey any layer 4 packet, we have to deal with the
    layer 4 checksum adjustment using protocol specific code.
    
    This patch adds support for TCP, UDP and ICMPv6, since they include the
    pseudoheader in the layer 4 checksum calculation. ICMP doesn't, so we
    can skip it.
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    18140969
nft_payload.c 11.2 KB