From: Asias He Date: Wed, 29 Jun 2011 08:47:20 +0000 (+0800) Subject: kvm tools: Add helpers to return TCP {header, total, payload} length X-Git-Tag: next-20110824~3^2~172 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=cacbd4b499fd667dc8c1e4f51582c83d7034294d;p=karo-tx-linux.git kvm tools: Add helpers to return TCP {header, total, payload} length This patch adds three helpers uip_tcp_hdrlen(), uip_tcp_len(), uip_tcp_payloadlen() to return TCP header length, TCP totoal length, and tcp payload length. Signed-off-by: Asias He Signed-off-by: Pekka Enberg --- diff --git a/tools/kvm/include/kvm/uip.h b/tools/kvm/include/kvm/uip.h index a772fdfa00aa..2ac48d7eb6f3 100644 --- a/tools/kvm/include/kvm/uip.h +++ b/tools/kvm/include/kvm/uip.h @@ -203,6 +203,25 @@ static inline u16 uip_udp_len(struct uip_udp *udp) return ntohs(udp->len); } +static inline u16 uip_tcp_hdrlen(struct uip_tcp *tcp) +{ + return (tcp->off >> 4) * 4; +} + +static inline u16 uip_tcp_len(struct uip_tcp *tcp) +{ + struct uip_ip *ip; + + ip = &tcp->ip; + + return uip_ip_len(ip) - uip_ip_hdrlen(ip); +} + +static inline u16 uip_tcp_payloadlen(struct uip_tcp *tcp) +{ + return uip_tcp_len(tcp) - uip_tcp_hdrlen(tcp); +} + static inline u16 uip_eth_hdrlen(struct uip_eth *eth) { return sizeof(*eth);