Zephyr: add POSIX API support

Changes:
- Remove duplicate OBSERVE_PERSIST configuration block

Improve example build:

- Make virtual environment activation optional in Makefile
- Remove --fresh flag unsupported in newer west versions
- Copy mbedTLS config header to workspace include directory
- Add TARGET check for mbedTLS before configuring include directories
- Add mbedTLS linking to coap-3 target

Add POSIX API support:

- Enable CONFIG_POSIX_API=y in examples/zephyr
- Replace direct Linux/Windows system calls with Zephyr POSIX API
equivalents
- Add Zephyr's sys_rand_get() to coap_prng_default()
- Define missing network macros (IN_MULTICAST, IN6_IS_ADDR_MULTICAST,
etc.)
- Add FIONBIO and OPTVAL_T/OPTVAL_GT macro definitions for Zephyr
- Add native Zephyr timing functions to replace missing mbedTLS timing
support
- Fix fd_set mapping using zephyr/net/socket_select.h
- Exclude strnlen redefinition conflicts for Zephyr
- Add proper IPv6 packet info and address mapped definitions

(Patch) Add DNS resolution and net setup to example client:
- Enable CONFIG_DNS_RESOLVER for hostname resolution
- Add Linux networking setup instructions for native_sim board
- Configure static IP gateway and DNS server (8.8.8.8)
- Add DHCP vs static IP configuration documentation
Co-authored-by: mrdeep1
This commit is contained in:
fj-blanco authored and Jon Shallow committed 2025-06-26 15:23:23 +01:00
1 parent cf45e84be2
commit 4fa3dfa0c7
16 files changed
+194 -29

No files matched your search

+5
View File
@@ -31,6 +31,11 @@
#include <lwip/ip_addr.h>
#endif
#if defined(__ZEPHYR__) && !defined(__unix__) && !defined(__linux__)
#include <zephyr/net/socket_select.h>
#define fd_set zsock_fd_set
#endif
#include "coap_io.h"
#include "coap_dtls.h"
#include "coap_event.h"
+2
View File
@@ -38,6 +38,8 @@ typedef USHORT in_port_t;
#define _IN_PORT_T_DECLARED
#endif
#endif /* !defined(__MINGW32__) */
#elif defined(__ZEPHYR__)
#include <zephyr/net/socket.h>
#elif !defined (CONTIKI) && !defined (WITH_LWIP) && !defined (RIOT_VERSION)
#include <netinet/in.h>
#include <sys/socket.h>