summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Ruben Bakke <glennbakke@gmail.com>2017-04-09 18:53:58 +0200
committerGlenn Ruben Bakke <glennbakke@gmail.com>2017-04-09 18:53:58 +0200
commitd7cfae3639b681b1a25db1bec104e04cad07b508 (patch)
tree14e39c5ae3f3c61ed6cea58b495144e25a9fd033
parent4dd86178bc7981ca8b8cf4548c61733125f0ff1a (diff)
nrf5/usocket: Removing network modules related to Bluetooth 6lowpan implementation as it depends on SDK libraries for now. Will be moved to seperate working branch.
-rw-r--r--nrf5/Makefile3
-rw-r--r--nrf5/bluetooth/bluetooth_common.mk2
-rw-r--r--nrf5/bluetooth/iot_0.9.0/build.mk118
-rw-r--r--nrf5/bluetooth/iot_0.9.0/modnwble6lowpan.c217
-rw-r--r--nrf5/bluetooth/iot_0.9.0/sdk.mk12
-rw-r--r--nrf5/bluetooth/iot_0.9.0/sdk_config.h46
-rw-r--r--nrf5/bluetooth/iot_0.9.0/sdkhelp.c256
-rw-r--r--nrf5/bluetooth/iot_0.9.0/sdkhelp.h27
-rw-r--r--nrf5/bluetooth_conf.h13
-rw-r--r--nrf5/boards/microbit/mpconfigboard.h3
-rw-r--r--nrf5/boards/nrf52832_512k_64k_s1xx.ld27
-rw-r--r--nrf5/boards/pca10028/mpconfigboard.h3
-rw-r--r--nrf5/boards/pca10040/mpconfigboard_s1xx.mk6
-rw-r--r--nrf5/main.c5
-rw-r--r--nrf5/modules/network/modnetwork.c97
-rw-r--r--nrf5/modules/network/modnetwork.h81
-rw-r--r--nrf5/modules/usocket/modusocket.c480
-rw-r--r--nrf5/mpconfigport.h27
18 files changed, 1 insertions, 1422 deletions
diff --git a/nrf5/Makefile b/nrf5/Makefile
index 511fe4c46..409a6c4c8 100644
--- a/nrf5/Makefile
+++ b/nrf5/Makefile
@@ -62,7 +62,6 @@ INC += -I./hal
INC += -I./hal/$(MCU_VARIANT)
INC += -I./modules/display
INC += -I./modules/machine
-INC += -I./modules/network
INC += -I./modules/ubluepy
INC += -I../lib/mp-readline
@@ -148,8 +147,6 @@ DRIVERS_SRC_C += $(addprefix modules/,\
machine/pwm.c \
machine/led.c \
machine/temp.c \
- usocket/modusocket.c \
- network/modnetwork.c \
uos/moduos.c \
utime/modutime.c \
pyb/modpyb.c \
diff --git a/nrf5/bluetooth/bluetooth_common.mk b/nrf5/bluetooth/bluetooth_common.mk
index 74a367d8e..21aa9bafb 100644
--- a/nrf5/bluetooth/bluetooth_common.mk
+++ b/nrf5/bluetooth/bluetooth_common.mk
@@ -16,8 +16,6 @@ else ifeq ($(SD), s132)
CFLAGS += -DBLUETOOTH_SD_DEBUG=1
CFLAGS += -DBLUETOOTH_SD=132
SOFTDEV_HEX_NAME = s132_nrf52_3.0.0_softdevice.hex
-#else ifeq ($(SD), s1xx)
-# include bluetooth/iot_0.9.0/sdk.mk
else
$(error Incorrect softdevice set flag)
endif
diff --git a/nrf5/bluetooth/iot_0.9.0/build.mk b/nrf5/bluetooth/iot_0.9.0/build.mk
deleted file mode 100644
index 763aa5a42..000000000
--- a/nrf5/bluetooth/iot_0.9.0/build.mk
+++ /dev/null
@@ -1,118 +0,0 @@
-# this file's folder
-SDK_DIR := $(SDK_ROOT)
-
-# -D<define> in CFLAGS
-DEFINES += __HEAP_SIZE=0
-DEFINES += BLE_STACK_SUPPORT_REQD
-DEFINES += CONFIG_GPIO_AS_PINRESET
-DEFINES += NRF52
-DEFINES += NRF52_PAN_12
-DEFINES += NRF52_PAN_15
-DEFINES += NRF52_PAN_20
-DEFINES += NRF52_PAN_30
-DEFINES += NRF52_PAN_31
-DEFINES += NRF52_PAN_36
-DEFINES += NRF52_PAN_51
-DEFINES += NRF52_PAN_53
-DEFINES += NRF52_PAN_54
-DEFINES += NRF52_PAN_55
-DEFINES += NRF52_PAN_58
-DEFINES += NRF52_PAN_62
-DEFINES += NRF52_PAN_63
-DEFINES += NRF52_PAN_64
-DEFINES += s1xx
-DEFINES += SOFTDEVICE_PRESENT
-DEFINES += SWI_DISABLE0
-DEFINES += NRF_SD_BLE_API_VERSION=3
-DEFINES += PEER_MANAGER_ENABLED=1
-DEFINES += FDS_ENABLED=1
-DEFINES += LWIP_DEBUG=0
-
-# nordic SDK C sources (relative path)
-SDK_SRC_C += \
- components/ble/common/ble_advdata.c \
- components/ble/common/ble_conn_params.c \
- components/ble/common/ble_srv_common.c \
- components/libraries/fifo/app_fifo.c \
- components/libraries/timer/app_timer.c \
- components/libraries/util/app_util_platform.c \
- components/softdevice/common/softdevice_handler/softdevice_handler.c \
- components/drivers_nrf/clock/nrf_drv_clock.c \
- components/libraries/util/app_error.c \
- components/drivers_nrf/common/nrf_drv_common.c \
- components/libraries/mem_manager/mem_manager.c \
- components/libraries/trace/app_trace.c \
- components/iot/context_manager/iot_context_manager.c \
- components/iot/iot_timer/iot_timer.c \
- external/lwip/src/core/def.c \
- external/lwip/src/core/dhcp.c \
- external/lwip/src/core/ipv6/dhcp6.c \
- external/lwip/src/core/dns.c \
- external/lwip/src/core/ipv4/icmp.c \
- external/lwip/src/core/ipv6/icmp6.c \
- external/lwip/src/core/ipv6/inet6.c \
- external/lwip/src/core/inet_chksum.c \
- external/lwip/src/core/init.c \
- external/lwip/src/core/ipv4/ip4.c \
- external/lwip/src/core/ipv4/ip4_addr.c \
- external/lwip/src/core/ipv6/ip6.c \
- external/lwip/src/core/ipv6/ip6_addr.c \
- external/lwip/src/core/memp.c \
- external/lwip/src/core/ipv6/mld6.c \
- external/lwip/src/core/ipv6/nd6.c \
- external/lwip/src/core/netif.c \
- external/lwip/src/port/nrf_platform_port.c \
- external/lwip/src/core/pbuf.c \
- external/lwip/src/core/raw.c \
- external/lwip/src/core/sys.c \
- external/lwip/src/core/tcp.c \
- external/lwip/src/core/tcp_in.c \
- external/lwip/src/core/tcp_out.c \
- external/lwip/src/core/timers.c \
- external/lwip/src/core/udp.c \
-
-# include source folders (sort removes duplicates)
-SDK_INC_DIRS += $(sort $(dir $(SDK_SRC_C)))
-# nrf_drv_config.h
-SDK_INC_DIRS += components/drivers_nrf/config
-# app_util.h
-SDK_INC_DIRS += components/libraries/util
-# nrf_log.h
-SDK_INC_DIRS += components/libraries/log/
-# nrf_log_internal.h
-SDK_INC_DIRS += components/libraries/log/src
-# nrf_clock.h
-SDK_INC_DIRS += components/drivers_nrf/hal
-# nrf_drv_common.h
-SDK_INC_DIRS += components/drivers_nrf/common
-# nrf_delay.h
-SDK_INC_DIRS += components/drivers_nrf/delay
-# ble_6lowpan.h
-SDK_INC_DIRS += components/iot/ble_6lowpan
-# ble_ipsp.h
-SDK_INC_DIRS += components/iot/ble_ipsp
-# iot_defines.h
-SDK_INC_DIRS += components/iot/common
-# SDK lwip includes
-SDK_INC_DIRS += external/lwip/src/port/arch
-SDK_INC_DIRS += external/lwip/src/include
-SDK_INC_DIRS += external/lwip/src/include/netif
-SDK_INC_DIRS += external/lwip/src/port
-SDK_INC_DIRS += external/lwip/src/include/lwip
-
-LIBS += $(SDK_ROOT)/components/iot/ble_6lowpan/lib/ble_6lowpan.a
-
-CFLAGS += $(patsubst %,-D%,${DEFINES})
-
-# include full path
-INC += $(patsubst %,-I${SDK_DIR}/%, ${SDK_INC_DIRS})
-
-# additional SDK source files
-SRC_C += $(addprefix ${SDK_ROOT}/, $(SDK_SRC_C))
-
-# Wrappers
-SRC_C += \
- $(SDK_MODULES_PATH)sdkhelp.c \
- $(SDK_MODULES_PATH)modnwble6lowpan.c \
-
-
diff --git a/nrf5/bluetooth/iot_0.9.0/modnwble6lowpan.c b/nrf5/bluetooth/iot_0.9.0/modnwble6lowpan.c
deleted file mode 100644
index f8b3be89f..000000000
--- a/nrf5/bluetooth/iot_0.9.0/modnwble6lowpan.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2016 Glenn Ruben Bakke
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "bluetooth_conf.h"
-
-#if MICROPY_PY_BLE_6LOWPAN
-
-#include "lwip/ip6_addr.h"
-#include "lwip/udp.h"
-
-#ifdef MAX
-#undef MAX
-#endif
-
-#ifdef MIN
-#undef MIN
-#endif
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-
-#include "py/nlr.h"
-#include "py/objlist.h"
-#include "py/runtime.h"
-#include "py/mperrno.h"
-#include "py/mphal.h"
-#include "netutils.h"
-#include "modnetwork.h"
-#include "pin.h"
-#include "genhdr/pins.h"
-#include "lwip/ip6_addr.h"
-#include "lwip/udp.h"
-
-/// \moduleref network
-
-typedef struct _ble_6lowpan_obj_t {
- mp_obj_base_t base;
-} ble_6lowpan_obj_t;
-
-STATIC ble_6lowpan_obj_t ble_6lowpan_obj;
-
-
-
-STATIC int ble_6lowpan_gethostbyname(mp_obj_t nic, const char *name, mp_uint_t len, uint8_t *out_ip) {
- return MP_ENOENT;
-}
-
-STATIC int ble_6lowpan_socket_socket(mod_network_socket_obj_t *socket, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC void ble_6lowpan_socket_close(mod_network_socket_obj_t *socket) {
-}
-
-STATIC int ble_6lowpan_socket_bind(mod_network_socket_obj_t *socket, byte *ip, mp_uint_t port, int *_errno) {
- err_t err;
- socket->p_socket = udp_new_ip6();
- if (socket->p_socket) {
-
-
- err = udp_bind_ip6(socket->p_socket, ip, port);
- if (err != ERR_OK) {
- *_errno = err;
- udp_remove(socket->p_socket);
- }
- }
-
- return 0;
-}
-
-STATIC int ble_6lowpan_socket_listen(mod_network_socket_obj_t *socket, mp_int_t backlog, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC int ble_6lowpan_socket_accept(mod_network_socket_obj_t *socket, mod_network_socket_obj_t *socket2, byte *ip, mp_uint_t *port, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC int ble_6lowpan_socket_connect(mod_network_socket_obj_t *socket, byte *ip, mp_uint_t port, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC mp_uint_t ble_6lowpan_socket_send(mod_network_socket_obj_t *socket, const byte *buf, mp_uint_t len, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC mp_uint_t ble_6lowpan_socket_recv(mod_network_socket_obj_t *socket, byte *buf, mp_uint_t len, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-#include "netutils/netutils.h"
-
-STATIC mp_uint_t ble_6lowpan_socket_sendto(mod_network_socket_obj_t *socket, const byte *buf, mp_uint_t len, byte *ip, mp_uint_t port, int *_errno) {
-
- struct pbuf * lwip_buffer = pbuf_alloc(PBUF_TRANSPORT, len, PBUF_RAM);
- memcpy(lwip_buffer->payload, buf, len);
-
- printf("Sendto\n");
-
- err_t err = udp_sendto_ip6(socket->p_socket,
- lwip_buffer,
- ip,
- port);
-
- printf("dest: %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n",
- ip[0], ip[1], ip[2], ip[3],
- ip[4], ip[5], ip[6], ip[7],
- ip[8], ip[9], ip[10], ip[11],
- ip[12], ip[13], ip[14], ip[15]);
-
- printf("port: %x\n", port);
- printf("len: %d\n", len);
-
- if (err != ERR_OK) {
- *_errno = err;
- }
-
- return 0;
-}
-
-STATIC mp_uint_t ble_6lowpan_socket_recvfrom(mod_network_socket_obj_t *socket, byte *buf, mp_uint_t len, byte *ip, mp_uint_t *port, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC int ble_6lowpan_socket_setsockopt(mod_network_socket_obj_t *socket, mp_uint_t level, mp_uint_t opt, const void *optval, mp_uint_t optlen, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC int ble_6lowpan_socket_settimeout(mod_network_socket_obj_t *socket, mp_uint_t timeout_ms, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-STATIC int ble_6lowpan_socket_ioctl(mod_network_socket_obj_t *socket, mp_uint_t request, mp_uint_t arg, int *_errno) {
- *_errno = MP_EINVAL;
- return -1;
-}
-
-#include "sdkhelp.h"
-
-/******************************************************************************/
-// Micro Python bindings
-
-/// \classmethod \constructor
-/// Create and return a BLE 6LoWPAN object.
-STATIC mp_obj_t ble_6lowpan_make_new(const mp_obj_type_t *type, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
- // check arguments
- //mp_arg_check_num(n_args, n_kw, 0, 0, false);
-
- // init the BLE 6lowpan object
- ble_6lowpan_obj.base.type = (mp_obj_type_t*)&mod_network_nic_type_ble_6lowpan;
-
- // blocking call to wait for connection with peer.
- transport_init();
-
- // regiser NIC with network module
- mod_network_register_nic(&ble_6lowpan_obj);
-
- // return BLE 6LoWPAN object
- return &ble_6lowpan_obj;
-}
-
-const mod_network_nic_type_t mod_network_nic_type_ble_6lowpan = {
- .base = {
- { &mp_type_type },
- .name = MP_QSTR_BLE6LOWPAN,
- .make_new = ble_6lowpan_make_new,
- },
- .gethostbyname = ble_6lowpan_gethostbyname,
- .socket = ble_6lowpan_socket_socket,
- .close = ble_6lowpan_socket_close,
- .bind = ble_6lowpan_socket_bind,
- .listen = ble_6lowpan_socket_listen,
- .accept = ble_6lowpan_socket_accept,
- .connect = ble_6lowpan_socket_connect,
- .send = ble_6lowpan_socket_send,
- .recv = ble_6lowpan_socket_recv,
- .sendto = ble_6lowpan_socket_sendto,
- .recvfrom = ble_6lowpan_socket_recvfrom,
- .setsockopt = ble_6lowpan_socket_setsockopt,
- .settimeout = ble_6lowpan_socket_settimeout,
- .ioctl = ble_6lowpan_socket_ioctl,
-};
-
-#endif
diff --git a/nrf5/bluetooth/iot_0.9.0/sdk.mk b/nrf5/bluetooth/iot_0.9.0/sdk.mk
deleted file mode 100644
index 26544f2fc..000000000
--- a/nrf5/bluetooth/iot_0.9.0/sdk.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-
-INC += -I./$(SDK_MODULES_PATH)
-
-include $(SDK_MODULES_PATH)build.mk
-
-INC += -I$(SDK_ROOT)components/softdevice/s1xx_iot/headers
-INC += -I$(SDK_ROOT)components/softdevice/s1xx_iot/headers/nrf52
-CFLAGS += -DBLUETOOTH_SD=100
-CFLAGS += -DBLUETOOTH_SD_DEBUG=1
-
-# softdevice .hex file
-SOFTDEV_HEX ?= $(lastword $(wildcard $(SDK_ROOT)/components/softdevice/s1xx_iot/s1xx*softdevice.hex))
diff --git a/nrf5/bluetooth/iot_0.9.0/sdk_config.h b/nrf5/bluetooth/iot_0.9.0/sdk_config.h
deleted file mode 100644
index fa851f540..000000000
--- a/nrf5/bluetooth/iot_0.9.0/sdk_config.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2016 Glenn Ruben Bakke
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef SDK_CONFIG_H__
-#define SDK_CONFIG_H__
-
-#define MEMORY_MANAGER_SMALL_BLOCK_COUNT (8)
-#define MEMORY_MANAGER_SMALL_BLOCK_SIZE (128)
-#define MEMORY_MANAGER_MEDIUM_BLOCK_COUNT (4)
-#define MEMORY_MANAGER_MEDIUM_BLOCK_SIZE (256)
-#define MEMORY_MANAGER_LARGE_BLOCK_COUNT (3)
-#define MEMORY_MANAGER_LARGE_BLOCK_SIZE (1024)
-#define MEM_MANAGER_ENABLE_LOGS (0)
-#define MEM_MANAGER_DISABLE_API_PARAM_CHECK (0)
-#define IOT_CONTEXT_MANAGER_ENABLE_LOGS (0)
-#define IOT_CONTEXT_MANAGER_DISABLE_API_PARAM_CHECK (0)
-#define IOT_CONTEXT_MANAGER_MAX_CONTEXTS (16)
-#define IOT_CONTEXT_MANAGER_MAX_TABLES (1)
-#define NRF_LWIP_DRIVER_ENABLE_LOGS (0)
-#define IOT_TIMER_RESOLUTION_IN_MS (100)
-#define IOT_TIMER_DISABLE_API_PARAM_CHECK (0)
-
-#endif // SDK_CONFIG_H__
diff --git a/nrf5/bluetooth/iot_0.9.0/sdkhelp.c b/nrf5/bluetooth/iot_0.9.0/sdkhelp.c
deleted file mode 100644
index f3b1bf799..000000000
--- a/nrf5/bluetooth/iot_0.9.0/sdkhelp.c
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2016 Glenn Ruben Bakke
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdbool.h>
-
-#include "softdevice_handler.h"
-#include "app_trace.h"
-#include "app_timer_appsh.h"
-#include "ble_advdata.h"
-#include "ble_srv_common.h"
-#include "ble_ipsp.h"
-#include "ble_6lowpan.h"
-#include "mem_manager.h"
-#include "app_trace.h"
-#include "lwip/init.h"
-#include "lwip/inet6.h"
-#include "lwip/ip6.h"
-#include "lwip/ip6_addr.h"
-#include "lwip/netif.h"
-#include "lwip/timers.h"
-#include "nrf_platform_port.h"
-#include "app_util_platform.h"
-#include "ble_gap.h"
-#include "sdkhelp.h"
-#include "mpconfigport.h"
-#include "app_timer_appsh.h"
-#include "iot_timer.h"
-
-#include "iot_defines.h"
-
-eui64_t eui64_local_iid;
-
-bool m_interface_up = false;
-
-void nrf_driver_interface_up(void)
-{
- // sys_check_timeouts();
- m_interface_up = true;
-}
-
-void nrf_driver_interface_down(void)
-{
- m_interface_up = false;
-}
-
-#define DEVICE_NAME "MPY_IPv6"
-#define APP_ADV_TIMEOUT (0) // disable timeout
-#define APP_ADV_ADV_INTERVAL MSEC_TO_UNITS(333, UNIT_0_625_MS)
-#define IOT_TIMER_RESOLUTION_IN_MS 100
-#define LWIP_SYS_TICK_MS 100
-#define APP_TIMER_PRESCALER 31 // Value of the RTC1 PRESCALER register. */
-#define APP_TIMER_MAX_TIMERS 1
-#define APP_TIMER_OP_QUEUE_SIZE 5
-
-APP_TIMER_DEF(m_iot_timer_tick_src_id);
-
-static ble_gap_adv_params_t m_adv_params;
-static ble_gap_addr_t m_local_ble_addr;
-
-static void app_lwip_time_tick(iot_timer_time_in_ms_t wall_clock_value)
-{
- sys_check_timeouts();
-}
-
-static void iot_timer_init(void)
-{
- uint32_t err_code;
-
- static const iot_timer_client_t list_of_clients[] =
- {
- {app_lwip_time_tick, LWIP_SYS_TICK_MS}
- };
-
- // The list of IoT Timer clients is declared as a constant.
- static const iot_timer_clients_list_t iot_timer_clients =
- {
- (sizeof(list_of_clients) / sizeof(iot_timer_client_t)),
- &(list_of_clients[0]),
- };
-
- // Passing the list of clients to the IoT Timer module.
- err_code = iot_timer_client_list_set(&iot_timer_clients);
- APP_ERROR_CHECK(err_code);
-
- // Starting the app timer instance that is the tick source for the IoT Timer.
- err_code = app_timer_start(m_iot_timer_tick_src_id, \
- APP_TIMER_TICKS(IOT_TIMER_RESOLUTION_IN_MS, APP_TIMER_PRESCALER), \
- NULL);
- APP_ERROR_CHECK(err_code);
-}
-
-static void iot_timer_tick_callback(void * p_context)
-{
- UNUSED_VARIABLE(p_context);
- uint32_t err_code = iot_timer_update();
- APP_ERROR_CHECK(err_code);
-}
-
-static void timers_init(void)
-{
- uint32_t err_code;
-
- // Initialize timer module, making it use the scheduler
- APP_TIMER_APPSH_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
-
- // Create a sys timer.
- err_code = app_timer_create(&m_iot_timer_tick_src_id,
- APP_TIMER_MODE_REPEATED,
- iot_timer_tick_callback);
- APP_ERROR_CHECK(err_code);
-}
-
-static void on_ble_evt(ble_evt_t * p_ble_evt)
-{
- switch (p_ble_evt->header.evt_id)
- {
- case BLE_GAP_EVT_CONNECTED:
- break;
- case BLE_GAP_EVT_DISCONNECTED:
- sd_ble_gap_adv_start(&m_adv_params);
- break;
- default:
- break;
- }
-}
-
-static void ble_evt_dispatch(ble_evt_t * p_ble_evt)
-{
- ble_ipsp_evt_handler(p_ble_evt);
- on_ble_evt(p_ble_evt);
-}
-
-void transport_init(void) {
-
- // if interface is already up, return
- if (m_interface_up) {
- return;
- }
-
- uint32_t err_code;
-
- timers_init();
-
- // Initialize the SoftDevice handler module.
- SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false);
- printf("Softdevice init done\n");
-
- // Enable BLE stack.
- ble_enable_params_t ble_enable_params;
- memset(&ble_enable_params, 0x00, sizeof(ble_enable_params));
- ble_enable_params.gatts_enable_params.attr_tab_size = BLE_GATTS_ATTR_TAB_SIZE_DEFAULT;
- ble_enable_params.gatts_enable_params.service_changed = false;
- err_code = sd_ble_enable(&ble_enable_params);
- printf("Softdevice enable:" UINT_FMT "\n", (uint16_t)err_code);
-
- // Register with the SoftDevice handler module for BLE events.
- err_code = softdevice_ble_evt_handler_set(ble_evt_dispatch);
- printf("Softdevice evt handler set:" UINT_FMT "\n", (uint16_t)err_code);
- APP_ERROR_CHECK(err_code);
-
- ble_advdata_t advdata;
- uint8_t flags = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;
- ble_gap_conn_sec_mode_t sec_mode;
-
- BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);
-
- err_code = sd_ble_gap_device_name_set(&sec_mode,
- (const uint8_t *)DEVICE_NAME,
- strlen(DEVICE_NAME));
- printf("Device name set:" UINT_FMT "\n", (uint16_t)err_code);
- APP_ERROR_CHECK(err_code);
-
- err_code = sd_ble_gap_address_get(&m_local_ble_addr);
- APP_ERROR_CHECK(err_code);
- printf("GAP address get:" UINT_FMT "\n", (uint16_t)err_code);
-
- m_local_ble_addr.addr[5] = 0x00;
- m_local_ble_addr.addr_type = BLE_GAP_ADDR_TYPE_PUBLIC;
-
- err_code = sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_NONE, &m_local_ble_addr);
- APP_ERROR_CHECK(err_code);
- printf("GAP address set:" UINT_FMT "\n", (uint16_t)err_code);
- IPV6_EUI64_CREATE_FROM_EUI48(eui64_local_iid.identifier,
- m_local_ble_addr.addr,
- m_local_ble_addr.addr_type);
-
- ble_uuid_t adv_uuids[] =
- {
- {BLE_UUID_IPSP_SERVICE, BLE_UUID_TYPE_BLE}
- };
-
- // build and set advertising data
- memset(&advdata, 0, sizeof(advdata));
-
- advdata.name_type = BLE_ADVDATA_FULL_NAME;
- advdata.flags = flags;
- advdata.uuids_complete.uuid_cnt = sizeof(adv_uuids) / sizeof(adv_uuids[0]);
- advdata.uuids_complete.p_uuids = adv_uuids;
-
- err_code = ble_advdata_set(&advdata, NULL);
- APP_ERROR_CHECK(err_code);
- printf("Adv data set:" UINT_FMT "\n", (uint16_t)err_code);
- // initialize advertising parameters (used when starting advertising)
- memset(&m_adv_params, 0, sizeof(m_adv_params));
-
- m_adv_params.type = BLE_GAP_ADV_TYPE_ADV_IND;
- m_adv_params.p_peer_addr = NULL; // undirected advertisement
- m_adv_params.fp = BLE_GAP_ADV_FP_ANY;
- m_adv_params.interval = APP_ADV_ADV_INTERVAL;
- m_adv_params.timeout = APP_ADV_TIMEOUT;
-
- // initialize memory manager
- err_code = nrf_mem_init();
- APP_ERROR_CHECK(err_code);
- printf("mem init:" UINT_FMT "\n", (uint16_t)err_code);
- // initialize lwip stack driver
- err_code = nrf_driver_init();
- APP_ERROR_CHECK(err_code);
- printf("driver init:" UINT_FMT "\n", (uint16_t)err_code);
- // initialize lwip stack
- lwip_init();
- printf("lwip init:" UINT_FMT "\n", (uint16_t)err_code);
-
- iot_timer_init();
-
- printf("Starting adv:" UINT_FMT "\n", (uint16_t)err_code);
- err_code = sd_ble_gap_adv_start(&m_adv_params);
-
- while (!m_interface_up) {
- ;
- }
-}
-
diff --git a/nrf5/bluetooth/iot_0.9.0/sdkhelp.h b/nrf5/bluetooth/iot_0.9.0/sdkhelp.h
deleted file mode 100644
index c3e8a122f..000000000
--- a/nrf5/bluetooth/iot_0.9.0/sdkhelp.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2016 Glenn Ruben Bakke
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-void transport_init(void);
diff --git a/nrf5/bluetooth_conf.h b/nrf5/bluetooth_conf.h
index 5e62c9796..701cc13a6 100644
--- a/nrf5/bluetooth_conf.h
+++ b/nrf5/bluetooth_conf.h
@@ -3,14 +3,7 @@
// SD specific configurations.
-#if (BLUETOOTH_SD == 100)
-
-#define MICROPY_PY_BLE (1)
-#define MICROPY_PY_BLE_6LOWPAN (1)
-#define MICROPY_PY_USOCKET (1)
-#define MICROPY_PY_NETWORK (1)
-
-#elif (BLUETOOTH_SD == 110)
+#if (BLUETOOTH_SD == 110)
#define MICROPY_PY_BLE (1)
#define MICROPY_PY_BLE_NUS (0)
@@ -33,10 +26,6 @@
// Default defines.
-#ifndef MICROPY_PY_BLE_6LOWPAN
-#define MICROPY_PY_BLE_6LOWPAN (0)
-#endif
-
#ifndef MICROPY_PY_BLE
#define MICROPY_PY_BLE (0)
#endif
diff --git a/nrf5/boards/microbit/mpconfigboard.h b/nrf5/boards/microbit/mpconfigboard.h
index 485a3f5ac..f5bfdba88 100644
--- a/nrf5/boards/microbit/mpconfigboard.h
+++ b/nrf5/boards/microbit/mpconfigboard.h
@@ -37,9 +37,6 @@
#define MICROPY_PY_MACHINE_ADC (1)
#define MICROPY_PY_MACHINE_TEMP (1)
-#define MICROPY_PY_USOCKET (0)
-#define MICROPY_PY_NETWORK (0)
-
#define MICROPY_HW_HAS_SWITCH (0)
#define MICROPY_HW_HAS_FLASH (0)
#define MICROPY_HW_HAS_SDCARD (0)
diff --git a/nrf5/boards/nrf52832_512k_64k_s1xx.ld b/nrf5/boards/nrf52832_512k_64k_s1xx.ld
deleted file mode 100644
index 2e2dc7cce..000000000
--- a/nrf5/boards/nrf52832_512k_64k_s1xx.ld
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- GNU linker script for NRF52 w/ s1xx prototype3 softdevice (IPv6)
-*/
-
-/* Specify the memory areas */
-MEMORY
-{
- FLASH (rx) : ORIGIN = 0x0001F000, LENGTH = 0x061000 /* entire flash, 512 KiB */
- FLASH_ISR (rx) : ORIGIN = 0x0001F000, LENGTH = 0x000400 /* sector 0, 4 KiB */
- FLASH_TEXT (rx) : ORIGIN = 0x0001F400, LENGTH = 0x060c00 /* 396 KiB */
- RAM (xrw) : ORIGIN = 0x20002800, LENGTH = 0x00D800 /* 54 KiB */
-}
-
-/* produce a link error if there is not this amount of RAM for these sections */
-_minimum_stack_size = 8K;
-_minimum_heap_size = 28K;
-
-/* top end of the stack */
-
-/*_stack_end = ORIGIN(RAM) + LENGTH(RAM);*/
-_estack = ORIGIN(RAM) + LENGTH(RAM);
-
-/* RAM extents for the garbage collector */
-_ram_end = ORIGIN(RAM) + LENGTH(RAM);
-_heap_end = 0x2000a800; /* tunable */
-
-INCLUDE "boards/common.ld"
diff --git a/nrf5/boards/pca10028/mpconfigboard.h b/nrf5/boards/pca10028/mpconfigboard.h
index 8dc210c41..cd04f9b4e 100644
--- a/nrf5/boards/pca10028/mpconfigboard.h
+++ b/nrf5/boards/pca10028/mpconfigboard.h
@@ -37,9 +37,6 @@
#define MICROPY_PY_MACHINE_ADC (1)
#define MICROPY_PY_MACHINE_TEMP (1)
-#define MICROPY_PY_USOCKET (0)
-#define MICROPY_PY_NETWORK (0)
-
#define MICROPY_HW_HAS_SWITCH (0)
#define MICROPY_HW_HAS_FLASH (0)
#define MICROPY_HW_HAS_SDCARD (0)
diff --git a/nrf5/boards/pca10040/mpconfigboard_s1xx.mk b/nrf5/boards/pca10040/mpconfigboard_s1xx.mk
deleted file mode 100644
index 1467d01f2..000000000
--- a/nrf5/boards/pca10040/mpconfigboard_s1xx.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-MCU_SERIES = m4
-MCU_VARIANT = nrf52
-MCU_SUB_VARIANT = nrf52832
-LD_FILE = boards/nrf52832_512k_64k_s1xx.ld
-
-NRF_DEFINES += -DNRF52832_XXAA
diff --git a/nrf5/main.c b/nrf5/main.c
index 0440dacd0..24651d3e0 100644
--- a/nrf5/main.c
+++ b/nrf5/main.c
@@ -41,7 +41,6 @@
#include "readline.h"
#include "gccollect.h"
#include "modmachine.h"
-#include "modnetwork.h"
#include "led.h"
#include "uart.h"
#include "nrf.h"
@@ -175,10 +174,6 @@ int main(int argc, char **argv) {
}
#endif
-#if MICROPY_PY_NETWORK
- mod_network_init();
-#endif
-
#if MICROPY_HW_LED_TRICOLOR
do_str("import pyb\r\n" \
"pyb.LED(1).on()",
diff --git a/nrf5/modules/network/modnetwork.c b/nrf5/modules/network/modnetwork.c
deleted file mode 100644
index f47df0db4..000000000
--- a/nrf5/modules/network/modnetwork.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2014 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-
-#include "py/nlr.h"
-#include "py/objlist.h"
-#include "py/runtime.h"
-#include "modnetwork.h"
-
-#if MICROPY_PY_NETWORK
-
-/// \module network - network configuration
-///
-/// This module provides network drivers and routing configuration.
-
-void mod_network_init(void) {
- mp_obj_list_init(&MP_STATE_PORT(mod_network_nic_list), 0);
-}
-
-void mod_network_register_nic(mp_obj_t nic) {
- for (mp_uint_t i = 0; i < MP_STATE_PORT(mod_network_nic_list).len; i++) {
- if (MP_STATE_PORT(mod_network_nic_list).items[i] == nic) {
- // nic already registered
- return;
- }
- }
- // nic not registered so add to list
- mp_obj_list_append(&MP_STATE_PORT(mod_network_nic_list), nic);
-}
-
-mp_obj_t mod_network_find_nic(const uint8_t *ip) {
- // find a NIC that is suited to given IP address
- for (mp_uint_t i = 0; i < MP_STATE_PORT(mod_network_nic_list).len; i++) {
- mp_obj_t nic = MP_STATE_PORT(mod_network_nic_list).items[i];
- // TODO check IP suitability here
- //mod_network_nic_type_t *nic_type = (mod_network_nic_type_t*)mp_obj_get_type(nic);
- return nic;
- }
-
- nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, "no available NIC"));
-}
-
-STATIC mp_obj_t network_route(void) {
- return &MP_STATE_PORT(mod_network_nic_list);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_route_obj, network_route);
-
-STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) },
-
- #if MICROPY_PY_WIZNET5K
- { MP_OBJ_NEW_QSTR(MP_QSTR_WIZNET5K), (mp_obj_t)&mod_network_nic_type_wiznet5k },
- #endif
- #if MICROPY_PY_CC3K
- { MP_OBJ_NEW_QSTR(MP_QSTR_CC3K), (mp_obj_t)&mod_network_nic_type_cc3k },
- #endif
- #if MICROPY_PY_BLE_6LOWPAN
- { MP_OBJ_NEW_QSTR(MP_QSTR_ble_6lowpan), (mp_obj_t)&mod_network_nic_type_ble_6lowpan },
- #endif
-
- { MP_OBJ_NEW_QSTR(MP_QSTR_route), (mp_obj_t)&network_route_obj },
-};
-
-STATIC MP_DEFINE_CONST_DICT(mp_module_network_globals, mp_module_network_globals_table);
-
-const mp_obj_module_t mp_module_network = {
- .base = { &mp_type_module },
- .globals = (mp_obj_dict_t*)&mp_module_network_globals,
-};
-
-#endif // MICROPY_PY_NETWORK
diff --git a/nrf5/modules/network/modnetwork.h b/nrf5/modules/network/modnetwork.h
deleted file mode 100644
index 73f8b628f..000000000
--- a/nrf5/modules/network/modnetwork.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2013, 2014 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#define MOD_NETWORK_IPADDR_BUF_SIZE (16)
-
-#define MOD_NETWORK_AF_INET (2)
-#define MOD_NETWORK_AF_INET6 (10)
-
-#define MOD_NETWORK_SOCK_STREAM (1)
-#define MOD_NETWORK_SOCK_DGRAM (2)
-#define MOD_NETWORK_SOCK_RAW (3)
-
-struct _mod_network_socket_obj_t;
-
-typedef struct _mod_network_nic_type_t {
- mp_obj_type_t base;
-
- // API for non-socket operations
- int (*gethostbyname)(mp_obj_t nic, const char *name, mp_uint_t len, uint8_t *ip_out);
-
- // API for socket operations; return -1 on error
- int (*socket)(struct _mod_network_socket_obj_t *socket, int *_errno);
- void (*close)(struct _mod_network_socket_obj_t *socket);
- int (*bind)(struct _mod_network_socket_obj_t *socket, byte *ip, mp_uint_t port, int *_errno);
- int (*listen)(struct _mod_network_socket_obj_t *socket, mp_int_t backlog, int *_errno);
- int (*accept)(struct _mod_network_socket_obj_t *socket, struct _mod_network_socket_obj_t *socket2, byte *ip, mp_uint_t *port, int *_errno);
- int (*connect)(struct _mod_network_socket_obj_t *socket, byte *ip, mp_uint_t port, int *_errno);
- mp_uint_t (*send)(struct _mod_network_socket_obj_t *socket, const byte *buf, mp_uint_t len, int *_errno);
- mp_uint_t (*recv)(struct _mod_network_socket_obj_t *socket, byte *buf, mp_uint_t len, int *_errno);
- mp_uint_t (*sendto)(struct _mod_network_socket_obj_t *socket, const byte *buf, mp_uint_t len, byte *ip, mp_uint_t port, int *_errno);
- mp_uint_t (*recvfrom)(struct _mod_network_socket_obj_t *socket, byte *buf, mp_uint_t len, byte *ip, mp_uint_t *port, int *_errno);
- int (*setsockopt)(struct _mod_network_socket_obj_t *socket, mp_uint_t level, mp_uint_t opt, const void *optval, mp_uint_t optlen, int *_errno);
- int (*settimeout)(struct _mod_network_socket_obj_t *socket, mp_uint_t timeout_ms, int *_errno);
- int (*ioctl)(struct _mod_network_socket_obj_t *socket, mp_uint_t request, mp_uint_t arg, int *_errno);
-} mod_network_nic_type_t;
-
-typedef struct _mod_network_socket_obj_t {
- mp_obj_base_t base;
- mp_obj_t nic;
- mod_network_nic_type_t *nic_type;
- union {
- struct {
- uint8_t domain;
- uint8_t type;
- int8_t fileno;
- } u_param;
- mp_uint_t u_state;
- };
- struct udp_pcb * p_socket;
-} mod_network_socket_obj_t;
-
-extern const mod_network_nic_type_t mod_network_nic_type_wiznet5k;
-extern const mod_network_nic_type_t mod_network_nic_type_cc3k;
-extern const mod_network_nic_type_t mod_network_nic_type_ble_6lowpan;
-
-void mod_network_init(void);
-void mod_network_register_nic(mp_obj_t nic);
-mp_obj_t mod_network_find_nic(const uint8_t *ip);
diff --git a/nrf5/modules/usocket/modusocket.c b/nrf5/modules/usocket/modusocket.c
deleted file mode 100644
index 6afbbf95f..000000000
--- a/nrf5/modules/usocket/modusocket.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- * This file is part of the Micro Python project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2014 Damien P. George
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "py/nlr.h"
-#include "py/objtuple.h"
-#include "py/objlist.h"
-#include "py/runtime.h"
-#include "py/mperrno.h"
-#include "lib/netutils/netutils.h"
-#include "modnetwork.h"
-
-#if MICROPY_PY_USOCKET
-
-/******************************************************************************/
-// socket class
-
-STATIC const mp_obj_type_t socket_type;
-
-// constructor socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
-STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, mp_uint_t n_args, mp_uint_t n_kw, const mp_obj_t *args) {
- mp_arg_check_num(n_args, n_kw, 0, 4, false);
-
- // create socket object (not bound to any NIC yet)
- mod_network_socket_obj_t *s = m_new_obj_with_finaliser(mod_network_socket_obj_t);
- s->base.type = (mp_obj_t)&socket_type;
- s->nic = MP_OBJ_NULL;
- s->nic_type = NULL;
- s->u_param.domain = MOD_NETWORK_AF_INET;
- s->u_param.type = MOD_NETWORK_SOCK_STREAM;
- s->u_param.fileno = -1;
- if (n_args >= 1) {
- s->u_param.domain = mp_obj_get_int(args[0]);
- if (n_args >= 2) {
- s->u_param.type = mp_obj_get_int(args[1]);
- if (n_args >= 4) {
- s->u_param.fileno = mp_obj_get_int(args[3]);
- }
- }
- }
-
- return s;
-}
-
-STATIC void socket_select_nic(mod_network_socket_obj_t *self, const byte *ip) {
- if (self->nic == MP_OBJ_NULL) {
- // select NIC based on IP
- self->nic = mod_network_find_nic(ip);
- self->nic_type = (mod_network_nic_type_t*)mp_obj_get_type(self->nic);
-
- // call the NIC to open the socket
- int _errno;
- if (self->nic_type->socket(self, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
- }
-}
-// method socket.close()
-STATIC mp_obj_t socket_close(mp_obj_t self_in) {
- mod_network_socket_obj_t *self = self_in;
- if (self->nic != MP_OBJ_NULL) {
- self->nic_type->close(self);
- self->nic = MP_OBJ_NULL;
- }
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(socket_close_obj, socket_close);
-
-#include <nrf.h>
-
-// method socket.bind(address)
-STATIC mp_obj_t socket_bind(mp_obj_t self_in, mp_obj_t addr_in) {
- mod_network_socket_obj_t *self = self_in;
-
- // get address
- uint8_t ip[MOD_NETWORK_IPADDR_BUF_SIZE];
-
- mp_uint_t port;
- if (self->u_param.domain == MOD_NETWORK_AF_INET) {
- port = netutils_parse_inet_addr(addr_in, ip, NETUTILS_BIG);
- } else {
- port = netutils_parse_inet6_addr(addr_in, ip, NETUTILS_BIG);
- }
-
- // check if we need to select a NIC
- socket_select_nic(self, ip);
-
- // call the NIC to bind the socket
- int _errno;
- if (self->nic_type->bind(self, ip, port, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
-
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_bind_obj, socket_bind);
-
-// method socket.listen(backlog)
-STATIC mp_obj_t socket_listen(mp_obj_t self_in, mp_obj_t backlog) {
- mod_network_socket_obj_t *self = self_in;
-
- if (self->nic == MP_OBJ_NULL) {
- // not connected
- // TODO I think we can listen even if not bound...
- mp_raise_OSError(MP_ENOTCONN);
- }
-
- int _errno;
- if (self->nic_type->listen(self, mp_obj_get_int(backlog), &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
-
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_listen_obj, socket_listen);
-
-// method socket.accept()
-STATIC mp_obj_t socket_accept(mp_obj_t self_in) {
- mod_network_socket_obj_t *self = self_in;
-
- // create new socket object
- // starts with empty NIC so that finaliser doesn't run close() method if accept() fails
- mod_network_socket_obj_t *socket2 = m_new_obj_with_finaliser(mod_network_socket_obj_t);
- socket2->base.type = (mp_obj_t)&socket_type;
- socket2->nic = MP_OBJ_NULL;
- socket2->nic_type = NULL;
-
- // accept incoming connection
- uint8_t ip[MOD_NETWORK_IPADDR_BUF_SIZE];
- mp_uint_t port;
- int _errno;
- if (self->nic_type->accept(self, socket2, ip, &port, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
-
- // new socket has valid state, so set the NIC to the same as parent
- socket2->nic = self->nic;
- socket2->nic_type = self->nic_type;
-
- // make the return value
- mp_obj_tuple_t *client = mp_obj_new_tuple(2, NULL);
- client->items[0] = socket2;
-
- if (self->u_param.domain == MOD_NETWORK_AF_INET) {
- client->items[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
- } else {
- client->items[1] = netutils_format_inet6_addr(ip, port, NETUTILS_BIG);
- }
-
- return client;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(socket_accept_obj, socket_accept);
-
-// method socket.connect(address)
-STATIC mp_obj_t socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
- mod_network_socket_obj_t *self = self_in;
-
- // get address
- uint8_t ip[MOD_NETWORK_IPADDR_BUF_SIZE];
-
- mp_uint_t port;
- if (self->u_param.domain == MOD_NETWORK_AF_INET) {
- port = netutils_parse_inet_addr(addr_in, ip, NETUTILS_BIG);
- } else {
- port = netutils_parse_inet6_addr(addr_in, ip, NETUTILS_BIG);
- }
- // check if we need to select a NIC
- socket_select_nic(self, ip);
-
- // call the NIC to connect the socket
- int _errno;
- if (self->nic_type->connect(self, ip, port, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
-
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_connect_obj, socket_connect);
-
-// method socket.send(bytes)
-STATIC mp_obj_t socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
- mod_network_socket_obj_t *self = self_in;
- if (self->nic == MP_OBJ_NULL) {
- // not connected
- mp_raise_OSError(MP_EPIPE);
- }
- mp_buffer_info_t bufinfo;
- mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
- int _errno;
- mp_uint_t ret = self->nic_type->send(self, bufinfo.buf, bufinfo.len, &_errno);
- if (ret == -1) {
- mp_raise_OSError(_errno);
- }
- return mp_obj_new_int_from_uint(ret);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_send_obj, socket_send);
-
-// method socket.recv(bufsize)
-STATIC mp_obj_t socket_recv(mp_obj_t self_in, mp_obj_t len_in) {
- mod_network_socket_obj_t *self = self_in;
- if (self->nic == MP_OBJ_NULL) {
- // not connected
- mp_raise_OSError(MP_ENOTCONN);
- }
- mp_int_t len = mp_obj_get_int(len_in);
- vstr_t vstr;
- vstr_init_len(&vstr, len);
- int _errno;
- mp_uint_t ret = self->nic_type->recv(self, (byte*)vstr.buf, len, &_errno);
- if (ret == -1) {
- mp_raise_OSError(_errno);
- }
- if (ret == 0) {
- return mp_const_empty_bytes;
- }
- vstr.len = ret;
- return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_recv_obj, socket_recv);
-
-// method socket.sendto(bytes, address)
-STATIC mp_obj_t socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_obj_t addr_in) {
- mod_network_socket_obj_t *self = self_in;
-
- // get the data
- mp_buffer_info_t bufinfo;
- mp_get_buffer_raise(data_in, &bufinfo, MP_BUFFER_READ);
-
- // get address
- uint8_t ip[MOD_NETWORK_IPADDR_BUF_SIZE];
- mp_uint_t port;
- if (self->u_param.domain == MOD_NETWORK_AF_INET) {
- port = netutils_parse_inet_addr(addr_in, ip, NETUTILS_BIG);
- } else {
- port = netutils_parse_inet6_addr(addr_in, ip, NETUTILS_BIG);
- }
-
- // check if we need to select a NIC
- socket_select_nic(self, ip);
-
- // call the NIC to sendto
- int _errno;
- mp_int_t ret = self->nic_type->sendto(self, bufinfo.buf, bufinfo.len, ip, port, &_errno);
- if (ret == -1) {
- mp_raise_OSError(_errno);
- }
-
- return mp_obj_new_int(ret);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_3(socket_sendto_obj, socket_sendto);
-
-// method socket.recvfrom(bufsize)
-STATIC mp_obj_t socket_recvfrom(mp_obj_t self_in, mp_obj_t len_in) {
- mod_network_socket_obj_t *self = self_in;
- if (self->nic == MP_OBJ_NULL) {
- // not connected
- mp_raise_OSError(MP_ENOTCONN);
- }
- vstr_t vstr;
- vstr_init_len(&vstr, mp_obj_get_int(len_in));
- byte ip[4];
- mp_uint_t port;
- int _errno;
- mp_int_t ret = self->nic_type->recvfrom(self, (byte*)vstr.buf, vstr.len, ip, &port, &_errno);
- if (ret == -1) {
- mp_raise_OSError(_errno);
- }
- mp_obj_t tuple[2];
- if (ret == 0) {
- tuple[0] = mp_const_empty_bytes;
- } else {
- vstr.len = ret;
- tuple[0] = mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
- }
-
- if (self->u_param.domain == MOD_NETWORK_AF_INET) {
- tuple[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
- } else {
- tuple[1] = netutils_format_inet6_addr(ip, port, NETUTILS_BIG);
- }
- return mp_obj_new_tuple(2, tuple);
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_recvfrom_obj, socket_recvfrom);
-
-// method socket.setsockopt(level, optname, value)
-STATIC mp_obj_t socket_setsockopt(mp_uint_t n_args, const mp_obj_t *args) {
- mod_network_socket_obj_t *self = args[0];
-
- mp_int_t level = mp_obj_get_int(args[1]);
- mp_int_t opt = mp_obj_get_int(args[2]);
-
- const void *optval;
- mp_uint_t optlen;
- mp_int_t val;
- if (mp_obj_is_integer(args[3])) {
- val = mp_obj_get_int_truncated(args[3]);
- optval = &val;
- optlen = sizeof(val);
- } else {
- mp_buffer_info_t bufinfo;
- mp_get_buffer_raise(args[3], &bufinfo, MP_BUFFER_READ);
- optval = bufinfo.buf;
- optlen = bufinfo.len;
- }
-
- int _errno;
- if (self->nic_type->setsockopt(self, level, opt, optval, optlen, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
-
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_setsockopt_obj, 4, 4, socket_setsockopt);
-
-// method socket.settimeout(value)
-// timeout=0 means non-blocking
-// timeout=None means blocking
-// otherwise, timeout is in seconds
-STATIC mp_obj_t socket_settimeout(mp_obj_t self_in, mp_obj_t timeout_in) {
- mod_network_socket_obj_t *self = self_in;
- if (self->nic == MP_OBJ_NULL) {
- // not connected
- mp_raise_OSError(MP_ENOTCONN);
- }
- mp_uint_t timeout;
- if (timeout_in == mp_const_none) {
- timeout = -1;
- } else {
- #if MICROPY_PY_BUILTINS_FLOAT
- timeout = 1000 * mp_obj_get_float(timeout_in);
- #else
- timeout = 1000 * mp_obj_get_int(timeout_in);
- #endif
- }
- int _errno;
- if (self->nic_type->settimeout(self, timeout, &_errno) != 0) {
- mp_raise_OSError(_errno);
- }
- return mp_const_none;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_settimeout_obj, socket_settimeout);
-
-// method socket.setblocking(flag)
-STATIC mp_obj_t socket_setblocking(mp_obj_t self_in, mp_obj_t blocking) {
- if (mp_obj_is_true(blocking)) {
- return socket_settimeout(self_in, mp_const_none);
- } else {
- return socket_settimeout(self_in, MP_OBJ_NEW_SMALL_INT(0));
- }
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_setblocking_obj, socket_setblocking);
-
-STATIC const mp_map_elem_t socket_locals_dict_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___del__), (mp_obj_t)&socket_close_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_close), (mp_obj_t)&socket_close_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_bind), (mp_obj_t)&socket_bind_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_listen), (mp_obj_t)&socket_listen_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_accept), (mp_obj_t)&socket_accept_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&socket_connect_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_send), (mp_obj_t)&socket_send_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_recv), (mp_obj_t)&socket_recv_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_sendto), (mp_obj_t)&socket_sendto_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_recvfrom), (mp_obj_t)&socket_recvfrom_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_setsockopt), (mp_obj_t)&socket_setsockopt_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_settimeout), (mp_obj_t)&socket_settimeout_obj },
- { MP_OBJ_NEW_QSTR(MP_QSTR_setblocking), (mp_obj_t)&socket_setblocking_obj },
-};
-
-STATIC MP_DEFINE_CONST_DICT(socket_locals_dict, socket_locals_dict_table);
-
-mp_uint_t socket_ioctl(mp_obj_t self_in, mp_uint_t request, mp_uint_t arg, int *errcode) {
- mod_network_socket_obj_t *self = self_in;
- return self->nic_type->ioctl(self, request, arg, errcode);
-}
-
-STATIC const mp_stream_p_t socket_stream_p = {
- .ioctl = socket_ioctl,
- .is_text = false,
-};
-
-STATIC const mp_obj_type_t socket_type = {
- { &mp_type_type },
- .name = MP_QSTR_socket,
- .make_new = socket_make_new,
- .protocol = &socket_stream_p,
- .locals_dict = (mp_obj_t)&socket_locals_dict,
-};
-
-/******************************************************************************/
-// usocket module
-
-// function usocket.getaddrinfo(host, port)
-STATIC mp_obj_t mod_usocket_getaddrinfo(mp_obj_t host_in, mp_obj_t port_in) {
- mp_uint_t hlen;
- const char *host = mp_obj_str_get_data(host_in, &hlen);
- mp_int_t port = mp_obj_get_int(port_in);
-
- // find a NIC that can do a name lookup
- for (mp_uint_t i = 0; i < MP_STATE_PORT(mod_network_nic_list).len; i++) {
- mp_obj_t nic = MP_STATE_PORT(mod_network_nic_list).items[i];
- mod_network_nic_type_t *nic_type = (mod_network_nic_type_t*)mp_obj_get_type(nic);
- if (nic_type->gethostbyname != NULL) {
- uint8_t out_ip[MOD_NETWORK_IPADDR_BUF_SIZE];
- int ret = nic_type->gethostbyname(nic, host, hlen, out_ip);
- if (ret != 0) {
- // TODO CPython raises: socket.gaierror: [Errno -2] Name or service not known
- mp_raise_OSError(ret);
- }
- mp_obj_tuple_t *tuple = mp_obj_new_tuple(5, NULL);
- tuple->items[0] = MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_AF_INET);
- tuple->items[1] = MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_SOCK_STREAM);
- tuple->items[2] = MP_OBJ_NEW_SMALL_INT(0);
- tuple->items[3] = MP_OBJ_NEW_QSTR(MP_QSTR_);
- tuple->items[4] = netutils_format_inet_addr(out_ip, port, NETUTILS_BIG);
- return mp_obj_new_list(1, (mp_obj_t*)&tuple);
- }
- }
-
- nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, "no available NIC"));
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_usocket_getaddrinfo_obj, mod_usocket_getaddrinfo);
-
-STATIC const mp_map_elem_t mp_module_usocket_globals_table[] = {
- { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_usocket) },
-
- { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&socket_type },
- { MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&mod_usocket_getaddrinfo_obj },
-
- // class constants
- { MP_OBJ_NEW_QSTR(MP_QSTR_AF_INET), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_AF_INET) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_AF_INET6), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_AF_INET6) },
-
- { MP_OBJ_NEW_QSTR(MP_QSTR_SOCK_STREAM), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_SOCK_STREAM) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_SOCK_DGRAM), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_SOCK_DGRAM) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_SOCK_RAW), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_SOCK_RAW) },
-
- /*
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_IP), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_IP) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_ICMP), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_ICMP) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_IPV4), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_IPV4) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_TCP), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_TCP) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_UDP), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_UDP) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_IPV6), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_IPV6) },
- { MP_OBJ_NEW_QSTR(MP_QSTR_IPPROTO_RAW), MP_OBJ_NEW_SMALL_INT(MOD_NETWORK_IPPROTO_RAW) },
- */
-};
-
-STATIC MP_DEFINE_CONST_DICT(mp_module_usocket_globals, mp_module_usocket_globals_table);
-
-const mp_obj_module_t mp_module_usocket = {
- .base = { &mp_type_module },
- .globals = (mp_obj_dict_t*)&mp_module_usocket_globals,
-};
-
-#endif // MICROPY_PY_USOCKET
diff --git a/nrf5/mpconfigport.h b/nrf5/mpconfigport.h
index 05b3f583c..98e41ca97 100644
--- a/nrf5/mpconfigport.h
+++ b/nrf5/mpconfigport.h
@@ -139,14 +139,6 @@
#define MICROPY_PY_MACHINE_RTC (0)
#endif
-#ifndef MICROPY_PY_USOCKET
-#define MICROPY_PY_USOCKET (1)
-#endif
-
-#ifndef MICROPY_PY_NETWORK
-#define MICROPY_PY_NETWORK (1)
-#endif
-
#define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1)
#define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0)
@@ -184,24 +176,8 @@ extern const struct _mp_obj_module_t pyb_module;
extern const struct _mp_obj_module_t machine_module;
extern const struct _mp_obj_module_t mp_module_utime;
extern const struct _mp_obj_module_t mp_module_uos;
-extern const struct _mp_obj_module_t mp_module_usocket;
-extern const struct _mp_obj_module_t mp_module_network;
extern const struct _mp_obj_module_t mp_module_ubluepy;
-#if MICROPY_PY_USOCKET
-#define SOCKET_BUILTIN_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_usocket), (mp_obj_t)&mp_module_usocket },
-#define SOCKET_BUILTIN_MODULE_WEAK_LINKS { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&mp_module_usocket },
-#else
-#define SOCKET_BUILTIN_MODULE
-#define SOCKET_BUILTIN_MODULE_WEAK_LINKS
-#endif
-
-#if MICROPY_PY_NETWORK
-#define NETWORK_BUILTIN_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_network), (mp_obj_t)&mp_module_network },
-#else
-#define NETWORK_BUILTIN_MODULE
-#endif
-
#if MICROPY_PY_UBLUEPY
#define UBLUEPY_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_ubluepy), (mp_obj_t)&mp_module_ubluepy },
#else
@@ -218,8 +194,6 @@ extern const struct _mp_obj_module_t ble_module;
{ MP_OBJ_NEW_QSTR(MP_QSTR_utime), (mp_obj_t)&mp_module_utime }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_utime }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_uos), (mp_obj_t)&mp_module_uos }, \
- SOCKET_BUILTIN_MODULE \
- NETWORK_BUILTIN_MODULE \
UBLUEPY_MODULE \
@@ -236,7 +210,6 @@ extern const struct _mp_obj_module_t ble_module;
#define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \
{ MP_OBJ_NEW_QSTR(MP_QSTR_os), (mp_obj_t)&mp_module_uos }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_utime }, \
- SOCKET_BUILTIN_MODULE_WEAK_LINKS \
// extra built in names to add to the global namespace
#define MICROPY_PORT_BUILTINS \