sctp: Set source addresses on the association before adding transports
Recent commit 8da645e101
sctp: Get rid of an extra routing lookup when adding a transport
introduced a regression in the connection setup. The behavior was
different between IPv4 and IPv6. IPv4 case ended up working because the
route lookup routing returned a NULL route, which triggered another
route lookup later in the output patch that succeeded. In the IPv6 case,
a valid route was returned for first call, but we could not find a valid
source address at the time since the source addresses were not set on the
association yet. Thus resulted in a hung connection.
The solution is to set the source addresses on the association prior to
adding peers.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
d792c1006f
commit
409b95aff3
@@ -1980,7 +1980,7 @@ void sctp_assoc_set_primary(struct sctp_association *,
|
||||
void sctp_assoc_del_nonprimary_peers(struct sctp_association *,
|
||||
struct sctp_transport *);
|
||||
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *,
|
||||
gfp_t);
|
||||
sctp_scope_t, gfp_t);
|
||||
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *,
|
||||
struct sctp_cookie*,
|
||||
gfp_t gfp);
|
||||
|
Reference in New Issue
Block a user