diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-06-07 22:00:19 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-06-07 22:00:19 +0000 |
commit | 40fc33c7187558db69ceb2aea8563a4dcb749aa0 (patch) | |
tree | f67fe6501b540bb78cce93e25a1230e69a134adc /nuttx/include/net | |
parent | 501a39032da3f41d0bd1858c51b0d93d8a9872c0 (diff) |
First round of compile fixes for IPv6
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4813 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/include/net')
-rw-r--r-- | nuttx/include/net/if.h | 97 |
1 files changed, 72 insertions, 25 deletions
diff --git a/nuttx/include/net/if.h b/nuttx/include/net/if.h index 8212bf8bef..0733b699ca 100644 --- a/nuttx/include/net/if.h +++ b/nuttx/include/net/if.h @@ -1,4 +1,4 @@ -/**************************************************************************** +/******************************************************************************************* * include/net/if.h * * Copyright (C) 2007, 2008, 2012 Gregory Nutt. All rights reserved. @@ -31,20 +31,20 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - ****************************************************************************/ + *******************************************************************************************/ #ifndef __NET_IF_H #define __NET_IF_H -/**************************************************************************** +/******************************************************************************************* * Included Files - ****************************************************************************/ + *******************************************************************************************/ #include <sys/socket.h> -/**************************************************************************** +/******************************************************************************************* * Pre-Processor Definitions - ****************************************************************************/ + *******************************************************************************************/ /* Sizing parameters */ @@ -52,35 +52,82 @@ #define IF_NAMESIZE 6 /* Newer naming standard */ #define IFHWADDRLEN 6 -/**************************************************************************** +/******************************************************************************************* * Public Type Definitions - ****************************************************************************/ + *******************************************************************************************/ +/* This is the newer form if the I/F request structure that can be used with both IPv4 + * and IPv6. + */ + +struct lifreq +{ + char lifr_name[IFNAMSIZ]; /* Network device name (e.g. "eth0") */ + union + { + struct sockaddr_storage lifru_addr; /* IP Address */ + struct sockaddr_storage lifru_dstaddr; /* P-to-P Address */ + struct sockaddr_storage lifru_broadaddr; /* Broadcast address */ + struct sockaddr_storage lifru_netmask; /* Netmask */ + struct sockaddr_storage lifru_hwaddr; /* MAC address */ + int lifru_count; /* Number of devices */ + int lifru_mtu; /* MTU size */ + } lifr_ifru; +}; + +#define lifr_addr lifr_ifru.lifru_addr /* IP address */ +#define lifr_dstaddr lifr_ifru.lifru_dstaddr /* P-to-P Address */ +#define lifr_broadaddr lifr_ifru.lifru_broadaddr /* Broadcast address */ +#define lifr_netmask lifr_ifru.lifru_netmask /* Interface net mask */ +#define lifr_hwaddr lifr_ifru.lifru_hwaddr /* MAC address */ +#define lifr_mtu lifr_ifru.lifru_mtu /* MTU */ +#define lifr_count lifr_ifru.lifru_count /* Number of devices */ + +/* This is the older I/F request that should only be used with IPv4. However, since + * NuttX only supports IPv4 or 6 (not both), we can force the older structure to + * be compatible when IPv6 is enabled. + */ + +#ifndef CONFIG_NET_IPv6 struct ifreq { - char ifr_name[IFNAMSIZ]; /* Network device name (e.g. "eth0") */ + char ifr_name[IFNAMSIZ]; /* Network device name (e.g. "eth0") */ union { - struct sockaddr ifru_addr; /* IP Address */ - struct sockaddr ifru_dstaddr; /* P-to-P Address */ - struct sockaddr ifru_broadaddr; /* Broadcast address */ - struct sockaddr ifru_netmask; /* Netmask */ - struct sockaddr ifru_hwaddr; /* MAC address */ - int ifru_count; /* Number of devices */ - int ifru_mtu; /* MTU size */ + struct sockaddr ifru_addr; /* IP Address */ + struct sockaddr ifru_dstaddr; /* P-to-P Address */ + struct sockaddr ifru_broadaddr; /* Broadcast address */ + struct sockaddr ifru_netmask; /* Netmask */ + struct sockaddr ifru_hwaddr; /* MAC address */ + int ifru_count; /* Number of devices */ + int ifru_mtu; /* MTU size */ } ifr_ifru; }; -#define ifr_addr ifr_ifru.ifru_addr /* IP address */ -#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* P-to-P Address */ -#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* Broadcast address */ -#define ifr_netmask ifr_ifru.ifru_netmask /* Interface net mask */ -#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */ -#define ifr_mtu ifr_ifru.ifru_mtu /* MTU */ -#define ifr_count ifr_ifru.ifru_count /* Number of devices */ +#define ifr_addr ifr_ifru.ifru_addr /* IP address */ +#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* P-to-P Address */ +#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* Broadcast address */ +#define ifr_netmask ifr_ifru.ifru_netmask /* Interface net mask */ +#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */ +#define ifr_mtu ifr_ifru.ifru_mtu /* MTU */ +#define ifr_count ifr_ifru.ifru_count /* Number of devices */ + +#else /* CONFIG_NET_IPv6 */ + +#define ifreq lifreq /* Replace ifreq with lifreq */ +#define ifr_name lifr_name /* Network device name */ +#define ifr_addr lifr_ifru.lifru_addr /* IP address */ +#define ifr_dstaddr lifr_ifru.lifru_dstaddr /* P-to-P Address */ +#define ifr_broadaddr lifr_ifru.lifru_broadaddr /* Broadcast address */ +#define ifr_netmask lifr_ifru.lifru_netmask /* Interface net mask */ +#define ifr_hwaddr lifr_ifru.lifru_hwaddr /* MAC address */ +#define ifr_mtu lifr_ifru.lifru_mtu /* MTU */ +#define ifr_count lifr_ifru.lifru_count /* Number of devices */ + +#endif /* CONFIG_NET_IPv6 */ -/**************************************************************************** +/******************************************************************************************* * Public Function Prototypes - ****************************************************************************/ + *******************************************************************************************/ #endif /* __NET_IF_H */ |