aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/stream_interleave.c
diff options
context:
space:
mode:
authorXin Long <lucien.xin@gmail.com>2017-12-08 21:04:07 +0800
committerDavid S. Miller <davem@davemloft.net>2017-12-11 11:23:05 -0500
commitbe4e0ce10dc64b9a8aae42ec3dbd906022f91ec5 (patch)
treee7da93ea3e3d4ddec4978ddb02cf73a3e720ef06 /net/sctp/stream_interleave.c
parentsctp: implement renege_events for sctp_stream_interleave (diff)
downloadlinux-dev-be4e0ce10dc64b9a8aae42ec3dbd906022f91ec5.tar.xz
linux-dev-be4e0ce10dc64b9a8aae42ec3dbd906022f91ec5.zip
sctp: implement start_pd for sctp_stream_interleave
start_pd is added as a member of sctp_stream_interleave, used to do partial_delivery for data or idata when datalen >= asoc->rwnd in sctp_eat_data. The codes have been done in last patches, but they need to be extracted into start_pd, so that it could be used for SCTP_CMD_PART_DELIVER cmd as well. 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>
Diffstat (limited to '')
-rw-r--r--net/sctp/stream_interleave.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sctp/stream_interleave.c b/net/sctp/stream_interleave.c
index d62ad5c62092..4dce8d33c5ab 100644
--- a/net/sctp/stream_interleave.c
+++ b/net/sctp/stream_interleave.c
@@ -661,6 +661,7 @@ static struct sctp_stream_interleave sctp_stream_interleave_0 = {
.ulpevent_data = sctp_ulpq_tail_data,
.enqueue_event = sctp_ulpq_tail_event,
.renege_events = sctp_ulpq_renege,
+ .start_pd = sctp_ulpq_partial_delivery,
};
static struct sctp_stream_interleave sctp_stream_interleave_1 = {
@@ -672,6 +673,7 @@ static struct sctp_stream_interleave sctp_stream_interleave_1 = {
.ulpevent_data = sctp_ulpevent_idata,
.enqueue_event = sctp_enqueue_event,
.renege_events = sctp_renege_events,
+ .start_pd = sctp_intl_start_pd,
};
void sctp_stream_interleave_init(struct sctp_stream *stream)