TH_FIN
if (tc->th_flags & (TH_FIN | TH_RST))
if (tc->th_flags & (TH_FIN | TH_RST))
{ "fin", TH_FIN },
#define IPV6_FW_TCPF_FIN TH_FIN
if ((s->st_state & ((TH_FIN | TH_ACK) << 8)) ==
(TH_FIN << 8) && s->st_ack_fwd == s->st_seq_rev + 1)
if ((s->st_state & (TH_FIN | TH_ACK)) == TH_FIN &&
case BOTH_SYN | TH_FIN: /* one side tries to close */
case BOTH_SYN | (TH_FIN << 8):
#define IPFW_STATE_TCPFLAGS (TH_SYN | TH_FIN | TH_RST)
#define BOTH_FIN (TH_FIN | (TH_FIN << 8))
if (f & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (flags & TH_FIN)
flags &= ~TH_FIN;
if ((flags & TH_FIN) || (flags & TH_PUSH) || (flags & TH_URG))
if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
if (tcp_flags & TH_FIN || tcp_flags & TH_RST || AGED(fle) ||
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
TH_FIN|TH_ACK, /* 7, FIN_WAIT_1 */
TH_FIN|TH_ACK, /* 8, CLOSING */
TH_FIN|TH_ACK, /* 9, LAST_ACK */
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK &&
thflags &= ~TH_FIN;
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK&&
(todrop == tlen && !(thflags & TH_FIN))) {
thflags &= ~TH_FIN;
thflags &= ~(TH_PUSH | TH_FIN);
+ ((thflags & TH_FIN) != 0)))) {
if (tlen == 0 && !(thflags & TH_FIN))
((thflags & TH_FIN) && !(tp->t_flags & TF_SAWFIN)))
if ((thflags & TH_FIN) && !(tp->t_flags & TF_QUEDFIN)) {
if ((tlen || (thflags & TH_FIN)) && !TCPS_HAVERCVDFIN(tp->t_state)) {
if (thflags & TH_FIN)
if (thflags & TH_FIN)
thflags = th->th_flags & TH_FIN;
thflags &= ~TH_FIN;
if (thflags & TH_FIN) {
if (last->tqe_th->th_flags & TH_FIN) {
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
p->tqe_th->th_flags |= TH_FIN;
if (q->tqe_th->th_flags & TH_FIN)
th->th_flags |= TH_FIN;
if (q->tqe_th->th_flags & TH_FIN)
te->tqe_th->th_flags |= TH_FIN;
if (te->tqe_th->th_flags & TH_FIN)
p->tqe_th->th_flags |= TH_FIN;
flags = q->tqe_th->th_flags & TH_FIN;
if (drop_synfin && (thflags & (TH_SYN | TH_FIN)) == (TH_SYN | TH_FIN))
if (flags & (TH_SYN | TH_FIN)) {
if (flags & TH_FIN) {
if (flags & TH_FIN) {
KASSERT((len == 0 && (flags & (TH_SYN | TH_FIN)) == 0) ||
flags |= TH_FIN;
flags &= ~TH_FIN;
flags &= ~TH_FIN;
if ((flags & TH_FIN) && (tp->t_flags & TF_SENTFIN) &&
flags &= ~TH_FIN;
if ((flags & TH_FIN) &&
flags &= ~TH_FIN;
else if (flags & (TH_SYN | TH_FIN | TH_RST))
if (tcp_prio_synack && (flags & (TH_FIN | TH_RST)) == 0)
if (flags & TH_FIN && tp->t_flags & TF_SENTFIN &&
if (len || (flags & (TH_SYN|TH_FIN)) ||
if (te->tqe_th->th_flags & TH_FIN)
((len) + (((thflags) & TH_FIN) != 0))
finrst = (th->th_flags & (TH_FIN|TH_RST));
for (mask = TH_FIN; mask != 0x40; mask <<= 1) {
if ((th->th_flags & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) != TH_ACK) {
pf(TH_FIN, "FIN");