[socket] Support for Payload Protocol Identifier for SCTP sockets in standard socket library
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 36k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Feature or enhancement
Currently is there a way to specify the payload protocol identifier for an SCTP socket created using the socket library?
For example, the SCTP socket object created as sock_amf = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_SCTP) exposes sock_amf.send(bytes, flags) but has no way to mention the payload protocol identifier as mentioned in https://www.rfc-editor.org/rfc/rfc9260.html#section-3.3.1-3.20.1
Payload Protocol Identifier: 32 bits (unsigned integer)
This value represents an application (or upper layer) specified protocol identifier. This value is passed to SCTP by its upper layer and sent to its peer. This identifier is not used by SCTP but can be used by certain network entities, as well as by the peer application, to identify the type of information being carried in this DATA chunk. This field MUST be sent even in fragmented DATA chunks (to make sure it is available for agents in the middle of the network). Note that this field is not touched by an SCTP implementation; the upper layer is responsible for the host to network byte order conversion of this field.
The value 0 indicates that no application identifier is specified by the upper layer for this payload data.
At present the default value of 0 is being set when the data chunk is formed.
Sample packet capture for one such instance.

Pitch
If such an option was there, we could directly implement protocols that require specific ppid with the standard socket library (without having to depend on 3rd party bindings of SCTP C library).
Say for example the NGAP protocol used in 5G which uses
SCTP (IETF RFC 4960 [2]) shall be supported as the transport layer of NG-C signaling bearer. The Payload Protocol
Identifier (ppid) assigned by IANA to be used by SCTP for the application layer protocol NGAP is 60, and 66 for
DTLS over SCTP (IETF RFC 6083 [8])
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với các entry point socket.socket(..., IPPROTO_SCTP) và send(bytes, flags) tiêu chuẩn được mô tả trong issue, sau đó đọc các yêu cầu PPID được tham chiếu trong RFC 9260. Xác định cách API socket tiêu chuẩn có thể chấp nhận một PPID và xác minh rằng SCTP DATA chunk được tạo ra mang PPID đó, bao gồm các giá trị NGAP được đề cập. Issue không xác định tệp mã nguồn hoặc test nào.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- networking
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100