This patchset adds the support for 3 assoc_id constants: SCTP_FUTURE_ASSOC
SCTP_CURRENT_ASSOC, SCTP_ALL_ASSOC, described in rfc6458#section-7.2:
All socket options set on a one-to-one style listening socket also
apply to all future accepted sockets. For one-to-many style sockets,
often a socket option will pass a structure that includes an assoc_id
field. This field can be filled with the association identifier of a
particular association and unless otherwise specified can be filled
with one of the following constants:
SCTP_FUTURE_ASSOC: Specifies that only future associations created
after this socket option will be affected by this call.
SCTP_CURRENT_ASSOC: Specifies that only currently existing
associations will be affected by this call, and future
associations will still receive the previous default value.
SCTP_ALL_ASSOC: Specifies that all current and future associations
will be affected by this call.
The functions for many other sockopts that use assoc_id also need to be
updated accordingly.
Xin Long (24):
sctp: introduce SCTP_FUTURE/CURRENT/ALL_ASSOC
sctp: use SCTP_FUTURE_ASSOC for SCTP_PEER_ADDR_PARAMS sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_RTOINFO sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_ASSOCINFO sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_MAXSEG sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_LOCAL_AUTH_CHUNKS sockopt
sctp: add SCTP_FUTURE_ASSOC for SCTP_PEER_ADDR_THLDS sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_PR_SUPPORTED sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_RECONFIG_SUPPORTED sockopt
sctp: use SCTP_FUTURE_ASSOC for SCTP_INTERLEAVING_SUPPORTED sockopt
sctp: add SCTP_CURRENT_ASSOC for SCTP_STREAM_SCHEDULER_VALUE sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_DELAYED_SACK sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_DEFAULT_SEND_PARAM sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_DEFAULT_SNDINFO sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_CONTEXT sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_MAX_BURST sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_AUTH_KEY sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_AUTH_ACTIVE_KEY sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_AUTH_DELETE_KEY sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_AUTH_DEACTIVATE_KEY sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_DEFAULT_PRINFO sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for
SCTP_ENABLE_STREAM_RESET sockopt
sctp: use SCTP_FUTURE_ASSOC and add SCTP_CURRENT_ASSOC for SCTP_EVENT
sockopt
sctp: add SCTP_FUTURE_ASOC and SCTP_CURRENT_ASSOC for
SCTP_STREAM_SCHEDULER sockopt
include/net/sctp/structs.h | 4 +
include/uapi/linux/sctp.h | 4 +
net/sctp/associola.c | 9 +-
net/sctp/outqueue.c | 2 +-
net/sctp/socket.c | 773 ++++++++++++++++++++++++++++++---------------
5 files changed, 525 insertions(+), 267 deletions(-)
--
2.1.0