diff --git a/include/linux/tcp.h b/include/linux/tcp.h index a778ee0..48ddeb8 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h @@ -225,6 +225,18 @@ static inline unsigned int tcp_optlen(const struct sk_buff *skb) return (tcp_hdr(skb)->doff - 5) * 4; } +/* Length of fixed header plus standard options. */ +static inline unsigned int tcp_header_len_th(const struct tcphdr *th) +{ + return th->doff * 4; +} + +/* Length of standard options only. This could be negative. */ +static inline int tcp_option_len_th(const struct tcphdr *th) +{ + return (int)(th->doff * 4) - sizeof(*th); +} + /* This defines a selective acknowledgement block. */ struct tcp_sack_block_wire { __be32 start_seq; -- 1.6.3.3