From 55df3cb8e689caeb5ff092338cc671b90cf7551e Mon Sep 17 00:00:00 2001 From: Aomx <aomx@riseup.net> Date: Tue, 19 Jul 2016 14:18:52 +0200 Subject: [PATCH] adjusted format of forward tsn chunks --- gtests/net/packetdrill/lexer.l | 1 + .../net/packetdrill/packet_to_string_test.c | 39 ++++++++++++------- gtests/net/packetdrill/parser.y | 37 +++++++++--------- gtests/net/packetdrill/run_packet.c | 14 +++---- gtests/net/packetdrill/sctp_chunk_to_string.c | 17 ++++---- gtests/net/packetdrill/sctp_packet.c | 32 +++++++-------- gtests/net/packetdrill/sctp_packet.h | 28 ++++++------- 7 files changed, 91 insertions(+), 77 deletions(-) diff --git a/gtests/net/packetdrill/lexer.l b/gtests/net/packetdrill/lexer.l index fdd62085..d452e25d 100644 --- a/gtests/net/packetdrill/lexer.l +++ b/gtests/net/packetdrill/lexer.l @@ -586,6 +586,7 @@ req_sn return REQ_SN; resp_sn return RESP_SN; last_tsn return LAST_TSN; sids return SIDS; +ids return IDS; result return RESULT; sender_next_tsn return SENDER_NEXT_TSN; receiver_next_tsn return RECEIVER_NEXT_TSN; diff --git a/gtests/net/packetdrill/packet_to_string_test.c b/gtests/net/packetdrill/packet_to_string_test.c index 1715a1b9..136a0752 100644 --- a/gtests/net/packetdrill/packet_to_string_test.c +++ b/gtests/net/packetdrill/packet_to_string_test.c @@ -29,6 +29,7 @@ #include <string.h> #include "ethernet.h" #include "packet_parser.h" +#include "logging.h" static void test_sctp_ipv4_packet_to_string(void) { @@ -102,7 +103,7 @@ static void test_sctp_ipv6_packet_to_string(void) /* An IPv6/SCTP packet. */ u8 data[] = { /* IPv6 Base Header: */ - 0x60, 0x00, 0x00, 0x00, 0x02, 0x08, 0x84, 0xff, + 0x60, 0x00, 0x00, 0x00, 0x02, 0x0c, 0x84, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -110,7 +111,7 @@ static void test_sctp_ipv6_packet_to_string(void) /* SCTP Common Header: */ 0x04, 0xd2, 0x1f, 0x90, 0x01, 0x02, 0x03, 0x04, - 0xf1, 0x91, 0x22, 0x96, + 0xd8, 0x6a, 0x11, 0x71, /* SCTP DATA Chunk */ 0x00, 0x0f, 0x00, 0x13, 0x01, 0x02, 0x03, 0x04, @@ -237,9 +238,10 @@ static void test_sctp_ipv6_packet_to_string(void) /* SCTP SHUTDOWN_COMPLETE Chunk */ 0x0e, 0x01, 0x00, 0x04, /* FORWARD_TSN Chunk*/ - 0xc0, 0x00, 0x00, 0x0c, + 0xc0, 0x00, 0x00, 0x10, 0xb5, 0xaa, 0xaf, 0x0f, 0x00, 0x01, 0x00, 0x02, + 0x00, 0x03, 0x00, 0x04, /* SCTP I-DATA Chunk */ 0x40, 0x0f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x04, @@ -268,6 +270,11 @@ static void test_sctp_ipv6_packet_to_string(void) char *error = NULL; enum packet_parse_result_t result = parse_packet(packet, sizeof(data), ETHERTYPE_IPV6, &error); +#if DEBUG_LOGGING == 1 + if (result != PACKET_OK) { + printf("error was: %s\n", error); + } +#endif assert(result == PACKET_OK); assert(error == NULL); @@ -276,6 +283,11 @@ static void test_sctp_ipv6_packet_to_string(void) /* Test a DUMP_SHORT dump */ status = packet_to_string(packet, DUMP_SHORT, &dump, &error); +#if DEBUG_LOGGING == 1 + if (status != STATUS_OK) { + printf("error was: %s\n", error); + } +#endif assert(status == STATUS_OK); assert(error == NULL); printf("dump = '%s'\n", dump); @@ -328,7 +340,7 @@ static void test_sctp_ipv6_packet_to_string(void) "ECNE[flgs=0x00, tsn=16909060]; " "CWR[flgs=0x00, tsn=16909060]; " "SHUTDOWN_COMPLETE[flgs=T]; " - "FORWARD_TSN[flgs=0x00, len=12, cum_tsn=3047862031, sids=[1:2]]; " + "FORWARD_TSN[flgs=0x00, len=16, cum_tsn=3047862031, ids=[{1,2},{3,4}]]; " "I-DATA[flgs=IUBE, len=23, tsn=4, sid=255, mid=1, ppid=0]; " "I-DATA[flgs=IUE, len=23, tsn=4, sid=255, mid=2, fsn=1]; " "PAD[flgs=0x00, len=16, val=...]"; @@ -390,7 +402,7 @@ static void test_sctp_ipv6_packet_to_string(void) "ECNE[flgs=0x00, tsn=16909060]; " "CWR[flgs=0x00, tsn=16909060]; " "SHUTDOWN_COMPLETE[flgs=T]; " - "FORWARD_TSN[flgs=0x00, len=12, cum_tsn=3047862031, sids=[1:2]]; " + "FORWARD_TSN[flgs=0x00, len=16, cum_tsn=3047862031, ids=[{1,2},{3,4}]]; " "I-DATA[flgs=IUBE, len=23, tsn=4, sid=255, mid=1, ppid=0]; " "I-DATA[flgs=IUE, len=23, tsn=4, sid=255, mid=2, fsn=1]; " "PAD[flgs=0x00, len=16, val=...]"; @@ -452,15 +464,15 @@ static void test_sctp_ipv6_packet_to_string(void) "ECNE[flgs=0x00, tsn=16909060]; " "CWR[flgs=0x00, tsn=16909060]; " "SHUTDOWN_COMPLETE[flgs=T]; " - "FORWARD_TSN[flgs=0x00, len=12, cum_tsn=3047862031, sids=[1:2]]; " + "FORWARD_TSN[flgs=0x00, len=16, cum_tsn=3047862031, ids=[{1,2},{3,4}]]; " "I-DATA[flgs=IUBE, len=23, tsn=4, sid=255, mid=1, ppid=0]; " "I-DATA[flgs=IUE, len=23, tsn=4, sid=255, mid=2, fsn=1]; " "PAD[flgs=0x00, len=16, val=...]" "\n" - "0x0000: 60 00 00 00 02 08 84 ff 00 02 00 00 00 00 00 00 " "\n" + "0x0000: 60 00 00 00 02 0c 84 ff 00 02 00 00 00 00 00 00 " "\n" "0x0010: 00 00 00 00 00 00 22 22 00 01 00 00 00 00 00 00 " "\n" "0x0020: 00 00 00 00 00 00 11 11 04 d2 1f 90 01 02 03 04 " "\n" - "0x0030: f1 91 22 96 00 0f 00 13 01 02 03 04 00 ff 01 00 " "\n" + "0x0030: d8 6a 11 71 00 0f 00 13 01 02 03 04 00 ff 01 00 " "\n" "0x0040: 00 00 00 00 00 01 02 00 01 00 00 68 00 00 00 01 " "\n" "0x0050: 00 01 00 00 00 0f 00 0f 01 02 03 04 00 05 00 08 " "\n" "0x0060: 01 02 03 04 00 06 00 14 00 00 00 00 00 00 00 00 " "\n" @@ -487,11 +499,12 @@ static void test_sctp_ipv6_packet_to_string(void) "0x01b0: 40 40 00 00 07 00 00 08 01 02 03 04 08 00 00 04 " "\n" "0x01c0: 09 00 00 04 0a 00 00 05 45 00 00 00 0b 00 00 04 " "\n" "0x01d0: 0c 00 00 08 01 02 03 04 0d 00 00 08 01 02 03 04 " "\n" - "0x01e0: 0e 01 00 04 c0 00 00 0c b5 aa af 0f 00 01 00 02 " "\n" - "0x01f0: 40 0f 00 17 00 00 00 04 00 ff 00 00 00 00 00 01 " "\n" - "0x0200: 00 00 00 00 00 01 02 00 40 0d 00 17 00 00 00 04 " "\n" - "0x0210: 00 ff 00 00 00 00 00 02 00 00 00 01 00 01 02 00 " "\n" - "0x0220: 84 00 00 10 50 50 50 50 50 50 50 50 50 50 50 50 " "\n"; + "0x01e0: 0e 01 00 04 c0 00 00 10 b5 aa af 0f 00 01 00 02 " "\n" + "0x01f0: 00 03 00 04 40 0f 00 17 00 00 00 04 00 ff 00 00 " "\n" + "0x0200: 00 00 00 01 00 00 00 00 00 01 02 00 40 0d 00 17 " "\n" + "0x0210: 00 00 00 04 00 ff 00 00 00 00 00 02 00 00 00 01 " "\n" + "0x0220: 00 01 02 00 84 00 00 10 50 50 50 50 50 50 50 50 " "\n" + "0x0230: 50 50 50 50 " "\n"; printf("expected = '%s'\n", expected); assert(strcmp(dump, expected) == 0); free(dump); diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y index 3c22eff7..f2bc2b49 100644 --- a/gtests/net/packetdrill/parser.y +++ b/gtests/net/packetdrill/parser.y @@ -472,8 +472,8 @@ static struct tcp_option *new_tcp_fast_open_option(const char *cookie_string, struct sctp_u16_list_item *u16_item; struct sctp_sack_block_list_item *sack_block_list_item; struct sctp_sack_block_list *sack_block_list; - struct sctp_forward_tsn_sids_list *forward_tsn_sids_list; - struct sctp_forward_tsn_sids_list_item *forward_tsn_sids_list_item; + struct sctp_forward_tsn_ids_list *forward_tsn_ids_list; + struct sctp_forward_tsn_ids_list_item *forward_tsn_ids_list_item; struct sctp_address_type_list_item *address_type_list_item; struct sctp_address_type_list *address_type_list; struct sctp_parameter_type_list_item *parameter_type_list_item; @@ -528,7 +528,7 @@ static struct tcp_option *new_tcp_fast_open_option(const char *cookie_string, %token <reserved> STATE_COOKIE UNRECOGNIZED_PARAMETER COOKIE_PRESERVATIVE %token <reserved> HOSTNAME_ADDRESS SUPPORTED_ADDRESS_TYPES ECN_CAPABLE FORWARD_TSN_SUPPORTED %token <reserved> SUPPORTED_EXTENSIONS ADAPTATION_CODE_POINT ADAPTATION_INDICATION -%token <reserved> OUTGOING_SSN_RESET REQ_SN RESP_SN LAST_TSN SIDS INCOMING_SSN_RESET +%token <reserved> OUTGOING_SSN_RESET REQ_SN RESP_SN LAST_TSN IDS SIDS INCOMING_SSN_RESET %token <reserved> RECONFIG_RESPONSE RESULT SENDER_NEXT_TSN RECEIVER_NEXT_TSN %token <reserved> SSN_TSN_RESET ADD_INCOMING_STREAMS NUMBER_OF_NEW_STREAMS %token <reserved> ADD_OUTGOING_STREAMS RECONFIG_REQUEST_GENERIC @@ -726,8 +726,8 @@ static struct tcp_option *new_tcp_fast_open_option(const char *cookie_string, %type <u16_item> u16_item %type <sack_block_list> opt_gaps opt_nr_gaps gap_list opt_dups dup_list %type <sack_block_list_item> gap dup -%type <forward_tsn_sids_list> opt_stream_identifier sids_list -%type <forward_tsn_sids_list_item> sid +%type <forward_tsn_ids_list> opt_stream_identifier ids_list +%type <forward_tsn_ids_list_item> id %type <address_type_list> address_types_list %type <address_type_list_item> address_type %type <parameter_type_list> parameter_types_list @@ -1585,27 +1585,28 @@ dup ; opt_stream_identifier -: SIDS '=' ELLIPSIS { $$ = NULL; } -| SIDS '=' '[' ELLIPSIS ']' { $$ = NULL; } -| SIDS '=' '[' sids_list ']' { $$ = $4; } +: IDS '=' ELLIPSIS { $$ = NULL; } +| IDS '=' '[' ELLIPSIS ']' { $$ = NULL; } +| IDS '=' '[' ids_list ']' { $$ = $4; } ; -sids_list -: { $$ = sctp_forward_tsn_sids_list_new(); } -| sid { $$ =sctp_forward_tsn_sids_list_new(); - sctp_forward_tsn_sids_list_append($$, $1); } -| sids_list ',' sid { $$ = $1; - sctp_forward_tsn_sids_list_append($1, $3); } +ids_list +: { $$ = sctp_forward_tsn_ids_list_new(); } +| id { $$ =sctp_forward_tsn_ids_list_new(); + sctp_forward_tsn_ids_list_append($$, $1); } +| ids_list ',' id { $$ = $1; + sctp_forward_tsn_ids_list_append($1, $3); } ; -sid: INTEGER ':' INTEGER { - if (!is_valid_u16($1)) { +id +: '{' INTEGER ',' INTEGER '}' { + if (!is_valid_u16($2)) { semantic_error("stream identifier out of range"); } - if (!is_valid_u16($3)) { + if (!is_valid_u16($4)) { semantic_error("stream sequence number out of range"); } - $$ = sctp_forward_tsn_sids_list_item_new($1, $3); + $$ = sctp_forward_tsn_ids_list_item_new($2, $4); } ; diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c index e573e786..65f2cc7f 100644 --- a/gtests/net/packetdrill/run_packet.c +++ b/gtests/net/packetdrill/run_packet.c @@ -2167,7 +2167,7 @@ static int verify_reconfig_chunk(struct sctp_reconfig_chunk *actual_chunk, error); } -static u16 get_num_sid_blocks (u16 packet_length) { +static u16 get_num_id_blocks (u16 packet_length) { return (packet_length - sizeof(struct sctp_forward_tsn_chunk)) / sizeof(struct sctp_stream_identifier_block); } @@ -2176,8 +2176,8 @@ static int verify_forward_tsn_chunk(struct sctp_forward_tsn_chunk *actual_chunk, u32 flags, char **error) { u16 actual_packet_length = ntohs(script_chunk->length); u16 script_packet_length = ntohs(script_chunk->length); - u16 actual_nr_sid_blocks = get_num_sid_blocks(actual_packet_length); - u16 script_nr_sid_blocks = get_num_sid_blocks(script_packet_length); + u16 actual_nr_id_blocks = get_num_id_blocks(actual_packet_length); + u16 script_nr_id_blocks = get_num_id_blocks(script_packet_length); u16 i; if ((flags & FLAG_FORWARD_TSN_CHUNK_CUM_TSN_NOCHECK) == 0) { @@ -2189,15 +2189,15 @@ static int verify_forward_tsn_chunk(struct sctp_forward_tsn_chunk *actual_chunk, } } - if ((flags & FLAG_FORWARD_TSN_CHUNK_SIDS_NOCHECK) == 0) { + if ((flags & FLAG_FORWARD_TSN_CHUNK_IDS_NOCHECK) == 0) { if (check_field("nr_sid_blocks", - actual_nr_sid_blocks, - script_nr_sid_blocks, + actual_nr_id_blocks, + script_nr_id_blocks, error) == STATUS_ERR) { return STATUS_ERR; } - for (i = 0; i < script_nr_sid_blocks; i++) { + for (i = 0; i < script_nr_id_blocks; i++) { if (check_field("sctp_forward_tsn_stream_identifier", ntohs(script_chunk->stream_identifier_blocks[i].stream), ntohs(actual_chunk->stream_identifier_blocks[i].stream), diff --git a/gtests/net/packetdrill/sctp_chunk_to_string.c b/gtests/net/packetdrill/sctp_chunk_to_string.c index 77d5052f..386cab74 100644 --- a/gtests/net/packetdrill/sctp_chunk_to_string.c +++ b/gtests/net/packetdrill/sctp_chunk_to_string.c @@ -1703,7 +1703,7 @@ static int sctp_reconfig_chunk_to_string( return result; } -static u16 get_num_sid_blocks (u16 packet_length) { +static u16 get_num_id_blocks (u16 packet_length) { return (packet_length - sizeof(struct sctp_forward_tsn_chunk)) / sizeof(struct sctp_stream_identifier_block); } @@ -1714,7 +1714,7 @@ static int sctp_forward_tsn_chunk_to_string( { u16 length, i; length = ntohs(chunk->length); - u16 num_sid_blocks = get_num_sid_blocks(length); + u16 num_id_blocks = get_num_id_blocks(length); if (length < sizeof(struct sctp_forward_tsn_chunk)) { asprintf(error, "FORWARD_TSN chunk too short (length=%u)", length); @@ -1726,19 +1726,18 @@ static int sctp_forward_tsn_chunk_to_string( fprintf(s, "len=%u, ", length); fprintf(s, "cum_tsn=%u, ", ntohl(chunk->cum_tsn)); - fprintf(s, "sids=["); + fprintf(s, "ids=["); - for (i = 0; i < num_sid_blocks; i++) { - fprintf(s, "%u:%u", + for (i = 0; i < num_id_blocks; i++) { + fprintf(s, "{%u,%u}", ntohs(chunk->stream_identifier_blocks[i].stream), ntohs(chunk->stream_identifier_blocks[i].stream_sequence)); - if (i != num_sid_blocks-1) { - fprintf(s, ", "); + if (i != num_id_blocks-1) { + fprintf(s, ","); } } - fputs("]", s); - fputs("]", s); + fputs("]]", s); return STATUS_OK; } diff --git a/gtests/net/packetdrill/sctp_packet.c b/gtests/net/packetdrill/sctp_packet.c index f4a44225..ad704891 100644 --- a/gtests/net/packetdrill/sctp_packet.c +++ b/gtests/net/packetdrill/sctp_packet.c @@ -234,11 +234,11 @@ sctp_sack_block_list_item_dup_new(u32 tsn) return item; } -struct sctp_forward_tsn_sids_list * -sctp_forward_tsn_sids_list_new () { - struct sctp_forward_tsn_sids_list *list; +struct sctp_forward_tsn_ids_list * +sctp_forward_tsn_ids_list_new () { + struct sctp_forward_tsn_ids_list *list; - list = malloc(sizeof(struct sctp_forward_tsn_sids_list)); + list = malloc(sizeof(struct sctp_forward_tsn_ids_list)); assert(list != NULL); list->first = NULL; list->last = NULL; @@ -247,8 +247,8 @@ sctp_forward_tsn_sids_list_new () { } void -sctp_forward_tsn_sids_list_append(struct sctp_forward_tsn_sids_list *list, - struct sctp_forward_tsn_sids_list_item *item) { +sctp_forward_tsn_ids_list_append(struct sctp_forward_tsn_ids_list *list, + struct sctp_forward_tsn_ids_list_item *item) { assert(item->next == NULL); if (list->last == NULL) { assert(list->first == NULL); @@ -262,8 +262,8 @@ sctp_forward_tsn_sids_list_append(struct sctp_forward_tsn_sids_list *list, list->nr_entries++; } -void sctp_forward_tsn_sids_list_free (struct sctp_forward_tsn_sids_list *list) { - struct sctp_forward_tsn_sids_list_item *current_item, *next_item; +void sctp_forward_tsn_ids_list_free (struct sctp_forward_tsn_ids_list *list) { + struct sctp_forward_tsn_ids_list_item *current_item, *next_item; if (list == NULL) { return; @@ -281,11 +281,11 @@ void sctp_forward_tsn_sids_list_free (struct sctp_forward_tsn_sids_list *list) { free(list); } -struct sctp_forward_tsn_sids_list_item * -sctp_forward_tsn_sids_list_item_new(u16 stream_identifier, u16 stream_sequence_number) { - struct sctp_forward_tsn_sids_list_item *item; +struct sctp_forward_tsn_ids_list_item * +sctp_forward_tsn_ids_list_item_new(u16 stream_identifier, u16 stream_sequence_number) { + struct sctp_forward_tsn_ids_list_item *item; - item = malloc(sizeof(struct sctp_forward_tsn_sids_list_item)); + item = malloc(sizeof(struct sctp_forward_tsn_ids_list_item)); assert(item != NULL); item->next = NULL; item->stream_identifier = stream_identifier; @@ -1440,9 +1440,9 @@ sctp_pad_chunk_new(s64 flgs, s64 len, u8* padding) } struct sctp_chunk_list_item * -sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_sids_list *sids) { +sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_ids_list *sids) { struct sctp_forward_tsn_chunk *chunk; - struct sctp_forward_tsn_sids_list_item *item; + struct sctp_forward_tsn_ids_list_item *item; DEBUGP("sctp_forward_tsn_chunk_new called with cum_tsn = %d and sids_list = %p", cum_tsn, sids); @@ -1455,7 +1455,7 @@ sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_sids_list *sids) if (sids == NULL) { nr_sids = 0; flags |= FLAG_CHUNK_LENGTH_NOCHECK; - flags |= FLAG_FORWARD_TSN_CHUNK_SIDS_NOCHECK; + flags |= FLAG_FORWARD_TSN_CHUNK_IDS_NOCHECK; } else { nr_sids = sids->nr_entries; length += nr_sids * sizeof(struct sctp_stream_identifier_block); @@ -1476,7 +1476,7 @@ sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_sids_list *sids) } if (nr_sids == 0 || sids == NULL) { - flags |= FLAG_FORWARD_TSN_CHUNK_SIDS_NOCHECK; + flags |= FLAG_FORWARD_TSN_CHUNK_IDS_NOCHECK; } if (sids != NULL) { diff --git a/gtests/net/packetdrill/sctp_packet.h b/gtests/net/packetdrill/sctp_packet.h index 4ee23f73..f41521fd 100644 --- a/gtests/net/packetdrill/sctp_packet.h +++ b/gtests/net/packetdrill/sctp_packet.h @@ -104,30 +104,30 @@ sctp_sack_block_list_item_gap_new(u16 start, u16 end); struct sctp_sack_block_list_item * sctp_sack_block_list_item_dup_new(u32 tsn); -struct sctp_forward_tsn_sids_list_item { - struct sctp_forward_tsn_sids_list_item *next; +struct sctp_forward_tsn_ids_list_item { + struct sctp_forward_tsn_ids_list_item *next; u16 stream_identifier; u16 stream_sequence_number; }; -struct sctp_forward_tsn_sids_list { - struct sctp_forward_tsn_sids_list_item *first; - struct sctp_forward_tsn_sids_list_item *last; +struct sctp_forward_tsn_ids_list { + struct sctp_forward_tsn_ids_list_item *first; + struct sctp_forward_tsn_ids_list_item *last; u16 nr_entries; }; -struct sctp_forward_tsn_sids_list * -sctp_forward_tsn_sids_list_new (); +struct sctp_forward_tsn_ids_list * +sctp_forward_tsn_ids_list_new (); void -sctp_forward_tsn_sids_list_append(struct sctp_forward_tsn_sids_list *list, - struct sctp_forward_tsn_sids_list_item *item); +sctp_forward_tsn_ids_list_append(struct sctp_forward_tsn_ids_list *list, + struct sctp_forward_tsn_ids_list_item *item); // TODO: where to call this freeing method... sctp_sack_block_list_free and sctp_byte_list_free are unused...? -void sctp_forward_tsn_sids_list_free (struct sctp_forward_tsn_sids_list *list); +void sctp_forward_tsn_ids_list_free (struct sctp_forward_tsn_ids_list *list); -struct sctp_forward_tsn_sids_list_item * -sctp_forward_tsn_sids_list_item_new(u16 stream_identifier, u16 stream_sequence_number); +struct sctp_forward_tsn_ids_list_item * +sctp_forward_tsn_ids_list_item_new(u16 stream_identifier, u16 stream_sequence_number); struct sctp_address_type_list_item { @@ -352,10 +352,10 @@ struct sctp_chunk_list_item * sctp_pad_chunk_new(s64 flgs, s64 len, u8* padding); #define FLAG_FORWARD_TSN_CHUNK_CUM_TSN_NOCHECK 0x00000100 -#define FLAG_FORWARD_TSN_CHUNK_SIDS_NOCHECK 0x00000200 +#define FLAG_FORWARD_TSN_CHUNK_IDS_NOCHECK 0x00000200 struct sctp_chunk_list_item * -sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_sids_list *sids_list); +sctp_forward_tsn_chunk_new(u32 cum_tsn, struct sctp_forward_tsn_ids_list *sids_list); struct sctp_chunk_list_item * sctp_reconfig_chunk_new(s64 flgs, struct sctp_parameter_list *parameters); -- GitLab