aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/sctp_header.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/sctp_header.h')
-rw-r--r--sys/netinet/sctp_header.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/sys/netinet/sctp_header.h b/sys/netinet/sctp_header.h
index c10cb7a407cb..ccfee6367ca8 100644
--- a/sys/netinet/sctp_header.h
+++ b/sys/netinet/sctp_header.h
@@ -121,6 +121,14 @@ struct sctp_asconf_addr_param { /* an ASCONF address parameter */
struct sctp_ipv6addr_param addrp; /* max storage size */
} SCTP_PACKED;
+
+struct sctp_asconf_tag_param { /* an ASCONF NAT-Vtag parameter */
+ struct sctp_asconf_paramhdr aph; /* asconf "parameter" */
+ uint32_t local_vtag;
+ uint32_t remote_vtag;
+} SCTP_PACKED;
+
+
struct sctp_asconf_addrv4_param { /* an ASCONF address (v4) parameter */
struct sctp_asconf_paramhdr aph; /* asconf "parameter" */
struct sctp_ipv4addr_param addrp; /* max storage size */
@@ -206,6 +214,15 @@ struct sctp_state_cookie { /* this is our definition... */
*/
} SCTP_PACKED;
+
+/* Used for NAT state error cause */
+struct sctp_missing_nat_state {
+ uint16_t cause;
+ uint16_t length;
+ uint8_t data[0];
+} SCTP_PACKED;
+
+
struct sctp_inv_mandatory_param {
uint16_t cause;
uint16_t length;
@@ -268,6 +285,30 @@ struct sctp_sack_chunk {
} SCTP_PACKED;
+/* EY Following 3 structs define NR Selective Ack (NR_SACK) chunk */
+struct sctp_nr_gap_ack_block {
+ uint16_t start; /* NR Gap Ack block start */
+ uint16_t end; /* NR Gap Ack block end */
+} SCTP_PACKED;
+
+struct sctp_nr_sack {
+ uint32_t cum_tsn_ack; /* cumulative TSN Ack */
+ uint32_t a_rwnd; /* updated a_rwnd of sender */
+ uint16_t num_gap_ack_blks; /* number of Gap Ack blocks */
+ uint16_t num_nr_gap_ack_blks; /* number of NR Gap Ack blocks */
+ uint16_t num_dup_tsns; /* number of duplicate TSNs */
+ uint16_t reserved; /* not currently used */
+ /* struct sctp_gap_ack_block's follow */
+ /* struct sctp_nr_gap_ack_block's follow */
+ /* uint32_t duplicate_tsn's follow */
+} SCTP_PACKED;
+
+struct sctp_nr_sack_chunk {
+ struct sctp_chunkhdr ch;
+ struct sctp_nr_sack nr_sack;
+} SCTP_PACKED;
+
+
/* Heartbeat Request (HEARTBEAT) */
struct sctp_heartbeat {
struct sctp_heartbeat_info_param hb_info;