Lines Matching refs:event
60 struct sctp_ulpevent *event;
63 event = sctp_skb2event(skb);
64 sctp_ulpevent_free(event);
68 event = sctp_skb2event(skb);
69 sctp_ulpevent_free(event);
73 event = sctp_skb2event(skb);
74 sctp_ulpevent_free(event);
89 struct sctp_ulpevent *event;
92 /* Create an event from the incoming chunk. */
93 event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp);
94 if (!event)
97 event->ssn = ntohs(chunk->subh.data_hdr->ssn);
98 event->ppid = chunk->subh.data_hdr->ppid;
101 event = sctp_ulpq_reasm(ulpq, event);
104 if (event) {
107 __skb_queue_tail(&temp, sctp_event2skb(event));
109 if (event->msg_flags & MSG_EOR)
110 event = sctp_ulpq_order(ulpq, event);
113 /* Send event to the ULP. 'event' is the sctp_ulpevent for
116 if (event) {
117 event_eor = (event->msg_flags & MSG_EOR) ? 1 : 0;
124 /* Add a new event for propagation to the ULP. */
149 struct sctp_ulpevent *event;
152 event = sctp_skb2event(skb);
153 if (event->asoc == asoc) {
186 struct sctp_ulpevent *event;
192 event = sctp_skb2event(skb);
199 !sctp_ulpevent_is_notification(event)))
202 if (!sctp_ulpevent_is_notification(event)) {
206 /* Check if the user wishes to receive this event. */
207 if (!sctp_ulpevent_is_enabled(event, ulpq->asoc->subscribe))
224 if ((event->msg_flags & MSG_NOTIFICATION) ||
226 (event->msg_flags & SCTP_DATA_FRAG_MASK)))
229 clear_pd = event->msg_flags & MSG_EOR;
265 sctp_ulpevent_free(event);
274 struct sctp_ulpevent *event)
280 tsn = event->tsn;
285 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
293 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event));
307 __skb_queue_before(&ulpq->reasm, pos, sctp_event2skb(event));
311 /* Helper function to return an event corresponding to the reassembled
325 struct sctp_ulpevent *event;
389 event = sctp_skb2event(f_frag);
392 return event;
397 * missing fragment in a SCTP datagram and return the corresponding event.
561 /* We have the reassembled event. There is no need to look
578 struct sctp_ulpevent *event)
583 if (SCTP_DATA_NOT_FRAG == (event->msg_flags & SCTP_DATA_FRAG_MASK)) {
584 event->msg_flags |= MSG_EOR;
585 return event;
588 sctp_ulpq_store_reasm(ulpq, event);
597 ctsn = event->tsn;
662 /* We have the reassembled event. There is no need to look
681 * In the event that the receiver has invoked the partial delivery API,
688 struct sctp_ulpevent *event;
695 event = sctp_skb2event(pos);
696 tsn = event->tsn;
705 sctp_ulpevent_free(event);
718 struct sctp_ulpevent *event = NULL;
723 while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) {
727 __skb_queue_tail(&temp, sctp_event2skb(event));
730 if (event->msg_flags & MSG_EOR)
731 event = sctp_ulpq_order(ulpq, event);
733 /* Send event to the ULP. 'event' is the
736 if (event)
746 struct sctp_ulpevent *event)
754 sid = event->stream;
757 event_list = (struct sk_buff_head *) sctp_event2skb(event)->prev;
781 /* Attach all gathered skbs to the event. */
788 struct sctp_ulpevent *event)
797 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
801 sid = event->stream;
802 ssn = event->ssn;
808 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
813 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event));
833 __skb_queue_before(&ulpq->lobby, pos, sctp_event2skb(event));
837 struct sctp_ulpevent *event)
843 if (event->msg_flags & SCTP_DATA_UNORDERED)
844 return event;
847 sid = event->stream;
848 ssn = event->ssn;
856 sctp_ulpq_store_ordered(ulpq, event);
866 sctp_ulpq_retrieve_ordered(ulpq, event);
868 return event;
878 struct sctp_ulpevent *event;
888 event = NULL;
907 if (!event)
909 event = sctp_skb2event(pos);
911 /* Attach all gathered skbs to the event. */
918 if (event == NULL && pos != (struct sk_buff *)lobby) {
927 event = sctp_skb2event(pos);
931 /* Send event to the ULP. 'event' is the sctp_ulpevent for
934 if (event) {
936 sctp_ulpq_retrieve_ordered(ulpq, event);
970 struct sctp_ulpevent *event;
976 event = sctp_skb2event(skb);
977 tsn = event->tsn;
998 /* Unlink the event, then renege all applicable TSNs. */
1000 sctp_ulpevent_free(event);
1028 struct sctp_ulpevent *event;
1060 event = sctp_ulpq_retrieve_first(ulpq);
1061 /* Send event to the ULP. */
1062 if (event) {
1066 __skb_queue_tail(&temp, sctp_event2skb(event));