mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sctp: implement event notification SCTP_SENDER_DRY_EVENT
This patch implement event notification SCTP_SENDER_DRY_EVENT. SCTP Socket API Extensions: 6.1.9. SCTP_SENDER_DRY_EVENT When the SCTP stack has no more user data to send or retransmit, this notification is given to the user. Also, at the time when a user app subscribes to this event, if there is no data to be sent or retransmit, the stack will immediately send up this notification. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ee916fd0fd
commit
e1cdd553d4
6 changed files with 74 additions and 1 deletions
|
@ -862,6 +862,34 @@ fail:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Socket Extensions for SCTP
|
||||
* 6.3.10. SCTP_SENDER_DRY_EVENT
|
||||
*/
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_sender_dry_event(
|
||||
const struct sctp_association *asoc, gfp_t gfp)
|
||||
{
|
||||
struct sctp_ulpevent *event;
|
||||
struct sctp_sender_dry_event *sdry;
|
||||
struct sk_buff *skb;
|
||||
|
||||
event = sctp_ulpevent_new(sizeof(struct sctp_sender_dry_event),
|
||||
MSG_NOTIFICATION, gfp);
|
||||
if (!event)
|
||||
return NULL;
|
||||
|
||||
skb = sctp_event2skb(event);
|
||||
sdry = (struct sctp_sender_dry_event *)
|
||||
skb_put(skb, sizeof(struct sctp_sender_dry_event));
|
||||
|
||||
sdry->sender_dry_type = SCTP_SENDER_DRY_EVENT;
|
||||
sdry->sender_dry_flags = 0;
|
||||
sdry->sender_dry_length = sizeof(struct sctp_sender_dry_event);
|
||||
sctp_ulpevent_set_owner(event, asoc);
|
||||
sdry->sender_dry_assoc_id = sctp_assoc2id(asoc);
|
||||
|
||||
return event;
|
||||
}
|
||||
|
||||
/* Return the notification type, assuming this is a notification
|
||||
* event.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue