TH_RST
static int flagv[] = { TH_ACK, TH_SYN, TH_URG, TH_RST, TH_PUSH,
{ TH_RST, 'R' },
__tcp_set_flags(tcp, __tcp_get_flags(tcp) | TH_RST);
uint16_t flags[] = { TH_FIN, TH_SYN, TH_RST, TH_PUSH, TH_ACK, TH_URG,
static uint16_t myflags[] = { TH_FIN, TH_SYN, TH_RST, TH_PUSH,
if (tcpflags & TH_RST)
{ "rst", TH_RST },
if (tcp_get_flags(tcph) & TH_RST) {
if (!(tcp_get_flags(tcph) & (TH_RST | TH_FIN))) {
tcp_set_flags(tcph, tcp_get_flags(tcph) | TH_RST);
tcp_set_flags(tcph, tcp_get_flags(tcph) | TH_RST);
| (tcp_get_flags(th) & (TH_URG | TH_SYN | TH_RST | TH_FIN)));
if (tcp_get_flags(th) & (TH_FIN | TH_RST)) {
if ((tcp_get_flags(th) & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
if (tcp_flags & TH_FIN || tcp_flags & TH_RST || AGED(fle) ||
if (tcp_flags & TH_FIN || tcp_flags & TH_RST || AGED(fle6) ||
if (th_flags & TH_RST)
if (th_flags & (TH_FIN | TH_RST))
if (th_flags & TH_RST)
if (th_flags & (TH_FIN | TH_RST))
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG|TH_ECE|TH_CWR|TH_AE)
TH_RST|TH_ACK, /* 0, CLOSED */
if ((thflags & (TH_RST|TH_ACK|TH_SYN)) == TH_ACK) {
if (thflags & TH_RST) {
KASSERT((thflags & (TH_RST|TH_ACK)) == 0,
if (((thflags & TH_RST) != 0) || V_tcp_tolerate_missing_ts) {
(thflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK &&
if (thflags & TH_RST) {
} else if (!(thflags & (TH_ACK|TH_FIN|TH_RST))) {
if ((thflags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) {
if (thflags & TH_RST)
if (thflags & TH_RST) {
if ((tcp_get_flags(th) & TH_RST) || m->m_flags & (M_BCAST|M_MCAST))
th->th_ack, TH_RST);
(tcp_seq)0, TH_RST|TH_ACK);
if (flags & TH_RST) {
if (flags & TH_RST) {
else if (flags & (TH_SYN|TH_FIN|TH_RST))
if (flags & TH_RST) {
if (flags & TH_RST) {
(flags & TH_RST)))
if ((flags & TH_RST) ||
((thflags & TH_RST) == 0) && (V_tcp_tolerate_missing_ts == 0)) {
((tcp_outflags[tp->t_state] & TH_RST) == 0) &&
if (flags & TH_RST) {
(flags & TH_RST))) {
if (flags & TH_RST) {
else if (flags & (TH_SYN | TH_FIN | TH_RST))
if (len && ((flags & (TH_FIN | TH_SYN | TH_RST)) == 0)) {
if ((flags & TH_RST) || ((recwin < (so->so_rcv.sb_hiwat / 4) &&
((flags & TH_RST) == 0) &&
if ((error == 0) && (flags & TH_RST))
if (((flags & (TH_RST | TH_SYN | TH_FIN)) == 0) && tot_len) {
if (th_flags & TH_RST) {
if (tcp_get_flags(th) & TH_RST) {
if ((thflags & (TH_ACK | TH_RST)) == (TH_ACK | TH_RST)) {
if (thflags & TH_RST) {
if ((thflags & TH_RST) ||
} else if (!(thflags & (TH_ACK | TH_FIN | TH_RST))) {
__predict_true((thflags & (TH_SYN | TH_FIN | TH_RST | TH_URG | TH_ACK)) == TH_ACK) &&
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if (tcp_get_flags(th) & TH_RST) {
if ((thflags & (TH_ACK | TH_RST)) == (TH_ACK | TH_RST)) {
if (thflags & TH_RST) {
if ((thflags & TH_RST) ||
} else if (!(thflags & (TH_ACK | TH_FIN | TH_RST))) {
__predict_true((thflags & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) == TH_ACK) &&
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_RST) ||
if ((thflags & TH_FIN) || (thflags & TH_RST))
((thflags & TH_RST) == 0) && (V_tcp_tolerate_missing_ts == 0)) {
((tcp_get_flags(th) & TH_RST) == 0)) {
if ((thflags & TH_RST) &&
if (flags & (TH_SYN|TH_RST)) {
if (flags & TH_RST) {
(flags & TH_RST))) {
else if (flags & (TH_SYN | TH_FIN | TH_RST))
if (flags & TH_RST) {
if (flags & TH_RST) {
if (th_flags & TH_RST) {
if (!(flags & TH_RST)) {
if (tp && (flags & TH_RST)) {
if (flags & TH_RST)
else if (flags & (TH_SYN|TH_FIN|TH_RST))
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 (thflags & TH_RST)
(tcp_seq)0, th->th_ack, TH_RST);
th->th_seq+tlen, (tcp_seq)0, TH_RST|TH_ACK);
((flags & (TH_RST|TH_ACK)) == TH_RST)) {
} else if (!(flags & (TH_RST|TH_SYN))) {
#ifndef TH_RST
#define TH_ACKMASK (TH_FIN|TH_SYN|TH_RST|TH_ACK)
if (tcp_get_flags(tcp) & TH_RST)
tcp_set_flags(tcp2, TH_RST);
tcp_set_flags(tcp2, TH_RST|TH_ACK);
if (tcp_get_flags(tcp) & TH_RST) {
} else if (((tcpflags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) &&
} else if ((seq == 0) && (tcpflags == (TH_RST|TH_ACK)) &&
if (tcpflags & TH_RST) {
if ( (tcp_get_flags(tcp) & TH_RST) == 0) {
tcp_get_flags(tcp) | TH_RST);
(TH_RST | TH_ACK | TH_SYN)) != TH_SYN);
dir = ((flags & (TH_SYN | TH_RST)) == TH_SYN);
if (flags & TH_RST) {
tcp_set_flags(th, TH_RST);
tcp_set_flags(th, TH_RST | TH_ACK);
if ((tcp_get_flags(tcp) & TH_RST) == 0) {
tcp_get_flags(tcp) | TH_RST);
#define BOTH_RST (TH_RST | (TH_RST << 8))
th_flags = pkt->_flags & (TH_FIN | TH_SYN | TH_RST);
result |= (flags & TH_RST) >> 2; /* Treat RST as FIN */
if ((tcp_get_flags(&pd.hdr.tcp) & (TH_SYN|TH_ACK|TH_RST)) == TH_SYN &&
if ((tcp_get_flags(&pd.hdr.tcp) & (TH_SYN|TH_ACK|TH_RST)) ==
TH_RST|TH_ACK, 0, 0, 0, M_SKIP_FIREWALL, s->tag, 0,
if (f & TH_RST)
!(tcp_get_flags(th) & TH_RST)) {
ntohl(th->th_ack), ack, TH_RST|TH_ACK, 0, 0,
(tcp_get_flags(th) & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) ||
((tcp_get_flags(th) & TH_RST) == 0 || orig_seq == src->seqlo ||
(th->th_flags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)))) {
if (tcp_get_flags(th) & TH_RST)
if (tcp_get_flags(th) & TH_RST)
if (!(tcp_get_flags(th) & TH_RST))
TH_RST, 0, 0,
if (tcp_get_flags(th) & TH_RST)
} else if ((tcp_get_flags(th) & (TH_ACK|TH_RST|TH_FIN)) != TH_ACK ||
((th->th_flags & (TH_SYN | TH_ACK | TH_RST)) == TH_ACK &&
if (flags & TH_RST)
if (!(flags & (TH_ACK|TH_RST)))
} else if (!got_ts && (tcp_get_flags(th) & TH_RST) == 0 &&
finrst = __tcp_get_flags(th) & (TH_FIN|TH_RST);
if ((__tcp_get_flags(th) & (TH_SYN | TH_FIN | TH_RST | TH_ACK)) != TH_ACK) {