Commit 4415715
committed
Add comprehensive SCTP protocol support
Implement full SCTP (Stream Control Transmission Protocol) layer with support for:
Core Protocol (RFC 9260):
- All standard chunk types (DATA, INIT, INIT-ACK, SACK, HEARTBEAT, ABORT,
SHUTDOWN, ERROR, COOKIE-ECHO, COOKIE-ACK, ECNE, CWR, SHUTDOWN-COMPLETE)
- CRC32c checksum calculation and validation
- Chunk and parameter action bits helpers
- Bundling validation per RFC 9260
- Host Name Address deprecation detection
Extensions:
- AUTH chunk with HMAC-SHA1/SHA256 computation and verification (RFC 4895)
- ASCONF/ASCONF-ACK for dynamic address reconfiguration (RFC 5061)
- RE-CONFIG for stream reconfiguration (RFC 6525)
- FORWARD-TSN for partial reliability (RFC 3758)
- I-DATA and I-FORWARD-TSN for message interleaving (RFC 8260)
- PAD chunk (RFC 4820)
- NR-SACK experimental support (IANA registered, draft-based)
- Zero Checksum Acceptable parameter (RFC 9653)
Additional features:
- Type-safe chunk views: Zero-overhead wrapper classes for all 24 chunk types, enabling type-safe field access without
runtime overhead
- Parameter iterators for INIT, RE-CONFIG, and ASCONF chunks
- Error cause iterator for ABORT/ERROR chunks
- Extended PPID enum with 70+ protocol identifiers from IANA registry
- Chunk creation APIs for building SCTP packets
Includes 91 test cases covering parsing, creation, and validation.1 parent 6ba29cf commit 4415715
25 files changed
Lines changed: 10794 additions & 12 deletions
File tree
- Packet++
- header
- src
- Tests
- Packet++Test
- PacketExamples
- Tests
- Pcap++Test/Tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| |||
130 | 131 | | |
131 | 132 | | |
132 | 133 | | |
| 134 | + | |
133 | 135 | | |
134 | 136 | | |
135 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
100 | 102 | | |
101 | 103 | | |
102 | 104 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
263 | 266 | | |
264 | 267 | | |
265 | 268 | | |
| |||
0 commit comments