tests only supports tests in non-encrypted mode. when we open tests
compilation in other modes, there will be many compilation warning
with mismatched parameter types, and it will not run correctly.
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
In some scenarios, dynamic memory allocation is not allowed, so it is modified to a static allocation method.
Signed-off-by: gaohedong <gaohedong@xiaomi.com>
Improve the behavior of the ARP table so that the manually configured
ARP table has the highest priority, can only be manually modified to
other values, otherwise will never change again, and will not time out.
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
The ping socket creation method is changed from SOCK_DGRAM to SOCK_RAW,
because SOCK_DGRAM may not have permission in some environments (e.g. Docker).
Also add checksum calculation when send, and perform IP header processing when receive.
Signed-off-by: daichuan <daichuan@xiaomi.com>
Fix dependency issue when signals are partially or fully enabled
Co-authored-by: guoshichao <guoshichao@xiaomi.com>
Signed-off-by: Chengdong Wang <wangchengdong@lixiang.com>
Add netlib_check_httpconnectivity() to verify HTTP service connectivity by sending GET request and validating status code.
Signed-off-by: meijian <meijian@xiaomi.com>
Fix a issue of vlan pcp config.
`vconfig add eth0 10` will create eth0.10 with VID=10 and no PCP(0)
`vconfig add eth0 10 3` will create eth0.10 with VID=10 and PCP=3
Signed-off-by: gaohedong <gaohedong@xiaomi.com>
Fix various coding style issues including:
- Case statement formatting
- Include placement and ordering
- Whitespace issues
- Long line formatting
- Bracket alignment
Affected modules:
- audioutils, examples, include
- netutils, system
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Before attempting to sample via NTP, network connectivity should be checked to avoid frequent sampling that could cause network error logs to overflow.
Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
We add devname in ping_info_s, but not initializeed, cause
data abort as value in stack possible not NULL.
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
We possible want to use iperf to test rpmsg socket etc.
Fix error when enable iperf and no IPv4
```
arm-none-eabi-ld: warning: ~/nuttx/nuttx has a LOAD segment with RWX permissions
arm-none-eabi-ld: ~/nuttx/staging/libapps.a(iperf_main.c.~.apps.netutils.iperf_1.o): in function `iperf_main':
~/apps/netutils/iperf/iperf_main.c:248:(.text.iperf_main+0x330): undefined reference to `inet_ntoa_r'
arm-none-eabi-ld: ~/apps/netutils/iperf/iperf_main.c:240:(.text.iperf_main+0x354): undefined reference to `netlib_get_ipv4addr'
arm-none-eabi-ld: ~/nuttx/staging/libapps.a(iperf.c.~.apps.netutils.iperf_1.o): in function `iperf_print_addr':
~/apps/netutils/iperf/iperf.c:226:(.text.iperf_print_addr+0x3c): undefined reference to `inet_ntoa'
```
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
The system checks connectivity with the input IP address; if no IP address is provided, it defaults to checking DNS server connectivity.
Signed-off-by: meijian <meijian@xiaomi.com>
The previous method of terminating the dhcp daemon via a global variable has been removed; instead, the `kill pid` command is used. Also, because the original `dhcp_start` method creates tasks via `task_create`, which is not supported in kernel mode, `dhcp_start` is not compiled in kernel mode. The daemon can be started in kernel mode using `dhcpd xxx &`.
Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
The current gPTP stack does not support path delay correction of the Switch.
This patch adds the path delay correction field in the Header.
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
fix compile warning when only enable PTPD_CLIENT or PTPD_SERVER
ptpd.c:493:38: error: 'CONFIG_NETUTILS_PTPD_PRIORITY1' undeclared (first
use in this function); did you mean 'CONFIG_NETUTILS_PTPD_CLIENT'?
ptpd.c:494:39: error: 'CONFIG_NETUTILS_PTPD_CLASS' undeclared (first use
in this function); did you mean 'CONFIG_NETUTILS_PTPD_CLIENT'?
ptpd.c:495:39: error: 'CONFIG_NETUTILS_PTPD_ACCURACY' undeclared (first
use in this function); did you mean 'CONFIG_NETUTILS_PTPD_DEBUG'?
ptpd.c:498:38: error: 'CONFIG_NETUTILS_PTPD_PRIORITY2' undeclared (first
use in this function); did you mean 'CONFIG_NETUTILS_PTPD_CLIENT'?
ptpd.c:502:36: error: 'CONFIG_NETUTILS_PTPD_CLOCKSOURCE' undeclared
(first use in this function); did you mean
'CONFIG_NETUTILS_PTPD_STACKSIZE'?
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
The original implementation only checked if each field was less than,
but didn't check for greater than before proceeding to the next field.
This caused incorrect clock selection behavior in the PTP Best Master
Clock Algorithm (BMCA).
The fix expands each comparison to explicitly check both < and >
conditions, returning the appropriate result immediately. This ensures
proper precedence evaluation according to IEEE 1588 specification:
- gm_priority1
- gm_quality (class, accuracy, variance)
- gm_priority2
- gm_identity
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
Add -I option to specify the network device to use for sending ICMP
echo requests. This allows users to explicitly bind ping to a
specific network interface, which is particularly useful in
multi-homed systems with multiple network interfaces.
Signed-off-by: meijian <meijian@xiaomi.com>
It provides the necessary compilation files and configuration management files, and offers a publish demo and a subscribe demo
Signed-off-by: zhangshuai39 <zhangshuai39@xiaomi.com>
- Modify the DHCP-client data structure to support multiple DNS addresses
- Enhance DHCP-option parsing to extract all DNS-server addresses
- Set all received DNS-server addresses
- fix some test case build error
Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
The update enables interoperability with a Silicon-Heaven
SHV3 protocol broker implemented in Rust language
https://github.com/silicon-heaven/shvbroker-rs
New commits from shv-libs4c project
https://github.com/silicon-heaven/shv-libs4c
- shv_pack_head_reply: correct reply head for non single element
CID array
When servicing request from the SHV3 protocol version broker
itself then CID array is empty and missing TAG_CALLER_IDS
for empty array breaks encoding scheme.
- shv_process: even in case of unsuccessful attempts to connect
respect request to stop
The request to stop initiate by signal caused the high priority
thread to enter busy-loop and block a system. Check for request
to stop (running flag cleared) even in disconnected state after
unsuccessful attempt.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
This commit adds CMUX (GSM 07.10) protocol support to netutils.
CMUX allows multiplexing multiple virtual serial connections
over a single physical serial link.
Changes include:
- CMUX protocol implementation
- CRC table for frame validation
- Basic frame handling
Signed-off-by: Halysson <halysson1007@gmail.com>
This commit marks the end of my GSoC 2025 project in the NuttX section.
All changes:
- Silicon Heaven protocol (SHV) implementation:
The library is cloned from github.com/silicon-heaven/shv-libs4c
and compiled here. The library has out-of-the-box support
for NuttX and possibly all posix systems.
The library is compiled with CONFIG_SHV_LIBS4C_PLATFORM define
set to "nuttx". The library's dependancy is Pavel Pisa's ULUT
and originates from Michal Lenc's GSoC.
- examples/shv-nxboot-updater:
An example which constructs a SHV tree with which you can perform
firmware updates using a SHV "file node". The file node wraps
around NXBoot's update partition.
The application also allows for NXBoot confirmation of the images.
This application is to be meant used as a "background service",
started before any apps, possibly using rcS. The tree is allocated
as GAVL (see below).
- examples/shv-test:
An example which constructs a SHV tree and gives the user
the ability to choose which type of construction should be used,
either:
- GAVL: dynamic SHV tree allocation encapsulated within
an AVL tree.
- GSA: dynamic SHV tree allocation encapsulated within
a continuous array with binary search
- GSA_STATIC: SHV tree is defined as static const, this means
all the data structures are placed in .rodata.
Extremely beneficial for embedded systems,
as .rodata is located in flash and embedded
systems usually have more flash than sram,
thus reducing sram usage. The downside is that
the definitions are rather tedious, but can
be automated in case of some code generation
(like in pysimCoder).
All of it is places in a continuous array with
binary search.
Signed-off-by: Stepan Pressl <pressl.stepan@gmail.com>
rebinding (T2) time from DHCP packet.
According to RFC 2131, T1 and T2 times play a critical role in lease
management in DHCP clients.
Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
Previous zip-based approach was failing in CI environment. Changed to use
git clone with specific commit hashes to resolve CI build issues.
Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
Add support for Xedge, an embedded software toolkit for IoT applications
using Lua scripting with HTTP(S), WebSockets, MQTT, and device I/O.
* netutils/xedge: Dependency manager that downloads BAS library
and BAS-Resources, generates XedgeZip.c during build
* examples/xedge_demo: Complete example showing Xedge integration
with HTTP server, Lua runtime, and SNTP time synchronization
Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>