[SCTP]: ADDIP: Don't use an address as source until it is ASCONF-ACKed
This implements Rules D1 and D4 of Sec 4.3 in the ADDIP draft. Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9faa730f1c
commit
dc022a9874
@@ -731,13 +731,10 @@ void sctp_init_addrs(struct sctp_chunk *, union sctp_addr *,
|
||||
const union sctp_addr *sctp_source(const struct sctp_chunk *chunk);
|
||||
|
||||
/* This is a structure for holding either an IPv6 or an IPv4 address. */
|
||||
/* sin_family -- AF_INET or AF_INET6
|
||||
* sin_port -- ordinary port number
|
||||
* sin_addr -- cast to either (struct in_addr) or (struct in6_addr)
|
||||
*/
|
||||
struct sctp_sockaddr_entry {
|
||||
struct list_head list;
|
||||
union sctp_addr a;
|
||||
__u8 use_as_src;
|
||||
};
|
||||
|
||||
typedef struct sctp_chunk *(sctp_packet_phandler_t)(struct sctp_association *);
|
||||
@@ -1142,7 +1139,7 @@ int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
||||
sctp_scope_t scope, gfp_t gfp,
|
||||
int flags);
|
||||
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
|
||||
gfp_t gfp);
|
||||
__u8 use_as_src, gfp_t gfp);
|
||||
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
|
||||
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
|
||||
struct sctp_sock *);
|
||||
|
Reference in New Issue
Block a user