TH_ACK
(TH_SYN) | ( (TH_ACK) & 0xff) <<8 );
if (list == f_tcpflags && set == TH_SYN && clear == TH_ACK) {
{ "ack", TH_ACK },
if (ti.th.th_flags & TH_ACK) {
flags = TH_RST|TH_ACK;
#define IPV6_FW_TCPF_ACK TH_ACK
if (tcp->th_flags & TH_ACK) {
if ((s->st_state & ((TH_FIN | TH_ACK) << 8)) ==
s->st_state |= (TH_ACK << 8);
if (tcp->th_flags & TH_ACK) {
if ((s->st_state & (TH_FIN | TH_ACK)) == TH_FIN &&
s->st_state |= TH_ACK;
#define BOTH_FINACK (TH_ACK | (TH_ACK << 8))
if (flags & TH_ACK) {
tcp->th_flags = TH_RST | TH_ACK;
tcp->th_flags = TH_ACK;
(TH_RST | TH_ACK | TH_SYN)) != TH_SYN);
(TH_RST | TH_ACK | TH_SYN)) != TH_SYN) {
TH_RST|TH_ACK, 0, 0, 0, 1, cur->tag, NULL, NULL);
if (f & TH_ACK)
ntohl(th->th_ack), ack, TH_RST|TH_ACK, 0, 0,
if ((th->th_flags & (TH_SYN|TH_ACK)) == TH_SYN &&
if (pd->proto == IPPROTO_TCP && (th->th_flags & (TH_SYN|TH_ACK)) ==
TH_SYN|TH_ACK, 0, s->src.mss, 0, 1, 0, NULL, NULL);
if ((th->th_flags & TH_ACK) == 0) {
(th->th_flags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) ||
if (th->th_flags & TH_ACK) {
if (th->th_flags & TH_ACK) {
TH_SYN|TH_ACK, 0, (*state)->src.mss, 0, 1,
} else if (!(th->th_flags & TH_ACK) ||
if (((th->th_flags & (TH_SYN|TH_ACK)) != TH_ACK) ||
} else if (((th->th_flags & (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, 1,
if (((th->th_flags & (TH_SYN|TH_ACK)) == TH_SYN) &&
if ((th.th_flags & TH_ACK) && pd.p_len == 0)
if (!(flags & (TH_ACK|TH_RST)))
if (!(flags & TH_ACK)) {
if ((tcp->th_flags & (TH_SYN|TH_ACK)) != TH_SYN)
if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
TH_RST|TH_ACK, /* 0, TERMINATING */
TH_RST|TH_ACK, /* 1, CLOSED */
TH_SYN|TH_ACK, /* 4, SYN_RECEIVED */
TH_ACK, /* 5, ESTABLISHED */
TH_ACK, /* 6, CLOSE_WAIT */
TH_FIN|TH_ACK, /* 7, FIN_WAIT_1 */
TH_FIN|TH_ACK, /* 8, CLOSING */
TH_FIN|TH_ACK, /* 9, LAST_ACK */
TH_ACK, /* 10, FIN_WAIT_2 */
TH_ACK, /* 11, TIME_WAIT */
if (thflags & TH_ACK) {
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK &&
if ((thflags & TH_ACK) &&
if ((thflags & TH_ACK) &&
if (thflags & TH_ACK)
if (thflags & TH_ACK) {
if (thflags & TH_ACK)
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK&&
if (!(thflags & TH_ACK)) {
if ((thflags & TH_ACK) &&
if (tp->t_state == TCPS_SYN_RECEIVED && (thflags & TH_ACK) &&
if (thflags & TH_ACK)
(tcp_seq)0, TH_RST | TH_ACK);
if ((thflags & (TH_SYN | TH_ACK)) == TH_SYN) {
if ((thflags & (TH_RST | TH_ACK | TH_SYN)) != TH_SYN) {
if ((thflags & (TH_RST | TH_ACK | TH_SYN)) == TH_ACK) {
(!(flags & TH_ACK) ||
if ((tcp_do_sack && !(flags & TH_ACK)) ||
(!(flags & TH_ACK) || (tp->t_flags & TF_RCVD_TSTMP))) {
flags = TH_ACK;
th->th_flags = TH_SYN | TH_ACK;
th->th_seq + tlen, (tcp_seq)0, TH_RST | TH_ACK);
pfr.rule.flagset = (TH_SYN|TH_ACK);
estab = (th->th_flags & TH_ACK);
if ((th->th_flags & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) != TH_ACK) {
pf(TH_ACK, "ACK");