mirror_iproute2/man/man8/tc-csum.8
Phil Sutter 6bbe5e6290 man: tc-csum.8: Fix example
This fixes two issues with the provided example:

- Add missing 'dev' keyword to second command.
- Use a real IPv4 address instead of a bogus hex value since that will
  be rejected by get_addr_ipv4().

Fixes: dbfb17a67f ("man: tc-csum.8: Add an example")
Reported-by: Davide Caratti <dcaratti@redhat.com>
Signed-off-by: Phil Sutter <phil@nwl.cc>
2017-01-29 20:25:35 -08:00

70 lines
1.4 KiB
Groff

.TH "Checksum action in tc" 8 "11 Jan 2015" "iproute2" "Linux"
.SH NAME
csum - checksum update action
.SH SYNOPSIS
.in +8
.ti -8
.BR tc " ... " "action csum"
.I UPDATE
.ti -8
.IR UPDATE " := " TARGET " [ " UPDATE " ]"
.ti -8
.IR TARGET " := { "
.BR ip4h " |"
.BR icmp " |"
.BR igmp " |"
.BR tcp " |"
.BR udp " |"
.BR udplite " |"
.IR SWEETS " }"
.ti -8
.IR SWEETS " := { "
.BR and " | " or " | " + " }"
.SH DESCRIPTION
The
.B csum
action triggers checksum recalculation of specified packet headers. It is
commonly used after packet editing using the
.B pedit
action to fix for then incorrect checksums.
.SH OPTIONS
.TP
.I TARGET
Specify which headers to update: IPv4 header
.RB ( ip4h ),
ICMP header
.RB ( icmp ),
IGMP header
.RB ( igmp ),
TCP header
.RB ( tcp ),
UDP header
.RB ( udp ") or"
UDPLite header
.RB ( udplite ).
.TP
.B SWEETS
These are merely syntactic sugar and ignored internally.
.SH 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:
.RS
.EX
# tc qdisc add dev eth0 ingress handle ffff:
# tc filter add dev eth0 prio 1 protocol ip parent ffff: \\
u32 match ip src 192.0.2.100/32 flowid :1 \\
action pedit munge ip dst set 198.51.100.1 pipe \\
csum ip and udp
.EE
.RE
.SH SEE ALSO
.BR tc (8),
.BR tc-pedit (8)