• Gregoire Baron's avatar
    tc: add ACT_CSUM action support (csum) · 3822cc98
    Gregoire Baron authored
    Add the iproute2 support for the ACT_CSUM action. Can be used as
    following, certainly in conjunction with the ACT_PEDIT action (pedit):
    
     # In order to DNAT (stateless) IPv4 packet from 192.168.1.100 to
     #  0x12345678 (18.52.86.120), and update the IPv4 header checksum and
     #  the UDP checksum (the last one, only if the packet is UDP).
    tc filter add eth0 prio 1 protocol ip parent ffff: \
      u32 match ip src 192.168.1.100/32 flowid :1 \
        action pedit munge offset 16 u32 set 0x12345678 \
          pipe csum ip and udp
    
     # In order to alter destination address of IPv6 TCP packets from fc00::1
     #  and correct the TCP checksum (nothing happened? except maybe for
     #  checksums in the TCP payload ...).
    tc filter add eth0 prio 1 protocol ipv6 parent ffff: \
      u32 match ip6 src fc00::1/128 match ip6 protocol 0x06 0xff flowid :1 \
        action pedit munge offset 24 u32 set 0x12345678 \
          pipe csum tcp
    3822cc98
tc_csum.h 554 Bytes