Checksum action in tc(8)

NAME
csum - checksum update action

SYNOPSIS
tc ... action csum UPDATE
UPDATE := TARGET [ UPDATE ]
TARGET := { ip4h | icmp | igmp | tcp | udp | udplite | SWEETS }
SWEETS := { and | or | + }

DESCRIPTION
The csum action triggers checksum recalculation of specified packet headers. It is commonly used after packet editing using the pedit action to fix for then incorrect checksums.

OPTIONS

TARGET
    Specify which headers to update: IPv4 header (ip4h), ICMP header (icmp), IGMP header (igmp), TCP header (tcp), UDP header (udp) or UDPLite header (udplite).

SWEETS
    These are merely syntactic sugar and ignored internally.

EXAMPLES
The following performs stateless NAT for incoming packets from 192.168.1.100 to new destination 18.52.86.120 (0x12345678 in hex). Assuming these are UDP packets, both IP and UDP checksums have to be recalculated:
        # tc qdisc add dev eth0 ingress handle ffff:
        # tc filter add eth0 prio 1 protocol ip parent ffff: \
        	u32 match ip src 192.168.1.100/32 flowid :1 \
        	action pedit munge ip dst set 0x12345678 pipe \
        	csum ip and udp

SEE ALSO
tc(8), tc-pedit(8)