sctp: add SCTP_REMOTE_UDP_ENCAPS_PORT sockopt
authorXin Long <lucien.xin@gmail.com>
Thu, 29 Oct 2020 07:05:02 +0000 (15:05 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 30 Oct 2020 22:24:11 +0000 (15:24 -0700)
commit8dba29603b5c8bfca2bf90aeb83d05a236df967b
tree0a52e63bb01b4fd74e113669de2a228eb53932f7
parente8a3001c2120c760017da81a307308572a3cdbbc
sctp: add SCTP_REMOTE_UDP_ENCAPS_PORT sockopt

This patch is to implement:

  rfc6951#section-6.1: Get or Set the Remote UDP Encapsulation Port Number

with the param of the struct:

  struct sctp_udpencaps {
    sctp_assoc_t sue_assoc_id;
    struct sockaddr_storage sue_address;
    uint16_t sue_port;
  };

the encap_port of sock, assoc or transport can be changed by users,
which also means it allows the different transports of the same asoc
to have different encap_port value.

v1->v2:
  - no change.
v2->v3:
  - fix the endian warning when setting values between encap_port and
    sue_port.

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>
include/uapi/linux/sctp.h
net/sctp/socket.c