summaryrefslogtreecommitdiff
path: root/nuttx/include/net
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-03-12 15:36:28 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-03-12 15:36:28 +0000
commite6f93f774080d42c3f954a862709d047df2d7e7a (patch)
tree487b0ec566d911458a00e1803392b817e84b7809 /nuttx/include/net
parent95317af605c883b464a4c5b524632193614bfd24 (diff)
downloadnuttx-e6f93f774080d42c3f954a862709d047df2d7e7a.tar.gz
nuttx-e6f93f774080d42c3f954a862709d047df2d7e7a.tar.bz2
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/net')
-rw-r--r--nuttx/include/net/ioctls.h97
-rw-r--r--nuttx/include/net/uip/uip-arch.h6
-rw-r--r--nuttx/include/net/uip/uip-arp.h20
-rw-r--r--nuttx/include/net/uip/uipopt.h51
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
****************************************************************************/