summaryrefslogtreecommitdiff
path: root/sctpHeader.h
diff options
context:
space:
mode:
Diffstat (limited to 'sctpHeader.h')
-rw-r--r--sctpHeader.h180
1 files changed, 90 insertions, 90 deletions
diff --git a/sctpHeader.h b/sctpHeader.h
index 69a0ac82..a8b9bdd8 100644
--- a/sctpHeader.h
+++ b/sctpHeader.h
@@ -1,4 +1,4 @@
-/* @(#) $Header: /tcpdump/master/tcpdump/sctpHeader.h,v 1.4 2002-06-11 17:08:59 itojun Exp $ (LBL) */
+/* @(#) $Header: /tcpdump/master/tcpdump/sctpHeader.h,v 1.5 2002-11-09 17:19:32 itojun Exp $ (LBL) */
/* SCTP reference Implementation Copyright (C) 1999 Cisco And Motorola
*
@@ -60,37 +60,37 @@ extern "C" {
#endif
struct sctpHeader{
- u_short source;
- u_short destination;
- u_int verificationTag;
- u_int adler32;
-};
+ u_int16_t source;
+ u_int16_t destination;
+ u_int32_t verificationTag;
+ u_int32_t adler32;
+} __attribute__((packed));
/* various descriptor parsers */
struct sctpChunkDesc{
- u_char chunkID;
- u_char chunkFlg;
- u_short chunkLength;
-};
+ u_int8_t chunkID;
+ u_int8_t chunkFlg;
+ u_int16_t chunkLength;
+} __attribute__((packed));
struct sctpParamDesc{
- u_short paramType;
- u_short paramLength;
-};
+ u_int16_t paramType;
+ u_int16_t paramLength;
+} __attribute__((packed));
struct sctpRelChunkDesc{
struct sctpChunkDesc chk;
- u_int serialNumber;
-};
+ u_int32_t serialNumber;
+} __attribute__((packed));
struct sctpVendorSpecificParam {
struct sctpParamDesc p; /* type must be 0xfffe */
- u_int vendorId; /* vendor ID from RFC 1700 */
- u_short vendorSpecificType;
- u_short vendorSpecificLen;
-};
+ u_int32_t vendorId; /* vendor ID from RFC 1700 */
+ u_int16_t vendorSpecificType;
+ u_int16_t vendorSpecificLen;
+} __attribute__((packed));
/* Structures for the control parts */
@@ -101,58 +101,58 @@ struct sctpVendorSpecificParam {
/* this is used for init ack, too */
struct sctpInitiation{
- u_int initTag; /* tag of mine */
- u_int rcvWindowCredit; /* rwnd */
- u_short NumPreopenStreams; /* OS */
- u_short MaxInboundStreams; /* MIS */
- u_int initialTSN;
+ u_int32_t initTag; /* tag of mine */
+ u_int32_t rcvWindowCredit; /* rwnd */
+ u_int16_t NumPreopenStreams; /* OS */
+ u_int16_t MaxInboundStreams; /* MIS */
+ u_int32_t initialTSN;
/* optional param's follow in sctpParamDesc form */
-};
+} __attribute__((packed));
struct sctpV4IpAddress{
struct sctpParamDesc p; /* type is set to SCTP_IPV4_PARAM_TYPE, len=10 */
- u_int ipAddress;
-};
+ u_int32_t ipAddress;
+} __attribute__((packed));
struct sctpV6IpAddress{
struct sctpParamDesc p; /* type is set to SCTP_IPV6_PARAM_TYPE, len=22 */
- u_char ipAddress[16];
-};
+ u_int8_t ipAddress[16];
+} __attribute__((packed));
struct sctpDNSName{
struct sctpParamDesc param;
- u_char name[1];
-};
+ u_int8_t name[1];
+} __attribute__((packed));
struct sctpCookiePreserve{
struct sctpParamDesc p; /* type is set to SCTP_COOKIE_PRESERVE, len=8 */
- u_int extraTime;
-};
+ u_int32_t extraTime;
+} __attribute__((packed));
struct sctpTimeStamp{
- u_int ts_sec;
- u_int ts_usec;
-};
+ u_int32_t ts_sec;
+ u_int32_t ts_usec;
+} __attribute__((packed));
/* wire structure of my cookie */
struct cookieMessage{
- u_int TieTag_curTag; /* copied from assoc if present */
- u_int TieTag_hisTag; /* copied from assoc if present */
- int cookieLife; /* life I will award this cookie */
+ u_int32_t TieTag_curTag; /* copied from assoc if present */
+ u_int32_t TieTag_hisTag; /* copied from assoc if present */
+ int32_t cookieLife; /* life I will award this cookie */
struct sctpTimeStamp timeEnteringState; /* the time I built cookie */
struct sctpInitiation initAckISent; /* the INIT-ACK that I sent to my peer */
- u_int addressWhereISent[4]; /* I make this 4 ints so I get 128bits for future */
- int addrtype; /* address type */
- u_short locScope; /* V6 local scope flag */
- u_short siteScope; /* V6 site scope flag */
+ u_int32_t addressWhereISent[4]; /* I make this 4 ints so I get 128bits for future */
+ int32_t addrtype; /* address type */
+ u_int16_t locScope; /* V6 local scope flag */
+ u_int16_t siteScope; /* V6 site scope flag */
/* at the end is tacked on the INIT chunk sent in
* its entirety and of course our
* signature.
*/
-};
+} __attribute__((packed));
/* this guy is for use when
@@ -163,12 +163,12 @@ struct cookieMessage{
struct sctpUnifiedInit{
struct sctpChunkDesc uh;
struct sctpInitiation initm;
-};
+} __attribute__((packed));
struct sctpSendableInit{
struct sctpHeader mh;
struct sctpUnifiedInit msg;
-};
+} __attribute__((packed));
/* Selective Acknowledgement
@@ -179,37 +179,37 @@ struct sctpSendableInit{
*/
struct sctpSelectiveAck{
- u_int highestConseqTSN;
- u_int updatedRwnd;
- u_short numberOfdesc;
- u_short numDupTsns;
-};
+ u_int32_t highestConseqTSN;
+ u_int32_t updatedRwnd;
+ u_int16_t numberOfdesc;
+ u_int16_t numDupTsns;
+} __attribute__((packed));
struct sctpSelectiveFrag{
- u_short fragmentStart;
- u_short fragmentEnd;
-};
+ u_int16_t fragmentStart;
+ u_int16_t fragmentEnd;
+} __attribute__((packed));
struct sctpUnifiedSack{
struct sctpChunkDesc uh;
struct sctpSelectiveAck sack;
-};
+} __attribute__((packed));
/* for both RTT request/response the
* following is sent
*/
struct sctpHBrequest {
- u_int time_value_1;
- u_int time_value_2;
-};
+ u_int32_t time_value_1;
+ u_int32_t time_value_2;
+} __attribute__((packed));
/* here is what I read and respond with to. */
struct sctpHBunified{
struct sctpChunkDesc hdr;
struct sctpParamDesc hb;
-};
+} __attribute__((packed));
/* here is what I send */
@@ -217,9 +217,9 @@ struct sctpHBsender{
struct sctpChunkDesc hdr;
struct sctpParamDesc hb;
struct sctpHBrequest rtt;
- char addrFmt[SCTP_ADDRMAX];
- unsigned short userreq;
-};
+ int8_t addrFmt[SCTP_ADDRMAX];
+ u_int16_t userreq;
+} __attribute__((packed));
@@ -229,60 +229,60 @@ struct sctpHBsender{
*/
struct sctpUnifiedAbort{
struct sctpChunkDesc uh;
-};
+} __attribute__((packed));
struct sctpUnifiedAbortLight{
struct sctpHeader mh;
struct sctpChunkDesc uh;
-};
+} __attribute__((packed));
struct sctpUnifiedAbortHeavy{
struct sctpHeader mh;
struct sctpChunkDesc uh;
- unsigned short causeCode;
- unsigned short causeLen;
-};
+ u_int16_t causeCode;
+ u_int16_t causeLen;
+} __attribute__((packed));
/* For the graceful shutdown we must carry
* the tag (in common header) and the highest consequitive acking value
*/
struct sctpShutdown {
- u_int TSN_Seen;
-};
+ u_int32_t TSN_Seen;
+} __attribute__((packed));
struct sctpUnifiedShutdown{
struct sctpChunkDesc uh;
struct sctpShutdown shut;
-};
+} __attribute__((packed));
/* in the unified message we add the trailing
* stream id since it is the only message
* that is defined as a operation error.
*/
struct sctpOpErrorCause{
- u_short cause;
- u_short causeLen;
-};
+ u_int16_t cause;
+ u_int16_t causeLen;
+} __attribute__((packed));
struct sctpUnifiedOpError{
struct sctpChunkDesc uh;
struct sctpOpErrorCause c;
-};
+} __attribute__((packed));
struct sctpUnifiedStreamError{
struct sctpHeader mh;
struct sctpChunkDesc uh;
struct sctpOpErrorCause c;
- u_short strmNum;
- u_short reserved;
-};
+ u_int16_t strmNum;
+ u_int16_t reserved;
+} __attribute__((packed));
struct staleCookieMsg{
struct sctpHeader mh;
struct sctpChunkDesc uh;
struct sctpOpErrorCause c;
- u_int moretime;
-};
+ u_int32_t moretime;
+} __attribute__((packed));
/* the following is used in all sends
* where nothing is needed except the
@@ -291,30 +291,30 @@ struct staleCookieMsg{
struct sctpUnifiedSingleMsg{
struct sctpHeader mh;
struct sctpChunkDesc uh;
-};
+} __attribute__((packed));
struct sctpDataPart{
- u_int TSN;
- u_short streamId;
- u_short sequence;
- u_int payloadtype;
-};
+ u_int32_t TSN;
+ u_int16_t streamId;
+ u_int16_t sequence;
+ u_int32_t payloadtype;
+} __attribute__((packed));
struct sctpUnifiedDatagram{
struct sctpChunkDesc uh;
struct sctpDataPart dp;
-};
+} __attribute__((packed));
struct sctpECN_echo{
struct sctpChunkDesc uh;
- u_int Lowest_TSN;
-};
+ u_int32_t Lowest_TSN;
+} __attribute__((packed));
struct sctpCWR{
struct sctpChunkDesc uh;
- u_int TSN_reduced_at;
-};
+ u_int32_t TSN_reduced_at;
+} __attribute__((packed));
#ifdef __cplusplus
}