Просмотр исходного кода

feat(openthread): disable lwip nd6 in openthread sleepy device

xiaqilin 2 лет назад
Родитель
Сommit
c84cbd5e65

+ 8 - 0
components/lwip/Kconfig

@@ -80,6 +80,14 @@ menu "LWIP"
             This feature will reduce the power consumption for applications which do not
             use IGMP and MLD6.
 
+    config LWIP_ND6
+        bool "LWIP NDP6 Enable/Disable"
+        default y
+        depends on LWIP_IPV6
+        help
+            This option is used to disable the Network Discovery Protocol (NDP) if it is not required.
+            Please use this option with caution, as the NDP is essential for IPv6 functionality within a local network.
+
     config LWIP_MAX_SOCKETS
         int "Max number of open sockets"
         range 1 16

+ 1 - 1
components/lwip/lwip

@@ -1 +1 @@
-Subproject commit 8dad8d3ee66840deee4acfc1601de4e396c594be
+Subproject commit 7896c6cad020d17a986f7e850f603e084e319328

+ 9 - 0
components/lwip/port/include/lwipopts.h

@@ -1126,6 +1126,15 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min)
 #define LWIP_IPV6                       0
 #endif
 
+/**
+ * LWIP_ND6==1: Enable ND6 protocol in IPv6
+ */
+#ifdef CONFIG_LWIP_ND6
+#define LWIP_ND6                        1
+#else
+#define LWIP_ND6                        0
+#endif
+
 /**
  * LWIP_IPV6_NUM_ADDRESSES: Number of IPv6 addresses per netif.
  */

+ 5 - 1
examples/openthread/ot_sleepy_device/sdkconfig.defaults

@@ -32,7 +32,8 @@ CONFIG_OPENTHREAD_DNS64_CLIENT=y
 #
 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=4096
 CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
-CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_IPV4=n
+CONFIG_LWIP_ND6=n
 # end of lwIP
 
 #
@@ -48,4 +49,7 @@ CONFIG_PM_ENABLE=y
 CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
 CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP=y
 CONFIG_IEEE802154_SLEEP_ENABLE=y
+# Use 1000Hz freertos tick to lower sleep time threshold
+CONFIG_FREERTOS_HZ=1000
+CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
 # end of light sleep