TH_ACK
static int flagv[] = { TH_ACK, TH_SYN, TH_URG, TH_RST, TH_PUSH,
{ TH_ACK, 'A' },
__tcp_set_flags(tcp, __tcp_get_flags(tcp) | TH_ACK);
__tcp_set_flags(t, TH_ACK|TH_URG);
__tcp_set_flags(t, TH_ACK);
__tcp_set_flags(t, TH_ACK);
uint16_t flags[] = { TH_FIN, TH_SYN, TH_RST, TH_PUSH, TH_ACK, TH_URG,
TH_ACK, TH_URG, TH_ECN, TH_CWR, TH_AE };
if (tcpflags & TH_ACK)
{ "ack", TH_ACK },
if (list == f_tcpflags && set == TH_SYN && clear == TH_ACK) {
(TH_SYN) | ( (TH_ACK) & 0xff) <<8 );
tcp_set_flags(th, TH_ACK);
if (tcp_get_flags(tcph) & TH_ACK)
} else if (tcp_get_flags(tcph) & TH_ACK) {
if (!(tcp_get_flags(tcph) & TH_SYN) || tcp_get_flags(tcph) & TH_ACK)
tcp_set_flags(tcph, tcp_get_flags(tcph) | TH_ACK);
tcp_set_flags(tcph, tcp_get_flags(tcph) | TH_ACK);
tcp_set_flags(th, tcp_get_flags(th) | TH_ACK);
tcp_set_flags(tcp, TH_ACK | TH_PUSH);
if ((tcp_get_flags(th) & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG|TH_ECE|TH_CWR|TH_AE)
if (thflags & TH_ACK)
TH_RST|TH_ACK, /* 0, CLOSED */
TH_SYN|TH_ACK, /* 3, SYN_RECEIVED */
TH_ACK, /* 4, ESTABLISHED */
TH_ACK, /* 5, CLOSE_WAIT */
TH_FIN|TH_ACK, /* 6, FIN_WAIT_1 */
TH_FIN|TH_ACK, /* 7, CLOSING */
TH_FIN|TH_ACK, /* 8, LAST_ACK */
TH_ACK, /* 9, FIN_WAIT_2 */
TH_ACK, /* 10, TIME_WAIT */
if ((thflags & (TH_RST|TH_ACK|TH_SYN)) == TH_ACK) {
if (thflags & TH_ACK) {
KASSERT((thflags & (TH_RST|TH_ACK)) == 0,
if ((tp->t_state == TCPS_SYN_SENT) && (thflags & TH_ACK) &&
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK &&
if ((thflags & TH_ACK) &&
if ((thflags & (TH_SYN|TH_ACK)) == (TH_SYN|TH_ACK)) {
} else if (!(thflags & (TH_ACK|TH_FIN|TH_RST))) {
if ((thflags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) {
if (thflags & TH_ACK) {
if (thflags & TH_ACK)
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) &&
if (tp->t_state == TCPS_SYN_RECEIVED && (thflags & TH_ACK) &&
if (tcp_get_flags(th) & TH_ACK) {
(tcp_seq)0, TH_RST|TH_ACK);
((thflags & (TH_ACK|TH_SYN)) == TH_SYN ?
if (flags & TH_ACK) {
if (flags & TH_ACK) {
if ((tcp_get_flags(th) & ~(TH_ACK | TH_PUSH)) != 0) {
if ((tcp_get_flags(th) & ~(TH_ACK | TH_PUSH)) != 0) {
((tcp_get_flags(th) & TH_ACK) !=
(le->flags & TH_ACK)) ||
if ((tcp_get_flags(th) & ~(TH_ACK | TH_PUSH | TH_ECE | TH_CWR)) != 0)
if (!(tcp_get_flags(th) & TH_ACK))
if (thflags & TH_ACK) {
if ((tp->t_state == TCPS_SYN_SENT) && (thflags & TH_ACK) &&
if ((thflags & TH_ACK) &&
} else if (thflags & TH_ACK) {
if ((thflags & TH_ACK) &&
if ((thflags & (TH_ACK | TH_RST)) == (TH_ACK | TH_RST)) {
if (thflags & TH_ACK) {
if (thflags & TH_ACK) {
if ((thflags & TH_ACK) &&
if ((thflags & (TH_SYN | TH_ACK)) == (TH_SYN | TH_ACK)) {
} else if (!(thflags & (TH_ACK | TH_FIN | TH_RST))) {
if ((thflags & TH_ACK) == 0) {
if (thflags & TH_ACK)
__predict_true((thflags & (TH_SYN | TH_FIN | TH_RST | TH_URG | TH_ACK)) == TH_ACK) &&
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) &&
} else if (thflags & TH_ACK) {
if ((thflags & TH_ACK) &&
if ((thflags & (TH_ACK | TH_RST)) == (TH_ACK | TH_RST)) {
if (thflags & TH_ACK) {
if (thflags & TH_ACK) {
if ((thflags & TH_ACK) &&
if ((thflags & (TH_SYN | TH_ACK)) == (TH_SYN | TH_ACK)) {
} else if (!(thflags & (TH_ACK | TH_FIN | TH_RST))) {
if ((thflags & TH_ACK) == 0) {
__predict_true((thflags & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) == TH_ACK) &&
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if ((thflags & TH_ACK) == 0) {
if (thflags & TH_ACK)
if (thflags & TH_ACK) {
if (thflags & TH_ACK)
if ((tp->t_state == TCPS_SYN_SENT) && (thflags & TH_ACK) &&
(flags & TH_ACK) &&
if (tp->t_state == TCPS_SYN_RECEIVED && (thflags & TH_ACK) &&
tp->snd_nxt, TH_ACK);
flags = TH_ACK;
KASSERT((thflags & (TH_ACK|TH_SYN)) == TH_SYN &&
if (flags & TH_ACK)
tp->snd_nxt, TH_ACK);
KASSERT((tcp_get_flags(th) & (TH_RST|TH_ACK|TH_SYN)) == TH_ACK,
KASSERT((tcp_get_flags(th) & (TH_RST|TH_ACK|TH_SYN)) == TH_SYN,
if (syncache_respond(sc, TH_SYN|TH_ACK) == 0) {
if (syncache_respond(sc, TH_SYN|TH_ACK) == 0) {
if (syncache_respond(sc, TH_ACK) == 0) {
if (syncache_respond(sc, TH_SYN|TH_ACK) == 0) {
if ((thflags & (TH_SYN | TH_ACK)) == TH_SYN)
if ((thflags & TH_ACK) == 0)
if (((thflags & (TH_SYN | TH_ACK)) == TH_SYN) &&
if (tcp_get_flags(th) & TH_ACK) {
th->th_seq+tlen, (tcp_seq)0, TH_RST|TH_ACK);
if ((thflags & TH_ACK) == 0)
tp->snd_nxt, TH_ACK);
((flags & (TH_RST|TH_ACK)) == TH_RST)) {
} else if (!(flags & TH_ACK)) {
#ifndef TH_ACK
#define TH_ACKMASK (TH_FIN|TH_SYN|TH_RST|TH_ACK)
if (tcp_get_flags(tcp) & TH_ACK) {
tcp_set_flags(tcp2, TH_RST|TH_ACK);
if ((tcp_get_flags(tcp) & ~(TH_FIN|TH_ACK|TH_ECNALL)) ==
if (flags == (TH_SYN|TH_ACK)) {
if (!(tcpflags & TH_ACK)) { /* Pretend an ack was sent */
} else if (((tcpflags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) &&
} else if ((seq == 0) && (tcpflags == (TH_RST|TH_ACK)) &&
((tcpflags & TH_ACKMASK) == TH_ACK)) {
} else if ((tcpflags & (TH_SYN|TH_FIN|TH_ACK)) ==
TH_ACK) {
if ((tcpflags & (TH_SYN|TH_FIN|TH_ACK)) == TH_ACK) {
} else if ((tcpflags & TH_ACKMASK) == TH_ACK) {
} else if (tcpflags & TH_ACK) {
if ((tcpflags & TH_ACK) &&
if ((tcpflags & (TH_FIN|TH_ACK)) == TH_ACK) {
if (tcpflags & TH_ACK) {
#define TH_OPENING (TH_SYN|TH_ACK)
(TH_RST | TH_ACK | TH_SYN)) != TH_SYN);
if (flags & TH_ACK) {
tcp_set_flags(th, TH_RST | TH_ACK);
tcp_set_flags(th, TH_ACK);
tcp_set_flags(tcp, TH_ACK);
tcp_set_flags(tcp, TH_ACK);
result |= (flags & TH_ACK) >> 2; /* Treat ACK as estab */
if ((tcp_get_flags(&pd.hdr.tcp) & (TH_SYN|TH_ACK|TH_RST)) == TH_SYN &&
if ((tcp_get_flags(&pd.hdr.tcp) & TH_ACK) && pd.p_len == 0)
if ((tcp_get_flags(&pd.hdr.tcp) & (TH_SYN|TH_ACK|TH_RST)) ==
TH_ACK && pf_syncookie_validate(&pd) &&
TH_RST|TH_ACK, 0, 0, 0, M_SKIP_FIREWALL, s->tag, 0,
if (f & TH_ACK)
ntohl(th->th_ack), ack, TH_RST|TH_ACK, 0, 0,
src->seqlo, TH_ACK, 0, 0, s->rule->return_ttl, 0, 0, 0,
if ((tcp_get_flags(th) & (TH_SYN|TH_ACK)) == TH_SYN &&
if (pd->proto == IPPROTO_TCP && (tcp_get_flags(th) & (TH_SYN|TH_ACK)) ==
TH_SYN|TH_ACK, 0, s->src.mss, 0, M_SKIP_FIREWALL, 0, 0,
if ((tcp_get_flags(th) & TH_ACK) == 0) {
(tcp_get_flags(th) & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) ||
(th->th_flags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)))) {
if (tcp_get_flags(th) & TH_ACK) {
if (tcp_get_flags(th) & TH_ACK) {
TH_SYN|TH_ACK, 0, state->src.mss, 0,
} else if ((tcp_get_flags(th) & (TH_ACK|TH_RST|TH_FIN)) != TH_ACK ||
if (((tcp_get_flags(th) & (TH_SYN|TH_ACK)) != TH_ACK) ||
} else if (((tcp_get_flags(th) & (TH_SYN|TH_ACK)) !=
(TH_SYN|TH_ACK)) ||
TH_ACK, state->src.max_win, 0, 0, 0,
TH_ACK, state->dst.max_win, 0, 0,
if ((th->th_flags & (TH_SYN | TH_ACK)) != TH_SYN)
TH_SYN | TH_ACK, 0, s->src.mss, 0, 1, 0, 0, r->rtableid, NULL);
if (((tcp_get_flags(th) & (TH_SYN | TH_ACK)) == TH_SYN) ||
((th->th_flags & (TH_SYN | TH_ACK | TH_RST)) == TH_ACK &&
if (!(flags & (TH_ACK|TH_RST)))
if (!(flags & TH_ACK)) {
if ((tcp_get_flags(tcp) & (TH_SYN|TH_ACK)) != TH_SYN)
iss, ntohl(pd->hdr.tcp.th_seq) + 1, TH_SYN|TH_ACK, 0, mss,
estab = __tcp_get_flags(th) & TH_ACK;
if ((__tcp_get_flags(th) & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) != TH_ACK) {