espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.55k stars 7.27k forks source link

Examples: ethernet/basic does not allow openeth (IDFGH-13464) #14366

Closed serpent213 closed 2 months ago

serpent213 commented 2 months ago

Answers checklist.

General issue report

Running menuconfig in the basic folder gives me following example related menus:

ETH_USE_OPENETH is set.

I cannot find the option to enable EXAMPLE_USE_OPENETH, even though it appears in ../../common_components/protocol_examples_common/Kconfig.projbuild.

Will spend some time to check its dependencies...

serpent213 commented 2 months ago

Just realised that basic does not rely on protocol_examples_common, but uses the Kconfig.projbuild from components/ethernet_init, which does not know about openeth...

serpent213 commented 2 months ago

For reference, these examples do make use of protocol_examples_common:

openthread/ot_br
peripherals/parlio/parlio_rx/logic_analyzer
peripherals/usb/host/uvc
protocols/esp_http_client
protocols/esp_local_ctrl
protocols/http_request
protocols/http_server/advanced_tests
protocols/http_server/async_handlers
protocols/http_server/file_serving
protocols/http_server/persistent_sockets
protocols/http_server/restful_server
protocols/http_server/simple
protocols/http_server/ws_echo_server
protocols/https_mbedtls
protocols/https_request
protocols/https_server/simple
protocols/https_server/wss_server
protocols/https_x509_bundle
protocols/icmp_echo
protocols/l2tap
protocols/modbus/tcp/mb_tcp_master
protocols/modbus/tcp/mb_tcp_slave
protocols/mqtt/custom_outbox
protocols/mqtt/ssl
protocols/mqtt/ssl_ds
protocols/mqtt/ssl_mutual_auth
protocols/mqtt/ssl_psk
protocols/mqtt/tcp
protocols/mqtt/ws
protocols/mqtt/wss
protocols/mqtt5
protocols/smtp_client
protocols/sntp
protocols/sockets/icmpv6_ping
protocols/sockets/non_blocking
protocols/sockets/tcp_client
protocols/sockets/tcp_client_multi_net
protocols/sockets/tcp_server
protocols/sockets/tcp_transport_client
protocols/sockets/udp_client
protocols/sockets/udp_multicast
protocols/sockets/udp_server
system/ota/advanced_https_ota
system/ota/native_ota_example
system/ota/pre_encrypted_ota
system/ota/simple_ota_example
zigbee/esp_zigbee_gateway

Code size of protocol_examples_common:

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
C                            8      1492      220       153     1119        132
C Header                     4       264       39       115      110          0
CMake                        1        44       11         1       32          7
Markdown                     1        58       21         0       37          0
───────────────────────────────────────────────────────────────────────────────
Total                       14      1858      291       269     1298        139
───────────────────────────────────────────────────────────────────────────────

While these depend on ethernet/basic/components/ethernet_init:

ethernet/iperf
network/bridge
network/eth2ap
network/simple_sniffer
network/sta2eth
network/vlan_support

Code size of ethernet/basic/components/ethernet_init:

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
C                            1       338       26        54      258         49
C Header                     1        41        5        26       10          0
CMake                        1         3        0         0        3          0
───────────────────────────────────────────────────────────────────────────────
Total                        3       382       31        80      271         49
───────────────────────────────────────────────────────────────────────────────

I understand that ethernet_init has a much more limited scope.

Also I found the ifconfig component, which in turn depends on the ethernet_init component. Which appears to be an extended version of the example ethernet_init with different license:

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
C                            1       490       60        62      368         57
C Header                     1        68       12        26       30          0
CMake                        1         3        0         0        3          0
License                      1       201       32         0      169          0
Markdown                     1        32        6         0       26          0
YAML                         1         8        0         0        8          0
───────────────────────────────────────────────────────────────────────────────
Total                        6       802      110        88      604         57
───────────────────────────────────────────────────────────────────────────────

...while as well lacking openeth support.

Would be nice to have an official, generic network_init component, no? 🙂

Closing this.