Replace t_force with a t_flag (TF_FORCEDATA).

Submitted by:   Raja Mukerji.
Reviewed by:    Mohan, Silby, Andre Opperman.
This commit is contained in:
Paul Saab 2005-05-21 00:38:29 +00:00
parent bd8fa19da3
commit 2cdbfa66ee
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=146463
4 changed files with 13 additions and 11 deletions

View File

@ -257,7 +257,7 @@ tcp_output(struct tcpcb *tp)
* and timer expired, we will send what we can
* and go to transmit state.
*/
if (tp->t_force) {
if (tp->t_flags & TF_FORCEDATA) {
if (sendwin == 0) {
/*
* If we still have some data to send, then
@ -419,7 +419,7 @@ tcp_output(struct tcpcb *tp)
(tp->t_flags & TF_NOPUSH) == 0) {
goto send;
}
if (tp->t_force) /* typ. timeout case */
if (tp->t_flags & TF_FORCEDATA) /* typ. timeout case */
goto send;
if (len >= tp->max_sndwnd / 2 && tp->max_sndwnd > 0)
goto send;
@ -492,7 +492,7 @@ tcp_output(struct tcpcb *tp)
*
* callout_active(tp->tt_persist)
* is true when we are in persist state.
* tp->t_force
* (tp->t_flags & TF_FORCEDATA)
* is set when we are called to send a persist packet.
* callout_active(tp->tt_rexmt)
* is set when we are retransmitting
@ -725,7 +725,7 @@ tcp_output(struct tcpcb *tp)
* the template for sends on this connection.
*/
if (len) {
if (tp->t_force && len == 1)
if ((tp->t_flags & TF_FORCEDATA) && len == 1)
tcpstat.tcps_sndprobe++;
else if (SEQ_LT(tp->snd_nxt, tp->snd_max)) {
tcpstat.tcps_sndrexmitpack++;
@ -948,7 +948,8 @@ tcp_output(struct tcpcb *tp)
* In transmit state, time the transmission and arrange for
* the retransmit. In persist state, just set snd_max.
*/
if (tp->t_force == 0 || !callout_active(tp->tt_persist)) {
if ((tp->t_flags & TF_FORCEDATA) == 0 ||
!callout_active(tp->tt_persist)) {
tcp_seq startseq = tp->snd_nxt;
/*
@ -1086,7 +1087,8 @@ tcp_output(struct tcpcb *tp)
* We know that the packet was lost, so back out the
* sequence number advance, if any.
*/
if (tp->t_force == 0 || !callout_active(tp->tt_persist)) {
if ((tp->t_flags & TF_FORCEDATA) == 0 ||
!callout_active(tp->tt_persist)) {
/*
* No need to check for TH_FIN here because
* the TF_SENTFIN flag handles that case.

View File

@ -436,9 +436,9 @@ tcp_timer_persist(xtp)
goto out;
}
tcp_setpersist(tp);
tp->t_force = 1;
tp->t_flags |= TF_FORCEDATA;
(void) tcp_output(tp);
tp->t_force = 0;
tp->t_flags &= ~TF_FORCEDATA;
out:
#ifdef TCPDEBUG

View File

@ -742,9 +742,9 @@ tcp_usr_send(struct socket *so, int flags, struct mbuf *m,
INP_INFO_WUNLOCK(&tcbinfo);
unlocked = 1;
tp->snd_up = tp->snd_una + so->so_snd.sb_cc;
tp->t_force = 1;
tp->t_flags |= TF_FORCEDATA;
error = tcp_output(tp);
tp->t_force = 0;
tp->t_flags &= ~TF_FORCEDATA;
}
out:
TCPDEBUG2((flags & PRUS_OOB) ? PRU_SENDOOB :

View File

@ -113,7 +113,7 @@ struct tcpcb {
#define TF_FASTRECOVERY 0x100000 /* in NewReno Fast Recovery */
#define TF_WASFRECOVERY 0x200000 /* was in NewReno Fast Recovery */
#define TF_SIGNATURE 0x400000 /* require MD5 digests (RFC2385) */
int t_force; /* 1 if forcing out a byte */
#define TF_FORCEDATA 0x800000 /* force out a byte */
tcp_seq snd_una; /* send unacknowledged */
tcp_seq snd_max; /* highest sequence number sent;