[PATCH rtems-lwip v1 3/9] telnetd01: Break out network startup

Kinsey Moore kinsey.moore at oarcorp.com
Fri Jul 1 22:31:06 UTC 2022


This moves network startup in to a BSP-defined function so that tests
can be more generic.
---
 rtemslwip/beaglebone/netstart.c | 43 +++++++++++++++++++++++++++++++++
 rtemslwip/include/netstart.h    | 41 +++++++++++++++++++++++++++++++
 rtemslwip/test/telnetd01/init.c | 26 +++++++++++++++++---
 3 files changed, 107 insertions(+), 3 deletions(-)
 create mode 100644 rtemslwip/beaglebone/netstart.c
 create mode 100644 rtemslwip/include/netstart.h

diff --git a/rtemslwip/beaglebone/netstart.c b/rtemslwip/beaglebone/netstart.c
new file mode 100644
index 0000000..33384b6
--- /dev/null
+++ b/rtemslwip/beaglebone/netstart.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
+ * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
+ *
+ * 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.
+ *
+ * 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.
+ */
+
+#include <netstart.h>
+#include "soc_AM335x.h"
+#include "beaglebone.h"
+#include <lwip/tcpip.h>
+
+int start_networking(
+  struct netif  *net_interface,
+  ip_addr_t     *ipaddr,
+  ip_addr_t     *netmask,
+  ip_addr_t     *gateway,
+  unsigned char *mac_ethernet_address
+)
+{
+  tcpip_init( NULL, NULL );
+
+  return 0;
+}
diff --git a/rtemslwip/include/netstart.h b/rtemslwip/include/netstart.h
new file mode 100644
index 0000000..d5c58d4
--- /dev/null
+++ b/rtemslwip/include/netstart.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
+ * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
+ *
+ * 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.
+ *
+ * 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 _RTEMSLWIP_NETSTART_H
+#define _RTEMSLWIP_NETSTART_H
+#include <lwip/init.h>
+#include <lwip/sockets.h>
+#include <lwip/ip_addr.h>
+
+int start_networking(
+  struct netif  *net_interface,
+  ip_addr_t     *ipaddr,
+  ip_addr_t     *netmask,
+  ip_addr_t     *gateway,
+  unsigned char *mac_ethernet_address
+);
+
+#endif
diff --git a/rtemslwip/test/telnetd01/init.c b/rtemslwip/test/telnetd01/init.c
index 0a20bd8..a671fdd 100644
--- a/rtemslwip/test/telnetd01/init.c
+++ b/rtemslwip/test/telnetd01/init.c
@@ -28,13 +28,15 @@
 
 #include <rtems/telnetd.h>
 #include <lwip/dhcp.h>
-#include <lwip/tcpip.h>
+#include <arch/sys_arch.h>
 
 #include <tmacros.h>
 
+#include <netstart.h>
+
 const char rtems_test_name[] = "TELNETD 1";
 
-//struct rtems_bsdnet_config rtems_bsdnet_config;
+struct netif net_interface;
 
 rtems_shell_env_t env;
 
@@ -86,10 +88,28 @@ rtems_shell_cmd_t shell_NETINFO_Command = {
 static rtems_task Init( rtems_task_argument argument )
 {
   rtems_status_code sc;
+  int ret;
 
   TEST_BEGIN();
 
-  lwip_init();
+  ip_addr_t ipaddr, netmask, gw;
+
+  IP_ADDR4( &ipaddr, 10, 0, 2, 14 );
+  IP_ADDR4( &netmask, 255, 255, 255, 0 );
+  IP_ADDR4( &gw, 10, 0, 2, 3 );
+  unsigned char mac_ethernet_address[] = { 0x00, 0x0a, 0x35, 0x00, 0x22, 0x01 };
+
+  ret = start_networking(
+    &net_interface,
+    &ipaddr,
+    &netmask,
+    &gw,
+    mac_ethernet_address
+  );
+
+  if ( ret != 0 ) {
+    return;
+  }
 
   rtems_shell_init_environment();
 
-- 
2.30.2



More information about the devel mailing list