瀏覽代碼

lwip: make IPV6 link-local support over PPP configurable

Make the link local negotiation for IPV6 in PPP optional and
configurable.
This is because some modems do not support the IPV6 negotiation and
sending IPV6CP frames would in some cases break the network
configuration phase, resulting in a timeout during the Phase Network.

Please note that this does not disable the IPV6 support for the outgoing
communication (IPV6 is still enabled even if this option is not
selected) but just for the local link between lwIP and modem.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4782
Closes https://github.com/espressif/esp-idf/issues/1065
Francesco Giancane 6 年之前
父節點
當前提交
872272e23a
共有 2 個文件被更改,包括 19 次插入0 次删除
  1. 11 0
      components/lwip/Kconfig
  2. 8 0
      components/lwip/port/esp32/include/lwipopts.h

+ 11 - 0
components/lwip/Kconfig

@@ -543,6 +543,17 @@ menu "LWIP"
 
             PPP over serial support is experimental and unsupported.
 
+    config LWIP_PPP_ENABLE_IPV6
+        bool "Enable IPV6 support for PPP connections (IPV6CP)"
+        depends on LWIP_PPP_SUPPORT
+        default y
+        help
+            Enable IPV6 support in PPP for the local link between the DTE (processor) and DCE (modem).
+            There are some modems which do not support the IPV6 addressing in the local link.
+            If they are requested for IPV6CP negotiation, they may time out.
+            This would in turn fail the configuration for the whole link.
+            If your modem is not responding correctly to PPP Phase Network, try to disable IPV6 support.
+
     config LWIP_PPP_NOTIFY_PHASE_SUPPORT
         bool "Enable Notify Phase Callback"
         depends on LWIP_PPP_SUPPORT

+ 8 - 0
components/lwip/port/esp32/include/lwipopts.h

@@ -611,6 +611,14 @@
 
 #if PPP_SUPPORT
 
+/**
+ * PPP_IPV6_SUPPORT == 1: Enable IPV6 support for local link
+ * between modem and lwIP stack.
+ * Some modems do not support IPV6 addressing in local link and
+ * the only option available is to disable IPV6 address negotiation.
+ */
+#define PPP_IPV6_SUPPORT				CONFIG_LWIP_PPP_ENABLE_IPV6
+
 /**
  * PPP_NOTIFY_PHASE==1: Support PPP notify phase.
  */