draft-ietf-tsvwg-sctpsocket-30.txt   draft-ietf-tsvwg-sctpsocket-31.txt 
Network Working Group R. Stewart Network Working Group R. Stewart
Internet-Draft Adara Networks Internet-Draft Adara Networks
Intended status: Informational M. Tuexen Intended status: Informational M. Tuexen
Expires: December 26, 2011 Muenster Univ. of Appl. Sciences Expires: February 11, 2012 Muenster Univ. of Appl. Sciences
K. Poon K. Poon
Oracle Corporation Oracle Corporation
P. Lei P. Lei
Cisco Systems, Inc. Cisco Systems, Inc.
V. Yasevich V. Yasevich
HP HP
June 24, 2011 August 10, 2011
Sockets API Extensions for Stream Control Transmission Protocol (SCTP) Sockets API Extensions for Stream Control Transmission Protocol (SCTP)
draft-ietf-tsvwg-sctpsocket-30.txt draft-ietf-tsvwg-sctpsocket-31.txt
Abstract Abstract
This document describes a mapping of the Stream Control Transmission This document describes a mapping of the Stream Control Transmission
Protocol (SCTP) into a sockets API. The benefits of this mapping Protocol (SCTP) into a sockets API. The benefits of this mapping
include compatibility for TCP applications, access to new SCTP include compatibility for TCP applications, access to new SCTP
features and a consolidated error and event notification scheme. features and a consolidated error and event notification scheme.
Status of this Memo Status of this Memo
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 26, 2011. This Internet-Draft will expire on February 11, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 4, line 32 skipping to change at page 4, line 32
7.3. read() and write() . . . . . . . . . . . . . . . . . . . 60 7.3. read() and write() . . . . . . . . . . . . . . . . . . . 60
7.4. getsockname() . . . . . . . . . . . . . . . . . . . . . . 60 7.4. getsockname() . . . . . . . . . . . . . . . . . . . . . . 60
7.5. Implicit Association Setup . . . . . . . . . . . . . . . 60 7.5. Implicit Association Setup . . . . . . . . . . . . . . . 60
8. Socket Options . . . . . . . . . . . . . . . . . . . . . . . 61 8. Socket Options . . . . . . . . . . . . . . . . . . . . . . . 61
8.1. Read / Write Options . . . . . . . . . . . . . . . . . . 63 8.1. Read / Write Options . . . . . . . . . . . . . . . . . . 63
8.1.1. Retransmission Timeout Parameters (SCTP_RTOINFO) . . 63 8.1.1. Retransmission Timeout Parameters (SCTP_RTOINFO) . . 63
8.1.2. Association Parameters (SCTP_ASSOCINFO) . . . . . . . 64 8.1.2. Association Parameters (SCTP_ASSOCINFO) . . . . . . . 64
8.1.3. Initialization Parameters (SCTP_INITMSG) . . . . . . 65 8.1.3. Initialization Parameters (SCTP_INITMSG) . . . . . . 65
8.1.4. SO_LINGER . . . . . . . . . . . . . . . . . . . . . . 66 8.1.4. SO_LINGER . . . . . . . . . . . . . . . . . . . . . . 66
8.1.5. SCTP_NODELAY . . . . . . . . . . . . . . . . . . . . 66 8.1.5. SCTP_NODELAY . . . . . . . . . . . . . . . . . . . . 66
8.1.6. SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . 66 8.1.6. SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . 67
8.1.7. SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . 67 8.1.7. SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . 67
8.1.8. Automatic Close of Associations (SCTP_AUTOCLOSE) . . 67 8.1.8. Automatic Close of Associations (SCTP_AUTOCLOSE) . . 67
8.1.9. Set Primary Address (SCTP_PRIMARY_ADDR) . . . . . . . 67 8.1.9. Set Primary Address (SCTP_PRIMARY_ADDR) . . . . . . . 68
8.1.10. Set Adaptation Layer Indicator 8.1.10. Set Adaptation Layer Indicator
(SCTP_ADAPTATION_LAYER) . . . . . . . . . . . . . . . 68 (SCTP_ADAPTATION_LAYER) . . . . . . . . . . . . . . . 68
8.1.11. Enable/Disable Message Fragmentation 8.1.11. Enable/Disable Message Fragmentation
(SCTP_DISABLE_FRAGMENTS) . . . . . . . . . . . . . . 68 (SCTP_DISABLE_FRAGMENTS) . . . . . . . . . . . . . . 68
8.1.12. Peer Address Parameters (SCTP_PEER_ADDR_PARAMS) . . . 68 8.1.12. Peer Address Parameters (SCTP_PEER_ADDR_PARAMS) . . . 69
8.1.13. Set Default Send Parameters 8.1.13. Set Default Send Parameters
(SCTP_DEFAULT_SEND_PARAM) - DEPRECATED . . . . . . . 71 (SCTP_DEFAULT_SEND_PARAM) - DEPRECATED . . . . . . . 71
8.1.14. Set Notification and Ancillary Events 8.1.14. Set Notification and Ancillary Events
(SCTP_EVENTS) - DEPRECATED . . . . . . . . . . . . . 71 (SCTP_EVENTS) - DEPRECATED . . . . . . . . . . . . . 72
8.1.15. Set/Clear IPv4 Mapped Addresses 8.1.15. Set/Clear IPv4 Mapped Addresses
(SCTP_I_WANT_MAPPED_V4_ADDR) . . . . . . . . . . . . 72 (SCTP_I_WANT_MAPPED_V4_ADDR) . . . . . . . . . . . . 72
8.1.16. Get or Set the Maximum Fragmentation Size 8.1.16. Get or Set the Maximum Fragmentation Size
(SCTP_MAXSEG) . . . . . . . . . . . . . . . . . . . . 72 (SCTP_MAXSEG) . . . . . . . . . . . . . . . . . . . . 72
8.1.17. Get or Set the List of Supported HMAC Identifiers 8.1.17. Get or Set the List of Supported HMAC Identifiers
(SCTP_HMAC_IDENT) . . . . . . . . . . . . . . . . . . 72 (SCTP_HMAC_IDENT) . . . . . . . . . . . . . . . . . . 73
8.1.18. Get or Set the Active Shared Key 8.1.18. Get or Set the Active Shared Key
(SCTP_AUTH_ACTIVE_KEY) . . . . . . . . . . . . . . . 73 (SCTP_AUTH_ACTIVE_KEY) . . . . . . . . . . . . . . . 73
8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK) . . 74 8.1.19. Get or Set Delayed SACK Timer (SCTP_DELAYED_SACK) . . 74
8.1.20. Get or Set Fragmented Interleave 8.1.20. Get or Set Fragmented Interleave
(SCTP_FRAGMENT_INTERLEAVE) . . . . . . . . . . . . . 75 (SCTP_FRAGMENT_INTERLEAVE) . . . . . . . . . . . . . 75
8.1.21. Set or Get the SCTP Partial Delivery Point 8.1.21. Set or Get the SCTP Partial Delivery Point
(SCTP_PARTIAL_DELIVERY_POINT) . . . . . . . . . . . . 76 (SCTP_PARTIAL_DELIVERY_POINT) . . . . . . . . . . . . 76
8.1.22. Set or Get the Use of Extended Receive Info 8.1.22. Set or Get the Use of Extended Receive Info
(SCTP_USE_EXT_RCVINFO) - DEPRECATED . . . . . . . . . 76 (SCTP_USE_EXT_RCVINFO) - DEPRECATED . . . . . . . . . 77
8.1.23. Set or Get the Auto ASCONF Flag (SCTP_AUTO_ASCONF) . 77 8.1.23. Set or Get the Auto ASCONF Flag (SCTP_AUTO_ASCONF) . 77
8.1.24. Set or Get the Maximum Burst (SCTP_MAX_BURST) . . . . 77 8.1.24. Set or Get the Maximum Burst (SCTP_MAX_BURST) . . . . 77
8.1.25. Set or Get the Default Context (SCTP_CONTEXT) . . . . 77 8.1.25. Set or Get the Default Context (SCTP_CONTEXT) . . . . 78
8.1.26. Enable or Disable Explicit EOR Marking 8.1.26. Enable or Disable Explicit EOR Marking
(SCTP_EXPLICIT_EOR) . . . . . . . . . . . . . . . . . 78 (SCTP_EXPLICIT_EOR) . . . . . . . . . . . . . . . . . 78
8.1.27. Enable SCTP Port Reusage (SCTP_REUSE_PORT) . . . . . 78 8.1.27. Enable SCTP Port Reusage (SCTP_REUSE_PORT) . . . . . 79
8.1.28. Set Notification Event (SCTP_EVENT) . . . . . . . . . 79 8.1.28. Set Notification Event (SCTP_EVENT) . . . . . . . . . 79
8.1.29. Enable or Disable the Delivery of SCTP_RCVINFO as 8.1.29. Enable or Disable the Delivery of SCTP_RCVINFO as
Ancillary Data (SCTP_RECVRCVINFO) . . . . . . . . . . 79 Ancillary Data (SCTP_RECVRCVINFO) . . . . . . . . . . 79
8.1.30. Enable or Disable the Delivery of SCTP_NXTINFO as 8.1.30. Enable or Disable the Delivery of SCTP_NXTINFO as
Ancillary Data (SCTP_RECVNXTINFO) . . . . . . . . . . 79 Ancillary Data (SCTP_RECVNXTINFO) . . . . . . . . . . 79
8.1.31. Set Default Send Parameters (SCTP_DEFAULT_SNDINFO) . 79 8.1.31. Set Default Send Parameters (SCTP_DEFAULT_SNDINFO) . 80
8.1.32. Set Default PR-SCTP Parameters 8.1.32. Set Default PR-SCTP Parameters
(SCTP_DEFAULT_PRINFO) . . . . . . . . . . . . . . . . 79 (SCTP_DEFAULT_PRINFO) . . . . . . . . . . . . . . . . 80
8.2. Read-Only Options . . . . . . . . . . . . . . . . . . . . 80 8.2. Read-Only Options . . . . . . . . . . . . . . . . . . . . 80
8.2.1. Association Status (SCTP_STATUS) . . . . . . . . . . 80 8.2.1. Association Status (SCTP_STATUS) . . . . . . . . . . 80
8.2.2. Peer Address Information (SCTP_GET_PEER_ADDR_INFO) . 82 8.2.2. Peer Address Information (SCTP_GET_PEER_ADDR_INFO) . 82
8.2.3. Get the List of Chunks the Peer Requires to be 8.2.3. Get the List of Chunks the Peer Requires to be
Authenticated (SCTP_PEER_AUTH_CHUNKS) . . . . . . . . 83 Authenticated (SCTP_PEER_AUTH_CHUNKS) . . . . . . . . 83
8.2.4. Get the List of Chunks the Local Endpoint Requires 8.2.4. Get the List of Chunks the Local Endpoint Requires
to be Authenticated (SCTP_LOCAL_AUTH_CHUNKS) . . . . 84 to be Authenticated (SCTP_LOCAL_AUTH_CHUNKS) . . . . 84
8.2.5. Get the Current Number of Associations 8.2.5. Get the Current Number of Associations
(SCTP_GET_ASSOC_NUMBER) . . . . . . . . . . . . . . . 84 (SCTP_GET_ASSOC_NUMBER) . . . . . . . . . . . . . . . 84
8.2.6. Get the Current Identifiers of Associations 8.2.6. Get the Current Identifiers of Associations
(SCTP_GET_ASSOC_ID_LIST) . . . . . . . . . . . . . . 84 (SCTP_GET_ASSOC_ID_LIST) . . . . . . . . . . . . . . 85
8.3. Write-Only Options . . . . . . . . . . . . . . . . . . . 85 8.3. Write-Only Options . . . . . . . . . . . . . . . . . . . 85
8.3.1. Set Peer Primary Address 8.3.1. Set Peer Primary Address
(SCTP_SET_PEER_PRIMARY_ADDR) . . . . . . . . . . . . 85 (SCTP_SET_PEER_PRIMARY_ADDR) . . . . . . . . . . . . 85
8.3.2. Add a Chunk that must be Authenticated 8.3.2. Add a Chunk that must be Authenticated
(SCTP_AUTH_CHUNK) . . . . . . . . . . . . . . . . . . 85 (SCTP_AUTH_CHUNK) . . . . . . . . . . . . . . . . . . 86
8.3.3. Set a Shared Key (SCTP_AUTH_KEY) . . . . . . . . . . 86 8.3.3. Set a Shared Key (SCTP_AUTH_KEY) . . . . . . . . . . 86
8.3.4. Deactivate a Shared Key (SCTP_AUTH_DEACTIVATE_KEY) . 87 8.3.4. Deactivate a Shared Key (SCTP_AUTH_DEACTIVATE_KEY) . 87
8.3.5. Delete a Shared Key (SCTP_AUTH_DELETE_KEY) . . . . . 87 8.3.5. Delete a Shared Key (SCTP_AUTH_DELETE_KEY) . . . . . 87
9. New Functions . . . . . . . . . . . . . . . . . . . . . . . . 88 9. New Functions . . . . . . . . . . . . . . . . . . . . . . . . 88
9.1. sctp_bindx() . . . . . . . . . . . . . . . . . . . . . . 88 9.1. sctp_bindx() . . . . . . . . . . . . . . . . . . . . . . 88
9.2. sctp_peeloff() . . . . . . . . . . . . . . . . . . . . . 90 9.2. sctp_peeloff() . . . . . . . . . . . . . . . . . . . . . 90
9.3. sctp_getpaddrs() . . . . . . . . . . . . . . . . . . . . 90 9.3. sctp_getpaddrs() . . . . . . . . . . . . . . . . . . . . 90
9.4. sctp_freepaddrs() . . . . . . . . . . . . . . . . . . . . 91 9.4. sctp_freepaddrs() . . . . . . . . . . . . . . . . . . . . 91
9.5. sctp_getladdrs() . . . . . . . . . . . . . . . . . . . . 91 9.5. sctp_getladdrs() . . . . . . . . . . . . . . . . . . . . 91
9.6. sctp_freeladdrs() . . . . . . . . . . . . . . . . . . . . 92 9.6. sctp_freeladdrs() . . . . . . . . . . . . . . . . . . . . 92
skipping to change at page 55, line 23 skipping to change at page 55, line 23
sctp_sender_dry_event: Setting this flag to 1 will enable the sctp_sender_dry_event: Setting this flag to 1 will enable the
reception of sender dry notifications. Setting the flag to 0 will reception of sender dry notifications. Setting the flag to 0 will
disable sender dry event notifications. disable sender dry event notifications.
An example where an application would like to receive data_io_events An example where an application would like to receive data_io_events
and association_events but no others would be as follows: and association_events but no others would be as follows:
{ {
struct sctp_event_subscribe events; struct sctp_event_subscribe events;
memset(&events,0,sizeof(events)); memset(&events, 0, sizeof(events));
events.sctp_data_io_event = 1; events.sctp_data_io_event = 1;
events.sctp_association_event = 1; events.sctp_association_event = 1;
setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, &events, sizeof(events)); setsockopt(sd, IPPROTO_SCTP, SCTP_EVENTS, &events, sizeof(events));
} }
Note that for one-to-many style SCTP sockets, the caller of recvmsg() Note that for one-to-many style SCTP sockets, the caller of recvmsg()
receives ancillary data and notifications for all associations bound receives ancillary data and notifications for all associations bound
to the file descriptor. For one-to-one style SCTP sockets, the to the file descriptor. For one-to-one style SCTP sockets, the
caller receives ancillary data and notifications only for the single caller receives ancillary data and notifications only for the single
association bound to the file descriptor. association bound to the file descriptor.
By default both the one-to-one style and the one-to-many style socket By default both the one-to-one style and the one-to-many style socket
do not subscribe to any notification. do not subscribe to any notification.
skipping to change at page 56, line 35 skipping to change at page 56, line 35
following is an example use of this option: following is an example use of this option:
{ {
struct sctp_event event; struct sctp_event event;
memset(&event, 0, sizeof(event)); memset(&event, 0, sizeof(event));
event.se_assoc_id = SCTP_FUTURE_ASSOC; event.se_assoc_id = SCTP_FUTURE_ASSOC;
event.se_type = SCTP_SENDER_DRY_EVENT; event.se_type = SCTP_SENDER_DRY_EVENT;
event.se_on = 1; event.se_on = 1;
setsockopt(fd, IPPROTO_SCTP, SCTP_EVENT, &event, sizeof(event)); setsockopt(sd, IPPROTO_SCTP, SCTP_EVENT, &event, sizeof(event));
} }
By default both the one-to-one style and the one-to-many style socket By default both the one-to-one style and the one-to-many style socket
do not subscribe to any notification. do not subscribe to any notification.
7. Common Operations for Both Styles 7. Common Operations for Both Styles
7.1. send(), recv(), sendto(), and recvfrom() 7.1. send(), recv(), sendto(), and recvfrom()
Applications can use send() and sendto() to transmit data to the peer Applications can use send() and sendto() to transmit data to the peer
skipping to change at page 66, line 42 skipping to change at page 66, line 42
phase will continue in the system. phase will continue in the system.
Note, this is a socket level option, not an SCTP level option. When Note, this is a socket level option, not an SCTP level option. When
using this option, an application must specify a level of SOL_SOCKET using this option, an application must specify a level of SOL_SOCKET
in the call. in the call.
8.1.5. SCTP_NODELAY 8.1.5. SCTP_NODELAY
Turn on/off any Nagle-like algorithm. This means that packets are Turn on/off any Nagle-like algorithm. This means that packets are
generally sent as soon as possible and no unnecessary delays are generally sent as soon as possible and no unnecessary delays are
introduced, at the cost of more packets in the network. Turning this introduced, at the cost of more packets in the network. In
option on disables any Nagle-like algorithm. particular, not using any Nagle-like algorithm might reduce the
bundling of small user messages in cases where this would require an
additional delay.
Turning this option on disables any Nagle-like algorithm.
This option expects an integer boolean flag, where a non-zero value This option expects an integer boolean flag, where a non-zero value
turns on the option, and a zero value turns off the option. turns on the option, and a zero value turns off the option.
8.1.6. SO_RCVBUF 8.1.6. SO_RCVBUF
Sets the receive buffer size in octets. For SCTP one-to-one style Sets the receive buffer size in octets. For SCTP one-to-one style
sockets, this controls the receiver window size. For one-to-many sockets, this controls the receiver window size. For one-to-many
style sockets the meaning is implementation dependent. It might style sockets the meaning is implementation dependent. It might
control the receive buffer for each association bound to the socket control the receive buffer for each association bound to the socket
skipping to change at page 69, line 17 skipping to change at page 69, line 24
parameters: parameters:
struct sctp_paddrparams { struct sctp_paddrparams {
sctp_assoc_t spp_assoc_id; sctp_assoc_t spp_assoc_id;
struct sockaddr_storage spp_address; struct sockaddr_storage spp_address;
uint32_t spp_hbinterval; uint32_t spp_hbinterval;
uint16_t spp_pathmaxrxt; uint16_t spp_pathmaxrxt;
uint32_t spp_pathmtu; uint32_t spp_pathmtu;
uint32_t spp_flags; uint32_t spp_flags;
uint32_t spp_ipv6_flowlabel; uint32_t spp_ipv6_flowlabel;
uint8_t spp_ipv4_tos; uint8_t spp_dscp;
}; };
spp_assoc_id: This parameter is ignored for one-to-one style spp_assoc_id: This parameter is ignored for one-to-one style
sockets. For one-to-many style sockets the application may fill sockets. For one-to-many style sockets the application may fill
in an association identifier or SCTP_FUTURE_ASSOC for this query. in an association identifier or SCTP_FUTURE_ASSOC for this query.
It is an error to use SCTP_{CURRENT|ALL}_ASSOC in spp_assoc_id. It is an error to use SCTP_{CURRENT|ALL}_ASSOC in spp_assoc_id.
spp_address: This specifies which address is of interest. If a spp_address: This specifies which address is of interest. If a
wildcard address is provided it applies to all current and future wildcard address is provided it applies to all current and future
paths. paths.
skipping to change at page 70, line 6 skipping to change at page 70, line 13
unchanged. unchanged.
spp_pathmtu: The current path MTU of the peer address. It is the spp_pathmtu: The current path MTU of the peer address. It is the
number of bytes available in an SCTP packet for chunks. Providing number of bytes available in an SCTP packet for chunks. Providing
a value of 0 does not change the current setting. If a positive a value of 0 does not change the current setting. If a positive
value is provided and SPP_PMTUD_DISABLE is set in the spp_flags, value is provided and SPP_PMTUD_DISABLE is set in the spp_flags,
the given value is used as the path MTU. If SPP_PMTUD_ENABLE is the given value is used as the path MTU. If SPP_PMTUD_ENABLE is
set in the spp_flags, the spp_pathmtu field is ignored. set in the spp_flags, the spp_pathmtu field is ignored.
spp_ipv6_flowlabel: This field is used in conjunction with the spp_ipv6_flowlabel: This field is used in conjunction with the
SPP_IPV6_FLOWLABEL flag. This setting has precedence over any SPP_IPV6_FLOWLABEL flag and contains the IPv6 flowlabel. The 20
IPv6 layer setting. least significant bits are used for the flowlabel. This setting
has precedence over any IPv6 layer setting.
spp_ipv4_tos: This field is used in conjunction with the spp_dscp: This field is used in conjunction with the SPP_DSCP flag
SPP_IPV4_TOS flag. This setting has precedence over any IPv4 and contains the Differentiated Services Code Point (DSCP). The 6
layer setting. least significant bits are used for the DSCP. This setting has
precedence over any IPv4 or IPv6 layer setting.
spp_flags: These flags are used to control various features on an spp_flags: These flags are used to control various features on an
association. The flag field is a bit mask which may contain zero association. The flag field is a bit mask which may contain zero
or more of the following options: or more of the following options:
SPP_HB_ENABLE: Enable heartbeats on the specified address. SPP_HB_ENABLE: Enable heartbeats on the specified address.
SPP_HB_DISABLE: Disable heartbeats on the specified address. SPP_HB_DISABLE: Disable heartbeats on the specified address.
Note that SPP_HB_ENABLE and SPP_HB_DISABLE are mutually Note that SPP_HB_ENABLE and SPP_HB_DISABLE are mutually
exclusive, only one of these two should be specified. Enabling exclusive, only one of these two should be specified. Enabling
skipping to change at page 70, line 41 skipping to change at page 70, line 50
SPP_PMTUD_ENABLE: This field will enable PMTU discovery upon the SPP_PMTUD_ENABLE: This field will enable PMTU discovery upon the
specified address. specified address.
SPP_PMTUD_DISABLE: This field will disable PMTU discovery upon SPP_PMTUD_DISABLE: This field will disable PMTU discovery upon
the specified address. Note that if the address field is empty the specified address. Note that if the address field is empty
then all addresses on the association are affected. Note also then all addresses on the association are affected. Note also
that SPP_PMTUD_ENABLE and SPP_PMTUD_DISABLE are mutually that SPP_PMTUD_ENABLE and SPP_PMTUD_DISABLE are mutually
exclusive. Enabling both will have undetermined results. exclusive. Enabling both will have undetermined results.
SPP_IPV6_FLOWLABEL: Setting this flag enables the setting of the SPP_IPV6_FLOWLABEL: Setting this flag enables the setting of the
IPV6 flowlabel value. The value is obtained in the IPV6 flowlabel value. The value is contained in the
spp_ipv6_flowlabel field. spp_ipv6_flowlabel field.
Upon retrieval, this flag will be set to indicate that the Upon retrieval, this flag will be set to indicate that the
spp_ipv6_flowlabel field has a valid value returned. If a spp_ipv6_flowlabel field has a valid value returned. If a
specific destination address is set (in the spp_address field), specific destination address is set (in the spp_address field),
then the value returned is that of the address. If just an then the value returned is that of the address. If just an
association is specified (and no address), then the association is specified (and no address), then the
association's default flowlabel is returned. If neither an association's default flowlabel is returned. If neither an
association nor a destination is specified, then the socket's association nor a destination is specified, then the socket's
default flowlabel is returned. For non IPv6 sockets, this flag default flowlabel is returned. For non IPv6 sockets, this flag
will be left cleared. will be left cleared.
SPP_IPV4_TOS: Setting this flag enables the setting of the IPV4 SPP_DSCP: Setting this flag enables the setting of the DSCP value
TOS value associated with either the association or a specific associated with either the association or a specific address.
address. The value is obtained in the spp_ipv4_tos field. The value is obtained in the spp_dscp field.
Upon retrieval, this flag will be set to indicate that the Upon retrieval, this flag will be set to indicate that the
spp_ipv4_tos field has a valid value returned. If a specific spp_dscp field has a valid value returned. If a specific
destination address is set when called (in the spp_address destination address is set when called (in the spp_address
field) then that specific destination address' TOS value is field) then that specific destination address' DSCP value is
returned. If just an association is specified then the returned. If just an association is specified then the
association default TOS is returned. If neither an association association default DSCP is returned. If neither an
nor a destination is specified, then the sockets default TOS is association nor a destination is specified, then the sockets
returned. default DSCP is returned.
To read or modify these parameters, the application should call Please note that changing the flowlabel or DSCP value will affect all
sctp_opt_info() with the SCTP_PEER_ADDR_PARAMS option. packets sent by the SCTP stack after setting these parameters. The
flowlabel might also be set via the sin6_flowinfo field of the
sockaddr_in6 structure.
8.1.13. Set Default Send Parameters (SCTP_DEFAULT_SEND_PARAM) - 8.1.13. Set Default Send Parameters (SCTP_DEFAULT_SEND_PARAM) -
DEPRECATED DEPRECATED
Please note that this options is deprecated. Section 8.1.31 should Please note that this options is deprecated. Section 8.1.31 should
be used instead. be used instead.
Applications that wish to use the sendto() system call may wish to Applications that wish to use the sendto() system call may wish to
specify a default set of parameters that would normally be supplied specify a default set of parameters that would normally be supplied
through the inclusion of ancillary data. This socket option allows through the inclusion of ancillary data. This socket option allows
skipping to change at page 103, line 8 skipping to change at page 103, line 8
12. Acknowledgments 12. Acknowledgments
Special acknowledgment is given to Ken Fujita, Jonathan Woods, Special acknowledgment is given to Ken Fujita, Jonathan Woods,
Qiaobing Xie, and La Monte Yarroll, who helped extensively in the Qiaobing Xie, and La Monte Yarroll, who helped extensively in the
early formation of this document. early formation of this document.
The authors also wish to thank Kavitha Baratakke, Mike Bartlett, The authors also wish to thank Kavitha Baratakke, Mike Bartlett,
Martin Becke, Jon Berger, Mark Butler, Thomas Dreibholz, Scott Martin Becke, Jon Berger, Mark Butler, Thomas Dreibholz, Scott
Kimble, Renee Revis, Andreas Fink, Jonathan Leighton, Irene Kimble, Renee Revis, Andreas Fink, Jonathan Leighton, Irene
Ruengeler, and many others on the TSVWG mailing list for contributing Ruengeler, Dan Wing, and many others on the TSVWG mailing list for
valuable comments. contributing valuable comments.
A special thanks to Phillip Conrad, for his suggested text, quick and A special thanks to Phillip Conrad, for his suggested text, quick and
constructive insights, and most of all his persistent fighting to constructive insights, and most of all his persistent fighting to
keep the interface to SCTP usable for the application programmer. keep the interface to SCTP usable for the application programmer.
13. References 13. References
13.1. Normative References 13.1. Normative References
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
 End of changes. 30 change blocks. 
40 lines changed or deleted 48 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/