linux-stable/net/sctp
Xin Long bd4d627dbd sctp: implement ulpevent_data for sctp_stream_interleave
ulpevent_data is added as a member of sctp_stream_interleave, used to
do the most process in ulpq, including to convert data or idata chunk
to event, reasm them in reasm queue and put them in lobby queue in
right order, and deliver them up to user sk rx queue.

This procedure is described in section 2.2.3 of RFC8260.

It adds most functions for idata here to do the similar process as
the old functions for data. But since the details are very different
between them, the old functions can not be reused for idata.

event->ssn and event->ppid settings are moved to ulpevent_data from
sctp_ulpevent_make_rcvmsg, so that sctp_ulpevent_make_rcvmsg could
work for both data and idata.

Note that mid is added in sctp_ulpevent for idata, __packed has to
be used for defining sctp_ulpevent, or it would exceeds the skb cb
that saves a sctp_ulpevent variable for ulp layer process.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-12-11 11:23:05 -05:00
..
associola.c net: sctp: Convert timers to use timer_setup() 2017-10-25 12:02:09 +09:00
auth.c sctp: remove the typedef sctp_hmac_algo_param_t 2017-07-16 20:52:14 -07:00
bind_addr.c sctp: remove the typedef sctp_scope_t 2017-08-06 21:33:41 -07:00
chunk.c sctp: implement make_datafrag for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
debug.c sctp: remove the typedef sctp_subtype_t 2017-08-06 21:33:42 -07:00
endpointola.c sctp: remove the typedef sctp_subtype_t 2017-08-06 21:33:42 -07:00
input.c sctp: fix some type cast warnings introduced by transport rhashtable 2017-10-29 18:03:24 +09:00
inqueue.c sctp: remove the typedef sctp_chunkhdr_t 2017-07-01 09:08:41 -07:00
ipv6.c net/sctp: Always set scope_id in sctp_inet6_skb_msgname 2017-11-16 23:00:30 +09:00
Kconfig sctp: add the sctp_diag.c file 2016-04-15 17:29:36 -04:00
Makefile sctp: implement make_datafrag for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
objcnt.c sctp: remove the typedef sctp_dbg_objcnt_entry_t 2017-08-11 10:02:43 -07:00
offload.c net: use skb->csum_not_inet to identify packets needing crc32c 2017-05-19 19:21:29 -04:00
output.c sctp: implement assign_number for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
outqueue.c sctp: do not abandon the other frags in unsent outq if one msg has outstanding frags 2017-12-01 15:06:24 -05:00
primitive.c sctp: remove the typedef sctp_subtype_t 2017-08-06 21:33:42 -07:00
probe.c sctp: remove the typedef sctp_disposition_t 2017-08-11 10:02:44 -07:00
proc.c rhashtable: Change rhashtable_walk_start to return void 2017-12-11 09:58:38 -05:00
protocol.c sctp: remove extern from stream sched 2017-11-28 11:00:13 -05:00
sctp_diag.c sctp: Fix a big endian bug in sctp_diag_dump() 2017-09-26 21:16:29 -07:00
sm_make_chunk.c sctp: implement make_datafrag for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
sm_sideeffect.c sctp: implement ulpevent_data for sctp_stream_interleave 2017-12-11 11:23:05 -05:00
sm_statefuns.c sctp: implement validate_data for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
sm_statetable.c sctp: implement validate_data for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
socket.c sctp: implement assign_number for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
stream.c sctp: implement make_datafrag for sctp_stream_interleave 2017-12-11 11:23:04 -05:00
stream_interleave.c sctp: implement ulpevent_data for sctp_stream_interleave 2017-12-11 11:23:05 -05:00
stream_sched.c sctp: remove extern from stream sched 2017-11-28 11:00:13 -05:00
stream_sched_prio.c sctp: remove extern from stream sched 2017-11-28 11:00:13 -05:00
stream_sched_rr.c sctp: remove extern from stream sched 2017-11-28 11:00:13 -05:00
sysctl.c sctp: remove the typedef sctp_scope_policy_t 2017-08-06 21:33:41 -07:00
transport.c net: sctp: Convert timers to use timer_setup() 2017-10-25 12:02:09 +09:00
tsnmap.c
ulpevent.c sctp: implement ulpevent_data for sctp_stream_interleave 2017-12-11 11:23:05 -05:00
ulpqueue.c sctp: implement ulpevent_data for sctp_stream_interleave 2017-12-11 11:23:05 -05:00