tcp: unify tcp flag macros
Subsystems (4)
PATCH v2 1/1 tcp: unify tcp flag macros
unify tcp flag macros
unify tcp flag macros: TCPHDR_FIN, TCPHDR_SYN, TCPHDR_RST, TCPHDR_PSH, TCPHDR_ACK, TCPHDR_URG, TCPHDR_ECE and TCPHDR_CWR. TCBCB_FLAG_* are replaced with the corresponding TCPHDR_*.
Signed-off-by Changli Gao <[email protected]>
----
include/net/tcp.h | 24 ++++++------- net/ipv4/tcp.c | 8 ++-- net/ipv4/tcp_input.c | 2 - net/ipv4/tcp_output.c | 59 ++++++++++++++++----------------- net/netfilter/nf_conntrack_proto_tcp.c | 32 ++++++----------- net/netfilter/xt_TCPMSS.c | 4 -- 6 files changed, 58 insertions(+), 71 deletions(-)
include/net/tcp.h +11 -13
@@ -602,6 +602,17 @@ extern u32 __tcp_select_window(struct sock *sk);*/ #define tcp_time_stamp ((__u32)(jiffies)) +#define tcp_flag_byte (th) (((u_int8_t *)th)[13]) + +#define TCPHDR_FIN 0x01 +#define TCPHDR_SYN 0x02 +#define TCPHDR_RST 0x04 +#define TCPHDR_PSH 0x08 +#define TCPHDR_ACK 0x10 +#define TCPHDR_URG 0x20 +#define TCPHDR_ECE 0x40 +#define TCPHDR_CWR 0x80 +/* This is what the send packet queuing engine uses to pass * TCP per-packet control information to the transmission * code. We also store the host-order sequence numbers in
@@ -620,19 +631,6 @@ struct tcp_skb_cb {__u32 end_seq;/* SEQ + FIN + SYN + datalen */ __u32 when;/* used to compute rtt's */ __u8 flags;/* TCP header flags. */ - -/* NOTE: These must match up to the flags byte in a -* real TCP header. -*/ -#define TCPCB_FLAG_FIN 0x01 -#define TCPCB_FLAG_SYN 0x02 -#define TCPCB_FLAG_RST 0x04 -#define TCPCB_FLAG_PSH 0x08 -#define TCPCB_FLAG_ACK 0x10 -#define TCPCB_FLAG_URG 0x20 -#define TCPCB_FLAG_ECE 0x40 -#define TCPCB_FLAG_CWR 0x80 -__u8 sacked;/* State flags for SACK/FACK. */ #define TCPCB_SACKED_ACKED 0x01/* SKB ACK'd by a SACK block */ #define TCPCB_SACKED_RETRANS 0x02/* SKB retransmitted */
net/ipv4/tcp.c +4 -4
@@ -511,7 +511,7 @@ int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg)static inline void tcp_mark_push (struct tcp_sock *tp,struct sk_buff *skb) { -TCP_SKB_CB (skb)->flags |=TCPCB_FLAG_PSH ; +TCP_SKB_CB (skb)->flags |=TCPHDR_PSH ; tp->pushed_seq = tp->write_seq; }
@@ -527,7 +527,7 @@ static inline void skb_entail(struct sock *sk, struct sk_buff *skb) skb->csum =0 ; tcb->seq = tcb->end_seq = tp->write_seq; - tcb->flags =TCPCB_FLAG_ACK ; + tcb->flags =TCPHDR_ACK ; tcb->sacked =0 ;skb_header_release (skb);tcp_add_write_queue_tail (sk, skb);
@@ -815,7 +815,7 @@ new_segment:skb_shinfo (skb)->gso_segs =0 ;if (!copied) -TCP_SKB_CB (skb)->flags &= ~TCPCB_FLAG_PSH ; +TCP_SKB_CB (skb)->flags &= ~TCPHDR_PSH ; copied += copy; poffset += copy;
@@ -1061,7 +1061,7 @@ new_segment: }if (!copied) -TCP_SKB_CB (skb)->flags &= ~TCPCB_FLAG_PSH ; +TCP_SKB_CB (skb)->flags &= ~TCPHDR_PSH ; tp->write_seq += copy;TCP_SKB_CB (skb)->end_seq += copy;
net/ipv4/tcp_input.c +1 -1
@@ -3286,7 +3286,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,* connection startup slow start one packet too * quickly. This is severely frowned upon behavior. */ -if (!(scb->flags &TCPCB_FLAG_SYN )) { +if (!(scb->flags &TCPHDR_SYN )) { flag |=FLAG_DATA_ACKED ; }else { flag |=FLAG_SYN_ACKED ;
net/ipv4/tcp_output.c +29 -30
224 lines not on this page · raw message
net/netfilter/nf_conntrack_proto_tcp.c +12 -20
@@ -736,27 +736,19 @@ static bool tcp_in_window(const struct nf_conn *ct,return res; } -#define TH_FIN 0x01 -#define TH_SYN 0x02 -#define TH_RST 0x04 -#define TH_PUSH 0x08 -#define TH_ACK 0x10 -#define TH_URG 0x20 -#define TH_ECE 0x40 -#define TH_CWR 0x80 -/* table of valid flag combinations - PUSH, ECE and CWR are always valid */ -static const u8 tcp_valid_flags[(TH_FIN |TH_SYN |TH_RST |TH_ACK |TH_URG ) +1 ] = +static const u8 tcp_valid_flags[(TCPHDR_FIN |TCPHDR_SYN |TCPHDR_RST |TCPHDR_ACK | +TCPHDR_URG ) +1 ] = { - [TH_SYN ] =1 , - [TH_SYN |TH_URG ] =1 , - [TH_SYN |TH_ACK ] =1 , - [TH_RST ] =1 , - [TH_RST |TH_ACK ] =1 , - [TH_FIN |TH_ACK ] =1 , - [TH_FIN |TH_ACK |TH_URG ] =1 , - [TH_ACK ] =1 , - [TH_ACK |TH_URG ] =1 , + [TCPHDR_SYN ] =1 , + [TCPHDR_SYN |TCPHDR_URG ] =1 , + [TCPHDR_SYN |TCPHDR_ACK ] =1 , + [TCPHDR_RST ] =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 , };/* Protect conntrack agaist broken packets. Code taken from ipt_unclean.c. */
@@ -803,7 +795,7 @@ static int tcp_error(struct net *net, struct nf_conn *tmpl, }/* Check TCP flags. */ - tcpflags = (((u_int8_t *)th)[13 ] & ~(TH_ECE |TH_CWR |TH_PUSH )); + tcpflags = (tcp_flag_byte (th) & ~(TCPHDR_ECE |TCPHDR_CWR |TCPHDR_PSH ));if (!tcp_valid_flags[tcpflags]) {if (LOG_INVALID (net,IPPROTO_TCP )) nf_log_packet(pf, 0, skb, NULL, NULL, NULL,
net/netfilter/xt_TCPMSS.c +1 -3
@@ -220,15 +220,13 @@ tcpmss_tg6(struct sk_buff *skb, const struct xt_action_param *par) }#endif -#define TH_SYN 0x02 -/* Must specify -p tcp --syn */ static inline bool find_syn_match (const struct xt_entry_match *m) {const struct xt_tcp *tcpinfo = (const struct xt_tcp *)m->data;if (strcmp (m->u.kernel.match->name,"tcp" ) ==0 && - tcpinfo->flg_cmp &TH_SYN && + tcpinfo->flg_cmp &TCPHDR_SYN && !(tcpinfo->invflags &XT_TCP_INV_FLAGS ))return true;
From: Changli Gao <[email protected]>
Date: Sun, 13 Jun 2010 08:01:43 +0800
Quoted 5 lines
unify tcp flag macros:
TCPHDR_FIN,TCPHDR_SYN,TCPHDR_RST,TCPHDR_PSH,TCPHDR_ACK,TCPHDR_URG,TCPHDR_ECEandTCPHDR_CWR. TCBCB_FLAG_* are replaced with the corresponding TCPHDR_*.Signed-off-by Changli Gao <[email protected]>
Applied, thanks.