From c64cb19861035ca541eda27f9f80b70baa1dfee6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 17 Nov 2014 17:16:46 -0600 Subject: [PATCH] Move IP header flags from tcp.h to ip.h and rename IP_FLAGS vs TCPFLAGS. The problem fixed here is that there IP flags were not available when TCP was disabled. The IP flags are used in ICMP and IGFMP --- include/nuttx/net/ip.h | 20 +++++++++++++------- include/nuttx/net/tcp.h | 6 ------ net/devif/devif_input.c | 2 +- net/icmp/icmp_send.c | 4 ++-- net/igmp/igmp_send.c | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/nuttx/net/ip.h b/include/nuttx/net/ip.h index 2012150a3a4..e316b96ad6e 100644 --- a/include/nuttx/net/ip.h +++ b/include/nuttx/net/ip.h @@ -64,18 +64,24 @@ ****************************************************************************/ /* Values for the IP protocol field */ -#define IP_PROTO_ICMP 1 -#define IP_PROTO_IGMP 2 -#define IP_PROTO_TCP 6 -#define IP_PROTO_UDP 17 -#define IP_PROTO_ICMP6 58 +#define IP_PROTO_ICMP 1 +#define IP_PROTO_IGMP 2 +#define IP_PROTO_TCP 6 +#define IP_PROTO_UDP 17 +#define IP_PROTO_ICMP6 58 + +/* Flag bits in 16-bit flags + fragment offset IPv4 header field */ + +#define IP_FLAG_RESERVED 0x8000 +#define IP_FLAG_DONTFRAG 0x4000 +#define IP_FLAG_MOREFRAGS 0x2000 /* Header sizes */ #ifdef CONFIG_NET_IPv6 -# define IP_HDRLEN 40 /* Size of IP header */ +# define IP_HDRLEN 40 /* Size of IP header */ #else -# define IP_HDRLEN 20 /* Size of IP header */ +# define IP_HDRLEN 20 /* Size of IP header */ #endif /**************************************************************************** diff --git a/include/nuttx/net/tcp.h b/include/nuttx/net/tcp.h index db511cee99d..53692d389a6 100644 --- a/include/nuttx/net/tcp.h +++ b/include/nuttx/net/tcp.h @@ -95,12 +95,6 @@ # define TCP_STOPPED 0x10 /* Bit 4: stopped */ /* Bit 5-7: Unused, but not available */ -/* Flag bits in 16-bit flags+ipoffset IPv4 TCP header field */ - -#define TCPFLAG_RESERVED 0x8000 -#define TCPFLAG_DONTFRAG 0x4000 -#define TCPFLAG_MOREFRAGS 0x2000 - /* TCP header sizes */ #define TCP_HDRLEN 20 /* Size of TCP header */ diff --git a/net/devif/devif_input.c b/net/devif/devif_input.c index bba58be93d4..7a5142add68 100644 --- a/net/devif/devif_input.c +++ b/net/devif/devif_input.c @@ -112,7 +112,7 @@ /* IP fragment re-assembly */ -#define IP_MF 0x20 +#define IP_MF 0x20 /* See IP_FLAG_MOREFRAGS */ #define TCP_REASS_BUFSIZE (NET_DEV_MTU(dev) - NET_LL_HDRLEN(dev)) #define TCP_REASS_LASTFRAG 0x01 diff --git a/net/icmp/icmp_send.c b/net/icmp/icmp_send.c index be6621839d4..243b05d6069 100644 --- a/net/icmp/icmp_send.c +++ b/net/icmp/icmp_send.c @@ -136,8 +136,8 @@ void icmp_send(FAR struct net_driver_s *dev, FAR net_ipaddr_t *destaddr) ++g_ipid; picmp->ipid[0] = g_ipid >> 8; picmp->ipid[1] = g_ipid & 0xff; - picmp->ipoffset[0] = TCPFLAG_DONTFRAG >> 8; - picmp->ipoffset[1] = TCPFLAG_DONTFRAG & 0xff; + picmp->ipoffset[0] = IP_FLAG_DONTFRAG >> 8; + picmp->ipoffset[1] = IP_FLAG_DONTFRAG & 0xff; picmp->ttl = IP_TTL; picmp->proto = IP_PROTO_ICMP; diff --git a/net/igmp/igmp_send.c b/net/igmp/igmp_send.c index cc5430f905d..189f9cfc3f3 100644 --- a/net/igmp/igmp_send.c +++ b/net/igmp/igmp_send.c @@ -150,8 +150,8 @@ void igmp_send(FAR struct net_driver_s *dev, FAR struct igmp_group_s *group, ++g_ipid; IGMPBUF->ipid[0] = g_ipid >> 8; IGMPBUF->ipid[1] = g_ipid & 0xff; - IGMPBUF->ipoffset[0] = TCPFLAG_DONTFRAG >> 8; - IGMPBUF->ipoffset[1] = TCPFLAG_DONTFRAG & 0xff; + IGMPBUF->ipoffset[0] = IP_FLAG_DONTFRAG >> 8; + IGMPBUF->ipoffset[1] = IP_FLAG_DONTFRAG & 0xff; IGMPBUF->ttl = IGMP_TTL; IGMPBUF->proto = IP_PROTO_IGMP;