diff --git a/print-sctp.c b/print-sctp.c index acd516f75..caee64cc5 100644 --- a/print-sctp.c +++ b/print-sctp.c @@ -112,9 +112,10 @@ #define SCTP_ECN_CWR 0x0d #define SCTP_SHUTDOWN_COMPLETE 0x0e #define SCTP_I_DATA 0x40 +#define SCTP_ASCONF_ACK 0x80 #define SCTP_RE_CONFIG 0x82 #define SCTP_FORWARD_CUM_TSN 0xc0 -#define SCTP_RELIABLE_CNTL 0xc1 +#define SCTP_ASCONF 0xc1 #define SCTP_I_FORWARD_TSN 0xc2 static const struct tok sctp_chunkid_str[] = { @@ -136,7 +137,8 @@ static const struct tok sctp_chunkid_str[] = { { SCTP_I_DATA, "I-DATA" }, { SCTP_RE_CONFIG, "RE-CONFIG" }, { SCTP_FORWARD_CUM_TSN, "FOR CUM TSN" }, - { SCTP_RELIABLE_CNTL, "REL CTRL" }, + { SCTP_ASCONF, "ASCONF" }, + { SCTP_ASCONF_ACK, "ASCONF-ACK" }, { SCTP_I_FORWARD_TSN, "I-FORWARD-FSN" }, { 0, NULL } }; @@ -163,6 +165,18 @@ static const struct tok sctp_chunkid_str[] = { #define SCTP_ADDRMAX 60 +/* ASCONF Parameters*/ +/* - used in INIT/ACK chunk */ +#define SET_PRI_ADDR 0xC004 +#define ADAPT_LAYER_INDIC 0xC006 +#define SUPPORTED_EXT 0x8008 +/* - used in ASCONF param */ +#define ADD_IP_ADDR 0xC001 +#define DEL_IP_ADDR 0xC002 +/* - used in ASCONF response */ +#define ERR_CAUSE_INDIC 0xC003 +#define SUCCESS_INDIC 0xC005 + #define CHAN_HP 6704 #define CHAN_MP 6705 #define CHAN_LP 6706 @@ -411,6 +425,35 @@ struct addStreamReq{ nd_uint16_t reserved; }; +/* ASCONF parameters */ +struct sctpAsconfParam{ + nd_uint16_t type; + nd_uint16_t length; + nd_uint32_t CID; + union { + struct sctpV4IpAddress ipv4; + struct sctpV6IpAddress ipv6; + } addr; +}; + +struct sctpAsconfParamRes{ + nd_uint16_t type; + nd_uint16_t length; + nd_uint32_t CID; +}; + +struct sctpASCONF{ + nd_uint32_t seq_num; + union { + struct sctpV4IpAddress ipv4; + struct sctpV6IpAddress ipv6; + } addr; +}; + +struct sctpASCONF_ACK{ + nd_uint32_t seq_num; +}; + struct sctpUnifiedDatagram{ struct sctpChunkDesc uh; struct sctpDataPart dp; @@ -449,6 +492,35 @@ static const struct tok results[] = { { 0, NULL } }; +/* ASCONF tokens */ +static const struct tok asconfigParams[] = { + { SET_PRI_ADDR, "SET PRIM ADDR" }, + { ADAPT_LAYER_INDIC, "Adaptation Layer Indication" }, + { SUPPORTED_EXT, "Supported Extensions" }, + { ADD_IP_ADDR, "ADD ADDR" }, + { DEL_IP_ADDR, "DEL ADDR" }, + { ERR_CAUSE_INDIC, "ERR" }, + { SUCCESS_INDIC, "SUCCESS" }, + { 0, NULL } +}; + +static const struct tok causeCode[] = { + { 1, "Invalid Stream Identifier" }, + { 2, "Missing Mandatory Parameter" }, + { 3, "Stale Cookie Error" }, + { 4, "Out of Resource" }, + { 5, "Unresolvable Address" }, + { 6, "Unrecognized Chunk Type" }, + { 7, "Invalid Mandatory Parameter" }, + { 8, "Unrecognized Parameters" }, + { 9, "No User Data" }, + { 10, "Cookie Received While Shutting Down" }, + { 11, "Restart of an Association with New Addresses" }, + { 12, "User Initiated Abort" }, + { 13, "Protocol Violation" }, + { 0, NULL } +}; + static const struct tok ForCES_channels[] = { { CHAN_HP, "ForCES HP" }, { CHAN_MP, "ForCES MP" }, @@ -1120,6 +1192,157 @@ sctp_print(netdissect_options *ndo, bp += chunkLengthRemaining; chunkLengthRemaining = 0; + break; + } + case SCTP_ASCONF: + { + const struct sctpASCONF *content; + const struct sctpAsconfParam *param; + size_t length; + uint16_t param_len; + + /* Should be at least longer than the length of IPv4 typed parameter*/ + length = sizeof(nd_uint32_t) + sizeof(struct sctpV4IpAddress); + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, length); + content = (const struct sctpASCONF*) bp; + ND_PRINT("[SEQ: %u, ", GET_BE_U_4(content->seq_num)); + + if (GET_BE_U_2(content->addr.ipv4.p.paramType) == 5) { /* IPv4 */ + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, length); + ND_PRINT("ADDR: %s] ", GET_IPADDR_STRING(content->addr.ipv4.ipAddress)); + } else if (GET_BE_U_2(content->addr.ipv6.p.paramType) == 6) { /* IPv6 */ + length = sizeof(nd_uint32_t) + sizeof(struct sctpV6IpAddress); + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, length); + ND_PRINT("ADDR: %s] ", GET_IP6ADDR_STRING(content->addr.ipv6.ipAddress)); + } else { + length = sizeof(nd_uint32_t) + GET_BE_U_2(content->addr.ipv4.p.paramLength); + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, length); + ND_PRINT("ADDR: bogus address type]"); + } + bp += length; + chunkLengthRemaining -= length; + sctpPacketLengthRemaining -= length; + + while (0 != chunkLengthRemaining) { + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, sizeof(uint32_t)); /* ensure param_len can be extracted */ + param = (const struct sctpAsconfParam*) bp; + param_len = GET_BE_U_2(param->length); + ND_ICHECKMSG_ZU("parameter length", param_len, <, sizeof(uint16_t)); + + ND_ICHECKMSG_U("chunk length", chunkLengthRemaining, <, param_len); + bp += param_len; + chunkLengthRemaining -= param_len; + sctpPacketLengthRemaining -= param_len; + + ND_PRINT("[%s", tok2str(asconfigParams, NULL, GET_BE_U_2(param->type))); + + if (ndo->ndo_vflag >= 2) { + ND_PRINT(": C-ID: %u, ", GET_BE_U_4(param->CID)); + if (GET_BE_U_2(param->addr.ipv4.p.paramType) == 5) { /* IPv4 */ + length = sizeof(nd_uint32_t) + sizeof(struct sctpV4IpAddress); + ND_ICHECKMSG_ZU("param length", param_len, <, length); + ND_PRINT("ADDR: %s] ", GET_IPADDR_STRING(param->addr.ipv4.ipAddress)); + } else if (GET_BE_U_2(param->addr.ipv4.p.paramType) == 6) { /* IPv6 */ + length = sizeof(nd_uint32_t) + sizeof(struct sctpV6IpAddress); + ND_ICHECKMSG_ZU("param length", param_len, <, length); + ND_PRINT("ADDR: %s] ", GET_IP6ADDR_STRING(param->addr.ipv6.ipAddress)); + } else { + ND_PRINT("ADDR: bogus address type]"); + } + } else { + ND_PRINT("]"); + } + } + break; + } + case SCTP_ASCONF_ACK: + { + const struct sctpASCONF_ACK *content; + const struct sctpAsconfParamRes *param; + uint16_t param_len; + + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, sizeof(*content)); + content = (const struct sctpASCONF_ACK*) bp; + ND_PRINT("[SEQ: %u] ", GET_BE_U_4(content->seq_num)); + + bp += sizeof(*content); + chunkLengthRemaining -= sizeof(*content); + sctpPacketLengthRemaining -= sizeof(*content); + + while (0 != chunkLengthRemaining) { + ND_ICHECKMSG_ZU("chunk length", chunkLengthRemaining, <, sizeof(struct sctpAsconfParamRes)); + param = (const struct sctpAsconfParamRes*) bp; + param_len = GET_BE_U_2(param->length); + ND_ICHECKMSG_ZU("parameter length", param_len, <, sizeof(struct sctpAsconfParamRes)); + ND_ICHECKMSG_U("chunk length", chunkLengthRemaining, <, param_len); + + ND_PRINT("[%s", tok2str(asconfigParams, NULL, GET_BE_U_2(param->type))); + sctpPacketLengthRemaining -= param_len; + + /* print payload only when vflag >= 2 */ + if (ndo->ndo_vflag < 2) { + ND_PRINT("] "); + bp += param_len; + chunkLengthRemaining -= param_len; + continue; + } + + switch (GET_BE_U_2(param->type)) { + case ERR_CAUSE_INDIC: + { + uint16_t cause_len; + const struct sctpOpErrorCause *err_cause; + + ND_PRINT(": C-ID: %u ", GET_BE_U_4(param->CID)); + bp += sizeof(struct sctpAsconfParamRes); + param_len -= sizeof(struct sctpAsconfParamRes); + chunkLengthRemaining -= sizeof(struct sctpAsconfParamRes); + if (0 == param_len) { + ND_PRINT("] "); + break; + } + + /* check against ERROR length */ + ND_ICHECKMSG_ZU("chunk length", param_len, <, sizeof(uint32_t)); + bp += sizeof(uint16_t); + ND_ICHECKMSG_U("param length", param_len, <, GET_BE_U_2(bp)); + bp += sizeof(uint16_t); + param_len -= sizeof(uint32_t); + chunkLengthRemaining -= sizeof(uint32_t); + + while (0 != param_len) { + ND_ICHECKMSG_ZU("param length", param_len, <, sizeof(*err_cause)); + err_cause = (const struct sctpOpErrorCause*) bp; + cause_len = GET_BE_U_2(err_cause->causeLen); + ND_ICHECKMSG_U("cause length", cause_len, >, param_len); + ND_ICHECKMSG_ZU("cause length", cause_len, <, sizeof(*err_cause)); + ND_PRINT("%s, ", tok2str(causeCode, NULL, GET_BE_U_2(err_cause->cause))); + + bp += cause_len; + param_len -= cause_len; + chunkLengthRemaining -= cause_len; + } + ND_PRINT("] "); + break; + } + case SUCCESS_INDIC: + { + ND_PRINT(": C-ID: %u ", GET_BE_U_4(param->CID)); + bp += sizeof(struct sctpAsconfParamRes); + param_len -= sizeof(struct sctpAsconfParamRes); + chunkLengthRemaining -= sizeof(struct sctpAsconfParamRes); + break; + } + default: + { + ND_PRINT("Unknown parameter] "); + bp += param_len; + chunkLengthRemaining -= param_len; + param_len -= param_len; + break; + } + } + } break; } default : diff --git a/tests/TESTLIST b/tests/TESTLIST index e29d7e9b2..478ec798e 100644 --- a/tests/TESTLIST +++ b/tests/TESTLIST @@ -62,6 +62,14 @@ sctp-re-config sctp-re-config.pcap sctp-re-config.out sctp-re-config-v sctp-re-config.pcap sctp-re-config-v.out -v sctp-re-config-vv sctp-re-config.pcap sctp-re-config-vv.out -vv +# ASCONF tests +sctp-asconf sctp-asconf.pcap sctp-asconf.out +sctp-asconf-v sctp-asconf.pcap sctp-asconf-v.out -v +sctp-asconf-vv sctp-asconf.pcap sctp-asconf-vv.out -vv +sctp-asconf-6 sctp-asconf-6.pcap sctp-asconf-6.out +sctp-asconf-6-v sctp-asconf-6.pcap sctp-asconf-6-v.out -v +sctp-asconf-6-vv sctp-asconf-6.pcap sctp-asconf-6-vv.out -vv + # BGP tests bgp_vpn_attrset bgp_vpn_attrset.pcap bgp_vpn_attrset.out -v mpbgp-linklocal-nexthop mpbgp-linklocal-nexthop.pcap mpbgp-linklocal-nexthop.out -v diff --git a/tests/sctp-asconf-6-v.out b/tests/sctp-asconf-6-v.out new file mode 100644 index 000000000..91c80d9bb --- /dev/null +++ b/tests/sctp-asconf-6-v.out @@ -0,0 +1,36 @@ + 1 2023-05-16 21:07:01.838221 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 56) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [INIT] [init tag: 3545157994] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1518935751] + 2 2023-05-16 21:07:01.838256 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 384) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [INIT ACK] [init tag: 2419719451] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3794555581] + 3 2023-05-16 21:07:01.838267 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 308) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [COOKIE ECHO] + 4 2023-05-16 21:07:01.838279 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [COOKIE ACK] + 5 2023-05-16 21:07:01.838290 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935751] [SID: 0] [SSEQ 0] [PPID 0x0] + 6 2023-05-16 21:07:01.838295 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SACK] [cum ack 1518935751] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:07:01.838366 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [DATA] (B)(E) [TSN: 3794555581] [SID: 0] [SSEQ 0] [PPID 0x0] + 8 2023-05-16 21:07:01.838373 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555581] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:07:01.838446 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935751, ADDR: 2000::5:1] [ADD ADDR] + 10 2023-05-16 21:07:01.838458 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935751] + 11 2023-05-16 21:07:01.838460 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [HB REQ] + 12 2023-05-16 21:07:01.838473 IP6 (class 0x02, flowlabel 0xdbc67, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:3.36296 > 2000::5:4.36297: sctp (1) [HB ACK] + 13 2023-05-16 21:07:01.838482 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935752] [SID: 0] [SSEQ 1] [PPID 0x0] + 14 2023-05-16 21:07:01.838571 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [DATA] (B)(E) [TSN: 3794555582] [SID: 0] [SSEQ 1] [PPID 0x0] + 15 2023-05-16 21:07:01.838657 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935752, ADDR: 2000::5:3] [SET PRIM ADDR] + 16 2023-05-16 21:07:01.838663 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935752] + 17 2023-05-16 21:07:02.042022 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555582] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1518935753] [SID: 0] [SSEQ 2] [PPID 0x0] + 18 2023-05-16 21:07:02.042022 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935752] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 19 2023-05-16 21:07:02.042090 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935753] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555583] [SID: 0] [SSEQ 2] [PPID 0x0] + 20 2023-05-16 21:07:02.042124 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 48) 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935754] [SID: 0] [SSEQ 3] [PPID 0x0] + 21 2023-05-16 21:07:02.246022 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555583] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 22 2023-05-16 21:07:02.246022 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 64) 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935754] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555584] [SID: 0] [SSEQ 3] [PPID 0x0] + 23 2023-05-16 21:07:02.246091 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935753, ADDR: 2000::5:1] [DEL ADDR] + 24 2023-05-16 21:07:02.246099 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935753] + 25 2023-05-16 21:07:02.246111 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 44) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935755] [SID: 0] [SSEQ 4] [PPID 0x0] + 26 2023-05-16 21:07:02.450049 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555584] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 27 2023-05-16 21:07:02.450029 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 60) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SACK] [cum ack 1518935755] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555585] [SID: 0] [SSEQ 4] [PPID 0x0] + 28 2023-05-16 21:07:02.450102 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SHUTDOWN] + 29 2023-05-16 21:07:02.450134 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SHUTDOWN ACK] + 30 2023-05-16 21:07:02.450138 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SHUTDOWN COMPLETE] + 31 2023-05-16 21:07:06.938038 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::f4c7:7eff:fe0f:83fe > 2000::5:4: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 2000::5:4 + source link-address option (1), length 8 (1): f6:c7:7e:0f:83:fe + 32 2023-05-16 21:07:06.938050 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::accc:f7ff:fec3:1790 > 2000::5:3: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 2000::5:3 + source link-address option (1), length 8 (1): ae:cc:f7:c3:17:90 + 33 2023-05-16 21:07:06.938078 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) 2000::5:3 > fe80::accc:f7ff:fec3:1790: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is 2000::5:3, Flags [solicited] + 34 2023-05-16 21:07:06.938074 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) 2000::5:4 > fe80::f4c7:7eff:fe0f:83fe: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is 2000::5:4, Flags [solicited] diff --git a/tests/sctp-asconf-6-vv.out b/tests/sctp-asconf-6-vv.out new file mode 100644 index 000000000..5db0c3cff --- /dev/null +++ b/tests/sctp-asconf-6-vv.out @@ -0,0 +1,86 @@ + 1 2023-05-16 21:07:01.838221 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 56) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [INIT] [init tag: 3545157994] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1518935751] + 2 2023-05-16 21:07:01.838256 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 384) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [INIT ACK] [init tag: 2419719451] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3794555581] + 3 2023-05-16 21:07:01.838267 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 308) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [COOKIE ECHO] + 4 2023-05-16 21:07:01.838279 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [COOKIE ACK] + 5 2023-05-16 21:07:01.838290 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1518935751] [SID: 0] [SSEQ 0] [PPID 0x0] [Payload: + 0x0000: 636f 6e6e 6563 7465 6400 connected.] + 6 2023-05-16 21:07:01.838295 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [SACK] [cum ack 1518935751] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:07:01.838366 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [DATA] (B)(E) [TSN: 3794555581] [SID: 0] [SSEQ 0] [PPID 0x0] [Payload: + 0x0000: 636f 6e6e 6563 7465 6400 connected.] + 8 2023-05-16 21:07:01.838373 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [SACK] [cum ack 3794555581] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:07:01.838446 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [ASCONF] [SEQ: 1518935751, ADDR: 2000::5:1] [ADD ADDR: C-ID: 0, ADDR: 2000::5:3] + 10 2023-05-16 21:07:01.838458 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1518935751] + 11 2023-05-16 21:07:01.838460 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:4.36297 > 2000::5:3.36296: sctp + 1) [HB REQ] + 12 2023-05-16 21:07:01.838473 IP6 (class 0x02, flowlabel 0xdbc67, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:3.36296 > 2000::5:4.36297: sctp + 1) [HB ACK] + 13 2023-05-16 21:07:01.838482 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:3.36296 > 2000::5:2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1518935752] [SID: 0] [SSEQ 1] [PPID 0x0] [Payload: + 0x0000: 6164 6420 6164 6472 6573 7300 add.address.] + 14 2023-05-16 21:07:01.838571 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 40) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [DATA] (B)(E) [TSN: 3794555582] [SID: 0] [SSEQ 1] [PPID 0x0] [Payload: + 0x0000: 6164 6420 6164 6472 6573 7300 add.address.] + 15 2023-05-16 21:07:01.838657 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:3.36296 > 2000::5:2.36297: sctp + 1) [ASCONF] [SEQ: 1518935752, ADDR: 2000::5:3] [SET PRIM ADDR: C-ID: 0, ADDR: 2000::5:3] + 16 2023-05-16 21:07:01.838663 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:3.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1518935752] + 17 2023-05-16 21:07:02.042022 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:3.36296 > 2000::5:2.36297: sctp + 1) [SACK] [cum ack 3794555582] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 1518935753] [SID: 0] [SSEQ 2] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7065 6572 2070 7269 6d61 7279 set.peer.primary + 0x0010: 2061 6464 7265 7373 00 .address.] + 18 2023-05-16 21:07:02.042022 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:4.36297 > 2000::5:3.36296: sctp + 1) [SACK] [cum ack 1518935752] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 19 2023-05-16 21:07:02.042090 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 72) 2000::5:4.36297 > 2000::5:3.36296: sctp + 1) [SACK] [cum ack 1518935753] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 3794555583] [SID: 0] [SSEQ 2] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7065 6572 2070 7269 6d61 7279 set.peer.primary + 0x0010: 2061 6464 7265 7373 00 .address.] + 20 2023-05-16 21:07:02.042124 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 48) 2000::5:3.36296 > 2000::5:2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1518935754] [SID: 0] [SSEQ 3] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7072 696d 6172 7920 6164 6472 set.primary.addr + 0x0010: 6573 7300 ess.] + 21 2023-05-16 21:07:02.246022 IP6 (class 0x02, flowlabel 0xb69d3, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:3.36296 > 2000::5:2.36297: sctp + 1) [SACK] [cum ack 3794555583] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 22 2023-05-16 21:07:02.246022 IP6 (class 0x02, flowlabel 0xbd008, hlim 64, next-header SCTP (132) payload length: 64) 2000::5:4.36297 > 2000::5:3.36296: sctp + 1) [SACK] [cum ack 1518935754] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 3794555584] [SID: 0] [SSEQ 3] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7072 696d 6172 7920 6164 6472 set.primary.addr + 0x0010: 6573 7300 ess.] + 23 2023-05-16 21:07:02.246091 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 68) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [ASCONF] [SEQ: 1518935753, ADDR: 2000::5:1] [DEL ADDR: C-ID: 0, ADDR: 2000::5:3] + 24 2023-05-16 21:07:02.246099 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1518935753] + 25 2023-05-16 21:07:02.246111 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 44) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1518935755] [SID: 0] [SSEQ 4] [PPID 0x0] [Payload: + 0x0000: 7265 6d6f 7665 2061 6464 7265 7373 00 remove.address.] + 26 2023-05-16 21:07:02.450049 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 28) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [SACK] [cum ack 3794555584] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 27 2023-05-16 21:07:02.450029 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 60) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [SACK] [cum ack 1518935755] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 3794555585] [SID: 0] [SSEQ 4] [PPID 0x0] [Payload: + 0x0000: 7265 6d6f 7665 2061 6464 7265 7373 00 remove.address.] + 28 2023-05-16 21:07:02.450102 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 20) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [SHUTDOWN] + 29 2023-05-16 21:07:02.450134 IP6 (class 0x02, flowlabel 0x58603, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:4.36297 > 2000::5:1.36296: sctp + 1) [SHUTDOWN ACK] + 30 2023-05-16 21:07:02.450138 IP6 (class 0x02, flowlabel 0xe0c15, hlim 64, next-header SCTP (132) payload length: 16) 2000::5:1.36296 > 2000::5:2.36297: sctp + 1) [SHUTDOWN COMPLETE] + 31 2023-05-16 21:07:06.938038 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::f4c7:7eff:fe0f:83fe > 2000::5:4: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 2000::5:4 + source link-address option (1), length 8 (1): f6:c7:7e:0f:83:fe + 0x0000: f6c7 7e0f 83fe + 32 2023-05-16 21:07:06.938050 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::accc:f7ff:fec3:1790 > 2000::5:3: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has 2000::5:3 + source link-address option (1), length 8 (1): ae:cc:f7:c3:17:90 + 0x0000: aecc f7c3 1790 + 33 2023-05-16 21:07:06.938078 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) 2000::5:3 > fe80::accc:f7ff:fec3:1790: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is 2000::5:3, Flags [solicited] + 34 2023-05-16 21:07:06.938074 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) 2000::5:4 > fe80::f4c7:7eff:fe0f:83fe: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is 2000::5:4, Flags [solicited] diff --git a/tests/sctp-asconf-6.out b/tests/sctp-asconf-6.out new file mode 100644 index 000000000..4a2c266b3 --- /dev/null +++ b/tests/sctp-asconf-6.out @@ -0,0 +1,34 @@ + 1 2023-05-16 21:07:01.838221 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [INIT] [init tag: 3545157994] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1518935751] + 2 2023-05-16 21:07:01.838256 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [INIT ACK] [init tag: 2419719451] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3794555581] + 3 2023-05-16 21:07:01.838267 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [COOKIE ECHO] + 4 2023-05-16 21:07:01.838279 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [COOKIE ACK] + 5 2023-05-16 21:07:01.838290 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935751] [SID: 0] [SSEQ 0] [PPID 0x0] + 6 2023-05-16 21:07:01.838295 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SACK] [cum ack 1518935751] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:07:01.838366 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [DATA] (B)(E) [TSN: 3794555581] [SID: 0] [SSEQ 0] [PPID 0x0] + 8 2023-05-16 21:07:01.838373 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555581] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:07:01.838446 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935751, ADDR: 2000::5:1] [ADD ADDR] + 10 2023-05-16 21:07:01.838458 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935751] + 11 2023-05-16 21:07:01.838460 IP6 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [HB REQ] + 12 2023-05-16 21:07:01.838473 IP6 2000::5:3.36296 > 2000::5:4.36297: sctp (1) [HB ACK] + 13 2023-05-16 21:07:01.838482 IP6 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935752] [SID: 0] [SSEQ 1] [PPID 0x0] + 14 2023-05-16 21:07:01.838571 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [DATA] (B)(E) [TSN: 3794555582] [SID: 0] [SSEQ 1] [PPID 0x0] + 15 2023-05-16 21:07:01.838657 IP6 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935752, ADDR: 2000::5:3] [SET PRIM ADDR] + 16 2023-05-16 21:07:01.838663 IP6 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935752] + 17 2023-05-16 21:07:02.042022 IP6 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555582] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1518935753] [SID: 0] [SSEQ 2] [PPID 0x0] + 18 2023-05-16 21:07:02.042022 IP6 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935752] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 19 2023-05-16 21:07:02.042090 IP6 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935753] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555583] [SID: 0] [SSEQ 2] [PPID 0x0] + 20 2023-05-16 21:07:02.042124 IP6 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935754] [SID: 0] [SSEQ 3] [PPID 0x0] + 21 2023-05-16 21:07:02.246022 IP6 2000::5:3.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555583] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 22 2023-05-16 21:07:02.246022 IP6 2000::5:4.36297 > 2000::5:3.36296: sctp (1) [SACK] [cum ack 1518935754] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555584] [SID: 0] [SSEQ 3] [PPID 0x0] + 23 2023-05-16 21:07:02.246091 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [ASCONF] [SEQ: 1518935753, ADDR: 2000::5:1] [DEL ADDR] + 24 2023-05-16 21:07:02.246099 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1518935753] + 25 2023-05-16 21:07:02.246111 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [DATA] (B)(E) [TSN: 1518935755] [SID: 0] [SSEQ 4] [PPID 0x0] + 26 2023-05-16 21:07:02.450049 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SACK] [cum ack 3794555584] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 27 2023-05-16 21:07:02.450029 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SACK] [cum ack 1518935755] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3794555585] [SID: 0] [SSEQ 4] [PPID 0x0] + 28 2023-05-16 21:07:02.450102 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SHUTDOWN] + 29 2023-05-16 21:07:02.450134 IP6 2000::5:4.36297 > 2000::5:1.36296: sctp (1) [SHUTDOWN ACK] + 30 2023-05-16 21:07:02.450138 IP6 2000::5:1.36296 > 2000::5:2.36297: sctp (1) [SHUTDOWN COMPLETE] + 31 2023-05-16 21:07:06.938038 IP6 fe80::f4c7:7eff:fe0f:83fe > 2000::5:4: ICMP6, neighbor solicitation, who has 2000::5:4, length 32 + 32 2023-05-16 21:07:06.938050 IP6 fe80::accc:f7ff:fec3:1790 > 2000::5:3: ICMP6, neighbor solicitation, who has 2000::5:3, length 32 + 33 2023-05-16 21:07:06.938078 IP6 2000::5:3 > fe80::accc:f7ff:fec3:1790: ICMP6, neighbor advertisement, tgt is 2000::5:3, length 24 + 34 2023-05-16 21:07:06.938074 IP6 2000::5:4 > fe80::f4c7:7eff:fe0f:83fe: ICMP6, neighbor advertisement, tgt is 2000::5:4, length 24 diff --git a/tests/sctp-asconf-6.pcap b/tests/sctp-asconf-6.pcap new file mode 100644 index 000000000..e280750af Binary files /dev/null and b/tests/sctp-asconf-6.pcap differ diff --git a/tests/sctp-asconf-v.out b/tests/sctp-asconf-v.out new file mode 100644 index 000000000..2925316e6 --- /dev/null +++ b/tests/sctp-asconf-v.out @@ -0,0 +1,58 @@ + 1 2023-05-16 21:05:30.306064 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [INIT] [init tag: 418238363] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1890701201] + 2 2023-05-16 21:05:30.306083 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 348) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [INIT ACK] [init tag: 4149529168] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3973583667] + 3 2023-05-16 21:05:30.306092 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 296) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [COOKIE ECHO] + 4 2023-05-16 21:05:30.306103 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [COOKIE ACK] + 5 2023-05-16 21:05:30.306113 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [DATA] (B)(E) [TSN: 1890701201] [SID: 0] [SSEQ 0] [PPID 0x0] + 6 2023-05-16 21:05:30.306117 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701201] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:05:30.306174 IP (tos 0x2,ECT(0), ttl 64, id 44872, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583667] [SID: 0] [SSEQ 0] [PPID 0x0] + 8 2023-05-16 21:05:30.306182 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583667] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:05:30.306212 IP (tos 0x2,ECT(0), ttl 64, id 3, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701201, ADDR: 192.168.5.1] [ADD ADDR] + 10 2023-05-16 21:05:30.306220 IP (tos 0x2,ECT(0), ttl 64, id 44873, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701201] + 11 2023-05-16 21:05:30.306221 IP (tos 0x2,ECT(0), ttl 64, id 44874, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [HB REQ] + 12 2023-05-16 21:05:30.306231 IP (tos 0x2,ECT(0), ttl 64, id 4, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [HB ACK] + 13 2023-05-16 21:05:30.306267 IP (tos 0x2,ECT(0), ttl 64, id 5, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [DATA] (B)(E) [TSN: 1890701202] [SID: 0] [SSEQ 1] [PPID 0x0] + 14 2023-05-16 21:05:30.306308 IP (tos 0x2,ECT(0), ttl 64, id 44875, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701202] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3973583668] [SID: 0] [SSEQ 1] [PPID 0x0] + 15 2023-05-16 21:05:30.306356 IP (tos 0x2,ECT(0), ttl 64, id 6, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701202, ADDR: 192.168.5.3] [SET PRIM ADDR] + 16 2023-05-16 21:05:30.306360 IP (tos 0x2,ECT(0), ttl 64, id 44876, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701202] + 17 2023-05-16 21:05:30.306385 IP (tos 0x2,ECT(0), ttl 64, id 7, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583668] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701203] [SID: 0] [SSEQ 2] [PPID 0x0] + 18 2023-05-16 21:05:30.306503 IP (tos 0x2,ECT(0), ttl 64, id 44877, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583669] [SID: 0] [SSEQ 2] [PPID 0x0] + 19 2023-05-16 21:05:30.514024 IP (tos 0x2,ECT(0), ttl 64, id 8, offset 0, flags [DF], proto SCTP (132), length 84) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583669] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701204] [SID: 0] [SSEQ 3] [PPID 0x0] + 20 2023-05-16 21:05:30.514024 IP (tos 0x2,ECT(0), ttl 64, id 44878, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701203] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 21 2023-05-16 21:05:30.514075 IP (tos 0x2,ECT(0), ttl 64, id 44879, offset 0, flags [DF], proto SCTP (132), length 68) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583670] [SID: 0] [SSEQ 3] [PPID 0x0] + 22 2023-05-16 21:05:30.514137 IP (tos 0x2,ECT(0), ttl 64, id 9, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701203, ADDR: 192.168.5.1] [DEL ADDR] + 23 2023-05-16 21:05:30.514145 IP (tos 0x2,ECT(0), ttl 64, id 44880, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701203] + 24 2023-05-16 21:05:30.718033 IP (tos 0x2,ECT(0), ttl 64, id 10, offset 0, flags [DF], proto SCTP (132), length 80) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583670] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701205] [SID: 0] [SSEQ 4] [PPID 0x0] + 25 2023-05-16 21:05:30.718039 IP (tos 0x2,ECT(0), ttl 64, id 44881, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701204] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 26 2023-05-16 21:05:30.718097 IP (tos 0x2,ECT(0), ttl 64, id 44882, offset 0, flags [DF], proto SCTP (132), length 80) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701205] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3973583671] [SID: 0] [SSEQ 4] [PPID 0x0] + 27 2023-05-16 21:05:30.718123 IP (tos 0x2,ECT(0), ttl 64, id 11, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SHUTDOWN] + 28 2023-05-16 21:05:30.718131 IP (tos 0x2,ECT(0), ttl 64, id 44883, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SHUTDOWN ACK] + 29 2023-05-16 21:05:30.718162 IP (tos 0x2,ECT(0), ttl 64, id 12, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SHUTDOWN COMPLETE] diff --git a/tests/sctp-asconf-vv.out b/tests/sctp-asconf-vv.out new file mode 100644 index 000000000..7cb0e9269 --- /dev/null +++ b/tests/sctp-asconf-vv.out @@ -0,0 +1,106 @@ + 1 2023-05-16 21:05:30.306064 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [INIT] [init tag: 418238363] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1890701201] + 2 2023-05-16 21:05:30.306083 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 348) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [INIT ACK] [init tag: 4149529168] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3973583667] + 3 2023-05-16 21:05:30.306092 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 296) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [COOKIE ECHO] + 4 2023-05-16 21:05:30.306103 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [COOKIE ACK] + 5 2023-05-16 21:05:30.306113 IP (tos 0x2,ECT(0), ttl 64, id 1, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1890701201] [SID: 0] [SSEQ 0] [PPID 0x0] [Payload: + 0x0000: 636f 6e6e 6563 7465 6400 connected.] + 6 2023-05-16 21:05:30.306117 IP (tos 0x2,ECT(0), ttl 64, id 0, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SACK] [cum ack 1890701201] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:05:30.306174 IP (tos 0x2,ECT(0), ttl 64, id 44872, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [DATA] (B)(E) [TSN: 3973583667] [SID: 0] [SSEQ 0] [PPID 0x0] [Payload: + 0x0000: 636f 6e6e 6563 7465 6400 connected.] + 8 2023-05-16 21:05:30.306182 IP (tos 0x2,ECT(0), ttl 64, id 2, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SACK] [cum ack 3973583667] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:05:30.306212 IP (tos 0x2,ECT(0), ttl 64, id 3, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [ASCONF] [SEQ: 1890701201, ADDR: 192.168.5.1] [ADD ADDR: C-ID: 0, ADDR: 192.168.5.3] + 10 2023-05-16 21:05:30.306220 IP (tos 0x2,ECT(0), ttl 64, id 44873, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1890701201] + 11 2023-05-16 21:05:30.306221 IP (tos 0x2,ECT(0), ttl 64, id 44874, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp + 1) [HB REQ] + 12 2023-05-16 21:05:30.306231 IP (tos 0x2,ECT(0), ttl 64, id 4, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [HB ACK] + 13 2023-05-16 21:05:30.306267 IP (tos 0x2,ECT(0), ttl 64, id 5, offset 0, flags [DF], proto SCTP (132), length 60) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [DATA] (B)(E) [TSN: 1890701202] [SID: 0] [SSEQ 1] [PPID 0x0] [Payload: + 0x0000: 6164 6420 6164 6472 6573 7300 add.address.] + 14 2023-05-16 21:05:30.306308 IP (tos 0x2,ECT(0), ttl 64, id 44875, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SACK] [cum ack 1890701202] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 3973583668] [SID: 0] [SSEQ 1] [PPID 0x0] [Payload: + 0x0000: 6164 6420 6164 6472 6573 7300 add.address.] + 15 2023-05-16 21:05:30.306356 IP (tos 0x2,ECT(0), ttl 64, id 6, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [ASCONF] [SEQ: 1890701202, ADDR: 192.168.5.3] [SET PRIM ADDR: C-ID: 0, ADDR: 192.168.5.3] + 16 2023-05-16 21:05:30.306360 IP (tos 0x2,ECT(0), ttl 64, id 44876, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1890701202] + 17 2023-05-16 21:05:30.306385 IP (tos 0x2,ECT(0), ttl 64, id 7, offset 0, flags [DF], proto SCTP (132), length 92) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SACK] [cum ack 3973583668] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 1890701203] [SID: 0] [SSEQ 2] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7065 6572 2070 7269 6d61 7279 set.peer.primary + 0x0010: 2061 6464 7265 7373 00 .address.] + 18 2023-05-16 21:05:30.306503 IP (tos 0x2,ECT(0), ttl 64, id 44877, offset 0, flags [DF], proto SCTP (132), length 76) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp + 1) [DATA] (B)(E) [TSN: 3973583669] [SID: 0] [SSEQ 2] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7065 6572 2070 7269 6d61 7279 set.peer.primary + 0x0010: 2061 6464 7265 7373 00 .address.] + 19 2023-05-16 21:05:30.514024 IP (tos 0x2,ECT(0), ttl 64, id 8, offset 0, flags [DF], proto SCTP (132), length 84) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SACK] [cum ack 3973583669] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 1890701204] [SID: 0] [SSEQ 3] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7072 696d 6172 7920 6164 6472 set.primary.addr + 0x0010: 6573 7300 ess.] + 20 2023-05-16 21:05:30.514024 IP (tos 0x2,ECT(0), ttl 64, id 44878, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SACK] [cum ack 1890701203] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 21 2023-05-16 21:05:30.514075 IP (tos 0x2,ECT(0), ttl 64, id 44879, offset 0, flags [DF], proto SCTP (132), length 68) + 192.168.5.2.36297 > 192.168.5.3.36296: sctp + 1) [DATA] (B)(E) [TSN: 3973583670] [SID: 0] [SSEQ 3] [PPID 0x0] [Payload: + 0x0000: 7365 7420 7072 696d 6172 7920 6164 6472 set.primary.addr + 0x0010: 6573 7300 ess.] + 22 2023-05-16 21:05:30.514137 IP (tos 0x2,ECT(0), ttl 64, id 9, offset 0, flags [DF], proto SCTP (132), length 64) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [ASCONF] [SEQ: 1890701203, ADDR: 192.168.5.1] [DEL ADDR: C-ID: 0, ADDR: 192.168.5.3] + 23 2023-05-16 21:05:30.514145 IP (tos 0x2,ECT(0), ttl 64, id 44880, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [ASCONF-ACK] [SEQ: 1890701203] + 24 2023-05-16 21:05:30.718033 IP (tos 0x2,ECT(0), ttl 64, id 10, offset 0, flags [DF], proto SCTP (132), length 80) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SACK] [cum ack 3973583670] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 1890701205] [SID: 0] [SSEQ 4] [PPID 0x0] [Payload: + 0x0000: 7265 6d6f 7665 2061 6464 7265 7373 00 remove.address.] + 25 2023-05-16 21:05:30.718039 IP (tos 0x2,ECT(0), ttl 64, id 44881, offset 0, flags [DF], proto SCTP (132), length 48) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SACK] [cum ack 1890701204] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 26 2023-05-16 21:05:30.718097 IP (tos 0x2,ECT(0), ttl 64, id 44882, offset 0, flags [DF], proto SCTP (132), length 80) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SACK] [cum ack 1890701205] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 2) [DATA] (B)(E) [TSN: 3973583671] [SID: 0] [SSEQ 4] [PPID 0x0] [Payload: + 0x0000: 7265 6d6f 7665 2061 6464 7265 7373 00 remove.address.] + 27 2023-05-16 21:05:30.718123 IP (tos 0x2,ECT(0), ttl 64, id 11, offset 0, flags [DF], proto SCTP (132), length 40) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SHUTDOWN] + 28 2023-05-16 21:05:30.718131 IP (tos 0x2,ECT(0), ttl 64, id 44883, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.2.36297 > 192.168.5.1.36296: sctp + 1) [SHUTDOWN ACK] + 29 2023-05-16 21:05:30.718162 IP (tos 0x2,ECT(0), ttl 64, id 12, offset 0, flags [DF], proto SCTP (132), length 36) + 192.168.5.1.36296 > 192.168.5.2.36297: sctp + 1) [SHUTDOWN COMPLETE] diff --git a/tests/sctp-asconf.out b/tests/sctp-asconf.out new file mode 100644 index 000000000..bf2277766 --- /dev/null +++ b/tests/sctp-asconf.out @@ -0,0 +1,29 @@ + 1 2023-05-16 21:05:30.306064 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [INIT] [init tag: 418238363] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN: 1890701201] + 2 2023-05-16 21:05:30.306083 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [INIT ACK] [init tag: 4149529168] [rwnd: 106496] [OS: 5] [MIS: 5] [init TSN: 3973583667] + 3 2023-05-16 21:05:30.306092 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [COOKIE ECHO] + 4 2023-05-16 21:05:30.306103 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [COOKIE ACK] + 5 2023-05-16 21:05:30.306113 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [DATA] (B)(E) [TSN: 1890701201] [SID: 0] [SSEQ 0] [PPID 0x0] + 6 2023-05-16 21:05:30.306117 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701201] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 7 2023-05-16 21:05:30.306174 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583667] [SID: 0] [SSEQ 0] [PPID 0x0] + 8 2023-05-16 21:05:30.306182 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583667] [a_rwnd 106486] [#gap acks 0] [#dup tsns 0] + 9 2023-05-16 21:05:30.306212 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701201, ADDR: 192.168.5.1] [ADD ADDR] + 10 2023-05-16 21:05:30.306220 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701201] + 11 2023-05-16 21:05:30.306221 IP 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [HB REQ] + 12 2023-05-16 21:05:30.306231 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [HB ACK] + 13 2023-05-16 21:05:30.306267 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [DATA] (B)(E) [TSN: 1890701202] [SID: 0] [SSEQ 1] [PPID 0x0] + 14 2023-05-16 21:05:30.306308 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701202] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3973583668] [SID: 0] [SSEQ 1] [PPID 0x0] + 15 2023-05-16 21:05:30.306356 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701202, ADDR: 192.168.5.3] [SET PRIM ADDR] + 16 2023-05-16 21:05:30.306360 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701202] + 17 2023-05-16 21:05:30.306385 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583668] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701203] [SID: 0] [SSEQ 2] [PPID 0x0] + 18 2023-05-16 21:05:30.306503 IP 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583669] [SID: 0] [SSEQ 2] [PPID 0x0] + 19 2023-05-16 21:05:30.514024 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583669] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701204] [SID: 0] [SSEQ 3] [PPID 0x0] + 20 2023-05-16 21:05:30.514024 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701203] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 21 2023-05-16 21:05:30.514075 IP 192.168.5.2.36297 > 192.168.5.3.36296: sctp (1) [DATA] (B)(E) [TSN: 3973583670] [SID: 0] [SSEQ 3] [PPID 0x0] + 22 2023-05-16 21:05:30.514137 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [ASCONF] [SEQ: 1890701203, ADDR: 192.168.5.1] [DEL ADDR] + 23 2023-05-16 21:05:30.514145 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [ASCONF-ACK] [SEQ: 1890701203] + 24 2023-05-16 21:05:30.718033 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SACK] [cum ack 3973583670] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 1890701205] [SID: 0] [SSEQ 4] [PPID 0x0] + 25 2023-05-16 21:05:30.718039 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701204] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] + 26 2023-05-16 21:05:30.718097 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SACK] [cum ack 1890701205] [a_rwnd 106496] [#gap acks 0] [#dup tsns 0] , (2) [DATA] (B)(E) [TSN: 3973583671] [SID: 0] [SSEQ 4] [PPID 0x0] + 27 2023-05-16 21:05:30.718123 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SHUTDOWN] + 28 2023-05-16 21:05:30.718131 IP 192.168.5.2.36297 > 192.168.5.1.36296: sctp (1) [SHUTDOWN ACK] + 29 2023-05-16 21:05:30.718162 IP 192.168.5.1.36296 > 192.168.5.2.36297: sctp (1) [SHUTDOWN COMPLETE] diff --git a/tests/sctp-asconf.pcap b/tests/sctp-asconf.pcap new file mode 100644 index 000000000..a6122dc31 Binary files /dev/null and b/tests/sctp-asconf.pcap differ