diff options
| author | Jon Grimm <jgrimm@jgrimm.austin.ibm.com> | 2002-09-25 08:06:51 -0500 |
|---|---|---|
| committer | Jon Grimm <jgrimm@jgrimm.austin.ibm.com> | 2002-09-25 08:06:51 -0500 |
| commit | dd18325fa22cf34f76cd78595125488888be0306 (patch) | |
| tree | 60cdf3c7b0f5281c2bb5110b3674b141bc0552a3 /include | |
| parent | 5dd6a6e5cdad7a7018accce3ccd888dea2667405 (diff) | |
| parent | 372f525b495c56405463397fa09ee3019afc9543 (diff) | |
Merge http://linux.bkbits.net/linux-2.5
into jgrimm.austin.ibm.com:/home/jgrimm/bk/test.merge.38
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/sctp/constants.h | 1 | ||||
| -rw-r--r-- | include/net/sctp/sctp.h | 3 | ||||
| -rw-r--r-- | include/net/sctp/sm.h | 8 | ||||
| -rw-r--r-- | include/net/sctp/structs.h | 15 |
4 files changed, 25 insertions, 2 deletions
diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h index f187be387f1c..90a7ba3cb29f 100644 --- a/include/net/sctp/constants.h +++ b/include/net/sctp/constants.h @@ -112,6 +112,7 @@ typedef enum { SCTP_EVENT_TIMEOUT_T2_SHUTDOWN, SCTP_EVENT_TIMEOUT_T3_RTX, SCTP_EVENT_TIMEOUT_T4_RTO, + SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD, SCTP_EVENT_TIMEOUT_HEARTBEAT, SCTP_EVENT_TIMEOUT_SACK, SCTP_EVENT_TIMEOUT_AUTOCLOSE, diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 2c7b3c0b6534..d45cdd15f939 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h @@ -114,7 +114,8 @@ extern sctp_protocol_t sctp_proto; extern struct sock *sctp_get_ctl_sock(void); extern int sctp_copy_local_addr_list(sctp_protocol_t *, sctp_bind_addr_t *, sctp_scope_t, int priority, int flags); - +extern sctp_pf_t *sctp_get_pf_specific(int family); +extern void sctp_set_pf_specific(int family, sctp_pf_t *); /* * sctp_socket.c diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h index 27c055ecc5c4..5cb4858fac34 100644 --- a/include/net/sctp/sm.h +++ b/include/net/sctp/sm.h @@ -107,6 +107,9 @@ sctp_state_fn_t sctp_sf_timer_ignore; sctp_state_fn_t sctp_sf_do_9_1_abort; sctp_state_fn_t sctp_sf_cookie_wait_abort; sctp_state_fn_t sctp_sf_cookie_echoed_abort; +sctp_state_fn_t sctp_sf_shutdown_pending_abort; +sctp_state_fn_t sctp_sf_shutdown_sent_abort; +sctp_state_fn_t sctp_sf_shutdown_ack_sent_abort; sctp_state_fn_t sctp_sf_do_5_1B_init; sctp_state_fn_t sctp_sf_do_5_1C_ack; sctp_state_fn_t sctp_sf_do_5_1D_ce; @@ -119,6 +122,7 @@ sctp_state_fn_t sctp_sf_tabort_8_4_8; sctp_state_fn_t sctp_sf_operr_notify; sctp_state_fn_t sctp_sf_t1_timer_expire; sctp_state_fn_t sctp_sf_t2_timer_expire; +sctp_state_fn_t sctp_sf_t5_timer_expire; sctp_state_fn_t sctp_sf_sendbeat_8_3; sctp_state_fn_t sctp_sf_beat_8_3; sctp_state_fn_t sctp_sf_backbeat_8_3; @@ -134,6 +138,7 @@ sctp_state_fn_t sctp_sf_discard_chunk; sctp_state_fn_t sctp_sf_do_5_2_1_siminit; sctp_state_fn_t sctp_sf_do_5_2_2_dupinit; sctp_state_fn_t sctp_sf_do_5_2_4_dupcook; +sctp_state_fn_t sctp_sf_unk_chunk; /* Prototypes for primitive event state functions. */ sctp_state_fn_t sctp_sf_do_prm_asoc; @@ -144,6 +149,9 @@ sctp_state_fn_t sctp_sf_cookie_echoed_prm_shutdown; sctp_state_fn_t sctp_sf_do_9_1_prm_abort; sctp_state_fn_t sctp_sf_cookie_wait_prm_abort; sctp_state_fn_t sctp_sf_cookie_echoed_prm_abort; +sctp_state_fn_t sctp_sf_shutdown_pending_prm_abort; +sctp_state_fn_t sctp_sf_shutdown_sent_prm_abort; +sctp_state_fn_t sctp_sf_shutdown_ack_sent_prm_abort; sctp_state_fn_t sctp_sf_error_closed; sctp_state_fn_t sctp_sf_error_shutdown; sctp_state_fn_t sctp_sf_ignore_primitive; diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 4f600a419d08..69f99bba1d9b 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -255,6 +255,12 @@ typedef struct sctp_func { sctp_func_t *sctp_get_af_specific(const sockaddr_storage_t *address); +/* Protocol family functions. */ +typedef struct sctp_pf { + void (*event_msgname)(sctp_ulpevent_t *, char *, int *); + void (*skb_msgname)(struct sk_buff *, char *, int *); +} sctp_pf_t; + /* SCTP Socket type: UDP or TCP style. */ typedef enum { SCTP_SOCKET_UDP = 0, @@ -280,6 +286,7 @@ struct sctp_opt { __u32 autoclose; __u8 nodelay; __u8 disable_fragments; + sctp_pf_t *pf; }; @@ -845,6 +852,7 @@ int sctp_outqueue_set_output_handlers(sctp_outqueue_t *, sctp_outqueue_ohandler_force_t force); void sctp_outqueue_restart(sctp_outqueue_t *); void sctp_retransmit(sctp_outqueue_t *, sctp_transport_t *, __u8); +void sctp_retransmit_mark(sctp_outqueue_t *, sctp_transport_t *, __u8); /* These bind address data fields common between endpoints and associations */ @@ -1128,6 +1136,11 @@ struct SCTP_association { */ sctp_transport_t *primary_path; + /* Cache the primary path address here, when we + * need a an address for msg_name. + */ + sockaddr_storage_t primary_addr; + /* active_path * The path that we are currently using to * transmit new data and most control chunks. @@ -1183,7 +1196,7 @@ struct SCTP_association { int next_dup_tsn; /* Do we need to sack the peer? */ - int sack_needed; + uint8_t sack_needed; /* These are capabilities which our peer advertised. */ __u8 ecn_capable; /* Can peer do ECN? */ |
