diff options
| author | Jon Grimm <jgrimm@touki.austin.ibm.com> | 2003-03-24 22:00:54 -0600 |
|---|---|---|
| committer | Jon Grimm <jgrimm@touki.austin.ibm.com> | 2003-03-24 22:00:54 -0600 |
| commit | a33b43999f950d56dba711d914bff965ebd1394e (patch) | |
| tree | 26a12f0c9c002a9f63faada45e5f98d2706cf48b /include/net | |
| parent | d6b6fece20021fee9579323fa094f4bf86be6ef2 (diff) | |
[SCTP] Add icmpv6 handler to SCTP.
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/sctp/constants.h | 8 | ||||
| -rw-r--r-- | include/net/sctp/sctp.h | 38 |
2 files changed, 22 insertions, 24 deletions
diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h index 8ddc88ed69fd..0d6a20a7390e 100644 --- a/include/net/sctp/constants.h +++ b/include/net/sctp/constants.h @@ -138,12 +138,10 @@ typedef enum { */ typedef union { - sctp_cid_t chunk; sctp_event_timeout_t timeout; sctp_event_other_t other; sctp_event_primitive_t primitive; - } sctp_subtype_t; #define SCTP_SUBTYPE_CONSTRUCTOR(_name, _type, _elt) \ @@ -421,9 +419,9 @@ typedef enum { /* Reasons to retransmit. */ typedef enum { - SCTP_RETRANSMIT_T3_RTX, - SCTP_RETRANSMIT_FAST_RTX, - SCTP_RETRANSMIT_PMTU_DISCOVERY, + SCTP_RTXR_T3_RTX, + SCTP_RTXR_FAST_RTX, + SCTP_RTXR_PMTUD, } sctp_retransmit_reason_t; /* Reasons to lower cwnd. */ diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 7ad60bcd5581..5c003845721c 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h @@ -130,7 +130,7 @@ extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); extern int sctp_register_pf(struct sctp_pf *, sa_family_t); /* - * sctp_socket.c + * sctp/socket.c */ extern int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb); extern int sctp_inet_listen(struct socket *sock, int backlog); @@ -139,7 +139,7 @@ extern unsigned int sctp_poll(struct file *file, struct socket *sock, poll_table *wait); /* - * sctp_primitive.c + * sctp/primitive.c */ extern int sctp_primitive_ASSOCIATE(sctp_association_t *, void *arg); extern int sctp_primitive_SHUTDOWN(sctp_association_t *, void *arg); @@ -148,14 +148,14 @@ extern int sctp_primitive_SEND(sctp_association_t *, void *arg); extern int sctp_primitive_REQUESTHEARTBEAT(sctp_association_t *, void *arg); /* - * sctp_crc32c.c + * sctp/crc32c.c */ extern __u32 sctp_start_cksum(__u8 *ptr, __u16 count); extern __u32 sctp_update_cksum(__u8 *ptr, __u16 count, __u32 cksum); extern __u32 sctp_end_cksum(__u32 cksum); /* - * sctp_input.c + * sctp/input.c */ extern int sctp_rcv(struct sk_buff *skb); extern void sctp_v4_err(struct sk_buff *skb, u32 info); @@ -170,9 +170,16 @@ extern void __sctp_unhash_endpoint(sctp_endpoint_t *); extern sctp_association_t *__sctp_lookup_association(const union sctp_addr *, const union sctp_addr *, struct sctp_transport **); - +extern struct sock *sctp_err_lookup(int family, struct sk_buff *, + struct sctphdr *, struct sctp_endpoint **, + struct sctp_association **, + struct sctp_transport **); +extern void sctp_err_finish(struct sock *, struct sctp_endpoint *, + struct sctp_association *); +extern void sctp_icmp_frag_needed(struct sock *, struct sctp_association *, + struct sctp_transport *t, __u32 pmtu); /* - * sctp_hashdriver.c + * sctp/hashdriver.c */ extern void sctp_hash_digest(const char *secret, const int secret_len, const char *text, const int text_len, @@ -184,9 +191,7 @@ extern void sctp_hash_digest(const char *secret, const int secret_len, #ifdef TEST_FRAME - #include <test_frame.h> - #else /* spin lock wrappers. */ @@ -312,7 +317,6 @@ static inline void sctp_sysctl_register(void) { return; } static inline void sctp_sysctl_unregister(void) { return; } #endif - /* Size of Supported Address Parameter for 'x' address types. */ #define SCTP_SAT_LEN(x) (sizeof(struct sctp_paramhdr) + (x) * sizeof(__u16)) @@ -320,19 +324,15 @@ static inline void sctp_sysctl_unregister(void) { return; } extern int sctp_v6_init(void); extern void sctp_v6_exit(void); -static inline int sctp_ipv6_addr_type(const struct in6_addr *addr) -{ - return ipv6_addr_type((struct in6_addr*) addr); -} +extern void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, + int type, int code, int offset, __u32 info); -#else /* #ifdef defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */ +#else /* #ifdef defined(CONFIG_IPV6) */ -#define sctp_ipv6_addr_type(a) 0 static inline int sctp_v6_init(void) { return 0; } static inline void sctp_v6_exit(void) { return; } -#endif /* #ifdef defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */ - +#endif /* #if defined(CONFIG_IPV6) */ /* Map an association to an assoc_id. */ static inline sctp_assoc_t sctp_assoc2id(const sctp_association_t *asoc) @@ -546,7 +546,7 @@ struct sctp_sock { struct sock sk; #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) struct ipv6_pinfo *pinet6; -#endif /* CONFIG_IPV6 || CONFIG_IPV6_MODULE */ +#endif /* CONFIG_IPV6 */ struct inet_opt inet; struct sctp_opt sctp; }; @@ -559,7 +559,7 @@ struct sctp6_sock { struct sctp_opt sctp; struct ipv6_pinfo inet6; }; -#endif /* CONFIG_IPV6 || CONFIG_IPV6_MODULE */ +#endif /* CONFIG_IPV6 */ #define sctp_sk(__sk) (&((struct sctp_sock *)__sk)->sctp) |
