RFC 4820

Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)

πŸ“… published March 2007, from ietf

RFC 4820: Padding Chunk and Parameter for SCTP πŸŽ€

okay bestie, so this one is the official RFC spec for the PAD chunk and the PAD parameter in SCTP (Stream Control Transmission Protocol) πŸ’–. it's a Standards Track doc from March 2007, written by Michael Tuexen (Muenster Univ. of Applied Sciences), Randall R. Stewart, and Peter Lei (all Cisco Systems, Inc., except Tuexen). it doesn't obsolete anything and it doesn't update anything, it just adds new stuff πŸ¦‹. the whole point is to pad an SCTP packet, or an INIT chunk, out to a chosen size ✨.

Status of This Memo

This doc specifies an Internet standards track protocol for the Internet community and asks for discussion and suggestions for improvements 🫢. check the current "Internet Official Protocol Standards" (STD 1) for where this protocol stands. distribution of this memo is unlimited 🌸.

Copyright Notice

Copyright (C) The IETF Trust (2007) πŸ’œ.

Abstract

this doc defines a padding chunk and a padding parameter and explains the receiver-side rules you need to follow πŸ”₯. the chunk pads an SCTP packet to any size you want, and the parameter pads an INIT chunk to any size you want πŸ’….

Table of Contents

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.  Padding Chunk (PAD) . . . . . . . . . . . . . . . . . . . . . . 2
4.  Padding Parameter (PAD) . . . . . . . . . . . . . . . . . . . . 3
5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
  5.1.  A New Chunk Type  . . . . . . . . . . . . . . . . . . . . . 4
  5.2.  A New Parameter Type  . . . . . . . . . . . . . . . . . . . 4
6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 4
8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 5
  8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 5
  8.2.  Informative References  . . . . . . . . . . . . . . . . . . 5

1. Introduction 🌈

okay so this doc defines the padding chunk and the padding parameter, and it tells you how the receiver has to handle them πŸŽ€. the padding chunk pads an SCTP packet to an arbitrary size. the padding parameter pads an SCTP INIT chunk to an arbitrary size. the PAD chunk can also be used for path MTU discovery, which is described in PMTU [4] 🧚. but using the PAD parameter or PAD chunk the wrong way can waste bandwidth, so don't be messy with it πŸ™ˆ.

2. Conventions ✨

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are interpreted as described in RFC 2119 [1] whenever they show up in this doc πŸ’œ.

3. Padding Chunk (PAD) πŸ’–

this chunk pads an SCTP packet πŸ¦‹. a PAD chunk can make the packet bigger by 4 up to 65536 bytes, going up in steps of 4 bytes πŸ“. an SCTP packet MAY contain multiple PAD chunks 🫢.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x84   |   Flags=0     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
\                         Padding Data                          /
/                                                               \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1

Type: 1 byte (unsigned integer). this value MUST be set to 0x84 for all PAD chunks πŸ’….

Flags: 1 byte (unsigned integer). this value SHOULD be set to zero on transmit and MUST be ignored on receipt 🌸.

Length: 2 bytes (unsigned integer). this holds the length of the Padding Data plus 4 ✨.

Padding Data: n bytes (unsigned integer). this is the padding itself. the Padding Data MUST be ignored by the receiver πŸ™ˆ.

when a receiver gets a PAD chunk, it MUST discard it and keep processing the rest of the chunks in the packet πŸ”₯. also, please note that this is the same required processing behavior for any unknown chunk whose two highest-order bits match the PAD chunk's type πŸ‘‘.

4. Padding Parameter (PAD) 🧚

this parameter pads an INIT chunk πŸŽ€. a PAD parameter can make the INIT chunk bigger by 4 bytes, the minimum, up to the maximum size of the INIT chunk, going up in steps of 4 bytes πŸ¦‹. an INIT chunk MAY contain multiple PAD parameters πŸ’–.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Parameter Type = 0x8005   |       Parameter Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/                                                               /
\                          Padding Data                         \
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2

Parameter Type: 2 bytes (unsigned integer). this value MUST be set to 0x8005 🌈.

Parameter Length: 2 bytes (unsigned integer). this holds the length of the Padding Data plus 4 πŸ“.

the PAD parameter MAY be included only in the INIT chunk 🫢. it MUST NOT be included in any other chunk πŸ™…. the receiver of the PAD parameter MUST silently discard it and keep processing the rest of the INIT chunk πŸ¦‹. this means the size of the generated COOKIE parameter in the INIT-ACK MUST NOT depend on whether the PAD parameter was in the INIT chunk πŸ’œ. a receiver of a PAD parameter MUST NOT put the PAD parameter inside any State Cookie parameter it generates πŸ”₯.

5. IANA Considerations 🌸

this doc is the reference for all the registrations in this section. all registrations are listed in the sctp-parameters [3] document, and the changes are described below πŸ’….

5.1. A New Chunk Type ✨

IANA assigned a chunk type for the PAD chunk. the value is the one shown in Figure 1 πŸŽ€. the following was added to the "CHUNK TYPES" table of sctp-parameters [3]:

CHUNK TYPES

ID Value    Chunk Type                                     Reference
--------    ----------                                     ---------
132(0x84)   Padding Chunk (PAD)                            [RFC4820]

5.2. A New Parameter Type πŸ¦‹

IANA assigned a parameter type for the PAD parameter. the value is the one shown in Figure 2 🧚. the following was added to the "CHUNK PARAMETER TYPES" table in sctp-parameters [3]:

INIT Chunk Parameter Types

Chunk Parameter Type                       Value
--------------------                       -----
Padding                            32773(0x8005)

6. Security Considerations πŸ”₯

this doc does not add any new security considerations beyond the ones in RFC 2960 [2] πŸ’€. go read those too, they matter 🫢.

7. Acknowledgments πŸ’œ

the authors want to thank Matthew J. Zekauskas and Lars Eggert for their invaluable comments 🌸.

8. References πŸ“š

8.1. Normative References

[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[2] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L., and V. Paxson, "Stream Control Transmission Protocol", RFC 2960, October 2000.

8.2. Informative References

[3] "IANA registry", <http://www.iana.org/assignments/sctp-parameters>.

[4] Mathis, M. and J. Heffner, "Packetization Layer Path MTU Discovery", RFC 4821, March 2007.


Authors' Addresses 🧚

Michael Tuexen Muenster Univ. of Applied Sciences Stegerwaldstr. 39 48565 Steinfurt Germany

EMail: tuexen@fh-muenster.de

Randall R. Stewart Cisco Systems, Inc. 4875 Forest Drive Suite 200 Columbia, SC 29206 USA

EMail: rrs@cisco.com

Peter Lei Cisco Systems, Inc. 955 Happfield Dr. Arlington Heights, IL 60004 US

Phone: +1 773 695-8201 EMail: peterlei@cisco.com

Copyright (C) The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property πŸ¦‹

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

Acknowledgement 🌈

Funding for the RFC Editor function is currently provided by the Internet Society.

πŸ“¦ where this page comes from