diff --git a/include/net/uip/uip-ipopt.h b/include/net/uip/uip-ipopt.h
new file mode 100755
index 0000000000000000000000000000000000000000..00db14d99e1c39e6085a1fa495d008f4a9647d65
--- /dev/null
+++ b/include/net/uip/uip-ipopt.h
@@ -0,0 +1,250 @@
+/************************************************************************************************************
+ * net/uip/uip-ipopt.h
+ *
+ * Defines values for the IP header options
+ *
+ *   Copyright (C) 2010 Gregory Nutt. All rights reserved.
+ *   Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ *   Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ *    used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ************************************************************************************************************/
+
+#ifndef __NET_UIP_IPOPT_H
+#define __NET_UIP_IPOPT_H
+
+/************************************************************************************************************
+ * Included Files
+ ************************************************************************************************************/
+
+#include <nuttx/config.h>
+
+/************************************************************************************************************
+ * Pre-processor Definitions
+ ************************************************************************************************************/
+
+/* IP Header Options:
+ *
+ * The basic 20-byte IP header can be extended by up to another 40 bytes
+ * (in units of 4 bytes) to provide IP options.  The format of a single IP
+ * option is as follows:
+ *
+ * Single byte options:
+ *
+ *   Type:         8-bits
+ *
+ * Multi-byte options:
+ *
+ *   Type:         8-bits
+ *   Length:       8-bits
+ *   Pointer:      8-bits:
+ *   Option Data: (depends on Length)
+ *
+ * The IP Option Type byte consists of the following subfields:
+ */
+ 
+#define IPOPT_TYPE_OPTION_SHIFT       (0)      /* Bits 0-5: Option number*/
+#define IPOPT_TYPE_OPTION_MASK        (0x1f << IPOPT_TYPE_OPTION_SHIFT)
+#  define IPOPT_TYPE_OPTION_END       (0  << IPOPT_TYPE_OPTION_SHIFT) /* End of options list (RFC 791) */
+#  define IPOPT_TYPE_OPTION_NOOP      (1  << IPOPT_TYPE_OPTION_SHIFT) /* No operation (RFC 791) */
+#  define IPOPT_TYPE_OPTION_SEC       (2  << IPOPT_TYPE_OPTION_SHIFT) /* Security (RFC 791, 1108) */
+#  define IPOPT_TYPE_OPTION_LSRR      (3  << IPOPT_TYPE_OPTION_SHIFT) /* Loose source and record route (RFC 791) */
+#  define IPOPT_TYPE_OPTION_TIMESTAMP (4  << IPOPT_TYPE_OPTION_SHIFT) /* Timestamp (RFC 781, 791) */
+#  define IPORT_TYPE_OPTION_EXTSEC    (5  << IPOPT_TYPE_OPTION_SHIFT) /* Extended security (RFC 1108) */
+#  define IPORT_TYPE_OPTION_COMMSEC   (6  << IPOPT_TYPE_OPTION_SHIFT) /* Commercial security */
+#  define IPOPT_TYPE_OPTION_RR        (7  << IPOPT_TYPE_OPTION_SHIFT) /* Record route (RFC 791) */
+#  define IPOPT_TYPE_OPTION_SSID      (8  << IPOPT_TYPE_OPTION_SHIFT) /* Stream ID (RFC 791, 1122) */
+#  define IPOPT_TYPE_OPTION_SSRR      (9  << IPOPT_TYPE_OPTION_SHIFT) /* Strict source and record route (RFC 791) */
+#  define IPOPT_TYPE_OPTION_EXPMEAS   (10 << IPOPT_TYPE_OPTION_SHIFT) /* Experimental measurement */
+#  define IPOPT_TYPE_OPTION_MTUPROBE  (11 << IPOPT_TYPE_OPTION_SHIFT) /* MTU Probe (RFC 1063) */
+#  define IPOPT_TYPE_OPTION_MTUREPLY  (12 << IPOPT_TYPE_OPTION_SHIFT) /* MTU Reply (RFC 1063) */
+#  define IPOPT_TYPE_OPTION_EXPFC     (13 << IPOPT_TYPE_OPTION_SHIFT) /* Experimental flow control */
+#  define IPOPT_TYPE_OPTION_EXPAC     (14 << IPOPT_TYPE_OPTION_SHIFT) /* Experimental access control */
+#  define IPOPT_TYPE_OPTION_ENCODE    (15 << IPOPT_TYPE_OPTION_SHIFT) /* ENCODE */
+#  define IPOPT_TYPE_OPTION_IMITD     (16 << IPOPT_TYPE_OPTION_SHIFT) /* IMI traffic descriptor */
+#  define IPOPT_TYPE_OPTION_EXTIP     (17 << IPOPT_TYPE_OPTION_SHIFT) /* Extended IP (RFC 1385) */
+#  define IPOPT_TYPE_OPTION_TR        (18 << IPOPT_TYPE_OPTION_SHIFT) /* Traceroute (RFC 1393) */
+#  define IPOPT_TYPE_OPTION_ADDREXT   (19 << IPOPT_TYPE_OPTION_SHIFT) /* Address extension (RFC 1475) */
+#  define IPOPT_TYPE_OPTION_RA        (20 << IPOPT_TYPE_OPTION_SHIFT) /* Router alert (RFC 2113) */
+#  define IPOPT_TYPE_OPTION_SDBM      (21 << IPOPT_TYPE_OPTION_SHIFT) /* Selective direct broadcast mode (RFC 1770) */
+#  define IPOPT_TYPE_OPTION_DPS       (23 << IPOPT_TYPE_OPTION_SHIFT) /* Dynamic packet state */
+#  define IPOPT_TYPE_OPTION_UMP       (24 << IPOPT_TYPE_OPTION_SHIFT) /* Upstream multicast packet */
+#  define IPOPT_TYPE_OPTION_QS        (25 << IPOPT_TYPE_OPTION_SHIFT) /* Quick start (RFC 4782) */
+#  define IPOPT_TYPE_OPTION_EXP3692   (30 << IPOPT_TYPE_OPTION_SHIFT) /* RFC 3692-style experiment (RFC 4782) */
+#define IPOPT_TYPE_CLASS_SHIFT        (5)      /* Bits 5-6: Class */
+#define IPOPT_TYPE_CLASS_MASK         (3 << IPOPT_TYPE_CLASS_SHIFT)
+#  define IPOPT_TYPE_CLASS_CTRL       (0 << IPOPT_TYPE_CLASS_SHIFT)   /* Control */
+#  define IPOPT_TYPE_CLASS_MEASURE    (2 << IPOPT_TYPE_CLASS_SHIFT)   /* Debugging and measurement */
+#define IPOPT_TYPE_COPIED             (1 << 7) /* Bit 7: IP layer must copy option to each fragment */
+#define IPOPT_TYPE_NOTCOPIED          (0)
+
+/* IP Option encoding macros */
+
+#define IPOPT_MKTYPE(copied,class,option) (copied|class|option)
+
+#define IPOPT_MKOPTION8(copied,class,option) \
+  ((uint8_t)IPOPT_MKTYPE(copied,class,option))
+#define IPOPT_MKOPTION32(type,len,ptr,data) \
+  ((uint32_t)(type) << 24 | (uint32_t)(len) << 16) | \
+   (uint32_t)(ptr)   << 8 | (uint32_t)(data))
+
+/* Option Copy Class Length    Description References
+ * ------ ---- ----- --------- ------------------------------------------------
+ *   0     0    0     1        End of options list. RFC 791 
+ *   1     0    0     1        NOP. RFC 791 
+ *   2     1    0     11       Security. RFC 791, RFC 1108 
+ *   3     1    0     variable Loose Source Route. RFC 791 
+ *   4     0    2     variable Time stamp. RFC 781, RFC 791 
+ *   5     1    0     3-31     Extended Security. RFC 1108 
+ *   6     1    0              Commercial Security.   
+ *   7     0    0     variable Record Route. RFC 791 
+ *   8     1    0     4        Stream Identifier. RFC 791, RFC 1122 
+ *   9     1    0     variable Strict Source Route. RFC 791 
+ *  10     0    0              Experimental Measurement.   
+ *  11     0    0     4        MTU Probe. (obsolete). RFC 1063 
+ *  12     0    0     4        MTU Reply. (obsolete). RFC 1063 
+ *  13     1    2              Experimental Flow Control.   
+ *  14     1    0              Expermental Access Control.   
+ *  15     0    0              ENCODE.   
+ *  16     1    0              IMI Traffic Descriptor.   
+ *  17     1    0     variable Extended Internet Protocol. RFC 1385 
+ *  18     0    2     12       Traceroute. RFC 1393 
+ *  19     1    0     10       Address Extension. RFC 1475 
+ *  20     1    0     4        Router Alert. RFC 2113 
+ *  21     1    0     6-38     Selective Directed Broadcast Mode. RFC 1770 
+ *  22     1    0        
+ *  23     1    0              Dynamic Packet State.   
+ *  24     1    0              Upstream Multicast Packet.   
+ *  25     0    0              QS, Quick-Start. RFC 4782 
+ *  26
+ *  -
+ *  29             
+ *  30     0    0             EXP - RFC3692-style Experiment. RFC 4727 
+ *  30     0    2             EXP - RFC3692-style Experiment. RFC 4727 
+ *  30     1    0             EXP - RFC3692-style Experiment RFC 4727 
+ *  30     1    2             EXP - RFC3692-style Experiment. RFC 4727 
+ *  31             
+ */
+
+#define IPOTR_END_LEN 1
+#define IPOPT_END_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_END)
+
+#define IPOTR_NOOP_LEN 1
+#define IPOPT_NOOP_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_NOOP)
+
+#define IPOPT_SEC_LEN 11
+#define IPOPT_SEC_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_SEC)
+
+#define IPOPT_LSRR_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_LSRR)
+
+#define IPOPT_TIMESTAMP_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_MEASURE, IPOPT_TYPE_OPTION_TIMESTAMP)
+
+#define IPORT_EXTSEC_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPORT_TYPE_OPTION_EXTSEC)
+
+#define IPORT_COMMSEC_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPORT_TYPE_OPTION_COMMSEC)
+
+#define IPOPT_RR_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_RR)
+
+#define IPOPT_SSID_LEN 4
+#define IPOPT_SSID_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_SSID)
+
+#define IPOPT_SSRR_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_SSRR)
+#define IPOPT_EXPMEAS_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_EXPMEAS)
+
+#define IPOPT_MTUPROBE_LEN 4
+#define IPOPT_MTUPROBE_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_MTUPROBE)
+
+#define IPOPT_MTUREPLY_LEN 4
+#define IPOPT_MTUREPLY_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_MTUREPLY)
+
+#define IPOPT_EXPFC_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_MEASURE, IPOPT_TYPE_OPTION_EXPFC)
+
+#define IPOPT_EXPAC_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_EXPAC)
+
+#define IPOPT_ENCODE_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_ENCODE)
+
+#define IPOPT_IMITD_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_IMITD)
+
+#define IPOPT_EXTIP_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_EXTIP)
+
+#define IPOPT_TR_LEN 12
+#define IPOPT_TR_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_MEASURE, IPOPT_TYPE_OPTION_TR)
+
+#define IPOPT_ADDREXT_LEN 10
+#define IPOPT_ADDREXT_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_ADDREXT)
+
+#define IPOPT_RA_LEN 4
+#define IPOPT_RA_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_RA)
+#define IPOPT_RA \
+  IPOPT_MKOPTION32(IPORT_RA_TYPE, 4, 0, 0)
+
+#define IPOPT_SDBM_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_SDBM)
+#define IPOPT_DPS_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_DPS)
+#define IPOPT_UMP_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_UMP)
+#define IPOPT_QS_TYPE \
+  IPOPT_MKTYPE(IPOPT_TYPE_NOTCOPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_QS)
+
+/************************************************************************************************************
+ * Public Type Definitions
+ ************************************************************************************************************/
+
+/************************************************************************************************************
+ * Public Data
+ ************************************************************************************************************/
+
+/************************************************************************************************************
+ * Public Function Prototypes
+ ************************************************************************************************************/
+
+#endif /* __NET_UIP_IPOPT_H */
diff --git a/include/net/uip/uip.h b/include/net/uip/uip.h
index a651b68f6327596fefed420d4a323e839b28bade..fd937366612175802e765c403f9cf69075afa4ef 100644
--- a/include/net/uip/uip.h
+++ b/include/net/uip/uip.h
@@ -150,62 +150,6 @@
 # define UIP_IPH_LEN    20    /* Size of IP header */
 #endif
 
-/* IP Header Options:
- *
- * The basic 20-byte IP header can be extended by up to another 40 bytes
- * (in units of 4 bytes) to provide IP options.  The format of a single IP
- * option is as follows:
- *
- * Single byte options:
- *
- *   Type:         8-bits
- *
- * Multi-byte options:
- *
- *   Type:         8-bits
- *   Length:       8-bits
- *   Pointer:      8-bits:
- *   Option Data: (depends on Length)
- *
- * The IP Option Type byte consists of the following subfields:
- */
- 
-#define IPOPT_TYPE_OPTION_SHIFT       (0)      /* Bits 0-5: Option number*/
-#define IPOPT_TYPE_OPTION_MASK        (0x1f << IPOPT_TYPE_OPTION_SHIFT)
-#  define IPOPT_TYPE_OPTION_END       (0  << IPOPT_TYPE_OPTION_SHIFT) /* End of options list */
-#  define IPOPT_TYPE_OPTION_NOOP      (1  << IPOPT_TYPE_OPTION_SHIFT) /* No operation */
-#  define IPOPT_TYPE_OPTION_SEC       (2  << IPOPT_TYPE_OPTION_SHIFT) /* Security */
-#  define IPOPT_TYPE_OPTION_LSRR      (3  << IPOPT_TYPE_OPTION_SHIFT) /* Loose source and record route */
-#  define IPOPT_TYPE_OPTION_TIMESTAMP (4  << IPOPT_TYPE_OPTION_SHIFT) /* Timestamp */
-#  define IPOPT_TYPE_OPTION_RR        (7  << IPOPT_TYPE_OPTION_SHIFT) /* Record route */
-#  define IPOPT_TYPE_OPTION_SSID      (8  << IPOPT_TYPE_OPTION_SHIFT) /* Stream ID */
-#  define IPOPT_TYPE_OPTION_SSRR      (9  << IPOPT_TYPE_OPTION_SHIFT) /* Strict source and record route */
-#  define IPOPT_TYPE_OPTION_RA        (20 << IPOPT_TYPE_OPTION_SHIFT) /* Router alert */
-#define IPOPT_TYPE_CLASS_SHIFT        (5)      /* Bits 5-6: Class */
-#define IPOPT_TYPE_CLASS_MASK         (3 << IPOPT_TYPE_CLASS_SHIFT)
-#  define IPOPT_TYPE_CLASS_CTRL       (0 << IPOPT_TYPE_CLASS_SHIFT) /* Control */
-#  define IPOPT_TYPE_CLASS_MEASURE    (2 << IPOPT_TYPE_CLASS_SHIFT) /* Debugging and measurement */
-#define IPOPT_TYPE_COPIED             (1 << 7) /* Bit 7: IP layer must copy option to each fragment */
-
-/* IP Option encoding macros */
-
-#define IPOPT_MKTYPE(copied,class,option) (copied|class|option)
-  
-#define IPOPT_MKOPTION8(copied,class,option) \
-  ((uint8_t)IPOPT_MKTYPE(copied,class,option))
-#define IPOPT_MKOPTION32(copied,class,option,len,ptr,data) \
-  ((uint32_t)IPORT_MKTYPE(copied,class,option) << 24 | \
-   (uint32_t)len << 16) | (uint32_t)data << 8 | (uint32_t)data)
-
-/* Some useful pre-defined IP options */
-
-#define IPOPT_END \
-  IPOPT_MKOPTION8(0, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_END)
-#define IPOPT_NOOP \
-  IPOPT_MKOPTION8(0, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_NOOP)
-#define IPOPT_RA \
-  IPOPT_MKOPTION32(IPOPT_TYPE_COPIED, IPOPT_TYPE_CLASS_CTRL, IPOPT_TYPE_OPTION_RA, 4, 0, 0)
- 
 /****************************************************************************
  * Public Type Definitions
  ****************************************************************************/