Lines Matching refs:event
75 struct sctp_ulpevent *event; in sctp_ulpq_flush() local
78 event = sctp_skb2event(skb); in sctp_ulpq_flush()
79 sctp_ulpevent_free(event); in sctp_ulpq_flush()
83 event = sctp_skb2event(skb); in sctp_ulpq_flush()
84 sctp_ulpevent_free(event); in sctp_ulpq_flush()
88 event = sctp_skb2event(skb); in sctp_ulpq_flush()
89 sctp_ulpevent_free(event); in sctp_ulpq_flush()
104 struct sctp_ulpevent *event; in sctp_ulpq_tail_data() local
108 event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp); in sctp_ulpq_tail_data()
109 if (!event) in sctp_ulpq_tail_data()
112 event->ssn = ntohs(chunk->subh.data_hdr->ssn); in sctp_ulpq_tail_data()
113 event->ppid = chunk->subh.data_hdr->ppid; in sctp_ulpq_tail_data()
116 event = sctp_ulpq_reasm(ulpq, event); in sctp_ulpq_tail_data()
119 if ((event) && (event->msg_flags & MSG_EOR)) { in sctp_ulpq_tail_data()
122 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpq_tail_data()
124 event = sctp_ulpq_order(ulpq, event); in sctp_ulpq_tail_data()
130 if (event) { in sctp_ulpq_tail_data()
131 event_eor = (event->msg_flags & MSG_EOR) ? 1 : 0; in sctp_ulpq_tail_data()
132 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_tail_data()
163 struct sctp_ulpevent *event; in sctp_clear_pd() local
166 event = sctp_skb2event(skb); in sctp_clear_pd()
167 if (event->asoc == asoc) { in sctp_clear_pd()
199 int sctp_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event) in sctp_ulpq_tail_event() argument
204 struct sk_buff *skb = sctp_event2skb(event); in sctp_ulpq_tail_event()
214 !sctp_ulpevent_is_notification(event))) in sctp_ulpq_tail_event()
217 if (!sctp_ulpevent_is_notification(event)) { in sctp_ulpq_tail_event()
222 if (!sctp_ulpevent_is_enabled(event, &sp->subscribe)) in sctp_ulpq_tail_event()
239 if ((event->msg_flags & MSG_NOTIFICATION) || in sctp_ulpq_tail_event()
241 (event->msg_flags & SCTP_DATA_FRAG_MASK))) in sctp_ulpq_tail_event()
244 clear_pd = event->msg_flags & MSG_EOR; in sctp_ulpq_tail_event()
286 sctp_ulpevent_free(event); in sctp_ulpq_tail_event()
295 struct sctp_ulpevent *event) in sctp_ulpq_store_reasm() argument
301 tsn = event->tsn; in sctp_ulpq_store_reasm()
306 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
314 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
328 __skb_queue_before(&ulpq->reasm, pos, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
346 struct sctp_ulpevent *event; in sctp_make_reassembled_event() local
410 event = sctp_skb2event(f_frag); in sctp_make_reassembled_event()
413 return event; in sctp_make_reassembled_event()
600 struct sctp_ulpevent *event) in sctp_ulpq_reasm() argument
605 if (SCTP_DATA_NOT_FRAG == (event->msg_flags & SCTP_DATA_FRAG_MASK)) { in sctp_ulpq_reasm()
606 event->msg_flags |= MSG_EOR; in sctp_ulpq_reasm()
607 return event; in sctp_ulpq_reasm()
610 sctp_ulpq_store_reasm(ulpq, event); in sctp_ulpq_reasm()
619 ctsn = event->tsn; in sctp_ulpq_reasm()
710 struct sctp_ulpevent *event; in sctp_ulpq_reasm_flushtsn() local
717 event = sctp_skb2event(pos); in sctp_ulpq_reasm_flushtsn()
718 tsn = event->tsn; in sctp_ulpq_reasm_flushtsn()
727 sctp_ulpevent_free(event); in sctp_ulpq_reasm_flushtsn()
740 struct sctp_ulpevent *event = NULL; in sctp_ulpq_reasm_drain() local
746 while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) { in sctp_ulpq_reasm_drain()
748 if ((event) && (event->msg_flags & MSG_EOR)) { in sctp_ulpq_reasm_drain()
750 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpq_reasm_drain()
752 event = sctp_ulpq_order(ulpq, event); in sctp_ulpq_reasm_drain()
758 if (event) in sctp_ulpq_reasm_drain()
759 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_reasm_drain()
768 struct sctp_ulpevent *event) in sctp_ulpq_retrieve_ordered() argument
776 sid = event->stream; in sctp_ulpq_retrieve_ordered()
779 event_list = (struct sk_buff_head *) sctp_event2skb(event)->prev; in sctp_ulpq_retrieve_ordered()
810 struct sctp_ulpevent *event) in sctp_ulpq_store_ordered() argument
819 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
823 sid = event->stream; in sctp_ulpq_store_ordered()
824 ssn = event->ssn; in sctp_ulpq_store_ordered()
830 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
835 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
855 __skb_queue_before(&ulpq->lobby, pos, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
859 struct sctp_ulpevent *event) in sctp_ulpq_order() argument
865 if (event->msg_flags & SCTP_DATA_UNORDERED) in sctp_ulpq_order()
866 return event; in sctp_ulpq_order()
869 sid = event->stream; in sctp_ulpq_order()
870 ssn = event->ssn; in sctp_ulpq_order()
878 sctp_ulpq_store_ordered(ulpq, event); in sctp_ulpq_order()
888 sctp_ulpq_retrieve_ordered(ulpq, event); in sctp_ulpq_order()
890 return event; in sctp_ulpq_order()
900 struct sctp_ulpevent *event; in sctp_ulpq_reap_ordered() local
910 event = NULL; in sctp_ulpq_reap_ordered()
929 if (!event) in sctp_ulpq_reap_ordered()
931 event = sctp_skb2event(pos); in sctp_ulpq_reap_ordered()
940 if (event == NULL && pos != (struct sk_buff *)lobby) { in sctp_ulpq_reap_ordered()
949 event = sctp_skb2event(pos); in sctp_ulpq_reap_ordered()
956 if (event) { in sctp_ulpq_reap_ordered()
958 sctp_ulpq_retrieve_ordered(ulpq, event); in sctp_ulpq_reap_ordered()
959 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_reap_ordered()
992 struct sctp_ulpevent *event; in sctp_ulpq_renege_list() local
998 event = sctp_skb2event(skb); in sctp_ulpq_renege_list()
999 tsn = event->tsn; in sctp_ulpq_renege_list()
1022 sctp_ulpevent_free(event); in sctp_ulpq_renege_list()
1050 struct sctp_ulpevent *event; in sctp_ulpq_partial_delivery() local
1082 event = sctp_ulpq_retrieve_first(ulpq); in sctp_ulpq_partial_delivery()
1084 if (event) { in sctp_ulpq_partial_delivery()
1085 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_partial_delivery()