sctp.h | sctp.h | |||
---|---|---|---|---|
skipping to change at line 108 | skipping to change at line 108 | |||
SCTP_DELAYED_ACK_TIME, | SCTP_DELAYED_ACK_TIME, | |||
#define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK_TIME | #define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK_TIME | |||
SCTP_CONTEXT, /* Receive Context */ | SCTP_CONTEXT, /* Receive Context */ | |||
#define SCTP_CONTEXT SCTP_CONTEXT | #define SCTP_CONTEXT SCTP_CONTEXT | |||
SCTP_FRAGMENT_INTERLEAVE, | SCTP_FRAGMENT_INTERLEAVE, | |||
#define SCTP_FRAGMENT_INTERLEAVE SCTP_FRAGMENT_INTERLEAVE | #define SCTP_FRAGMENT_INTERLEAVE SCTP_FRAGMENT_INTERLEAVE | |||
SCTP_PARTIAL_DELIVERY_POINT, /* Set/Get partial delivery point */ | SCTP_PARTIAL_DELIVERY_POINT, /* Set/Get partial delivery point */ | |||
#define SCTP_PARTIAL_DELIVERY_POINT SCTP_PARTIAL_DELIVERY_POINT | #define SCTP_PARTIAL_DELIVERY_POINT SCTP_PARTIAL_DELIVERY_POINT | |||
SCTP_MAX_BURST, /* Set/Get max burst */ | SCTP_MAX_BURST, /* Set/Get max burst */ | |||
#define SCTP_MAX_BURST SCTP_MAX_BURST | #define SCTP_MAX_BURST SCTP_MAX_BURST | |||
SCTP_AUTH_CHUNK, /* Set only: add a chunk type to authenticat | ||||
*/ | ||||
#define SCTP_AUTH_CHUNK SCTP_AUTH_CHUNK | ||||
SCTP_HMAC_IDENT, | ||||
#define SCTP_HMAC_IDENT SCTP_HMAC_IDENT | ||||
SCTP_AUTH_KEY, | ||||
#define SCTP_AUTH_KEY SCTP_AUTH_KEY | ||||
SCTP_AUTH_ACTIVE_KEY, | ||||
#define SCTP_AUTH_ACTIVE_KEY SCTP_AUTH_ACTIVE_KEY | ||||
SCTP_AUTH_DELETE_KEY, | ||||
#define SCTP_AUTH_DELETE_KEY SCTP_AUTH_DELETE_KEY | ||||
SCTP_PEER_AUTH_CHUNKS, /* Read only */ | ||||
#define SCTP_PEER_AUTH_CHUNKS SCTP_PEER_AUTH_CHUNKS | ||||
SCTP_LOCAL_AUTH_CHUNKS, /* Read only */ | ||||
#define SCTP_LOCAL_AUTH_CHUNKS SCTP_LOCAL_AUTH_CHUNKS | ||||
/* Internal Socket Options. Some of the sctp library functions are | /* Internal Socket Options. Some of the sctp library functions are | |||
* implemented using these socket options. | * implemented using these socket options. | |||
*/ | */ | |||
SCTP_SOCKOPT_BINDX_ADD = 100,/* BINDX requests for adding addresses. */ | SCTP_SOCKOPT_BINDX_ADD = 100,/* BINDX requests for adding addresses. */ | |||
#define SCTP_SOCKOPT_BINDX_ADD SCTP_SOCKOPT_BINDX_ADD | #define SCTP_SOCKOPT_BINDX_ADD SCTP_SOCKOPT_BINDX_ADD | |||
SCTP_SOCKOPT_BINDX_REM, /* BINDX requests for removing addresses. */ | SCTP_SOCKOPT_BINDX_REM, /* BINDX requests for removing addresses. */ | |||
#define SCTP_SOCKOPT_BINDX_REM SCTP_SOCKOPT_BINDX_REM | #define SCTP_SOCKOPT_BINDX_REM SCTP_SOCKOPT_BINDX_REM | |||
SCTP_SOCKOPT_PEELOFF, /* peel off association. */ | SCTP_SOCKOPT_PEELOFF, /* peel off association. */ | |||
#define SCTP_SOCKOPT_PEELOFF SCTP_SOCKOPT_PEELOFF | #define SCTP_SOCKOPT_PEELOFF SCTP_SOCKOPT_PEELOFF | |||
skipping to change at line 374 | skipping to change at line 388 | |||
__u16 pdapi_type; | __u16 pdapi_type; | |||
__u16 pdapi_flags; | __u16 pdapi_flags; | |||
__u32 pdapi_length; | __u32 pdapi_length; | |||
__u32 pdapi_indication; | __u32 pdapi_indication; | |||
sctp_assoc_t pdapi_assoc_id; | sctp_assoc_t pdapi_assoc_id; | |||
}; | }; | |||
enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, }; | enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, }; | |||
/* | /* | |||
* 5.3.1.8. SCTP_AUTHENTICATION_EVENT | ||||
* | ||||
* When a receiver is using authentication this message will provide | ||||
* notifications regarding new keys being made active as well as errors. | ||||
*/ | ||||
struct sctp_authkey_event { | ||||
__u16 auth_type; | ||||
__u16 auth_flags; | ||||
__u32 auth_length; | ||||
__u16 auth_keynumber; | ||||
__u16 auth_altkeynumber; | ||||
__u32 auth_indication; | ||||
sctp_assoc_t auth_assoc_id; | ||||
}; | ||||
enum { SCTP_AUTH_NEWKEY = 0, }; | ||||
/* | ||||
* Described in Section 7.3 | * Described in Section 7.3 | |||
* Ancillary Data and Notification Interest Options | * Ancillary Data and Notification Interest Options | |||
*/ | */ | |||
struct sctp_event_subscribe { | struct sctp_event_subscribe { | |||
__u8 sctp_data_io_event; | __u8 sctp_data_io_event; | |||
__u8 sctp_association_event; | __u8 sctp_association_event; | |||
__u8 sctp_address_event; | __u8 sctp_address_event; | |||
__u8 sctp_send_failure_event; | __u8 sctp_send_failure_event; | |||
__u8 sctp_peer_error_event; | __u8 sctp_peer_error_event; | |||
__u8 sctp_shutdown_event; | __u8 sctp_shutdown_event; | |||
__u8 sctp_partial_delivery_event; | __u8 sctp_partial_delivery_event; | |||
__u8 sctp_adaptation_layer_event; | __u8 sctp_adaptation_layer_event; | |||
__u8 sctp_authentication_event; | ||||
}; | }; | |||
/* | /* | |||
* 5.3.1 SCTP Notification Structure | * 5.3.1 SCTP Notification Structure | |||
* | * | |||
* The notification structure is defined as the union of all | * The notification structure is defined as the union of all | |||
* notification types. | * notification types. | |||
* | * | |||
*/ | */ | |||
union sctp_notification { | union sctp_notification { | |||
skipping to change at line 408 | skipping to change at line 442 | |||
__u16 sn_flags; | __u16 sn_flags; | |||
__u32 sn_length; | __u32 sn_length; | |||
} sn_header; | } sn_header; | |||
struct sctp_assoc_change sn_assoc_change; | struct sctp_assoc_change sn_assoc_change; | |||
struct sctp_paddr_change sn_paddr_change; | struct sctp_paddr_change sn_paddr_change; | |||
struct sctp_remote_error sn_remote_error; | struct sctp_remote_error sn_remote_error; | |||
struct sctp_send_failed sn_send_failed; | struct sctp_send_failed sn_send_failed; | |||
struct sctp_shutdown_event sn_shutdown_event; | struct sctp_shutdown_event sn_shutdown_event; | |||
struct sctp_adaptation_event sn_adaptation_event; | struct sctp_adaptation_event sn_adaptation_event; | |||
struct sctp_pdapi_event sn_pdapi_event; | struct sctp_pdapi_event sn_pdapi_event; | |||
struct sctp_authkey_event sn_authkey_event; | ||||
}; | }; | |||
/* Section 5.3.1 | /* Section 5.3.1 | |||
* All standard values for sn_type flags are greater than 2^15. | * All standard values for sn_type flags are greater than 2^15. | |||
* Values from 2^15 and down are reserved. | * Values from 2^15 and down are reserved. | |||
*/ | */ | |||
enum sctp_sn_type { | enum sctp_sn_type { | |||
SCTP_SN_TYPE_BASE = (1<<15), | SCTP_SN_TYPE_BASE = (1<<15), | |||
SCTP_ASSOC_CHANGE, | SCTP_ASSOC_CHANGE, | |||
SCTP_PEER_ADDR_CHANGE, | SCTP_PEER_ADDR_CHANGE, | |||
SCTP_SEND_FAILED, | SCTP_SEND_FAILED, | |||
SCTP_REMOTE_ERROR, | SCTP_REMOTE_ERROR, | |||
SCTP_SHUTDOWN_EVENT, | SCTP_SHUTDOWN_EVENT, | |||
SCTP_PARTIAL_DELIVERY_EVENT, | SCTP_PARTIAL_DELIVERY_EVENT, | |||
SCTP_ADAPTATION_INDICATION, | SCTP_ADAPTATION_INDICATION, | |||
SCTP_AUTHENTICATION_INDICATION, | ||||
}; | }; | |||
/* Notification error codes used to fill up the error fields in some | /* Notification error codes used to fill up the error fields in some | |||
* notifications. | * notifications. | |||
* SCTP_PEER_ADDRESS_CHAGE : spc_error | * SCTP_PEER_ADDRESS_CHAGE : spc_error | |||
* SCTP_ASSOC_CHANGE : sac_error | * SCTP_ASSOC_CHANGE : sac_error | |||
* These names should be potentially included in the draft 04 of the SCTP | * These names should be potentially included in the draft 04 of the SCTP | |||
* sockets API specification. | * sockets API specification. | |||
*/ | */ | |||
typedef enum sctp_sn_error { | typedef enum sctp_sn_error { | |||
skipping to change at line 545 | skipping to change at line 581 | |||
struct sctp_paddrparams { | struct sctp_paddrparams { | |||
sctp_assoc_t spp_assoc_id; | sctp_assoc_t spp_assoc_id; | |||
struct sockaddr_storage spp_address; | struct sockaddr_storage spp_address; | |||
__u32 spp_hbinterval; | __u32 spp_hbinterval; | |||
__u16 spp_pathmaxrxt; | __u16 spp_pathmaxrxt; | |||
__u32 spp_pathmtu; | __u32 spp_pathmtu; | |||
__u32 spp_sackdelay; | __u32 spp_sackdelay; | |||
__u32 spp_flags; | __u32 spp_flags; | |||
} __attribute__((packed, aligned(4))); | } __attribute__((packed, aligned(4))); | |||
/* 7.1.24. Delayed Ack Timer (SCTP_DELAYED_ACK_TIME) | /* | |||
* 7.1.18. Add a chunk that must be authenticated (SCTP_AUTH_CHUNK) | ||||
* | ||||
* This set option adds a chunk type that the user is requesting to be | ||||
* received only in an authenticated way. Changes to the list of chunks | ||||
* will only effect future associations on the socket. | ||||
*/ | ||||
struct sctp_authchunk { | ||||
__u8 sauth_chunk; | ||||
}; | ||||
/* | ||||
* 7.1.19. Get or set the list of supported HMAC Identifiers (SCTP_HMAC_ID | ||||
ENT) | ||||
* | ||||
* This option gets or sets the list of HMAC algorithms that the local | ||||
* endpoint requires the peer to use. | ||||
*/ | ||||
enum { | ||||
SCTP_AUTH_HMAC_ID_SHA1 = 1, | ||||
SCTP_AUTH_HMAC_ID_SHA256 = 3, | ||||
}; | ||||
struct sctp_hmacalgo { | ||||
__u32 shmac_number_of_idents; | ||||
__u16 shmac_idents[]; | ||||
}; | ||||
/* | ||||
* 7.1.20. Set a shared key (SCTP_AUTH_KEY) | ||||
* | ||||
* This option will set a shared secret key which is used to build an | ||||
* association shared key. | ||||
*/ | ||||
struct sctp_authkey { | ||||
sctp_assoc_t sca_assoc_id; | ||||
__u16 sca_keynumber; | ||||
__u16 sca_keylength; | ||||
__u8 sca_key[]; | ||||
}; | ||||
/* | ||||
* 7.1.21. Get or set the active shared key (SCTP_AUTH_ACTIVE_KEY) | ||||
* | ||||
* This option will get or set the active shared key to be used to build | ||||
* the association shared key. | ||||
*/ | ||||
struct sctp_authkeyid { | ||||
sctp_assoc_t scact_assoc_id; | ||||
__u16 scact_keynumber; | ||||
}; | ||||
/* 7.1.23. Delayed Ack Timer (SCTP_DELAYED_ACK_TIME) | ||||
* | * | |||
* This options will get or set the delayed ack timer. The time is set | * This options will get or set the delayed ack timer. The time is set | |||
* in milliseconds. If the assoc_id is 0, then this sets or gets the | * in milliseconds. If the assoc_id is 0, then this sets or gets the | |||
* endpoints default delayed ack timer value. If the assoc_id field is | * endpoints default delayed ack timer value. If the assoc_id field is | |||
* non-zero, then the set or get effects the specified association. | * non-zero, then the set or get effects the specified association. | |||
*/ | */ | |||
struct sctp_assoc_value { | struct sctp_assoc_value { | |||
sctp_assoc_t assoc_id; | sctp_assoc_t assoc_id; | |||
uint32_t assoc_value; | uint32_t assoc_value; | |||
}; | }; | |||
skipping to change at line 577 | skipping to change at line 666 | |||
sctp_assoc_t spinfo_assoc_id; | sctp_assoc_t spinfo_assoc_id; | |||
struct sockaddr_storage spinfo_address; | struct sockaddr_storage spinfo_address; | |||
__s32 spinfo_state; | __s32 spinfo_state; | |||
__u32 spinfo_cwnd; | __u32 spinfo_cwnd; | |||
__u32 spinfo_srtt; | __u32 spinfo_srtt; | |||
__u32 spinfo_rto; | __u32 spinfo_rto; | |||
__u32 spinfo_mtu; | __u32 spinfo_mtu; | |||
} __attribute__((packed, aligned(4))); | } __attribute__((packed, aligned(4))); | |||
/* Peer addresses's state. */ | /* Peer addresses's state. */ | |||
/* UNKNOWN: Peer address passed by the upper layer in sendmsg or connect[x] | ||||
* calls. | ||||
* UNCONFIRMED: Peer address received in INIT/INIT-ACK address parameters. | ||||
* Not yet confirmed by a heartbeat and not available for data | ||||
* transfers. | ||||
* ACTIVE : Peer address confirmed, active and available for data transfers | ||||
. | ||||
* INACTIVE: Peer address inactive and not available for data transfers. | ||||
*/ | ||||
enum sctp_spinfo_state { | enum sctp_spinfo_state { | |||
SCTP_INACTIVE, | SCTP_INACTIVE, | |||
SCTP_ACTIVE, | SCTP_ACTIVE, | |||
SCTP_UNCONFIRMED | SCTP_UNCONFIRMED | |||
}; | }; | |||
/* | /* | |||
* 7.2.1 Association Status (SCTP_STATUS) | * 7.2.1 Association Status (SCTP_STATUS) | |||
* | * | |||
* Applications can retrieve current status information about an | * Applications can retrieve current status information about an | |||
skipping to change at line 604 | skipping to change at line 701 | |||
__s32 sstat_state; | __s32 sstat_state; | |||
__u32 sstat_rwnd; | __u32 sstat_rwnd; | |||
__u16 sstat_unackdata; | __u16 sstat_unackdata; | |||
__u16 sstat_penddata; | __u16 sstat_penddata; | |||
__u16 sstat_instrms; | __u16 sstat_instrms; | |||
__u16 sstat_outstrms; | __u16 sstat_outstrms; | |||
__u32 sstat_fragmentation_point; | __u32 sstat_fragmentation_point; | |||
struct sctp_paddrinfo sstat_primary; | struct sctp_paddrinfo sstat_primary; | |||
}; | }; | |||
/* | ||||
* 7.2.3. Get the list of chunks the peer requires to be authenticated | ||||
* (SCTP_PEER_AUTH_CHUNKS) | ||||
* | ||||
* This option gets a list of chunks for a specified association that | ||||
* the peer requires to be received authenticated only. | ||||
*/ | ||||
struct sctp_authchunks { | ||||
sctp_assoc_t gauth_assoc_id; | ||||
__u32 guth_number_of_chunks; | ||||
uint8_t gauth_chunks[]; | ||||
}; | ||||
/* Association states. */ | /* Association states. */ | |||
enum sctp_sstat_state { | enum sctp_sstat_state { | |||
SCTP_EMPTY = 0, | SCTP_EMPTY = 0, | |||
SCTP_CLOSED = 1, | SCTP_CLOSED = 1, | |||
SCTP_COOKIE_WAIT = 2, | SCTP_COOKIE_WAIT = 2, | |||
SCTP_COOKIE_ECHOED = 3, | SCTP_COOKIE_ECHOED = 3, | |||
SCTP_ESTABLISHED = 4, | SCTP_ESTABLISHED = 4, | |||
SCTP_SHUTDOWN_PENDING = 5, | SCTP_SHUTDOWN_PENDING = 5, | |||
SCTP_SHUTDOWN_SENT = 6, | SCTP_SHUTDOWN_SENT = 6, | |||
SCTP_SHUTDOWN_RECEIVED = 7, | SCTP_SHUTDOWN_RECEIVED = 7, | |||
End of changes. 8 change blocks. | ||||
1 lines changed or deleted | 114 lines changed or added | |||