rfc9623v3.txt | rfc9623.txt | |||
---|---|---|---|---|
skipping to change at line 1127 ¶ | skipping to change at line 1127 ¶ | |||
part of TCP Fast Open (TFO). Also, protocols that do not protect | part of TCP Fast Open (TFO). Also, protocols that do not protect | |||
against duplicated Messages, such as UDP (when used directly, | against duplicated Messages, such as UDP (when used directly, | |||
without a protocol layered atop), can only be used with Messages | without a protocol layered atop), can only be used with Messages | |||
that are Safely Replayable. When a Transport Services system is | that are Safely Replayable. When a Transport Services system is | |||
permitted to replay Messages, replay protection could be provided | permitted to replay Messages, replay protection could be provided | |||
by the application. | by the application. | |||
final: When this is true, it means that the sender will not send any | final: When this is true, it means that the sender will not send any | |||
further Messages. The Connection need not be closed (if the | further Messages. The Connection need not be closed (if the | |||
Protocol Stack supports half-closed operations, like TCP). Any | Protocol Stack supports half-closed operations, like TCP). Any | |||
Messages sent after a Message marked final will result in a | Messages sent after a Message marked Final will result in a | |||
SendError. | SendError. | |||
msgChecksumLen: When this is set to any value other than Full | msgChecksumLen: When this is set to any value other than Full | |||
Coverage, it sets the minimum protection in protocols that allow | Coverage, it sets the minimum protection in protocols that allow | |||
limiting the checksum length (e.g., UDP-Lite). If the Protocol | limiting the checksum length (e.g., UDP-Lite). If the Protocol | |||
Stack does not support checksum length limitation, this property | Stack does not support checksum length limitation, this property | |||
may be ignored. | may be ignored. | |||
msgReliable: When true, the property specifies that the Message must | msgReliable: When true, the property specifies that the Message must | |||
be reliably transmitted. When false, and if unreliable | be reliably transmitted. When false, and if unreliable | |||
skipping to change at line 1579 ¶ | skipping to change at line 1579 ¶ | |||
also inform the Protocol Instance about potentially new paths that | also inform the Protocol Instance about potentially new paths that | |||
become permissible based on the multipath Selection Property and the | become permissible based on the multipath Selection Property and the | |||
multipathPolicy Connection Property choices made by the application. | multipathPolicy Connection Property choices made by the application. | |||
A protocol can then establish new subflows over new paths while an | A protocol can then establish new subflows over new paths while an | |||
active path is still available or after a break has been detected, | active path is still available or after a break has been detected, | |||
and it should attempt to tear down subflows over paths that are no | and it should attempt to tear down subflows over paths that are no | |||
longer used. The Connection Property multipathPolicy of the | longer used. The Connection Property multipathPolicy of the | |||
Transport Services API allows an application to indicate when and how | Transport Services API allows an application to indicate when and how | |||
different paths should be used. However, detailed handling of these | different paths should be used. However, detailed handling of these | |||
policies is implementation specific. For example, if the multipath | policies is implementation specific. For example, if the multipath | |||
Selection Property is set to active, the decision about when to | Selection Property is set to Active, the decision about when to | |||
create a new path or to announce a new path or set of paths to the | create a new path or to announce a new path or set of paths to the | |||
Remote Endpoint, e.g., in the form of additional IP addresses, is | Remote Endpoint, e.g., in the form of additional IP addresses, is | |||
implementation specific. If the Protocol Stack includes a transport | implementation specific. If the Protocol Stack includes a transport | |||
protocol that does not support multipath but does support migrating | protocol that does not support multipath but does support migrating | |||
between paths, the update to the set of available paths can trigger | between paths, the update to the set of available paths can trigger | |||
the connection to be migrated. | the connection to be migrated. | |||
In the case of a Pooled Connection (Section 7.1), the Transport | In the case of a Pooled Connection (Section 7.1), the Transport | |||
Services Implementation may add connections over new paths to the | Services Implementation may add connections over new paths to the | |||
pool if permissible based on the multipath policy and Selection | pool if permissible based on the multipathPolicy and Selection | |||
Properties. If a previously used path becomes unavailable, the | Properties. If a previously used path becomes unavailable, the | |||
Transport Services system may disconnect all connections that require | Transport Services system may disconnect all connections that require | |||
this path, but it should not disconnect the pooled Connection object | this path, but it should not disconnect the pooled Connection object | |||
exposed to the application. The strategy to do so is implementation | exposed to the application. The strategy to do so is implementation | |||
specific, but it should be consistent with the behavior of multipath | specific, but it should be consistent with the behavior of multipath | |||
transports. | transports. | |||
8. Implementing Connection Termination | 8. Implementing Connection Termination | |||
For Close (which leads to a Closed event) and Abort (which leads to a | For Close (which leads to a Closed event) and Abort (which leads to a | |||
skipping to change at line 1949 ¶ | skipping to change at line 1949 ¶ | |||
SET_DF.UDP-Lite; SET_ECN.UDP-Lite; GET_ECN.UDP-Lite. | SET_DF.UDP-Lite; SET_ECN.UDP-Lite; GET_ECN.UDP-Lite. | |||
10.5. UDP Multicast Receive | 10.5. UDP Multicast Receive | |||
Connectedness: Connectionless | Connectedness: Connectionless | |||
Data Unit: Datagram | Data Unit: Datagram | |||
Connection Object: Established UDP Multicast Receive connections | Connection Object: Established UDP Multicast Receive connections | |||
represent a pair of specific IP addresses and ports. The | represent a pair of specific IP addresses and ports. The | |||
direction Selection Property must be set to unidirectional | direction Selection Property must be set to Unidirectional | |||
receive, and the Local Endpoint must be configured with a group IP | receive, and the Local Endpoint must be configured with a group IP | |||
address and a port. | address and a port. | |||
Initiate: Calling Initiate on a UDP Multicast Receive Connection | Initiate: Calling Initiate on a UDP Multicast Receive Connection | |||
causes an immediate EstablishmentError. This is an unsupported | causes an immediate EstablishmentError. This is an unsupported | |||
operation. | operation. | |||
InitiateWithSend: Calling InitiateWithSend on a UDP Multicast | InitiateWithSend: Calling InitiateWithSend on a UDP Multicast | |||
Receive Connection causes an immediate EstablishmentError. This | Receive Connection causes an immediate EstablishmentError. This | |||
is an unsupported operation. | is an unsupported operation. | |||
skipping to change at line 1998 ¶ | skipping to change at line 1998 ¶ | |||
the Socket API). | the Socket API). | |||
ConnectionReceived: UDP Multicast Receive Listeners will deliver new | ConnectionReceived: UDP Multicast Receive Listeners will deliver new | |||
Connections once they have received traffic from a new Remote | Connections once they have received traffic from a new Remote | |||
Endpoint. | Endpoint. | |||
Clone: Calling Clone on a UDP Multicast Receive Connection creates a | Clone: Calling Clone on a UDP Multicast Receive Connection creates a | |||
new Connection with equivalent parameters. The two Connections | new Connection with equivalent parameters. The two Connections | |||
are otherwise independent. | are otherwise independent. | |||
Send: SEND.UDP. Calling Send on a UDP Multicast Receive connection | Send: SEND.UDP. Calling Send on a UDP Multicast Receive Connection | |||
causes an immediate SendError. This is an unsupported operation. | causes an immediate SendError. This is an unsupported operation. | |||
Receive: RECEIVE.UDP. The Receive operation in a UDP Multicast | Receive: RECEIVE.UDP. The Receive operation in a UDP Multicast | |||
Receive connection only delivers complete Messages to Received, | Receive Connection only delivers complete Messages to Received, | |||
each of which represents a single datagram received in a UDP | each of which represents a single datagram received in a UDP | |||
packet. Upon receiving a UDP datagram, the ECN flag from the IP | packet. Upon receiving a UDP datagram, the ECN flag from the IP | |||
header can be obtained (GET_ECN.UDP). | header can be obtained (GET_ECN.UDP). | |||
Close: Calling Close on a UDP Multicast Receive Connection | Close: Calling Close on a UDP Multicast Receive Connection | |||
(ABORT.UDP) releases the local port reservation and leaves the | (ABORT.UDP) releases the local port reservation and leaves the | |||
group. The Connection then issues a Closed event. | group. The Connection then issues a Closed event. | |||
Abort: Calling Abort on a UDP Multicast Receive Connection | Abort: Calling Abort on a UDP Multicast Receive Connection | |||
(ABORT.UDP) is identical to calling Close except that the | (ABORT.UDP) is identical to calling Close except that the | |||
skipping to change at line 2090 ¶ | skipping to change at line 2090 ¶ | |||
used: if there are enough streams available, Initiate is a local | used: if there are enough streams available, Initiate is a local | |||
operation that assigns a new stream id to the Connection object. | operation that assigns a new stream id to the Connection object. | |||
The number of streams is negotiated as a parameter of the prior | The number of streams is negotiated as a parameter of the prior | |||
CONNECT.SCTP call, and it represents a trade-off between local | CONNECT.SCTP call, and it represents a trade-off between local | |||
resource usage and the number of Connection objects that can be | resource usage and the number of Connection objects that can be | |||
mapped without requiring a reconfiguration signal. When running | mapped without requiring a reconfiguration signal. When running | |||
out of streams, ADD_STREAM.SCTP must be called. | out of streams, ADD_STREAM.SCTP must be called. | |||
InitiateWithSend: If this is the only Connection object that is | InitiateWithSend: If this is the only Connection object that is | |||
assigned to the SCTP association or stream mapping is not used, | assigned to the SCTP association or stream mapping is not used, | |||
CONNECT.SCTP is called with the "user message" parameter. Else, a | CONNECT.SCTP is called with the user message parameter. Else, a | |||
new stream is used (see Initiate for how to handle running out of | new stream is used (see Initiate for how to handle running out of | |||
streams), and this just sends the first message on a new stream. | streams), and this just sends the first message on a new stream. | |||
Ready: Initiate or InitiateWithSend returns without an error, i.e., | Ready: Initiate or InitiateWithSend returns without an error, i.e., | |||
SCTP's four-way handshake has completed. If an association with | SCTP's four-way handshake has completed. If an association with | |||
the peer already exists, stream mapping is used, and enough | the peer already exists, stream mapping is used, and enough | |||
streams are available, a Connection object instantly becomes Ready | streams are available, a Connection object instantly becomes Ready | |||
after calling Initiate or InitiateWithSend. | after calling Initiate or InitiateWithSend. | |||
EstablishmentError: Failure of CONNECT.SCTP. | EstablishmentError: Failure of CONNECT.SCTP. | |||
skipping to change at line 2406 ¶ | skipping to change at line 2406 ¶ | |||
Appendix B. Reasons for Errors | Appendix B. Reasons for Errors | |||
The Transport Services API [RFC9622] allows for several generic error | The Transport Services API [RFC9622] allows for several generic error | |||
types to specify a more detailed reason about why an error occurred. | types to specify a more detailed reason about why an error occurred. | |||
This appendix lists some of the possible reasons. | This appendix lists some of the possible reasons. | |||
InvalidConfiguration: The transport properties and Endpoint | InvalidConfiguration: The transport properties and Endpoint | |||
Identifiers provided by the application are either contradictory | Identifiers provided by the application are either contradictory | |||
or incomplete. Examples include the lack of a Remote Endpoint | or incomplete. Examples include the lack of a Remote Endpoint | |||
Identifier on an active open or using a multicast group address | Identifier on an active open or using a multicast group address | |||
while not requesting a unidirectional receive. | while not requesting a Unidirectional receive. | |||
NoCandidates: The configuration is valid, but none of the available | NoCandidates: The configuration is valid, but none of the available | |||
transport protocols can satisfy the transport properties provided | transport protocols can satisfy the transport properties provided | |||
by the application. | by the application. | |||
ResolutionFailed: The remote or local specifier provided by the | ResolutionFailed: The remote or local specifier provided by the | |||
application cannot be resolved. | application cannot be resolved. | |||
EstablishmentFailed: The Transport Services system was unable to | EstablishmentFailed: The Transport Services system was unable to | |||
establish a transport-layer connection to the Remote Endpoint | establish a transport-layer connection to the Remote Endpoint | |||
End of changes. 8 change blocks. | ||||
8 lines changed or deleted | 8 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |