|
Packit Service |
3880ab |
.TH "Checksum action in tc" 8 "11 Jan 2015" "iproute2" "Linux"
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH NAME
|
|
Packit Service |
3880ab |
csum - checksum update action
|
|
Packit Service |
3880ab |
.SH SYNOPSIS
|
|
Packit Service |
3880ab |
.in +8
|
|
Packit Service |
3880ab |
.ti -8
|
|
Packit Service |
3880ab |
.BR tc " ... " "action csum"
|
|
Packit Service |
3880ab |
.I UPDATE
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.ti -8
|
|
Packit Service |
3880ab |
.IR UPDATE " := " TARGET " [ " UPDATE " ]"
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.ti -8
|
|
Packit Service |
3880ab |
.IR TARGET " := { "
|
|
Packit Service |
3880ab |
.BR ip4h " |"
|
|
Packit Service |
3880ab |
.BR icmp " |"
|
|
Packit Service |
3880ab |
.BR igmp " |"
|
|
Packit Service |
3880ab |
.BR tcp " |"
|
|
Packit Service |
3880ab |
.BR udp " |"
|
|
Packit Service |
3880ab |
.BR udplite " |"
|
|
Packit Service |
3880ab |
.BR sctp " |"
|
|
Packit Service |
3880ab |
.IR SWEETS " }"
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.ti -8
|
|
Packit Service |
3880ab |
.IR SWEETS " := { "
|
|
Packit Service |
3880ab |
.BR and " | " or " | " + " }"
|
|
Packit Service |
3880ab |
.SH DESCRIPTION
|
|
Packit Service |
3880ab |
The
|
|
Packit Service |
3880ab |
.B csum
|
|
Packit Service |
3880ab |
action triggers checksum recalculation of specified packet headers. It is
|
|
Packit Service |
3880ab |
commonly used to fix incorrect checksums after the
|
|
Packit Service |
3880ab |
.B pedit
|
|
Packit Service |
3880ab |
action has modified the packet content.
|
|
Packit Service |
3880ab |
.SH OPTIONS
|
|
Packit Service |
3880ab |
.TP
|
|
Packit Service |
3880ab |
.I TARGET
|
|
Packit Service |
3880ab |
Specify which headers to update: IPv4 header
|
|
Packit Service |
3880ab |
.RB ( ip4h ),
|
|
Packit Service |
3880ab |
ICMP header
|
|
Packit Service |
3880ab |
.RB ( icmp ),
|
|
Packit Service |
3880ab |
IGMP header
|
|
Packit Service |
3880ab |
.RB ( igmp ),
|
|
Packit Service |
3880ab |
TCP header
|
|
Packit Service |
3880ab |
.RB ( tcp ),
|
|
Packit Service |
3880ab |
UDP header
|
|
Packit Service |
3880ab |
.RB ( udp ),
|
|
Packit Service |
3880ab |
UDPLite header
|
|
Packit Service |
3880ab |
.RB ( udplite ") or"
|
|
Packit Service |
3880ab |
SCTP header
|
|
Packit Service |
3880ab |
.RB ( sctp ).
|
|
Packit Service |
3880ab |
.TP
|
|
Packit Service |
3880ab |
.B SWEETS
|
|
Packit Service |
3880ab |
These are merely syntactic sugar and ignored internally.
|
|
Packit Service |
3880ab |
.SH EXAMPLES
|
|
Packit Service |
3880ab |
The following performs stateless NAT for incoming packets from 192.0.2.100 to
|
|
Packit Service |
3880ab |
new destination 198.51.100.1. Assuming these are UDP
|
|
Packit Service |
3880ab |
packets, both IP and UDP checksums have to be recalculated:
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.RS
|
|
Packit Service |
3880ab |
.EX
|
|
Packit Service |
3880ab |
# tc qdisc add dev eth0 ingress handle ffff:
|
|
Packit Service |
3880ab |
# tc filter add dev eth0 prio 1 protocol ip parent ffff: \\
|
|
Packit Service |
3880ab |
u32 match ip src 192.0.2.100/32 flowid :1 \\
|
|
Packit Service |
3880ab |
action pedit munge ip dst set 198.51.100.1 pipe \\
|
|
Packit Service |
3880ab |
csum ip and udp
|
|
Packit Service |
3880ab |
.EE
|
|
Packit Service |
3880ab |
.RE
|
|
Packit Service |
3880ab |
|
|
Packit Service |
3880ab |
.SH SEE ALSO
|
|
Packit Service |
3880ab |
.BR tc (8),
|
|
Packit Service |
3880ab |
.BR tc-pedit (8)
|