sctp: Tag messages that can be Nagle delayed at creation.
When we create the sctp_datamsg and fragment the user data, we know exactly if we are sending full segments or not and how they might be bundled. During this time, we can mark messages a Nagle capable or not. This makes the check at transmit time much simpler. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
@@ -58,9 +58,9 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg)
|
||||
msg->send_failed = 0;
|
||||
msg->send_error = 0;
|
||||
msg->can_abandon = 0;
|
||||
msg->can_delay = 1;
|
||||
msg->expires_at = 0;
|
||||
INIT_LIST_HEAD(&msg->chunks);
|
||||
msg->msg_size = 0;
|
||||
}
|
||||
|
||||
/* Allocate and initialize datamsg. */
|
||||
@@ -157,7 +157,6 @@ static void sctp_datamsg_assign(struct sctp_datamsg *msg, struct sctp_chunk *chu
|
||||
{
|
||||
sctp_datamsg_hold(msg);
|
||||
chunk->msg = msg;
|
||||
msg->msg_size += chunk->skb->len;
|
||||
}
|
||||
|
||||
|
||||
@@ -247,6 +246,7 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc,
|
||||
if (msg_len >= first_len) {
|
||||
msg_len -= first_len;
|
||||
whole = 1;
|
||||
msg->can_delay = 0;
|
||||
}
|
||||
|
||||
/* How many full sized? How many bytes leftover? */
|
||||
|
Reference in New Issue
Block a user