diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-03-12 15:36:28 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-03-12 15:36:28 +0000 |
commit | e6f93f774080d42c3f954a862709d047df2d7e7a (patch) | |
tree | 487b0ec566d911458a00e1803392b817e84b7809 /nuttx/include | |
parent | 95317af605c883b464a4c5b524632193614bfd24 (diff) | |
download | px4-nuttx-e6f93f774080d42c3f954a862709d047df2d7e7a.tar.gz px4-nuttx-e6f93f774080d42c3f954a862709d047df2d7e7a.tar.bz2 px4-nuttx-e6f93f774080d42c3f954a862709d047df2d7e7a.zip |
More support for SLIP data link protocol
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3370 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/include')
-rw-r--r-- | nuttx/include/net/ioctls.h | 97 | ||||
-rw-r--r-- | nuttx/include/net/uip/uip-arch.h | 6 | ||||
-rw-r--r-- | nuttx/include/net/uip/uip-arp.h | 20 | ||||
-rw-r--r-- | nuttx/include/net/uip/uipopt.h | 51 |
4 files changed, 139 insertions, 35 deletions
diff --git a/nuttx/include/net/ioctls.h b/nuttx/include/net/ioctls.h index 7bb6c18b3..8398e51ed 100644 --- a/nuttx/include/net/ioctls.h +++ b/nuttx/include/net/ioctls.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/net/ioctls.h * - * Copyright (C) 2007, 2008, 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2008, 2010-2011 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -46,7 +46,7 @@ * Definitions ****************************************************************************/ -/* These are ioctl commands to use with a socket FD. At present, commnads +/* These are ioctl commands to use with a socket FD. At present, commands * are accepted only to set/get IP addresses, broadcast address, network * masks, and hardware address, and a few others */ @@ -54,22 +54,83 @@ #define _SIOCVALID(c) (_IOC_TYPE(c)==_SIOCBASE) #define _SIOC(nr) _IOC(_SIOCBASE,nr) -#define SIOCGIFADDR _SIOC(0x0001) /* Get IP address */ -#define SIOCSIFADDR _SIOC(0x0002) /* Set IP address */ -#define SIOCGIFDSTADDR _SIOC(0x0003) /* Get P-to-P address */ -#define SIOCSIFDSTADDR _SIOC(0x0004) /* Set P-to-P address */ -#define SIOCGIFBRDADDR _SIOC(0x0005) /* Get broadcast IP address */ -#define SIOCSIFBRDADDR _SIOC(0x0006) /* Set broadcast IP address */ -#define SIOCGIFNETMASK _SIOC(0x0007) /* Get network mask */ -#define SIOCSIFNETMASK _SIOC(0x0008) /* Set network mask */ -#define SIOCGIFMTU _SIOC(0x0009) /* Get MTU size */ -#define SIOCGIFHWADDR _SIOC(0x000a) /* Get hardware address */ -#define SIOCSIFHWADDR _SIOC(0x000b) /* Set hardware address */ -#define SIOCDIFADDR _SIOC(0x000c) /* Delete IP address */ -#define SIOCGIFCOUNT _SIOC(0x000d) /* Get number of devices */ - -#define SIOCGIPMSFILTER _SIOC(0x000e) /* Retrieve source filter addresses */ -#define SIOCSIPMSFILTER _SIOC(0x000f) /* Set source filter content */ +#define SIOCGIFADDR _SIOC(0x0001) /* Get IP address */ +#define SIOCSIFADDR _SIOC(0x0002) /* Set IP address */ +#define SIOCGIFDSTADDR _SIOC(0x0003) /* Get P-to-P address */ +#define SIOCSIFDSTADDR _SIOC(0x0004) /* Set P-to-P address */ +#define SIOCGIFBRDADDR _SIOC(0x0005) /* Get broadcast IP address */ +#define SIOCSIFBRDADDR _SIOC(0x0006) /* Set broadcast IP address */ +#define SIOCGIFNETMASK _SIOC(0x0007) /* Get network mask */ +#define SIOCSIFNETMASK _SIOC(0x0008) /* Set network mask */ +#define SIOCGIFMTU _SIOC(0x0009) /* Get MTU size */ +#define SIOCGIFHWADDR _SIOC(0x000a) /* Get hardware address */ +#define SIOCSIFHWADDR _SIOC(0x000b) /* Set hardware address */ +#define SIOCDIFADDR _SIOC(0x000c) /* Delete IP address */ +#define SIOCGIFCOUNT _SIOC(0x000d) /* Get number of devices */ + +#define SIOCGIPMSFILTER _SIOC(0x000e) /* Retrieve source filter addresses */ +#define SIOCSIPMSFILTER _SIOC(0x000f) /* Set source filter content */ + +/* Wireless ioctl commands **************************************************/ + +#define SIOCSIWCOMMIT _SIOC(0x0010) /* Commit pending changes to driver */ +#define SIOCGIWNAME _SIOC(0x0011) /* Get name of wireless protocol */ + +#define SIOCSIWNWID _SIOC(0x0012) /* Set network ID (pre-802.11) */ +#define SIOCGIWNWID _SIOC(0x0013) /* Get network ID (the cell) */ +#define SIOCSIWFREQ _SIOC(0x0014) /* Set channel/frequency (Hz) */ +#define SIOCGIWFREQ _SIOC(0x0015) /* Get channel/frequency (Hz) */ +#define SIOCSIWMODE _SIOC(0x0016) /* Set operation mode */ +#define SIOCGIWMODE _SIOC(0x0017) /* Get operation mode */ +#define SIOCSIWSENS _SIOC(0x0018) /* Set sensitivity (dBm) */ +#define SIOCGIWSENS _SIOC(0x0019) /* Get sensitivity (dBm) */ + +#define SIOCGIWRANGE _SIOC(0x001a) /* Get range of parameters */ +#define SIOCGIWPRIV _SIOC(0x001b) /* Get private ioctl interface info */ +#define SIOCGIWSTATS _SIOC(0x001c) /* Get wireless stats */ + +#define SIOCSIWSPY _SIOC(0x001d) /* Set spy addresses */ +#define SIOCGIWSPY _SIOC(0x001e) /* Get spy info (quality of link) */ +#define SIOCSIWTHRSPY _SIOC(0x001f) /* Set spy threshold (spy event) */ +#define SIOCGIWTHRSPY _SIOC(0x0020) /* Get spy threshold */ + +#define SIOCSIWAP _SIOC(0x0021) /* Set access point MAC addresses */ +#define SIOCGIWAP _SIOC(0x0022) /* Get access point MAC addresses */ +#define SIOCGIWAPLIST _SIOC(0x0023) /* Deprecated in favor of scanning */ +#define SIOCSIWSCAN _SIOC(0x0024) /* Trigger scanning (list cells) */ +#define SIOCGIWSCAN _SIOC(0x0025) /* Get scanning results */ + +#define SIOCSIWESSID _SIOC(0x0026) /* Set ESSID (network name) */ +#define SIOCGIWESSID _SIOC(0x0027) /* Get ESSID */ +#define SIOCSIWNICKN _SIOC(0x0028) /* Set node name/nickname */ +#define SIOCGIWNICKN _SIOC(0x0029) /* Get node name/nickname */ + +#define SIOCSIWRATE _SIOC(0x002a) /* Set default bit rate (bps) */ +#define SIOCGIWRATE _SIOC(0x002b) /* Get default bit rate (bps) */ +#define SIOCSIWRTS _SIOC(0x002c) /* Set RTS/CTS threshold (bytes) */ +#define SIOCGIWRTS _SIOC(0x002d) /* Get RTS/CTS threshold (bytes) */ +#define SIOCSIWFRAG _SIOC(0x002e) /* Set fragmentation thr (bytes) */ +#define SIOCGIWFRAG _SIOC(0x002f) /* Get fragmentation thr (bytes) */ +#define SIOCSIWTXPOW _SIOC(0x0030) /* Set transmit power (dBm) */ +#define SIOCGIWTXPOW _SIOC(0x0031) /* Get transmit power (dBm) */ +#define SIOCSIWRETRY _SIOC(0x0032) /* Set retry limits and lifetime */ +#define SIOCGIWRETRY _SIOC(0x0033) /* Get retry limits and lifetime */ + +#define SIOCSIWPOWER _SIOC(0x0034) /* Set Power Management settings */ +#define SIOCGIWPOWER _SIOC(0x0035) /* Get Power Management settings */ + +#define SIOCSIWGENIE _SIOC(0x0030) /* Set generic IE */ +#define SIOCGIWGENIE _SIOC(0x0031) /* Get generic IE */ + +#define SIOCSIWMLME _SIOC(0x0016) /* Request MLME operation */ + +#define SIOCSIWAUTH _SIOC(0x0032) /* Set authentication mode params */ +#define SIOCGIWAUTH _SIOC(0x0033) /* Get authentication mode params */ + +#define SIOCSIWENCODEEXT _SIOC(0x0034) /* Set encoding token & mode */ +#define SIOCGIWENCODEEXT _SIOC(0x0035) /* Get encoding token & mode */ + +#define SIOCSIWPMKSA _SIOC(0x0036) /* PMKSA cache operation */ /**************************************************************************** * Type Definitions diff --git a/nuttx/include/net/uip/uip-arch.h b/nuttx/include/net/uip/uip-arch.h index c7e8687c1..49608de49 100644 --- a/nuttx/include/net/uip/uip-arch.h +++ b/nuttx/include/net/uip/uip-arch.h @@ -2,7 +2,7 @@ * uip-arch.h * Defines architecture-specific device driver interfaces to uIP * - * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Derived largely from portions of uIP with has a similar BSD-styple license: @@ -90,9 +90,11 @@ struct uip_driver_s char d_ifname[IFNAMSIZ]; #endif - /* Device identitity */ + /* Ethernet device identity */ +#ifdef CONFIG_NET_ETHERNET struct ether_addr d_mac; /* Device MAC address */ +#endif /* Network identity */ diff --git a/nuttx/include/net/uip/uip-arp.h b/nuttx/include/net/uip/uip-arp.h index 439960e9a..3afe1b252 100644 --- a/nuttx/include/net/uip/uip-arp.h +++ b/nuttx/include/net/uip/uip-arp.h @@ -2,7 +2,7 @@ * include/net/uip/uip-arch.h * Macros and definitions for the ARP module. * - * Copyright (C) 2007, 2009-2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009-2011 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Derived from uIP with has a similar BSD-styple license: @@ -49,7 +49,9 @@ #include <nuttx/compiler.h> #include <stdint.h> + #include <net/ethernet.h> +#include <net/uip/uipopt.h> #include <net/uip/uip.h> /**************************************************************************** @@ -102,6 +104,7 @@ extern "C" { * Public Function Prototypes ****************************************************************************/ +#ifdef CONFIG_NET_ARP /**************************************************************************** * Name: uip_arp_init * @@ -236,6 +239,21 @@ EXTERN struct arp_entry *uip_arp_find(in_addr_t ipaddr); } \ } +#else /* CONFIG_NET_ARP */ + +/* If ARP is disabled, stub out all ARP interfaces */ + +# define uip_arp_init() +# define uip_arp_ipin(dev) +# define uip_arp_arpin(dev) +# define uip_arp_out(dev) +# define uip_arp_timer() +# define uip_arp_update(pipaddr,ethaddr) +# define uip_arp_find(ipaddr) NULL +# define uip_arp_delete(ipaddr) + +#endif /* CONFIG_NET_ARP */ + #undef EXTERN #ifdef __cplusplus } diff --git a/nuttx/include/net/uip/uipopt.h b/nuttx/include/net/uip/uipopt.h index be62d1a6e..f6aff58bd 100644 --- a/nuttx/include/net/uip/uipopt.h +++ b/nuttx/include/net/uip/uipopt.h @@ -16,7 +16,7 @@ * Note: Most of the configuration options in the uipopt.h should not * be changed, but rather the per-project defconfig file. * - * Copyright (C) 2007 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * This logic was leveraged from uIP which also has a BSD-style license: @@ -69,6 +69,42 @@ * Public Type Definitions ****************************************************************************/ +/* Layer 2 Configuration Options ********************************************/ + +/* The default data link layer for uIP is Ethernet. If CONFIG_NET_SLIP is + * defined in the NuttX header file, then SLIP will be supported. The basic + * differences between the SLIP and Ethernet configurations is that when SLIP + * is selected: + * + * - The link level header (that comes before the IP header) is omitted. + * - All MAC address processing is suppressed. + * - ARP is disabled. + * + * If CONFIG_NET_SLIP is not supported, then Ethernet will be used (there is + * no need to define anything special in the configuration file to use + * Ethernet -- it is the default). + * + * The "link level header" is the offset into the d_buf where the IP header + * can be found. For Ethernet, this should be set to 14. For SLIP, this + * should be set to 0. + */ + +#undef CONFIG_NET_ETHERNET +#undef CONFIG_NET_ARP + +#ifdef CONFIG_NET_SLIP +# ifdef CONFIG_NET_IPv6 +# error "SLIP is not implemented for IPv6" +# endif +# define UIP_LLH_LEN 0 +#else +# define CONFIG_NET_ETHERNET 1 +# define CONFIG_NET_ARP 1 +# define UIP_LLH_LEN 14 +#endif + +/* Layer 3/4 Configuration Options ******************************************/ + /* IP configuration options */ /* The IP TTL (time to live) of IP packets sent by uIP. @@ -251,19 +287,6 @@ # define CONFIG_NET_TCP_READAHEAD_BUFSIZE UIP_TCP_MSS #endif -/* The link level header length. - * - * This is the offset into the d_buf where the IP header can be - * found. For Ethernet, this should be set to 14. For SLIP, this - * should be set to 0. - */ - -#ifdef CONFIG_NET_LLH_LEN -# define UIP_LLH_LEN CONFIG_NET_LLH_LEN -#else -# define UIP_LLH_LEN 14 -#endif - /**************************************************************************** * Public Type Definitions ****************************************************************************/ |