summaryrefslogtreecommitdiff
path: root/apps/nshlib/nsh_netinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/nshlib/nsh_netinit.c')
-rw-r--r--apps/nshlib/nsh_netinit.c66
1 files changed, 65 insertions, 1 deletions
diff --git a/apps/nshlib/nsh_netinit.c b/apps/nshlib/nsh_netinit.c
index 5581ef5cd..6b4e3daeb 100644
--- a/apps/nshlib/nsh_netinit.c
+++ b/apps/nshlib/nsh_netinit.c
@@ -131,6 +131,57 @@
static sem_t g_notify_sem;
#endif
+#ifdef CONFIG_NET_IPv6
+ /* Host IPv6 address */
+
+#ifdef CONFIG_NSH_DHCPC
+static const uint16_t g_ipv6_hostaddr[8] =
+{
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
+};
+#else
+static const uint16_t g_ipv6_hostaddr[8] =
+{
+ HTONS(CONFIG_NSH_IPv6ADDR_1),
+ HTONS(CONFIG_NSH_IPv6ADDR_2),
+ HTONS(CONFIG_NSH_IPv6ADDR_3),
+ HTONS(CONFIG_NSH_IPv6ADDR_4),
+ HTONS(CONFIG_NSH_IPv6ADDR_5),
+ HTONS(CONFIG_NSH_IPv6ADDR_6),
+ HTONS(CONFIG_NSH_IPv6ADDR_7),
+ HTONS(CONFIG_NSH_IPv6ADDR_8),
+};
+#endif
+
+/* Default routine IPv6 address */
+
+static const uint16_t g_ipv6_draddr[8] =
+{
+ HTONS(CONFIG_NSH_DRIPv6ADDR_1),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_2),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_3),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_4),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_5),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_6),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_7),
+ HTONS(CONFIG_NSH_DRIPv6ADDR_8),
+};
+
+/* IPv6 netmask */
+
+static const uint16_t g_ipv6_netmask[8] =
+{
+ HTONS(CONFIG_NSH_IPv6NETMASK_1),
+ HTONS(CONFIG_NSH_IPv6NETMASK_2),
+ HTONS(CONFIG_NSH_IPv6NETMASK_3),
+ HTONS(CONFIG_NSH_IPv6NETMASK_4),
+ HTONS(CONFIG_NSH_IPv6NETMASK_5),
+ HTONS(CONFIG_NSH_IPv6NETMASK_6),
+ HTONS(CONFIG_NSH_IPv6NETMASK_7),
+ HTONS(CONFIG_NSH_IPv6NETMASK_8),
+};
+#endif /* CONFIG_NET_IPv6 */
+
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -206,7 +257,20 @@ static void nsh_netinit_configure(void)
#endif
#ifdef CONFIG_NET_IPv6
-# warning Missing logic
+ /* Set up our host address */
+
+ netlib_set_ipv6addr(NET_DEVNAME,
+ (FAR const struct in6_addr *)g_ipv6_hostaddr);
+
+ /* Set up the default router address */
+
+ netlib_set_dripv6addr(NET_DEVNAME,
+ (FAR const struct in6_addr *)g_ipv6_draddr);
+
+ /* Setup the subnet mask */
+
+ netlib_set_ipv6netmask(NET_DEVNAME,
+ (FAR const struct in6_addr *)g_ipv6_netmask);
#endif
#if defined(CONFIG_NSH_DHCPC) || defined(CONFIG_NSH_DNS)