diff options
author | George Shepherd <George.Shepherd@Sun.COM> | 2009-04-24 06:20:28 -0700 |
---|---|---|
committer | George Shepherd <George.Shepherd@Sun.COM> | 2009-04-24 06:20:28 -0700 |
commit | 47b333251f6569b2d2a85df530163c314e6eb46c (patch) | |
tree | ce4f138517230eec1634e9dc19c415d6ce46a505 /usr/src/uts/common/netinet | |
parent | dc4bf86d3869090fa08d98d7030728be986fd289 (diff) | |
download | illumos-gate-47b333251f6569b2d2a85df530163c314e6eb46c.tar.gz |
6753556 When receiving INIT_ACK with missing mandatory parameter the resulting ABORT chunk is malformed.
Diffstat (limited to 'usr/src/uts/common/netinet')
-rw-r--r-- | usr/src/uts/common/netinet/sctp.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/usr/src/uts/common/netinet/sctp.h b/usr/src/uts/common/netinet/sctp.h index 9c43cc77e4..57ab865ab1 100644 --- a/usr/src/uts/common/netinet/sctp.h +++ b/usr/src/uts/common/netinet/sctp.h @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -692,6 +692,35 @@ typedef struct sctp_parm_hdr { uint16_t sph_len; } sctp_parm_hdr_t; +/* + * The following extend sctp_parm_hdr_t + * with cause-specfic content used to fill + * CAUSE blocks in ABORT or ERROR chunks. + * The overall size of the CAUSE block will + * be sizeof (sctp_parm_hdr_t) plus the size + * of the extended cause structure, + */ + +/* + * Invalid stream-identifier extended cause. + * SCTP_ERR_BAD_SID + */ +typedef struct sctp_bsc { + uint16_t bsc_sid; + uint16_t bsc_pad; /* RESV = 0 */ +} sctp_bsc_t; + +/* + * Missing parameter extended cause, currently + * only one missing parameter is supported. + * SCTP_ERR_MISSING_PARM + */ +typedef struct sctp_mpc { + uint32_t mpc_num; + uint16_t mpc_param; + uint16_t mpc_pad; +} sctp_mpc_t; + /* Error causes */ #define SCTP_ERR_UNKNOWN 0 #define SCTP_ERR_BAD_SID 1 |