ulpq               28 include/net/sctp/stream_interleave.h 	int	(*ulpevent_data)(struct sctp_ulpq *ulpq,
ulpq               30 include/net/sctp/stream_interleave.h 	int	(*enqueue_event)(struct sctp_ulpq *ulpq,
ulpq               32 include/net/sctp/stream_interleave.h 	void	(*renege_events)(struct sctp_ulpq *ulpq,
ulpq               34 include/net/sctp/stream_interleave.h 	void	(*start_pd)(struct sctp_ulpq *ulpq, gfp_t gfp);
ulpq               35 include/net/sctp/stream_interleave.h 	void	(*abort_pd)(struct sctp_ulpq *ulpq, gfp_t gfp);
ulpq               39 include/net/sctp/stream_interleave.h 	void	(*report_ftsn)(struct sctp_ulpq *ulpq, __u32 ftsn);
ulpq               40 include/net/sctp/stream_interleave.h 	void	(*handle_ftsn)(struct sctp_ulpq *ulpq,
ulpq             1936 include/net/sctp/structs.h 	struct sctp_ulpq ulpq;
ulpq               40 include/net/sctp/ulpqueue.h void sctp_ulpq_flush(struct sctp_ulpq *ulpq);
ulpq               62 include/net/sctp/ulpqueue.h void sctp_ulpq_skip(struct sctp_ulpq *ulpq, __u16 sid, __u16 ssn);
ulpq               66 include/net/sctp/ulpqueue.h __u16 sctp_ulpq_renege_list(struct sctp_ulpq *ulpq,
ulpq              224 net/sctp/associola.c 	if (!sctp_ulpq_init(&asoc->ulpq, asoc))
ulpq              340 net/sctp/associola.c 	sctp_ulpq_free(&asoc->ulpq);
ulpq              848 net/sctp/associola.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
ulpq             1148 net/sctp/associola.c 		sctp_ulpq_flush(&asoc->ulpq);
ulpq             1003 net/sctp/auth.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq              110 net/sctp/chunk.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq               91 net/sctp/sm_make_chunk.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq              620 net/sctp/sm_sideeffect.c 	asoc->stream.si->abort_pd(&asoc->ulpq, GFP_ATOMIC);
ulpq              965 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq             1039 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq             1049 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq             1061 net/sctp/sm_sideeffect.c 		asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq             1333 net/sctp/sm_sideeffect.c 			asoc->stream.si->report_ftsn(&asoc->ulpq, cmd->obj.u32);
ulpq             1337 net/sctp/sm_sideeffect.c 			asoc->stream.si->handle_ftsn(&asoc->ulpq,
ulpq             1445 net/sctp/sm_sideeffect.c 				 __func__, cmd->obj.chunk, &asoc->ulpq);
ulpq             1447 net/sctp/sm_sideeffect.c 			asoc->stream.si->ulpevent_data(&asoc->ulpq,
ulpq             1455 net/sctp/sm_sideeffect.c 				 __func__, cmd->obj.ulpevent, &asoc->ulpq);
ulpq             1457 net/sctp/sm_sideeffect.c 			asoc->stream.si->enqueue_event(&asoc->ulpq,
ulpq             1703 net/sctp/sm_sideeffect.c 			asoc->stream.si->start_pd(&asoc->ulpq, GFP_ATOMIC);
ulpq             1707 net/sctp/sm_sideeffect.c 			asoc->stream.si->renege_events(&asoc->ulpq,
ulpq             6394 net/sctp/sm_statefuns.c 	if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) {
ulpq              196 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.lobby, tmp)
ulpq              199 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.reasm, tmp)
ulpq              202 net/sctp/socket.c 	sctp_skb_for_each(skb, &asoc->ulpq.reasm_uo, tmp)
ulpq             1521 net/sctp/socket.c 		if (data_was_unread || !skb_queue_empty(&asoc->ulpq.lobby) ||
ulpq             1522 net/sctp/socket.c 		    !skb_queue_empty(&asoc->ulpq.reasm) ||
ulpq             1523 net/sctp/socket.c 		    !skb_queue_empty(&asoc->ulpq.reasm_uo) ||
ulpq             2259 net/sctp/socket.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
ulpq             4448 net/sctp/socket.c 			asoc->stream.si->enqueue_event(&asoc->ulpq, event);
ulpq             9008 net/sctp/socket.c 				asoc->stream.si->enqueue_event(&asoc->ulpq, ev);
ulpq             9430 net/sctp/socket.c 	atomic_set(&sctp_sk(newsk)->pd_mode, assoc->ulpq.pd_mode);
ulpq             9436 net/sctp/socket.c 		if (assoc->ulpq.pd_mode) {
ulpq             9456 net/sctp/socket.c 		if (assoc->ulpq.pd_mode)
ulpq              725 net/sctp/stream.c 	asoc->stream.si->report_ftsn(&asoc->ulpq, max_tsn_seen);
ulpq             1002 net/sctp/stream.c 			asoc->stream.si->report_ftsn(&asoc->ulpq, mtsn);
ulpq              124 net/sctp/stream_interleave.c static void sctp_intl_store_reasm(struct sctp_ulpq *ulpq,
ulpq              130 net/sctp/stream_interleave.c 	pos = skb_peek_tail(&ulpq->reasm);
ulpq              132 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              143 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              150 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              155 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              175 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              177 net/sctp/stream_interleave.c 		__skb_queue_before(&ulpq->reasm, loc, sctp_event2skb(event));
ulpq              181 net/sctp/stream_interleave.c 						struct sctp_ulpq *ulpq,
ulpq              192 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              194 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              244 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              245 net/sctp/stream_interleave.c 					     &ulpq->reasm, first_frag,
ulpq              259 net/sctp/stream_interleave.c 						struct sctp_ulpq *ulpq,
ulpq              262 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
ulpq              273 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              275 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              330 net/sctp/stream_interleave.c 						     &ulpq->reasm,
ulpq              341 net/sctp/stream_interleave.c 					     &ulpq->reasm,
ulpq              350 net/sctp/stream_interleave.c static struct sctp_ulpevent *sctp_intl_reasm(struct sctp_ulpq *ulpq,
ulpq              361 net/sctp/stream_interleave.c 	sctp_intl_store_reasm(ulpq, event);
ulpq              363 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              366 net/sctp/stream_interleave.c 		retval = sctp_intl_retrieve_partial(ulpq, event);
ulpq              369 net/sctp/stream_interleave.c 		retval = sctp_intl_retrieve_reassembled(ulpq, event);
ulpq              374 net/sctp/stream_interleave.c static void sctp_intl_store_ordered(struct sctp_ulpq *ulpq,
ulpq              380 net/sctp/stream_interleave.c 	pos = skb_peek_tail(&ulpq->lobby);
ulpq              382 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              389 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              394 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              399 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->lobby, pos) {
ulpq              414 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              416 net/sctp/stream_interleave.c 		__skb_queue_before(&ulpq->lobby, loc, sctp_event2skb(event));
ulpq              419 net/sctp/stream_interleave.c static void sctp_intl_retrieve_ordered(struct sctp_ulpq *ulpq,
ulpq              427 net/sctp/stream_interleave.c 	stream  = &ulpq->asoc->stream;
ulpq              430 net/sctp/stream_interleave.c 	sctp_skb_for_each(pos, &ulpq->lobby, tmp) {
ulpq              444 net/sctp/stream_interleave.c 		__skb_unlink(pos, &ulpq->lobby);
ulpq              450 net/sctp/stream_interleave.c static struct sctp_ulpevent *sctp_intl_order(struct sctp_ulpq *ulpq,
ulpq              456 net/sctp/stream_interleave.c 	stream  = &ulpq->asoc->stream;
ulpq              460 net/sctp/stream_interleave.c 		sctp_intl_store_ordered(ulpq, event);
ulpq              466 net/sctp/stream_interleave.c 	sctp_intl_retrieve_ordered(ulpq, event);
ulpq              471 net/sctp/stream_interleave.c static int sctp_enqueue_event(struct sctp_ulpq *ulpq,
ulpq              474 net/sctp/stream_interleave.c 	struct sock *sk = ulpq->asoc->base.sk;
ulpq              492 net/sctp/stream_interleave.c 	if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe))
ulpq              517 net/sctp/stream_interleave.c static void sctp_intl_store_reasm_uo(struct sctp_ulpq *ulpq,
ulpq              523 net/sctp/stream_interleave.c 	pos = skb_peek_tail(&ulpq->reasm_uo);
ulpq              525 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event));
ulpq              536 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event));
ulpq              543 net/sctp/stream_interleave.c 		__skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event));
ulpq              547 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm_uo, pos) {
ulpq              563 net/sctp/stream_interleave.c 	__skb_queue_before(&ulpq->reasm_uo, pos, sctp_event2skb(event));
ulpq              567 net/sctp/stream_interleave.c 						struct sctp_ulpq *ulpq,
ulpq              578 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              580 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm_uo, pos) {
ulpq              633 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              634 net/sctp/stream_interleave.c 					     &ulpq->reasm_uo, first_frag,
ulpq              648 net/sctp/stream_interleave.c 						struct sctp_ulpq *ulpq,
ulpq              651 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
ulpq              662 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              664 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm_uo, pos) {
ulpq              720 net/sctp/stream_interleave.c 						     &ulpq->reasm_uo,
ulpq              731 net/sctp/stream_interleave.c 					     &ulpq->reasm_uo,
ulpq              740 net/sctp/stream_interleave.c static struct sctp_ulpevent *sctp_intl_reasm_uo(struct sctp_ulpq *ulpq,
ulpq              751 net/sctp/stream_interleave.c 	sctp_intl_store_reasm_uo(ulpq, event);
ulpq              753 net/sctp/stream_interleave.c 	sin = sctp_stream_in(&ulpq->asoc->stream, event->stream);
ulpq              756 net/sctp/stream_interleave.c 		retval = sctp_intl_retrieve_partial_uo(ulpq, event);
ulpq              759 net/sctp/stream_interleave.c 		retval = sctp_intl_retrieve_reassembled_uo(ulpq, event);
ulpq              764 net/sctp/stream_interleave.c static struct sctp_ulpevent *sctp_intl_retrieve_first_uo(struct sctp_ulpq *ulpq)
ulpq              774 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm_uo, pos) {
ulpq              777 net/sctp/stream_interleave.c 		csin = sctp_stream_in(&ulpq->asoc->stream, cevent->stream);
ulpq              817 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              818 net/sctp/stream_interleave.c 					     &ulpq->reasm_uo, first_frag,
ulpq              828 net/sctp/stream_interleave.c static int sctp_ulpevent_idata(struct sctp_ulpq *ulpq,
ulpq              846 net/sctp/stream_interleave.c 		event = sctp_intl_reasm(ulpq, event);
ulpq              852 net/sctp/stream_interleave.c 				event = sctp_intl_order(ulpq, event);
ulpq              855 net/sctp/stream_interleave.c 		event = sctp_intl_reasm_uo(ulpq, event);
ulpq              864 net/sctp/stream_interleave.c 		sctp_enqueue_event(ulpq, &temp);
ulpq              870 net/sctp/stream_interleave.c static struct sctp_ulpevent *sctp_intl_retrieve_first(struct sctp_ulpq *ulpq)
ulpq              880 net/sctp/stream_interleave.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              883 net/sctp/stream_interleave.c 		csin = sctp_stream_in(&ulpq->asoc->stream, cevent->stream);
ulpq              924 net/sctp/stream_interleave.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              925 net/sctp/stream_interleave.c 					     &ulpq->reasm, first_frag,
ulpq              935 net/sctp/stream_interleave.c static void sctp_intl_start_pd(struct sctp_ulpq *ulpq, gfp_t gfp)
ulpq              940 net/sctp/stream_interleave.c 	if (!skb_queue_empty(&ulpq->reasm)) {
ulpq              942 net/sctp/stream_interleave.c 			event = sctp_intl_retrieve_first(ulpq);
ulpq              946 net/sctp/stream_interleave.c 				sctp_enqueue_event(ulpq, &temp);
ulpq              951 net/sctp/stream_interleave.c 	if (!skb_queue_empty(&ulpq->reasm_uo)) {
ulpq              953 net/sctp/stream_interleave.c 			event = sctp_intl_retrieve_first_uo(ulpq);
ulpq              957 net/sctp/stream_interleave.c 				sctp_enqueue_event(ulpq, &temp);
ulpq              963 net/sctp/stream_interleave.c static void sctp_renege_events(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
ulpq              966 net/sctp/stream_interleave.c 	struct sctp_association *asoc = ulpq->asoc;
ulpq              974 net/sctp/stream_interleave.c 		freed = sctp_ulpq_renege_list(ulpq, &ulpq->lobby, needed);
ulpq              976 net/sctp/stream_interleave.c 			freed += sctp_ulpq_renege_list(ulpq, &ulpq->reasm,
ulpq              979 net/sctp/stream_interleave.c 			freed += sctp_ulpq_renege_list(ulpq, &ulpq->reasm_uo,
ulpq              983 net/sctp/stream_interleave.c 	if (freed >= needed && sctp_ulpevent_idata(ulpq, chunk, gfp) <= 0)
ulpq              984 net/sctp/stream_interleave.c 		sctp_intl_start_pd(ulpq, gfp);
ulpq              989 net/sctp/stream_interleave.c static void sctp_intl_stream_abort_pd(struct sctp_ulpq *ulpq, __u16 sid,
ulpq              992 net/sctp/stream_interleave.c 	struct sock *sk = ulpq->asoc->base.sk;
ulpq              995 net/sctp/stream_interleave.c 	if (!sctp_ulpevent_type_enabled(ulpq->asoc->subscribe,
ulpq              999 net/sctp/stream_interleave.c 	ev = sctp_ulpevent_make_pdapi(ulpq->asoc, SCTP_PARTIAL_DELIVERY_ABORTED,
ulpq             1013 net/sctp/stream_interleave.c static void sctp_intl_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
ulpq             1015 net/sctp/stream_interleave.c 	struct sctp_stream *stream = &ulpq->asoc->stream;
ulpq             1017 net/sctp/stream_interleave.c 	struct sk_buff_head *lobby = &ulpq->lobby;
ulpq             1059 net/sctp/stream_interleave.c 		sctp_intl_retrieve_ordered(ulpq, event);
ulpq             1060 net/sctp/stream_interleave.c 		sctp_enqueue_event(ulpq, &temp);
ulpq             1064 net/sctp/stream_interleave.c static void sctp_intl_abort_pd(struct sctp_ulpq *ulpq, gfp_t gfp)
ulpq             1066 net/sctp/stream_interleave.c 	struct sctp_stream *stream = &ulpq->asoc->stream;
ulpq             1077 net/sctp/stream_interleave.c 			sctp_intl_stream_abort_pd(ulpq, sid, mid, 0x1, gfp);
ulpq             1084 net/sctp/stream_interleave.c 			sctp_intl_stream_abort_pd(ulpq, sid, mid, 0, gfp);
ulpq             1087 net/sctp/stream_interleave.c 			sctp_intl_reap_ordered(ulpq, sid);
ulpq             1092 net/sctp/stream_interleave.c 	sctp_ulpq_flush(ulpq);
ulpq             1206 net/sctp/stream_interleave.c static void sctp_report_fwdtsn(struct sctp_ulpq *ulpq, __u32 ftsn)
ulpq             1209 net/sctp/stream_interleave.c 	sctp_tsnmap_skip(&ulpq->asoc->peer.tsn_map, ftsn);
ulpq             1211 net/sctp/stream_interleave.c 	sctp_ulpq_reasm_flushtsn(ulpq, ftsn);
ulpq             1213 net/sctp/stream_interleave.c 	sctp_ulpq_abort_pd(ulpq, GFP_ATOMIC);
ulpq             1216 net/sctp/stream_interleave.c static void sctp_intl_reasm_flushtsn(struct sctp_ulpq *ulpq, __u32 ftsn)
ulpq             1220 net/sctp/stream_interleave.c 	skb_queue_walk_safe(&ulpq->reasm, pos, tmp) {
ulpq             1225 net/sctp/stream_interleave.c 			__skb_unlink(pos, &ulpq->reasm);
ulpq             1230 net/sctp/stream_interleave.c 	skb_queue_walk_safe(&ulpq->reasm_uo, pos, tmp) {
ulpq             1235 net/sctp/stream_interleave.c 			__skb_unlink(pos, &ulpq->reasm_uo);
ulpq             1241 net/sctp/stream_interleave.c static void sctp_report_iftsn(struct sctp_ulpq *ulpq, __u32 ftsn)
ulpq             1244 net/sctp/stream_interleave.c 	sctp_tsnmap_skip(&ulpq->asoc->peer.tsn_map, ftsn);
ulpq             1246 net/sctp/stream_interleave.c 	sctp_intl_reasm_flushtsn(ulpq, ftsn);
ulpq             1248 net/sctp/stream_interleave.c 	if (ftsn == sctp_tsnmap_get_max_tsn_seen(&ulpq->asoc->peer.tsn_map))
ulpq             1249 net/sctp/stream_interleave.c 		sctp_intl_abort_pd(ulpq, GFP_ATOMIC);
ulpq             1252 net/sctp/stream_interleave.c static void sctp_handle_fwdtsn(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk)
ulpq             1258 net/sctp/stream_interleave.c 		sctp_ulpq_skip(ulpq, ntohs(skip->stream), ntohs(skip->ssn));
ulpq             1261 net/sctp/stream_interleave.c static void sctp_intl_skip(struct sctp_ulpq *ulpq, __u16 sid, __u32 mid,
ulpq             1264 net/sctp/stream_interleave.c 	struct sctp_stream_in *sin = sctp_stream_in(&ulpq->asoc->stream, sid);
ulpq             1265 net/sctp/stream_interleave.c 	struct sctp_stream *stream  = &ulpq->asoc->stream;
ulpq             1270 net/sctp/stream_interleave.c 			sctp_intl_stream_abort_pd(ulpq, sid, mid, 0x1,
ulpq             1281 net/sctp/stream_interleave.c 		sctp_intl_stream_abort_pd(ulpq, sid, mid, 0x0, GFP_ATOMIC);
ulpq             1286 net/sctp/stream_interleave.c 	sctp_intl_reap_ordered(ulpq, sid);
ulpq             1289 net/sctp/stream_interleave.c static void sctp_handle_iftsn(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk)
ulpq             1295 net/sctp/stream_interleave.c 		sctp_intl_skip(ulpq, ntohs(skip->stream),
ulpq             1299 net/sctp/stream_interleave.c static int do_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event)
ulpq             1305 net/sctp/stream_interleave.c 	return sctp_ulpq_tail_event(ulpq, &temp);
ulpq             1327 net/sctp/stream_interleave.c static int do_sctp_enqueue_event(struct sctp_ulpq *ulpq,
ulpq             1334 net/sctp/stream_interleave.c 	return sctp_enqueue_event(ulpq, &temp);
ulpq               32 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_reasm(struct sctp_ulpq *ulpq,
ulpq               36 net/sctp/ulpqueue.c static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq);
ulpq               41 net/sctp/ulpqueue.c struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *ulpq,
ulpq               44 net/sctp/ulpqueue.c 	memset(ulpq, 0, sizeof(struct sctp_ulpq));
ulpq               46 net/sctp/ulpqueue.c 	ulpq->asoc = asoc;
ulpq               47 net/sctp/ulpqueue.c 	skb_queue_head_init(&ulpq->reasm);
ulpq               48 net/sctp/ulpqueue.c 	skb_queue_head_init(&ulpq->reasm_uo);
ulpq               49 net/sctp/ulpqueue.c 	skb_queue_head_init(&ulpq->lobby);
ulpq               50 net/sctp/ulpqueue.c 	ulpq->pd_mode  = 0;
ulpq               52 net/sctp/ulpqueue.c 	return ulpq;
ulpq               57 net/sctp/ulpqueue.c void sctp_ulpq_flush(struct sctp_ulpq *ulpq)
ulpq               62 net/sctp/ulpqueue.c 	while ((skb = __skb_dequeue(&ulpq->lobby)) != NULL) {
ulpq               67 net/sctp/ulpqueue.c 	while ((skb = __skb_dequeue(&ulpq->reasm)) != NULL) {
ulpq               72 net/sctp/ulpqueue.c 	while ((skb = __skb_dequeue(&ulpq->reasm_uo)) != NULL) {
ulpq               79 net/sctp/ulpqueue.c void sctp_ulpq_free(struct sctp_ulpq *ulpq)
ulpq               81 net/sctp/ulpqueue.c 	sctp_ulpq_flush(ulpq);
ulpq               85 net/sctp/ulpqueue.c int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
ulpq              101 net/sctp/ulpqueue.c 	event = sctp_ulpq_reasm(ulpq, event);
ulpq              110 net/sctp/ulpqueue.c 			event = sctp_ulpq_order(ulpq, event);
ulpq              118 net/sctp/ulpqueue.c 		sctp_ulpq_tail_event(ulpq, &temp);
ulpq              166 net/sctp/ulpqueue.c static void sctp_ulpq_set_pd(struct sctp_ulpq *ulpq)
ulpq              168 net/sctp/ulpqueue.c 	struct sctp_sock *sp = sctp_sk(ulpq->asoc->base.sk);
ulpq              171 net/sctp/ulpqueue.c 	ulpq->pd_mode = 1;
ulpq              175 net/sctp/ulpqueue.c static int sctp_ulpq_clear_pd(struct sctp_ulpq *ulpq)
ulpq              177 net/sctp/ulpqueue.c 	ulpq->pd_mode = 0;
ulpq              178 net/sctp/ulpqueue.c 	sctp_ulpq_reasm_drain(ulpq);
ulpq              179 net/sctp/ulpqueue.c 	return sctp_clear_pd(ulpq->asoc->base.sk, ulpq->asoc);
ulpq              182 net/sctp/ulpqueue.c int sctp_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sk_buff_head *skb_list)
ulpq              184 net/sctp/ulpqueue.c 	struct sock *sk = ulpq->asoc->base.sk;
ulpq              207 net/sctp/ulpqueue.c 	if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe))
ulpq              218 net/sctp/ulpqueue.c 		if (ulpq->pd_mode) {
ulpq              252 net/sctp/ulpqueue.c 		sctp_ulpq_clear_pd(ulpq);
ulpq              273 net/sctp/ulpqueue.c static void sctp_ulpq_store_reasm(struct sctp_ulpq *ulpq,
ulpq              283 net/sctp/ulpqueue.c 	pos = skb_peek_tail(&ulpq->reasm);
ulpq              285 net/sctp/ulpqueue.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              293 net/sctp/ulpqueue.c 		__skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
ulpq              298 net/sctp/ulpqueue.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              307 net/sctp/ulpqueue.c 	__skb_queue_before(&ulpq->reasm, pos, sctp_event2skb(event));
ulpq              399 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_retrieve_reassembled(struct sctp_ulpq *ulpq)
ulpq              431 net/sctp/ulpqueue.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              441 net/sctp/ulpqueue.c 			if (skb_queue_is_first(&ulpq->reasm, pos)) {
ulpq              475 net/sctp/ulpqueue.c 	asoc = ulpq->asoc;
ulpq              490 net/sctp/ulpqueue.c 							     &ulpq->reasm,
ulpq              494 net/sctp/ulpqueue.c 				sctp_ulpq_set_pd(ulpq);
ulpq              500 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              501 net/sctp/ulpqueue.c 					     &ulpq->reasm, first_frag, pos);
ulpq              508 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_retrieve_partial(struct sctp_ulpq *ulpq)
ulpq              521 net/sctp/ulpqueue.c 	if (skb_queue_empty(&ulpq->reasm))
ulpq              529 net/sctp/ulpqueue.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              566 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              567 net/sctp/ulpqueue.c 					&ulpq->reasm, first_frag, last_frag);
ulpq              578 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_reasm(struct sctp_ulpq *ulpq,
ulpq              589 net/sctp/ulpqueue.c 	sctp_ulpq_store_reasm(ulpq, event);
ulpq              590 net/sctp/ulpqueue.c 	if (!ulpq->pd_mode)
ulpq              591 net/sctp/ulpqueue.c 		retval = sctp_ulpq_retrieve_reassembled(ulpq);
ulpq              599 net/sctp/ulpqueue.c 		ctsnap = sctp_tsnmap_get_ctsn(&ulpq->asoc->peer.tsn_map);
ulpq              601 net/sctp/ulpqueue.c 			retval = sctp_ulpq_retrieve_partial(ulpq);
ulpq              608 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_retrieve_first(struct sctp_ulpq *ulpq)
ulpq              620 net/sctp/ulpqueue.c 	if (skb_queue_empty(&ulpq->reasm))
ulpq              627 net/sctp/ulpqueue.c 	skb_queue_walk(&ulpq->reasm, pos) {
ulpq              667 net/sctp/ulpqueue.c 	retval = sctp_make_reassembled_event(sock_net(ulpq->asoc->base.sk),
ulpq              668 net/sctp/ulpqueue.c 					&ulpq->reasm, first_frag, last_frag);
ulpq              686 net/sctp/ulpqueue.c void sctp_ulpq_reasm_flushtsn(struct sctp_ulpq *ulpq, __u32 fwd_tsn)
ulpq              692 net/sctp/ulpqueue.c 	if (skb_queue_empty(&ulpq->reasm))
ulpq              695 net/sctp/ulpqueue.c 	skb_queue_walk_safe(&ulpq->reasm, pos, tmp) {
ulpq              705 net/sctp/ulpqueue.c 			__skb_unlink(pos, &ulpq->reasm);
ulpq              717 net/sctp/ulpqueue.c static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq)
ulpq              721 net/sctp/ulpqueue.c 	if (skb_queue_empty(&ulpq->reasm))
ulpq              724 net/sctp/ulpqueue.c 	while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) {
ulpq              732 net/sctp/ulpqueue.c 			event = sctp_ulpq_order(ulpq, event);
ulpq              738 net/sctp/ulpqueue.c 			sctp_ulpq_tail_event(ulpq, &temp);
ulpq              746 net/sctp/ulpqueue.c static void sctp_ulpq_retrieve_ordered(struct sctp_ulpq *ulpq,
ulpq              756 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
ulpq              761 net/sctp/ulpqueue.c 	sctp_skb_for_each(pos, &ulpq->lobby, tmp) {
ulpq              780 net/sctp/ulpqueue.c 		__skb_unlink(pos, &ulpq->lobby);
ulpq              788 net/sctp/ulpqueue.c static void sctp_ulpq_store_ordered(struct sctp_ulpq *ulpq,
ulpq              796 net/sctp/ulpqueue.c 	pos = skb_peek_tail(&ulpq->lobby);
ulpq              798 net/sctp/ulpqueue.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              809 net/sctp/ulpqueue.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              814 net/sctp/ulpqueue.c 		__skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
ulpq              821 net/sctp/ulpqueue.c 	skb_queue_walk(&ulpq->lobby, pos) {
ulpq              834 net/sctp/ulpqueue.c 	__skb_queue_before(&ulpq->lobby, pos, sctp_event2skb(event));
ulpq              837 net/sctp/ulpqueue.c static struct sctp_ulpevent *sctp_ulpq_order(struct sctp_ulpq *ulpq,
ulpq              850 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
ulpq              857 net/sctp/ulpqueue.c 		sctp_ulpq_store_ordered(ulpq, event);
ulpq              867 net/sctp/ulpqueue.c 	sctp_ulpq_retrieve_ordered(ulpq, event);
ulpq              875 net/sctp/ulpqueue.c static void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
ulpq              882 net/sctp/ulpqueue.c 	struct sk_buff_head *lobby = &ulpq->lobby;
ulpq              885 net/sctp/ulpqueue.c 	stream = &ulpq->asoc->stream;
ulpq              937 net/sctp/ulpqueue.c 		sctp_ulpq_retrieve_ordered(ulpq, event);
ulpq              938 net/sctp/ulpqueue.c 		sctp_ulpq_tail_event(ulpq, &temp);
ulpq              945 net/sctp/ulpqueue.c void sctp_ulpq_skip(struct sctp_ulpq *ulpq, __u16 sid, __u16 ssn)
ulpq              950 net/sctp/ulpqueue.c 	stream  = &ulpq->asoc->stream;
ulpq              962 net/sctp/ulpqueue.c 	sctp_ulpq_reap_ordered(ulpq, sid);
ulpq              965 net/sctp/ulpqueue.c __u16 sctp_ulpq_renege_list(struct sctp_ulpq *ulpq, struct sk_buff_head *list,
ulpq              974 net/sctp/ulpqueue.c 	tsnmap = &ulpq->asoc->peer.tsn_map;
ulpq             1014 net/sctp/ulpqueue.c static __u16 sctp_ulpq_renege_order(struct sctp_ulpq *ulpq, __u16 needed)
ulpq             1016 net/sctp/ulpqueue.c 	return sctp_ulpq_renege_list(ulpq, &ulpq->lobby, needed);
ulpq             1020 net/sctp/ulpqueue.c static __u16 sctp_ulpq_renege_frags(struct sctp_ulpq *ulpq, __u16 needed)
ulpq             1022 net/sctp/ulpqueue.c 	return sctp_ulpq_renege_list(ulpq, &ulpq->reasm, needed);
ulpq             1026 net/sctp/ulpqueue.c void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
ulpq             1035 net/sctp/ulpqueue.c 	asoc = ulpq->asoc;
ulpq             1041 net/sctp/ulpqueue.c 	if (ulpq->pd_mode)
ulpq             1047 net/sctp/ulpqueue.c 	skb = skb_peek(&asoc->ulpq.reasm);
ulpq             1061 net/sctp/ulpqueue.c 		event = sctp_ulpq_retrieve_first(ulpq);
ulpq             1068 net/sctp/ulpqueue.c 			sctp_ulpq_tail_event(ulpq, &temp);
ulpq             1069 net/sctp/ulpqueue.c 			sctp_ulpq_set_pd(ulpq);
ulpq             1076 net/sctp/ulpqueue.c void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
ulpq             1079 net/sctp/ulpqueue.c 	struct sctp_association *asoc = ulpq->asoc;
ulpq             1087 net/sctp/ulpqueue.c 		freed = sctp_ulpq_renege_order(ulpq, needed);
ulpq             1089 net/sctp/ulpqueue.c 			freed += sctp_ulpq_renege_frags(ulpq, needed - freed);
ulpq             1094 net/sctp/ulpqueue.c 		int retval = sctp_ulpq_tail_data(ulpq, chunk, gfp);
ulpq             1100 net/sctp/ulpqueue.c 			sctp_ulpq_partial_delivery(ulpq, gfp);
ulpq             1102 net/sctp/ulpqueue.c 			sctp_ulpq_reasm_drain(ulpq);
ulpq             1113 net/sctp/ulpqueue.c void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, gfp_t gfp)
ulpq             1119 net/sctp/ulpqueue.c 	if (!ulpq->pd_mode)
ulpq             1122 net/sctp/ulpqueue.c 	sk = ulpq->asoc->base.sk;
ulpq             1124 net/sctp/ulpqueue.c 	if (sctp_ulpevent_type_enabled(ulpq->asoc->subscribe,
ulpq             1126 net/sctp/ulpqueue.c 		ev = sctp_ulpevent_make_pdapi(ulpq->asoc,
ulpq             1133 net/sctp/ulpqueue.c 	if ((sctp_ulpq_clear_pd(ulpq) || ev) && !sp->data_ready_signalled) {