mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
4b47bc9a9e
In our test lab, we have a simple SCTP client connecting to a SCTP
server via an IPVS load balancer. On some machines, load balancing
works, but on others the initial handshake just fails, thus no
SCTP connection whatsoever can be established!
We observed that the SCTP INIT-ACK handshake reply from the IPVS
machine to the client had a correct IP checksum, but corrupt SCTP
checksum when forwarded, thus on the client-side the packet was
dropped and an intial handshake retriggered until all attempts
run into the void.
To fix this issue, this patch i) adds a missing CHECKSUM_UNNECESSARY
after the full checksum (re-)calculation (as done in IPVS TCP and UDP
code as well), ii) calculates the checksum in little-endian format
(as fixed with the SCTP code in commit
|
||
---|---|---|
.. | ||
ip_vs_app.c | ||
ip_vs_conn.c | ||
ip_vs_core.c | ||
ip_vs_ctl.c | ||
ip_vs_dh.c | ||
ip_vs_est.c | ||
ip_vs_ftp.c | ||
ip_vs_lblc.c | ||
ip_vs_lblcr.c | ||
ip_vs_lc.c | ||
ip_vs_nfct.c | ||
ip_vs_nq.c | ||
ip_vs_pe_sip.c | ||
ip_vs_pe.c | ||
ip_vs_proto_ah_esp.c | ||
ip_vs_proto_sctp.c | ||
ip_vs_proto_tcp.c | ||
ip_vs_proto_udp.c | ||
ip_vs_proto.c | ||
ip_vs_rr.c | ||
ip_vs_sched.c | ||
ip_vs_sed.c | ||
ip_vs_sh.c | ||
ip_vs_sync.c | ||
ip_vs_wlc.c | ||
ip_vs_wrr.c | ||
ip_vs_xmit.c | ||
Kconfig | ||
Makefile |