diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
commit | 2f058256cb64e346f4fb4499ff4e0f1c2791a4b4 (patch) | |
tree | 91e06602f4d3abb6812ea8c9bc9ba4501e14c84e /include/net/sctp/structs.h | |
parent | 0274aa2506fd2fe89a58dd6cd64d3b3f7b976af8 (diff) | |
parent | 86b3786078d63242d3194ffc58ae8dae1d1bbef3 (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r-- | include/net/sctp/structs.h | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index dfad4d3c581c..994009bbe3b4 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -161,6 +161,9 @@ extern struct sctp_globals { | |||
161 | */ | 161 | */ |
162 | int sndbuf_policy; | 162 | int sndbuf_policy; |
163 | 163 | ||
164 | /* Delayed SACK timeout 200ms default*/ | ||
165 | int sack_timeout; | ||
166 | |||
164 | /* HB.interval - 30 seconds */ | 167 | /* HB.interval - 30 seconds */ |
165 | int hb_interval; | 168 | int hb_interval; |
166 | 169 | ||
@@ -217,6 +220,7 @@ extern struct sctp_globals { | |||
217 | #define sctp_sndbuf_policy (sctp_globals.sndbuf_policy) | 220 | #define sctp_sndbuf_policy (sctp_globals.sndbuf_policy) |
218 | #define sctp_max_retrans_path (sctp_globals.max_retrans_path) | 221 | #define sctp_max_retrans_path (sctp_globals.max_retrans_path) |
219 | #define sctp_max_retrans_init (sctp_globals.max_retrans_init) | 222 | #define sctp_max_retrans_init (sctp_globals.max_retrans_init) |
223 | #define sctp_sack_timeout (sctp_globals.sack_timeout) | ||
220 | #define sctp_hb_interval (sctp_globals.hb_interval) | 224 | #define sctp_hb_interval (sctp_globals.hb_interval) |
221 | #define sctp_max_instreams (sctp_globals.max_instreams) | 225 | #define sctp_max_instreams (sctp_globals.max_instreams) |
222 | #define sctp_max_outstreams (sctp_globals.max_outstreams) | 226 | #define sctp_max_outstreams (sctp_globals.max_outstreams) |
@@ -441,7 +445,8 @@ struct sctp_ssnmap { | |||
441 | int malloced; | 445 | int malloced; |
442 | }; | 446 | }; |
443 | 447 | ||
444 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp); | 448 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, |
449 | unsigned int __nocast gfp); | ||
445 | void sctp_ssnmap_free(struct sctp_ssnmap *map); | 450 | void sctp_ssnmap_free(struct sctp_ssnmap *map); |
446 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); | 451 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); |
447 | 452 | ||
@@ -578,7 +583,6 @@ void sctp_datamsg_track(struct sctp_chunk *); | |||
578 | void sctp_chunk_fail(struct sctp_chunk *, int error); | 583 | void sctp_chunk_fail(struct sctp_chunk *, int error); |
579 | int sctp_chunk_abandoned(struct sctp_chunk *); | 584 | int sctp_chunk_abandoned(struct sctp_chunk *); |
580 | 585 | ||
581 | |||
582 | /* RFC2960 1.4 Key Terms | 586 | /* RFC2960 1.4 Key Terms |
583 | * | 587 | * |
584 | * o Chunk: A unit of information within an SCTP packet, consisting of | 588 | * o Chunk: A unit of information within an SCTP packet, consisting of |
@@ -588,13 +592,8 @@ int sctp_chunk_abandoned(struct sctp_chunk *); | |||
588 | * each chunk as well as a few other header pointers... | 592 | * each chunk as well as a few other header pointers... |
589 | */ | 593 | */ |
590 | struct sctp_chunk { | 594 | struct sctp_chunk { |
591 | /* These first three elements MUST PRECISELY match the first | 595 | struct list_head list; |
592 | * three elements of struct sk_buff. This allows us to reuse | 596 | |
593 | * all the skb_* queue management functions. | ||
594 | */ | ||
595 | struct sctp_chunk *next; | ||
596 | struct sctp_chunk *prev; | ||
597 | struct sk_buff_head *list; | ||
598 | atomic_t refcnt; | 597 | atomic_t refcnt; |
599 | 598 | ||
600 | /* This is our link to the per-transport transmitted list. */ | 599 | /* This is our link to the per-transport transmitted list. */ |
@@ -713,7 +712,7 @@ struct sctp_packet { | |||
713 | __u32 vtag; | 712 | __u32 vtag; |
714 | 713 | ||
715 | /* This contains the payload chunks. */ | 714 | /* This contains the payload chunks. */ |
716 | struct sk_buff_head chunks; | 715 | struct list_head chunk_list; |
717 | 716 | ||
718 | /* This is the overhead of the sctp and ip headers. */ | 717 | /* This is the overhead of the sctp and ip headers. */ |
719 | size_t overhead; | 718 | size_t overhead; |
@@ -947,7 +946,8 @@ struct sctp_transport { | |||
947 | } cacc; | 946 | } cacc; |
948 | }; | 947 | }; |
949 | 948 | ||
950 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, int); | 949 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, |
950 | unsigned int __nocast); | ||
951 | void sctp_transport_set_owner(struct sctp_transport *, | 951 | void sctp_transport_set_owner(struct sctp_transport *, |
952 | struct sctp_association *); | 952 | struct sctp_association *); |
953 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, | 953 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, |
@@ -970,7 +970,7 @@ struct sctp_inq { | |||
970 | /* This is actually a queue of sctp_chunk each | 970 | /* This is actually a queue of sctp_chunk each |
971 | * containing a partially decoded packet. | 971 | * containing a partially decoded packet. |
972 | */ | 972 | */ |
973 | struct sk_buff_head in; | 973 | struct list_head in_chunk_list; |
974 | /* This is the packet which is currently off the in queue and is | 974 | /* This is the packet which is currently off the in queue and is |
975 | * being worked on through the inbound chunk processing. | 975 | * being worked on through the inbound chunk processing. |
976 | */ | 976 | */ |
@@ -1013,7 +1013,7 @@ struct sctp_outq { | |||
1013 | struct sctp_association *asoc; | 1013 | struct sctp_association *asoc; |
1014 | 1014 | ||
1015 | /* Data pending that has never been transmitted. */ | 1015 | /* Data pending that has never been transmitted. */ |
1016 | struct sk_buff_head out; | 1016 | struct list_head out_chunk_list; |
1017 | 1017 | ||
1018 | unsigned out_qlen; /* Total length of queued data chunks. */ | 1018 | unsigned out_qlen; /* Total length of queued data chunks. */ |
1019 | 1019 | ||
@@ -1021,7 +1021,7 @@ struct sctp_outq { | |||
1021 | unsigned error; | 1021 | unsigned error; |
1022 | 1022 | ||
1023 | /* These are control chunks we want to send. */ | 1023 | /* These are control chunks we want to send. */ |
1024 | struct sk_buff_head control; | 1024 | struct list_head control_chunk_list; |
1025 | 1025 | ||
1026 | /* These are chunks that have been sacked but are above the | 1026 | /* These are chunks that have been sacked but are above the |
1027 | * CTSN, or cumulative tsn ack point. | 1027 | * CTSN, or cumulative tsn ack point. |
@@ -1095,9 +1095,10 @@ void sctp_bind_addr_init(struct sctp_bind_addr *, __u16 port); | |||
1095 | void sctp_bind_addr_free(struct sctp_bind_addr *); | 1095 | void sctp_bind_addr_free(struct sctp_bind_addr *); |
1096 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | 1096 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, |
1097 | const struct sctp_bind_addr *src, | 1097 | const struct sctp_bind_addr *src, |
1098 | sctp_scope_t scope, int gfp,int flags); | 1098 | sctp_scope_t scope, unsigned int __nocast gfp, |
1099 | int flags); | ||
1099 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, | 1100 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, |
1100 | int gfp); | 1101 | unsigned int __nocast gfp); |
1101 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); | 1102 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); |
1102 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, | 1103 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, |
1103 | struct sctp_sock *); | 1104 | struct sctp_sock *); |
@@ -1106,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, | |||
1106 | int addrcnt, | 1107 | int addrcnt, |
1107 | struct sctp_sock *opt); | 1108 | struct sctp_sock *opt); |
1108 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, | 1109 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, |
1109 | int *addrs_len, int gfp); | 1110 | int *addrs_len, |
1111 | unsigned int __nocast gfp); | ||
1110 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, | 1112 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, |
1111 | __u16 port, int gfp); | 1113 | __u16 port, unsigned int __nocast gfp); |
1112 | 1114 | ||
1113 | sctp_scope_t sctp_scope(const union sctp_addr *); | 1115 | sctp_scope_t sctp_scope(const union sctp_addr *); |
1114 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); | 1116 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); |
@@ -1237,7 +1239,7 @@ static inline struct sctp_endpoint *sctp_ep(struct sctp_ep_common *base) | |||
1237 | } | 1239 | } |
1238 | 1240 | ||
1239 | /* These are function signatures for manipulating endpoints. */ | 1241 | /* These are function signatures for manipulating endpoints. */ |
1240 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, int); | 1242 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, unsigned int __nocast); |
1241 | void sctp_endpoint_free(struct sctp_endpoint *); | 1243 | void sctp_endpoint_free(struct sctp_endpoint *); |
1242 | void sctp_endpoint_put(struct sctp_endpoint *); | 1244 | void sctp_endpoint_put(struct sctp_endpoint *); |
1243 | void sctp_endpoint_hold(struct sctp_endpoint *); | 1245 | void sctp_endpoint_hold(struct sctp_endpoint *); |
@@ -1258,7 +1260,7 @@ int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t, | |||
1258 | struct sctp_chunk **err_chunk); | 1260 | struct sctp_chunk **err_chunk); |
1259 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, | 1261 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, |
1260 | const union sctp_addr *peer, | 1262 | const union sctp_addr *peer, |
1261 | sctp_init_chunk_t *init, int gfp); | 1263 | sctp_init_chunk_t *init, unsigned int __nocast gfp); |
1262 | __u32 sctp_generate_tag(const struct sctp_endpoint *); | 1264 | __u32 sctp_generate_tag(const struct sctp_endpoint *); |
1263 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); | 1265 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); |
1264 | 1266 | ||
@@ -1668,7 +1670,7 @@ struct sctp_association { | |||
1668 | * which already resides in sctp_outq. Please move this | 1670 | * which already resides in sctp_outq. Please move this |
1669 | * queue and its supporting logic down there. --piggy] | 1671 | * queue and its supporting logic down there. --piggy] |
1670 | */ | 1672 | */ |
1671 | struct sk_buff_head addip_chunks; | 1673 | struct list_head addip_chunk_list; |
1672 | 1674 | ||
1673 | /* ADDIP Section 4.1 ASCONF Chunk Procedures | 1675 | /* ADDIP Section 4.1 ASCONF Chunk Procedures |
1674 | * | 1676 | * |
@@ -1721,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base) | |||
1721 | 1723 | ||
1722 | struct sctp_association * | 1724 | struct sctp_association * |
1723 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, | 1725 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, |
1724 | sctp_scope_t scope, int gfp); | 1726 | sctp_scope_t scope, unsigned int __nocast gfp); |
1725 | void sctp_association_free(struct sctp_association *); | 1727 | void sctp_association_free(struct sctp_association *); |
1726 | void sctp_association_put(struct sctp_association *); | 1728 | void sctp_association_put(struct sctp_association *); |
1727 | void sctp_association_hold(struct sctp_association *); | 1729 | void sctp_association_hold(struct sctp_association *); |
@@ -1737,7 +1739,7 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc, | |||
1737 | const union sctp_addr *laddr); | 1739 | const union sctp_addr *laddr); |
1738 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, | 1740 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, |
1739 | const union sctp_addr *address, | 1741 | const union sctp_addr *address, |
1740 | const int gfp, | 1742 | const unsigned int __nocast gfp, |
1741 | const int peer_state); | 1743 | const int peer_state); |
1742 | void sctp_assoc_del_peer(struct sctp_association *asoc, | 1744 | void sctp_assoc_del_peer(struct sctp_association *asoc, |
1743 | const union sctp_addr *addr); | 1745 | const union sctp_addr *addr); |
@@ -1761,9 +1763,11 @@ void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned); | |||
1761 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); | 1763 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); |
1762 | void sctp_assoc_set_primary(struct sctp_association *, | 1764 | void sctp_assoc_set_primary(struct sctp_association *, |
1763 | struct sctp_transport *); | 1765 | struct sctp_transport *); |
1764 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, int); | 1766 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, |
1767 | unsigned int __nocast); | ||
1765 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, | 1768 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, |
1766 | struct sctp_cookie*, int gfp); | 1769 | struct sctp_cookie*, |
1770 | unsigned int __nocast gfp); | ||
1767 | 1771 | ||
1768 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, | 1772 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, |
1769 | const union sctp_addr *ss2); | 1773 | const union sctp_addr *ss2); |