NetHubQuickBringup:修订间差异
无编辑摘要 |
小 Add more NetHubQuickBringup FAQs (2026-04-24) |
||
| (未显示同一用户的10个中间版本) | |||
| 第1行: | 第1行: | ||
= NetHub | = NetHub Quick Start = | ||
This document is for customers using NetHub for the first time. The goal is to get you to the current default interface as quickly as possible. | |||
[[文件:Nethub_sdio_quickstart_demo.gif | NetHub SDIO Quick Start Demo]] | |||
== 1. Current Support Matrix == | |||
{| class="wikitable" | |||
|- | |||
! Item !! Current status | |||
|- | |||
| Default interface || <code>SDIO</code> | |||
|- | |||
| USB interface || device-side backend implemented with <code>USB ECM + USB ACM</code> | |||
|- | |||
| SPI interface || not implemented | |||
|- | |||
| USER virtual channel || default interface is <code>SDIO</code> | |||
|- | |||
| Optional AT control solution || available, but not mandatory | |||
|- | |||
| Low power || currently <code>BL618DG</code> only | |||
|} | |||
Read this table literally: | |||
* if you want the shortest successful path today, choose <code>SDIO</code> | |||
* if you are evaluating the USB interface, focus on the device-side backend and USB descriptors first | |||
* do not plan on <code>SPI</code> bring-up yet | |||
== 2. Main Configuration Switches == | |||
For most users, the main configuration changes are these: | |||
<syntaxhighlight lang="makefile"> | |||
CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE =y | |||
CONFIG_NETHUB_LOWPOWER_ENABLE =y | |||
CONFIG_NETHUB_PROFILE_USB =n | |||
CONFIG_NETHUB_PROFILE_SDIO =y | |||
</syntaxhighlight> | |||
Notes: | |||
< | * the config symbol names still use <code>PROFILE</code>, but they select the active host interface | ||
* set <code>CONFIG_NETHUB_PROFILE_SDIO=y</code> for the current default interface | |||
</ | * set <code>CONFIG_NETHUB_PROFILE_USB=y</code> only when you want to evaluate the USB interface | ||
* <code>CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=n</code> means <code>ATModule</code> will not participate in the build | |||
* <code>CONFIG_NETHUB_LOWPOWER_ENABLE=y</code> is currently meaningful only on <code>BL618DG</code> | |||
Additional current default facts in <code>examples/wifi/nethub/defconfig</code>: | |||
* <code> | * <code>CONFIG_MR_VIRTUALCHAN=y</code> | ||
* | * <code>CONFIG_NETHUB_AT_USE_VCHAN=n</code> | ||
* <code>CONFIG_MR_TTY=n</code> | |||
== | == 3. Wi-Fi Backend Selection == | ||
Default configuration: | |||
* <code>CONFIG_WL80211</code> disabled | |||
* <code>fhost</code> selected | |||
If you want <code>wl80211</code>, enable this in <code>examples/wifi/nethub/defconfig</code>: | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="makefile"> | ||
CONFIG_WL80211=y | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Notes: | |||
* <code>fhost</code> and <code>wl80211</code> are mutually exclusive | |||
* current NetHub supports both device-side Wi-Fi backends | |||
== 4. Device Build and Flash == | |||
Build: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| 第83行: | 第90行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Flash example: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| 第90行: | 第97行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 5. Hardware Interface Pins == | |||
* <code> | The pin tables below are the current default mappings used by the in-tree BSP board helpers. | ||
* <code> | |||
* <code> | Reference sources in the repository: | ||
* <code> | |||
* <code> | * <code>bsp/board/bl616dk/board_gpio.c</code> | ||
* <code>bsp/board/bl616cldk/board_gpio.c</code> | |||
* <code>bsp/board/bl618dgdk/board_gpio.c</code> | |||
=== 5.1 Default SDIO Pins === | |||
These are the current <code>board_sdh_gpio_init()</code> mappings used by the BSP. | |||
{| class="wikitable" | |||
|- | |||
! Pin Function !! BL616 / BL618 (<code>bl616dk</code>) !! BL618DG (<code>bl618dgdk</code>) !! BL616CL (<code>bl616cldk</code>) | |||
|- | |||
| <code>SDIO_DAT2</code> || <code>GPIO10</code> || <code>GPIO43</code> || <code>GPIO6</code> | |||
|- | |||
| <code>SDIO_DAT3</code> || <code>GPIO11</code> || <code>GPIO44</code> || <code>GPIO7</code> | |||
|- | |||
| <code>SDIO_CMD</code> || <code>GPIO12</code> || <code>GPIO45</code> || <code>GPIO8</code> | |||
|- | |||
| <code>SDIO_CLK</code> || <code>GPIO13</code> || <code>GPIO46</code> || <code>GPIO9</code> | |||
|- | |||
| <code>SDIO_DAT0</code> || <code>GPIO14</code> || <code>GPIO47</code> || <code>GPIO10</code> | |||
|- | |||
| <code>SDIO_DAT1</code> || <code>GPIO15</code> || <code>GPIO48</code> || <code>GPIO11</code> | |||
|} | |||
Notes: | |||
* this table shows the current default 4-bit SDIO wiring used by the NetHub SDIO data-path | |||
* 1-line mode is also supported; if you use 1-line mode, keep <code>CMD</code>, <code>CLK</code>, and <code>DAT0</code> first | |||
* the BSP configures these pins with <code>GPIO_FUNC_SDH | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1</code> | |||
=== 5.2 Default USB Pins === | |||
The current USB interface uses the board's default USB differential pair. | |||
{| class="wikitable" | |||
|- | |||
! Chip / Board family !! Default USB pins in current BSP !! Current BSP behavior !! Notes | |||
|- | |||
| BL616 / BL618 (<code>bl616dk</code>) || board default USB port path || current BSP enables USB clock in <code>board.c</code>, but does not expose a dedicated <code>board_usb_gpio_init()</code> helper || treat this as the board's fixed default USB routing in the current example | |||
|- | |||
| BL616CL (<code>bl616cldk</code>) || <code>GPIO32</code>, <code>GPIO33</code> || <code>board_usb_gpio_init()</code> configures the pair as analog pins || current BSP documents the pair, not separate <code>DP</code> / <code>DM</code> labels | |||
|- | |||
| BL618DG (<code>bl618dgdk</code>) || <code>GPIO40</code>, <code>GPIO41</code> || <code>board_usb_gpio_init()</code> configures the pair as analog pins || current BSP documents the pair, not separate <code>DP</code> / <code>DM</code> labels | |||
|} | |||
Notes: | |||
* for <code>BL616CL</code> and <code>BL618DG</code>, the BSP helper only tells us the USB pair used by the board, not which pin is <code>D+</code> and which pin is <code>D-</code> | |||
* if you are wiring a custom board and need explicit <code>DP</code> / <code>DM</code> polarity, confirm it from the board schematic or chip or package documentation | |||
== 6. Host Bring-Up Guidance == | |||
For the current in-tree host Linux stack, use: | |||
* <code>bsp/common/msg_router/linux_host/userspace/nethub/README.md</code> | |||
Today that host stack follows the default <code>SDIO</code> interface. | |||
For USB projects, keep expectations aligned with current code status: | |||
* device-side <code>ECM + ACM</code> backend exists | |||
* host-side transport flattening into the same <code>nethub_vchan</code> behavior as SDIO is not fully documented or aligned in-tree yet | |||
== 7. USER Virtual Channel == | |||
If you need private application messages between host and device, read: | |||
* [[NetHubVirtualChannel|NetHubVirtualChannel.md]] | |||
Current implementation: | |||
< | * the current in-tree end-to-end USER virtual channel follows the default <code>SDIO</code> interface | ||
* the public device API is transport-neutral by design | |||
</ | * the in-tree implementation behind it is still SDIO-backed today | ||
== | == 8. Low-Power Note == | ||
Low power is currently supported only on <code>BL618DG</code>. | |||
< | For other chips, <code>examples/wifi/nethub/defconfig</code> automatically turns <code>CONFIG_NETHUB_LOWPOWER_ENABLE</code> off. In practice, you normally keep this option enabled only for <code>BL618DG</code> builds. | ||
</ | |||
== 9. Common Questions == | |||
< | === 9.1 <code>bflbwifid</code> Fails to Start === | ||
</ | |||
This question is relevant only when you use the optional host control stack. | |||
Check first: | |||
* whether the device and host control backends match | |||
* whether <code>/dev/ttyAT0</code> exists | |||
* whether <code>mr_sdio.ko</code> has been loaded successfully | |||
* whether the SDIO hardware link is working properly | |||
=== 9.2 <code>connect_ap</code> Succeeds but the Host Has No Network Access === | |||
Check first: | |||
< | * whether <code>status</code> has reached <code>GOTIP</code> | ||
* whether <code>mr_eth0</code> has an address | |||
</ | * whether services such as <code>NetworkManager</code> or <code>dhcpcd</code> override the NetHub configuration | ||
Notes: | |||
< | * <code>build.sh</code> builds userspace with <code>ENABLE_NETIF_AUTO_CONFIG=1</code> by default | ||
* after the device reports <code>GOTIP</code>, the host automatically configures the IP, gateway, and DNS of <code>mr_eth0</code> | |||
</ | |||
=== | === 9.3 <code>build.sh unload</code> Reports That the Module Is Busy === | ||
Check first: | |||
* whether <code>bflbwifid</code> is still running | |||
* whether <code>nethub_vchan_app</code> is still running | |||
< | === 9.4 How Do I Change the Host-Side Virtual Interface Name <code>mr_eth0</code>? === | ||
</ | |||
The default host-side virtual network interface name comes from: | |||
* | * <code>bsp/common/msg_router/linux_host/kernel/netdev/mr_netdev.c</code> | ||
The macro is: | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="c"> | ||
#define ETH_DRV_NAME "mr_eth%d" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
The first created interface therefore appears as <code>mr_eth0</code>. | |||
To change the interface name, update <code>ETH_DRV_NAME</code> to the pattern you want. For example: | |||
<syntaxhighlight lang="c"> | |||
#define ETH_DRV_NAME "nethub%d" | |||
</syntaxhighlight> | |||
Notes: | |||
* keep <code>%d</code> if you want Linux to allocate names such as <code>nethub0</code>, <code>nethub1</code>, and so on | |||
<code> | * rebuild the host software after the change and reload the host-side kernel module | ||
* if any local scripts or service configuration still refer to <code>mr_eth0</code>, update them accordingly | |||
=== | === 9.5 Can the Host Expose <code>AP</code> and <code>STA</code> at the Same Time? === | ||
No. Due to the current software implementation, this is not supported yet. | |||
Current behavior: | |||
* the host side exposes only one virtual interface at a time | |||
* the default active Wi-Fi channel is <code>STA</code> | |||
If you need to switch between <code>AP</code> and <code>STA</code>, call <code>nethub_set_active_wifi_channel()</code> directly: | |||
* use <code>NETHUB_CHANNEL_WIFI_AP</code> to switch to <code>AP</code> | |||
* use <code>NETHUB_CHANNEL_WIFI_STA</code> to switch to <code>STA</code> | |||
* the default value is <code>NETHUB_CHANNEL_WIFI_STA</code> | |||
== | === 9.6 What Should the Host Side Handle When <code>CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=n</code>? === | ||
When <code>CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=n</code>, the optional AT-based host control solution is not part of the build. | |||
What you need to handle yourself: | |||
* | * you need your own private control path to carry required messages between host and device | ||
* | * this includes, but is not limited to, host netdev link-up handling | ||
* this also includes host-side IP address and netmask configuration | |||
In short, NetHub still provides the data-path, but the host-side control workflow becomes your own responsibility. | |||
=== 9.7 Why Does <code>ifconfig</code> Not Show the Virtual Interface? === | |||
Check first: | |||
* <code> | * use a command such as <code>ifconfig -a</code> to list interfaces that are currently down | ||
* find the virtual interface and bring it up manually, for example: <code>sudo ifconfig mr_eth0 up</code> | |||
Notes: | |||
* some Linux systems, including newer Raspberry Pi OS releases, run <code>NetworkManager</code> by default | |||
* because of that, the exact behavior depends on your host environment and may need host-specific analysis | |||
=== 9. | === 9.8 For Dual-Stack Traffic, Can Users Customize the Filter? Is There Any Difference Between USB and SDIO? === | ||
Yes. The default configuration already covers most scenarios, but users can still customize the Wi-Fi RX filter if needed. | |||
Important points: | |||
* the filter is not bound to one interface type; there is no special filter split between <code>USB</code> and <code>SDIO</code> | |||
* the current built-in policy is shared by both <code>SDIO</code> and <code>USB</code> | |||
* you can refer to <code>components/net/nethub/profile/nh_profile_sdio.c</code> and <code>components/net/nethub/profile/nh_profile_usb.c</code>; both use the same built-in Wi-Fi RX policy | |||
Default built-in policy reference: | |||
* <code> | * <code>components/net/nethub/profile/nh_profile_builtin.c</code> | ||
* <code> | * <code>NH_FILTER_MATCH_8021X</code>: handled locally and not delivered to the host | ||
* | * <code>NH_FILTER_MATCH_ARP</code>: handled locally and also delivered to the host | ||
* <code>NH_FILTER_MATCH_DHCP4</code>: handled locally | |||
* <code>NH_FILTER_MATCH_ICMP4</code>: handled locally | |||
* other packets: delivered to the host by default | |||
If the default policy does not match your requirement: | |||
* <code> | * you can call <code>nethub_set_wifi_rx_filter(nethub_wifi_rx_filter_cb_t filter_cb, void *user_ctx)</code> from <code>components/net/nethub/include/nethub_filter.h</code> | ||
* | * for the callback behavior, refer to <code>nh_filter_apply_policy()</code> in <code>components/net/nethub/core/nh_filter.c</code> | ||
* if you need a more complex policy, it is also fine to contact us directly | |||
=== 9. | === 9.9 Why Can the Host Not Ping Other Devices on the Same LAN? === | ||
This is expected with the current default policy. | |||
Reason: | |||
* <code>ICMP</code> packets are handled locally on the device side by default | |||
* they are not delivered to the host by default | |||
So, by default: | |||
* other LAN devices pinging the device can work | |||
* host-side ping visibility to other LAN devices is not part of the default behavior | |||
== 10. | == 10. Where to Go Next == | ||
* [[NetHubArchitecture| | * overall entry: [[NetHub|NetHub.md]] | ||
* [[NetHubVirtualChannel| | * architecture: [[NetHubArchitecture|NetHubArchitecture.md]] | ||
* USER virtual channel: [[NetHubVirtualChannel|NetHubVirtualChannel.md]] | |||
2026年4月24日 (五) 15:11的最新版本
NetHub Quick Start
This document is for customers using NetHub for the first time. The goal is to get you to the current default interface as quickly as possible.
1. Current Support Matrix
| Item | Current status |
|---|---|
| Default interface | SDIO
|
| USB interface | device-side backend implemented with USB ECM + USB ACM
|
| SPI interface | not implemented |
| USER virtual channel | default interface is SDIO
|
| Optional AT control solution | available, but not mandatory |
| Low power | currently BL618DG only
|
Read this table literally:
- if you want the shortest successful path today, choose
SDIO - if you are evaluating the USB interface, focus on the device-side backend and USB descriptors first
- do not plan on
SPIbring-up yet
2. Main Configuration Switches
For most users, the main configuration changes are these:
CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE =y
CONFIG_NETHUB_LOWPOWER_ENABLE =y
CONFIG_NETHUB_PROFILE_USB =n
CONFIG_NETHUB_PROFILE_SDIO =y
Notes:
- the config symbol names still use
PROFILE, but they select the active host interface - set
CONFIG_NETHUB_PROFILE_SDIO=yfor the current default interface - set
CONFIG_NETHUB_PROFILE_USB=yonly when you want to evaluate the USB interface CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=nmeansATModulewill not participate in the buildCONFIG_NETHUB_LOWPOWER_ENABLE=yis currently meaningful only onBL618DG
Additional current default facts in examples/wifi/nethub/defconfig:
CONFIG_MR_VIRTUALCHAN=yCONFIG_NETHUB_AT_USE_VCHAN=nCONFIG_MR_TTY=n
3. Wi-Fi Backend Selection
Default configuration:
CONFIG_WL80211disabledfhostselected
If you want wl80211, enable this in examples/wifi/nethub/defconfig:
CONFIG_WL80211=y
Notes:
fhostandwl80211are mutually exclusive- current NetHub supports both device-side Wi-Fi backends
4. Device Build and Flash
Build:
cd examples/wifi/nethub
# BL616
make CHIP=bl616 BOARD=bl616dk
# BL616CL
make CHIP=bl616cl BOARD=bl616cldk
# BL618DG
make CHIP=bl618dg BOARD=bl618dgdk CPU_ID=ap
Flash example:
cd examples/wifi/nethub
make flash CHIP=bl618dg COMX=/dev/ttyUSB0
5. Hardware Interface Pins
The pin tables below are the current default mappings used by the in-tree BSP board helpers.
Reference sources in the repository:
bsp/board/bl616dk/board_gpio.cbsp/board/bl616cldk/board_gpio.cbsp/board/bl618dgdk/board_gpio.c
5.1 Default SDIO Pins
These are the current board_sdh_gpio_init() mappings used by the BSP.
| Pin Function | BL616 / BL618 (bl616dk) |
BL618DG (bl618dgdk) |
BL616CL (bl616cldk)
|
|---|---|---|---|
SDIO_DAT2 |
GPIO10 |
GPIO43 |
GPIO6
|
SDIO_DAT3 |
GPIO11 |
GPIO44 |
GPIO7
|
SDIO_CMD |
GPIO12 |
GPIO45 |
GPIO8
|
SDIO_CLK |
GPIO13 |
GPIO46 |
GPIO9
|
SDIO_DAT0 |
GPIO14 |
GPIO47 |
GPIO10
|
SDIO_DAT1 |
GPIO15 |
GPIO48 |
GPIO11
|
Notes:
- this table shows the current default 4-bit SDIO wiring used by the NetHub SDIO data-path
- 1-line mode is also supported; if you use 1-line mode, keep
CMD,CLK, andDAT0first - the BSP configures these pins with
GPIO_FUNC_SDH | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1
5.2 Default USB Pins
The current USB interface uses the board's default USB differential pair.
| Chip / Board family | Default USB pins in current BSP | Current BSP behavior | Notes |
|---|---|---|---|
BL616 / BL618 (bl616dk) |
board default USB port path | current BSP enables USB clock in board.c, but does not expose a dedicated board_usb_gpio_init() helper |
treat this as the board's fixed default USB routing in the current example |
BL616CL (bl616cldk) |
GPIO32, GPIO33 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
BL618DG (bl618dgdk) |
GPIO40, GPIO41 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
Notes:
- for
BL616CLandBL618DG, the BSP helper only tells us the USB pair used by the board, not which pin isD+and which pin isD- - if you are wiring a custom board and need explicit
DP/DMpolarity, confirm it from the board schematic or chip or package documentation
6. Host Bring-Up Guidance
For the current in-tree host Linux stack, use:
bsp/common/msg_router/linux_host/userspace/nethub/README.md
Today that host stack follows the default SDIO interface.
For USB projects, keep expectations aligned with current code status:
- device-side
ECM + ACMbackend exists - host-side transport flattening into the same
nethub_vchanbehavior as SDIO is not fully documented or aligned in-tree yet
7. USER Virtual Channel
If you need private application messages between host and device, read:
Current implementation:
- the current in-tree end-to-end USER virtual channel follows the default
SDIOinterface - the public device API is transport-neutral by design
- the in-tree implementation behind it is still SDIO-backed today
8. Low-Power Note
Low power is currently supported only on BL618DG.
For other chips, examples/wifi/nethub/defconfig automatically turns CONFIG_NETHUB_LOWPOWER_ENABLE off. In practice, you normally keep this option enabled only for BL618DG builds.
9. Common Questions
9.1 bflbwifid Fails to Start
This question is relevant only when you use the optional host control stack.
Check first:
- whether the device and host control backends match
- whether
/dev/ttyAT0exists - whether
mr_sdio.kohas been loaded successfully - whether the SDIO hardware link is working properly
9.2 connect_ap Succeeds but the Host Has No Network Access
Check first:
- whether
statushas reachedGOTIP - whether
mr_eth0has an address - whether services such as
NetworkManagerordhcpcdoverride the NetHub configuration
Notes:
build.shbuilds userspace withENABLE_NETIF_AUTO_CONFIG=1by default- after the device reports
GOTIP, the host automatically configures the IP, gateway, and DNS ofmr_eth0
9.3 build.sh unload Reports That the Module Is Busy
Check first:
- whether
bflbwifidis still running - whether
nethub_vchan_appis still running
9.4 How Do I Change the Host-Side Virtual Interface Name mr_eth0?
The default host-side virtual network interface name comes from:
bsp/common/msg_router/linux_host/kernel/netdev/mr_netdev.c
The macro is:
#define ETH_DRV_NAME "mr_eth%d"
The first created interface therefore appears as mr_eth0.
To change the interface name, update ETH_DRV_NAME to the pattern you want. For example:
#define ETH_DRV_NAME "nethub%d"
Notes:
- keep
%dif you want Linux to allocate names such asnethub0,nethub1, and so on - rebuild the host software after the change and reload the host-side kernel module
- if any local scripts or service configuration still refer to
mr_eth0, update them accordingly
9.5 Can the Host Expose AP and STA at the Same Time?
No. Due to the current software implementation, this is not supported yet.
Current behavior:
- the host side exposes only one virtual interface at a time
- the default active Wi-Fi channel is
STA
If you need to switch between AP and STA, call nethub_set_active_wifi_channel() directly:
- use
NETHUB_CHANNEL_WIFI_APto switch toAP - use
NETHUB_CHANNEL_WIFI_STAto switch toSTA - the default value is
NETHUB_CHANNEL_WIFI_STA
9.6 What Should the Host Side Handle When CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=n?
When CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=n, the optional AT-based host control solution is not part of the build.
What you need to handle yourself:
- you need your own private control path to carry required messages between host and device
- this includes, but is not limited to, host netdev link-up handling
- this also includes host-side IP address and netmask configuration
In short, NetHub still provides the data-path, but the host-side control workflow becomes your own responsibility.
9.7 Why Does ifconfig Not Show the Virtual Interface?
Check first:
- use a command such as
ifconfig -ato list interfaces that are currently down - find the virtual interface and bring it up manually, for example:
sudo ifconfig mr_eth0 up
Notes:
- some Linux systems, including newer Raspberry Pi OS releases, run
NetworkManagerby default - because of that, the exact behavior depends on your host environment and may need host-specific analysis
9.8 For Dual-Stack Traffic, Can Users Customize the Filter? Is There Any Difference Between USB and SDIO?
Yes. The default configuration already covers most scenarios, but users can still customize the Wi-Fi RX filter if needed.
Important points:
- the filter is not bound to one interface type; there is no special filter split between
USBandSDIO - the current built-in policy is shared by both
SDIOandUSB - you can refer to
components/net/nethub/profile/nh_profile_sdio.candcomponents/net/nethub/profile/nh_profile_usb.c; both use the same built-in Wi-Fi RX policy
Default built-in policy reference:
components/net/nethub/profile/nh_profile_builtin.cNH_FILTER_MATCH_8021X: handled locally and not delivered to the hostNH_FILTER_MATCH_ARP: handled locally and also delivered to the hostNH_FILTER_MATCH_DHCP4: handled locallyNH_FILTER_MATCH_ICMP4: handled locally- other packets: delivered to the host by default
If the default policy does not match your requirement:
- you can call
nethub_set_wifi_rx_filter(nethub_wifi_rx_filter_cb_t filter_cb, void *user_ctx)fromcomponents/net/nethub/include/nethub_filter.h - for the callback behavior, refer to
nh_filter_apply_policy()incomponents/net/nethub/core/nh_filter.c - if you need a more complex policy, it is also fine to contact us directly
9.9 Why Can the Host Not Ping Other Devices on the Same LAN?
This is expected with the current default policy.
Reason:
ICMPpackets are handled locally on the device side by default- they are not delivered to the host by default
So, by default:
- other LAN devices pinging the device can work
- host-side ping visibility to other LAN devices is not part of the default behavior
10. Where to Go Next
- overall entry: NetHub.md
- architecture: NetHubArchitecture.md
- USER virtual channel: NetHubVirtualChannel.md
