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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/