TCPHDR_ACK
if (tcp_flags_mask & TCPHDR_ACK) {
if (tcp_flags_key & TCPHDR_ACK)
TCPHDR_PSH | TCPHDR_ACK | TCPHDR_URG | \
#define TCPHDR_SYNACK_ACCECN (TCPHDR_SYN | TCPHDR_ACK | TCPHDR_CWR)
tcb->tcp_flags = TCPHDR_ACK;
if (!(tcb->tcp_flags & TCPHDR_ACK)) {
TCP_SKB_CB(skb)->tcp_flags) & TCPHDR_ACK) ||
if (unlikely((TCP_SKB_CB(skb)->tcp_flags & TCPHDR_ACK) &&
if (likely(tcb->tcp_flags & TCPHDR_ACK))
TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
TCPHDR_ACK | TCPHDR_FIN);
TCPHDR_ACK | TCPHDR_RST);
if (!(TCP_SKB_CB(skb)->tcp_flags & TCPHDR_ACK)) {
TCP_SKB_CB(skb)->tcp_flags |= TCPHDR_ACK;
TCP_SKB_CB(skb)->tcp_flags = TCPHDR_SYN | TCPHDR_ACK;
TCP_SKB_CB(syn_data)->tcp_flags = TCPHDR_ACK | TCPHDR_PSH;
tcp_acceptable_seq(sk), TCPHDR_ACK | flags);
tcp_init_nondata_skb(skb, sk, tp->snd_una - !urgent, TCPHDR_ACK);
if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_ACK) {
static const u8 tcp_valid_flags[(TCPHDR_FIN|TCPHDR_SYN|TCPHDR_RST|TCPHDR_ACK|
[TCPHDR_SYN|TCPHDR_ACK] = 1,
[TCPHDR_RST|TCPHDR_ACK] = 1,
[TCPHDR_FIN|TCPHDR_ACK] = 1,
[TCPHDR_FIN|TCPHDR_ACK|TCPHDR_URG] = 1,
[TCPHDR_ACK] = 1,
[TCPHDR_ACK|TCPHDR_URG] = 1,
#define TCPHDR_SYNACK (TCPHDR_SYN | TCPHDR_ACK)