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