Xin Long 527beb8ef9 udp: support sctp over udp in skb_udp_tunnel_segment
For the gso of sctp over udp packets, sctp_gso_segment() will be called in
skb_udp_tunnel_segment(), we need to set transport_header to sctp header.

As all the current HWs can't handle both crc checksum and udp checksum at
the same time, the crc checksum has to be done in sctp_gso_segment() by
removing the NETIF_F_SCTP_CRC flag from the features.

Meanwhile, if the HW can't do udp checksum, csum and csum_start has to be
set correctly, and udp checksum will be done in __skb_udp_tunnel_segment()
by calling gso_make_checksum().

Thanks to Paolo, Marcelo and Guillaume for helping with this one.

v1->v2:
  - no change.
v2->v3:
  - remove the he NETIF_F_SCTP_CRC flag from the features.
  - set csum and csum_start in sctp_gso_make_checksum().

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-10-30 15:23:46 -07:00
..
2020-03-12 15:55:00 -07:00
2020-03-12 15:55:00 -07:00
2020-10-16 16:47:09 -07:00
2020-03-30 13:45:04 -07:00
2020-10-06 06:23:21 -07:00
2020-10-06 06:23:21 -07:00
2020-08-31 12:33:34 -07:00
2020-03-16 18:26:54 -07:00
2020-09-25 17:17:14 -07:00
2020-09-30 14:21:30 -07:00
2020-03-16 18:26:55 -07:00