• Home
  • Raw
  • Download

Lines Matching refs:event

125 				  struct sctp_ulpevent *event)  in sctp_intl_store_reasm()  argument
132 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_intl_store_reasm()
138 if (event->stream == cevent->stream && in sctp_intl_store_reasm()
139 event->mid == cevent->mid && in sctp_intl_store_reasm()
141 (!(event->msg_flags & SCTP_DATA_FIRST_FRAG) && in sctp_intl_store_reasm()
142 event->fsn > cevent->fsn))) { in sctp_intl_store_reasm()
143 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_intl_store_reasm()
147 if ((event->stream == cevent->stream && in sctp_intl_store_reasm()
148 MID_lt(cevent->mid, event->mid)) || in sctp_intl_store_reasm()
149 event->stream > cevent->stream) { in sctp_intl_store_reasm()
150 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_intl_store_reasm()
158 if (event->stream < cevent->stream || in sctp_intl_store_reasm()
159 (event->stream == cevent->stream && in sctp_intl_store_reasm()
160 MID_lt(event->mid, cevent->mid))) { in sctp_intl_store_reasm()
164 if (event->stream == cevent->stream && in sctp_intl_store_reasm()
165 event->mid == cevent->mid && in sctp_intl_store_reasm()
167 (event->msg_flags & SCTP_DATA_FIRST_FRAG || in sctp_intl_store_reasm()
168 event->fsn < cevent->fsn)) { in sctp_intl_store_reasm()
175 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_intl_store_reasm()
177 __skb_queue_before(&ulpq->reasm, loc, sctp_event2skb(event)); in sctp_intl_store_reasm()
182 struct sctp_ulpevent *event) in sctp_intl_retrieve_partial() argument
192 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_partial()
197 if (cevent->stream < event->stream) in sctp_intl_retrieve_partial()
200 if (cevent->stream > event->stream || in sctp_intl_retrieve_partial()
260 struct sctp_ulpevent *event) in sctp_intl_retrieve_reassembled() argument
273 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_reassembled()
278 if (cevent->stream < event->stream) in sctp_intl_retrieve_reassembled()
280 if (cevent->stream > event->stream) in sctp_intl_retrieve_reassembled()
283 if (MID_lt(cevent->mid, event->mid)) in sctp_intl_retrieve_reassembled()
285 if (MID_lt(event->mid, cevent->mid)) in sctp_intl_retrieve_reassembled()
351 struct sctp_ulpevent *event) in sctp_intl_reasm() argument
356 if (SCTP_DATA_NOT_FRAG == (event->msg_flags & SCTP_DATA_FRAG_MASK)) { in sctp_intl_reasm()
357 event->msg_flags |= MSG_EOR; in sctp_intl_reasm()
358 return event; in sctp_intl_reasm()
361 sctp_intl_store_reasm(ulpq, event); in sctp_intl_reasm()
363 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_reasm()
364 if (sin->pd_mode && event->mid == sin->mid && in sctp_intl_reasm()
365 event->fsn == sin->fsn) in sctp_intl_reasm()
366 retval = sctp_intl_retrieve_partial(ulpq, event); in sctp_intl_reasm()
369 retval = sctp_intl_retrieve_reassembled(ulpq, event); in sctp_intl_reasm()
375 struct sctp_ulpevent *event) in sctp_intl_store_ordered() argument
382 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_intl_store_ordered()
387 if (event->stream == cevent->stream && in sctp_intl_store_ordered()
388 MID_lt(cevent->mid, event->mid)) { in sctp_intl_store_ordered()
389 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_intl_store_ordered()
393 if (event->stream > cevent->stream) { in sctp_intl_store_ordered()
394 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_intl_store_ordered()
402 if (cevent->stream > event->stream) { in sctp_intl_store_ordered()
406 if (cevent->stream == event->stream && in sctp_intl_store_ordered()
407 MID_lt(event->mid, cevent->mid)) { in sctp_intl_store_ordered()
414 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_intl_store_ordered()
416 __skb_queue_before(&ulpq->lobby, loc, sctp_event2skb(event)); in sctp_intl_store_ordered()
420 struct sctp_ulpevent *event) in sctp_intl_retrieve_ordered() argument
425 __u16 sid = event->stream; in sctp_intl_retrieve_ordered()
428 event_list = (struct sk_buff_head *)sctp_event2skb(event)->prev; in sctp_intl_retrieve_ordered()
451 struct sctp_ulpevent *event) in sctp_intl_order() argument
457 sid = event->stream; in sctp_intl_order()
459 if (event->mid != sctp_mid_peek(stream, in, sid)) { in sctp_intl_order()
460 sctp_intl_store_ordered(ulpq, event); in sctp_intl_order()
466 sctp_intl_retrieve_ordered(ulpq, event); in sctp_intl_order()
468 return event; in sctp_intl_order()
476 struct sctp_ulpevent *event; in sctp_enqueue_event() local
480 event = sctp_skb2event(skb); in sctp_enqueue_event()
484 !sctp_ulpevent_is_notification(event))) in sctp_enqueue_event()
487 if (!sctp_ulpevent_is_notification(event)) { in sctp_enqueue_event()
492 if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe)) in sctp_enqueue_event()
512 sctp_ulpevent_free(event); in sctp_enqueue_event()
518 struct sctp_ulpevent *event) in sctp_intl_store_reasm_uo() argument
525 __skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event)); in sctp_intl_store_reasm_uo()
531 if (event->stream == cevent->stream && in sctp_intl_store_reasm_uo()
532 event->mid == cevent->mid && in sctp_intl_store_reasm_uo()
534 (!(event->msg_flags & SCTP_DATA_FIRST_FRAG) && in sctp_intl_store_reasm_uo()
535 event->fsn > cevent->fsn))) { in sctp_intl_store_reasm_uo()
536 __skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event)); in sctp_intl_store_reasm_uo()
540 if ((event->stream == cevent->stream && in sctp_intl_store_reasm_uo()
541 MID_lt(cevent->mid, event->mid)) || in sctp_intl_store_reasm_uo()
542 event->stream > cevent->stream) { in sctp_intl_store_reasm_uo()
543 __skb_queue_tail(&ulpq->reasm_uo, sctp_event2skb(event)); in sctp_intl_store_reasm_uo()
550 if (event->stream < cevent->stream || in sctp_intl_store_reasm_uo()
551 (event->stream == cevent->stream && in sctp_intl_store_reasm_uo()
552 MID_lt(event->mid, cevent->mid))) in sctp_intl_store_reasm_uo()
555 if (event->stream == cevent->stream && in sctp_intl_store_reasm_uo()
556 event->mid == cevent->mid && in sctp_intl_store_reasm_uo()
558 (event->msg_flags & SCTP_DATA_FIRST_FRAG || in sctp_intl_store_reasm_uo()
559 event->fsn < cevent->fsn)) in sctp_intl_store_reasm_uo()
563 __skb_queue_before(&ulpq->reasm_uo, pos, sctp_event2skb(event)); in sctp_intl_store_reasm_uo()
568 struct sctp_ulpevent *event) in sctp_intl_retrieve_partial_uo() argument
578 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_partial_uo()
583 if (cevent->stream < event->stream) in sctp_intl_retrieve_partial_uo()
585 if (cevent->stream > event->stream) in sctp_intl_retrieve_partial_uo()
649 struct sctp_ulpevent *event) in sctp_intl_retrieve_reassembled_uo() argument
662 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_retrieve_reassembled_uo()
667 if (cevent->stream < event->stream) in sctp_intl_retrieve_reassembled_uo()
669 if (cevent->stream > event->stream) in sctp_intl_retrieve_reassembled_uo()
672 if (MID_lt(cevent->mid, event->mid)) in sctp_intl_retrieve_reassembled_uo()
674 if (MID_lt(event->mid, cevent->mid)) in sctp_intl_retrieve_reassembled_uo()
741 struct sctp_ulpevent *event) in sctp_intl_reasm_uo() argument
746 if (SCTP_DATA_NOT_FRAG == (event->msg_flags & SCTP_DATA_FRAG_MASK)) { in sctp_intl_reasm_uo()
747 event->msg_flags |= MSG_EOR; in sctp_intl_reasm_uo()
748 return event; in sctp_intl_reasm_uo()
751 sctp_intl_store_reasm_uo(ulpq, event); in sctp_intl_reasm_uo()
753 sin = sctp_stream_in(&ulpq->asoc->stream, event->stream); in sctp_intl_reasm_uo()
754 if (sin->pd_mode_uo && event->mid == sin->mid_uo && in sctp_intl_reasm_uo()
755 event->fsn == sin->fsn_uo) in sctp_intl_reasm_uo()
756 retval = sctp_intl_retrieve_partial_uo(ulpq, event); in sctp_intl_reasm_uo()
759 retval = sctp_intl_retrieve_reassembled_uo(ulpq, event); in sctp_intl_reasm_uo()
831 struct sctp_ulpevent *event; in sctp_ulpevent_idata() local
835 event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp); in sctp_ulpevent_idata()
836 if (!event) in sctp_ulpevent_idata()
839 event->mid = ntohl(chunk->subh.idata_hdr->mid); in sctp_ulpevent_idata()
840 if (event->msg_flags & SCTP_DATA_FIRST_FRAG) in sctp_ulpevent_idata()
841 event->ppid = chunk->subh.idata_hdr->ppid; in sctp_ulpevent_idata()
843 event->fsn = ntohl(chunk->subh.idata_hdr->fsn); in sctp_ulpevent_idata()
845 if (!(event->msg_flags & SCTP_DATA_UNORDERED)) { in sctp_ulpevent_idata()
846 event = sctp_intl_reasm(ulpq, event); in sctp_ulpevent_idata()
847 if (event) { in sctp_ulpevent_idata()
849 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpevent_idata()
851 if (event->msg_flags & MSG_EOR) in sctp_ulpevent_idata()
852 event = sctp_intl_order(ulpq, event); in sctp_ulpevent_idata()
855 event = sctp_intl_reasm_uo(ulpq, event); in sctp_ulpevent_idata()
856 if (event) { in sctp_ulpevent_idata()
858 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpevent_idata()
862 if (event) { in sctp_ulpevent_idata()
863 event_eor = (event->msg_flags & MSG_EOR) ? 1 : 0; in sctp_ulpevent_idata()
937 struct sctp_ulpevent *event; in sctp_intl_start_pd() local
942 event = sctp_intl_retrieve_first(ulpq); in sctp_intl_start_pd()
943 if (event) { in sctp_intl_start_pd()
945 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_intl_start_pd()
948 } while (event); in sctp_intl_start_pd()
953 event = sctp_intl_retrieve_first_uo(ulpq); in sctp_intl_start_pd()
954 if (event) { in sctp_intl_start_pd()
956 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_intl_start_pd()
959 } while (event); in sctp_intl_start_pd()
1016 struct sctp_ulpevent *cevent, *event = NULL; in sctp_intl_reap_ordered() local
1039 if (!event) in sctp_intl_reap_ordered()
1040 event = sctp_skb2event(pos); in sctp_intl_reap_ordered()
1045 if (!event && pos != (struct sk_buff *)lobby) { in sctp_intl_reap_ordered()
1054 event = sctp_skb2event(pos); in sctp_intl_reap_ordered()
1058 if (event) { in sctp_intl_reap_ordered()
1059 sctp_intl_retrieve_ordered(ulpq, event); in sctp_intl_reap_ordered()
1221 struct sctp_ulpevent *event = sctp_skb2event(pos); in sctp_intl_reasm_flushtsn() local
1222 __u32 tsn = event->tsn; in sctp_intl_reasm_flushtsn()
1226 sctp_ulpevent_free(event); in sctp_intl_reasm_flushtsn()
1231 struct sctp_ulpevent *event = sctp_skb2event(pos); in sctp_intl_reasm_flushtsn() local
1232 __u32 tsn = event->tsn; in sctp_intl_reasm_flushtsn()
1236 sctp_ulpevent_free(event); in sctp_intl_reasm_flushtsn()
1299 static int do_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event) in do_ulpq_tail_event() argument
1304 __skb_queue_tail(&temp, sctp_event2skb(event)); in do_ulpq_tail_event()
1328 struct sctp_ulpevent *event) in do_sctp_enqueue_event() argument
1333 __skb_queue_tail(&temp, sctp_event2skb(event)); in do_sctp_enqueue_event()