linux/net/sctp
Vlad Yasevich 07d9396771 [SCTP]: Set assoc_id correctly during INIT collision.
During the INIT/COOKIE-ACK collision cases, it's possible to get
into a situation where the association id is not yet set at the time
of the user event generation.  As a result, user events have an
association id set to 0 which will confuse applications.

This happens if we hit case B of duplicate cookie processing.
In the particular example found and provided by Oscar Isaula
<Oscar.Isaula@motorola.com>, flow looks like this:
A				B
---- INIT------->  (lost)
	    <---------INIT------
---- INIT-ACK--->
	    <------ Cookie ECHO

When the Cookie Echo is received, we end up trying to update the
association that was created on A as a result of the (lost) INIT,
but that association doesn't have the ID set yet.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-04 13:55:27 -07:00
..
Kconfig
Makefile
associola.c [SCTP]: Set assoc_id correctly during INIT collision. 2007-05-04 13:55:27 -07:00
bind_addr.c
chunk.c
command.c
crc32c.c
debug.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
endpointola.c
input.c
inqueue.c
ipv6.c [SCTP]: Re-order SCTP initializations to avoid race with sctp_rcv() 2007-05-04 13:36:30 -07:00
objcnt.c
output.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
outqueue.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
primitive.c
proc.c
protocol.c [SCTP]: Re-order SCTP initializations to avoid race with sctp_rcv() 2007-05-04 13:36:30 -07:00
sm_make_chunk.c [SCTP]: Set assoc_id correctly during INIT collision. 2007-05-04 13:55:27 -07:00
sm_sideeffect.c [SCTP]: Set assoc_id correctly during INIT collision. 2007-05-04 13:55:27 -07:00
sm_statefuns.c [SCTP]: Set assoc_id correctly during INIT collision. 2007-05-04 13:55:27 -07:00
sm_statetable.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
socket.c [SCTP]: Fix the SO_REUSEADDR handling to be similar to TCP. 2007-05-04 13:34:49 -07:00
ssnmap.c
sysctl.c
transport.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
tsnmap.c
ulpevent.c
ulpqueue.c [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00