net: sctp: implement rfc6458, 5.3.4. SCTP_SNDINFO cmsg support
authorGeir Ola Vaagland <geirola@gmail.com>
Sat, 12 Jul 2014 18:30:36 +0000 (20:30 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Jul 2014 21:40:03 +0000 (14:40 -0700)
commit63b949382c5f263746b1c177f6ff84de2201ae9d
tree5e946189fa98de8699606a6f6ec8165ee8e0ed1e
parent1a98c69af1ecd97bfd1f4e4539924a9192434e36
net: sctp: implement rfc6458, 5.3.4. SCTP_SNDINFO cmsg support

This patch implements section 5.3.4. of RFC6458, that is, support
for 'SCTP Send Information Structure' (SCTP_SNDINFO) which can be
placed into ancillary data cmsghdr structure for sendmsg() calls.

The sctp_sndinfo structure is defined as per RFC as below ...

  struct sctp_sndinfo {
    uint16_t snd_sid;
    uint16_t snd_flags;
    uint32_t snd_ppid;
    uint32_t snd_context;
    sctp_assoc_t snd_assoc_id;
  };

... and supplied under cmsg_level IPPROTO_SCTP, cmsg_type
SCTP_SNDINFO, while cmsg_data[] contains struct sctp_sndinfo.
An sctp_sndinfo item always corresponds to the data in msg_iov.

Joint work with Daniel Borkmann.

Signed-off-by: Geir Ola Vaagland <geirola@gmail.com>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/structs.h
include/uapi/linux/sctp.h
net/sctp/socket.c