Skip to content

Commit a63dbfb

Browse files
jukkarnashif
authored andcommitted
net: Namespace network symbols to avoid conflicts with Posix/libc
Rename network symbols i.e., add net_, NET_ or ZSOCK_ prefixes to those network symbols that can be found in Posix or libc. This way we can avoid circular dependency issues. Add also a compatibility header file that allows user to continue use various network APIs without adding either net_, NET_ or ZSOCK_ prefixes. Signed-off-by: Jukka Rissanen <[email protected]>
1 parent f0b8d94 commit a63dbfb

File tree

6 files changed

+898
-553
lines changed

6 files changed

+898
-553
lines changed

include/zephyr/net/net_compat.h

Lines changed: 315 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,315 @@
1+
/** @file
2+
* @brief Network namespace compatibility mode header
3+
*
4+
* Allows to use relevant network symbols without the "net_", "NET_" or
5+
* "ZSOCK_" prefixes.
6+
*/
7+
8+
/*
9+
* Copyright (c) 2025 Nordic Semiconductor ASA
10+
*
11+
* SPDX-License-Identifier: Apache-2.0
12+
*/
13+
14+
#ifndef ZEPHYR_INCLUDE_NET_NET_COMPAT_H_
15+
#define ZEPHYR_INCLUDE_NET_NET_COMPAT_H_
16+
17+
/**
18+
* @brief Network namespace compatibility mode symbols
19+
* @defgroup net_compat Network namespace compatibility mode symbols
20+
* @since 4.4
21+
* @version 0.0.1
22+
* @ingroup networking
23+
* @{
24+
*/
25+
26+
/* No need to generate documentation for the compatibility mode symbols */
27+
/** @cond INTERNAL_HIDDEN */
28+
29+
#ifdef __cplusplus
30+
extern "C" {
31+
#endif
32+
33+
/* Prevent direct inclusion of this file. This is a private header
34+
* meant to be included via <net/net_ip.h>.
35+
*/
36+
#if !defined(ZEPHYR_INCLUDE_NET_COMPAT_MODE_SYMBOLS)
37+
#error "This header file should not be included directly. " \
38+
"Include <zephyr/net/net_ip.h> instead."
39+
#endif /* !defined(ZEPHYR_INCLUDE_NET_COMPAT_MODE_SYMBOLS) */
40+
41+
#define PF_UNSPEC NET_PF_UNSPEC
42+
#define PF_INET NET_PF_INET
43+
#define PF_INET6 NET_PF_INET6
44+
#define PF_PACKET NET_PF_PACKET
45+
#define PF_CAN NET_PF_CAN
46+
#define PF_NET_MGMT NET_PF_NET_MGMT
47+
#define PF_LOCAL NET_PF_LOCAL
48+
#define PF_UNIX NET_PF_UNIX
49+
50+
#define AF_UNSPEC NET_PF_UNSPEC
51+
#define AF_INET NET_PF_INET
52+
#define AF_INET6 NET_PF_INET6
53+
#define AF_PACKET NET_PF_PACKET
54+
#define AF_CAN NET_PF_CAN
55+
#define AF_NET_MGMT NET_PF_NET_MGMT
56+
#define AF_LOCAL NET_PF_LOCAL
57+
#define AF_UNIX NET_PF_UNIX
58+
59+
#define IPPROTO_IP NET_IPPROTO_IP
60+
#define IPPROTO_ICMP NET_IPPROTO_ICMP
61+
#define IPPROTO_IGMP NET_IPPROTO_IGMP
62+
#define IPPROTO_ETH_P_ALL NET_IPPROTO_ETH_P_ALL
63+
#define IPPROTO_IPIP NET_IPPROTO_IPIP
64+
#define IPPROTO_TCP NET_IPPROTO_TCP
65+
#define IPPROTO_UDP NET_IPPROTO_UDP
66+
#define IPPROTO_IPV6 NET_IPPROTO_IPV6
67+
#define IPPROTO_ICMPV6 NET_IPPROTO_ICMPV6
68+
#define IPPROTO_RAW NET_IPPROTO_RAW
69+
#define IPPROTO_TLS_1_0 NET_IPPROTO_TLS_1_0
70+
#define IPPROTO_TLS_1_1 NET_IPPROTO_TLS_1_1
71+
#define IPPROTO_TLS_1_2 NET_IPPROTO_TLS_1_2
72+
#define IPPROTO_TLS_1_3 NET_IPPROTO_TLS_1_3
73+
#define IPPROTO_DTLS_1_0 NET_IPPROTO_DTLS_1_0
74+
#define IPPROTO_DTLS_1_2 NET_IPPROTO_DTLS_1_2
75+
76+
#define SOCK_STREAM NET_SOCK_STREAM
77+
#define SOCK_DGRAM NET_SOCK_DGRAM
78+
#define SOCK_RAW NET_SOCK_RAW
79+
80+
#define CAN_RAW NET_CAN_RAW
81+
#define SOL_CAN_RAW (NET_SOL_CAN_BASE + NET_CAN_RAW)
82+
#define CAN_RAW_FILTER NET_CAN_RAW_FILTER
83+
84+
#define ntohs(x) net_ntohs(x)
85+
#define ntohl(x) net_ntohl(x)
86+
#define ntohll(x) net_ntohll(x)
87+
#define htons(x) net_htons(x)
88+
#define htonl(x) net_htonl(x)
89+
#define htonll(x) net_htonll(x)
90+
91+
#define in_addr net_in_addr
92+
#define in6_addr net_in6_addr
93+
94+
#define sockaddr net_sockaddr
95+
#define sockaddr_in net_sockaddr_in
96+
#define sockaddr_in6 net_sockaddr_in6
97+
#define sockaddr_ll net_sockaddr_ll
98+
#define sockaddr_can net_sockaddr_can
99+
#define sockaddr_un net_sockaddr_un
100+
#define sockaddr_nm net_sockaddr_nm
101+
#define sockaddr_ptr net_sockaddr_ptr
102+
#define sockaddr_in_ptr net_sockaddr_in_ptr
103+
#define sockaddr_in6_ptr net_sockaddr_in6_ptr
104+
#define sockaddr_ll_ptr net_sockaddr_ll_ptr
105+
#define sockaddr_un_ptr net_sockaddr_un_ptr
106+
#define sockaddr_can_ptr net_sockaddr_can_ptr
107+
#define sockaddr_storage net_sockaddr_storage
108+
109+
#define sa_family_t net_sa_family_t
110+
#define socklen_t net_socklen_t
111+
112+
#define iovec net_iovec
113+
#define msghdr net_msghdr
114+
#define cmsghdr net_cmsghdr
115+
#define ALIGN_H(x) NET_ALIGN_H(x)
116+
#define ALIGN_D(x) NET_ALIGN_D(x)
117+
#define CMSG_LEN(len) NET_CMSG_LEN(len)
118+
#define CMSG_SPACE(len) NET_CMSG_SPACE(len)
119+
#define CMSG_DATA(cmsg) NET_CMSG_DATA(cmsg)
120+
#define CMSG_FIRSTHDR(msghdr) NET_CMSG_FIRSTHDR(msghdr)
121+
#define CMSG_NXTHDR(msghdr, cmsg) NET_CMSG_NXTHDR(msghdr, cmsg)
122+
123+
#define PACKET_HOST NET_PACKET_HOST
124+
#define PACKET_BROADCAST NET_PACKET_BROADCAST
125+
#define PACKET_MULTICAST NET_PACKET_MULTICAST
126+
#define PACKET_OTHERHOST NET_PACKET_OTHERHOST
127+
#define PACKET_OUTGOING NET_PACKET_OUTGOING
128+
#define PACKET_LOOPBACK NET_PACKET_LOOPBACK
129+
#define PACKET_FASTROUTE NET_PACKET_FASTROUTE
130+
131+
#define in6addr_any net_in6addr_any
132+
#define in6addr_loopback net_in6addr_loopback
133+
134+
#define INADDR_ANY NET_INADDR_ANY
135+
#define INADDR_BROADCAST NET_INADDR_BROADCAST
136+
#define INADDR_ANY_INIT NET_INADDR_ANY_INIT
137+
#define INADDR_LOOPBACK_INIT NET_INADDR_LOOPBACK_INIT
138+
#define INET_ADDRSTRLEN NET_INET_ADDRSTRLEN
139+
#define INET6_ADDRSTRLEN NET_INET6_ADDRSTRLEN
140+
#define IN6ADDR_ANY_INIT NET_IN6ADDR_ANY_INIT
141+
#define IN6ADDR_LOOPBACK_INIT NET_IN6ADDR_LOOPBACK_INIT
142+
143+
#define IFNAMSIZ NET_IFNAMSIZ
144+
145+
#define in_pktinfo net_in_pktinfo
146+
#define ip_mreqn net_ip_mreqn
147+
#define ip_mreq net_ip_mreq
148+
#define ipv6_mreq net_ipv6_mreq
149+
#define in6_pktinfo net_in6_pktinfo
150+
#define ifreq net_ifreq
151+
152+
#define SOL_TLS ZSOCK_SOL_TLS
153+
#define TLS_SEC_TAG_LIST ZSOCK_TLS_SEC_TAG_LIST
154+
#define TLS_HOSTNAME ZSOCK_TLS_HOSTNAME
155+
#define TLS_CIPHERSUITE_LIST ZSOCK_TLS_CIPHERSUITE_LIST
156+
#define TLS_CIPHERSUITE_USED ZSOCK_TLS_CIPHERSUITE_USED
157+
#define TLS_PEER_VERIFY ZSOCK_TLS_PEER_VERIFY
158+
#define TLS_DTLS_ROLE ZSOCK_TLS_DTLS_ROLE
159+
#define TLS_ALPN_LIST ZSOCK_TLS_ALPN_LIST
160+
#define TLS_DTLS_HANDSHAKE_TIMEOUT_MIN ZSOCK_TLS_DTLS_HANDSHAKE_TIMEOUT_MIN
161+
#define TLS_DTLS_HANDSHAKE_TIMEOUT_MAX ZSOCK_TLS_DTLS_HANDSHAKE_TIMEOUT_MAX
162+
#define TLS_CERT_NOCOPY ZSOCK_TLS_CERT_NOCOPY
163+
#define TLS_NATIVE ZSOCK_TLS_NATIVE
164+
#define TLS_SESSION_CACHE ZSOCK_TLS_SESSION_CACHE
165+
#define TLS_SESSION_CACHE_PURGE ZSOCK_TLS_SESSION_CACHE_PURGE
166+
#define TLS_DTLS_CID ZSOCK_TLS_DTLS_CID
167+
#define TLS_DTLS_CID_STATUS ZSOCK_TLS_DTLS_CID_STATUS
168+
#define TLS_DTLS_CID_VALUE ZSOCK_TLS_DTLS_CID_VALUE
169+
#define TLS_DTLS_PEER_CID_VALUE ZSOCK_TLS_DTLS_PEER_CID_VALUE
170+
#define TLS_DTLS_HANDSHAKE_ON_CONNECT ZSOCK_TLS_DTLS_HANDSHAKE_ON_CONNECT
171+
#define TLS_CERT_VERIFY_RESULT ZSOCK_TLS_CERT_VERIFY_RESULT
172+
#define TLS_CERT_VERIFY_CALLBACK ZSOCK_TLS_CERT_VERIFY_CALLBACK
173+
#define TLS_PEER_VERIFY_NONE ZSOCK_TLS_PEER_VERIFY_NONE
174+
#define TLS_PEER_VERIFY_OPTIONAL ZSOCK_TLS_PEER_VERIFY_OPTIONAL
175+
#define TLS_PEER_VERIFY_REQUIRED ZSOCK_TLS_PEER_VERIFY_REQUIRED
176+
#define TLS_DTLS_ROLE_CLIENT ZSOCK_TLS_DTLS_ROLE_CLIENT
177+
#define TLS_DTLS_ROLE_SERVER ZSOCK_TLS_DTLS_ROLE_SERVER
178+
#define TLS_CERT_NOCOPY_NONE ZSOCK_TLS_CERT_NOCOPY_NONE
179+
#define TLS_CERT_NOCOPY_OPTIONAL ZSOCK_TLS_CERT_NOCOPY_OPTIONAL
180+
#define TLS_SESSION_CACHE_DISABLED ZSOCK_TLS_SESSION_CACHE_DISABLED
181+
#define TLS_SESSION_CACHE_ENABLED ZSOCK_TLS_SESSION_CACHE_ENABLED
182+
#define TLS_DTLS_CID_DISABLED ZSOCK_TLS_DTLS_CID_DISABLED
183+
#define TLS_DTLS_CID_SUPPORTED ZSOCK_TLS_DTLS_CID_SUPPORTED
184+
#define TLS_DTLS_CID_ENABLED ZSOCK_TLS_DTLS_CID_ENABLED
185+
#define TLS_DTLS_CID_STATUS_DISABLED ZSOCK_TLS_DTLS_CID_STATUS_DISABLED
186+
#define TLS_DTLS_CID_STATUS_DOWNLINK ZSOCK_TLS_DTLS_CID_STATUS_DOWNLINK
187+
#define TLS_DTLS_CID_STATUS_UPLINK ZSOCK_TLS_DTLS_CID_STATUS_UPLINK
188+
#define TLS_DTLS_CID_STATUS_BIDIRECTIONAL ZSOCK_TLS_DTLS_CID_STATUS_BIDIRECTIONAL
189+
190+
#define tls_cert_verify_cb zsock_tls_cert_verify_cb
191+
192+
#define AI_PASSIVE ZSOCK_AI_PASSIVE
193+
#define AI_CANONNAME ZSOCK_AI_CANONNAME
194+
#define AI_NUMERICHOST ZSOCK_AI_NUMERICHOST
195+
#define AI_V4MAPPED ZSOCK_AI_V4MAPPED
196+
#define AI_ALL ZSOCK_AI_ALL
197+
#define AI_ADDRCONFIG ZSOCK_AI_ADDRCONFIG
198+
#define AI_NUMERICSERV ZSOCK_AI_NUMERICSERV
199+
#define AI_EXTFLAGS ZSOCK_AI_EXTFLAGS
200+
201+
#define NI_NUMERICHOST ZSOCK_NI_NUMERICHOST
202+
#define NI_NUMERICSERV ZSOCK_NI_NUMERICSERV
203+
#define NI_NOFQDN ZSOCK_NI_NOFQDN
204+
#define NI_NAMEREQD ZSOCK_NI_NAMEREQD
205+
#define NI_DGRAM ZSOCK_NI_DGRAM
206+
#define NI_MAXHOST ZSOCK_NI_MAXHOST
207+
208+
#define SOL_SOCKET ZSOCK_SOL_SOCKET
209+
#define SO_DEBUG ZSOCK_SO_DEBUG
210+
#define SO_REUSEADDR ZSOCK_SO_REUSEADDR
211+
#define SO_TYPE ZSOCK_SO_TYPE
212+
#define SO_ERROR ZSOCK_SO_ERROR
213+
#define SO_DONTROUTE ZSOCK_SO_DONTROUTE
214+
#define SO_BROADCAST ZSOCK_SO_BROADCAST
215+
#define SO_SNDBUF ZSOCK_SO_SNDBUF
216+
#define SO_RCVBUF ZSOCK_SO_RCVBUF
217+
#define SO_KEEPALIVE ZSOCK_SO_KEEPALIVE
218+
#define SO_OOBINLINE ZSOCK_SO_OOBINLINE
219+
#define SO_PRIORITY ZSOCK_SO_PRIORITY
220+
#define SO_LINGER ZSOCK_SO_LINGER
221+
#define SO_REUSEPORT ZSOCK_SO_REUSEPORT
222+
#define SO_RCVLOWAT ZSOCK_SO_RCVLOWAT
223+
#define SO_SNDLOWAT ZSOCK_SO_SNDLOWAT
224+
#define SO_RCVTIMEO ZSOCK_SO_RCVTIMEO
225+
#define SO_SNDTIMEO ZSOCK_SO_SNDTIMEO
226+
#define SO_BINDTODEVICE ZSOCK_SO_BINDTODEVICE
227+
#define SO_ACCEPTCONN ZSOCK_SO_ACCEPTCONN
228+
#define SO_TIMESTAMPING ZSOCK_SO_TIMESTAMPING
229+
#define SO_PROTOCOL ZSOCK_SO_PROTOCOL
230+
#define SO_DOMAIN ZSOCK_SO_DOMAIN
231+
#define SO_SOCKS5 ZSOCK_SO_SOCKS5
232+
#define SO_TXTIME ZSOCK_SO_TXTIME
233+
#define SCM_TXTIME ZSOCK_SCM_TXTIME
234+
#define SOF_TIMESTAMPING_RX_HARDWARE ZSOCK_SOF_TIMESTAMPING_RX_HARDWARE
235+
#define SOF_TIMESTAMPING_TX_HARDWARE ZSOCK_SOF_TIMESTAMPING_TX_HARDWARE
236+
237+
#define SHUT_RD ZSOCK_SHUT_RD
238+
#define SHUT_WR ZSOCK_SHUT_WR
239+
#define SHUT_RDWR ZSOCK_SHUT_RDWR
240+
241+
#define MSG_PEEK ZSOCK_MSG_PEEK
242+
#define MSG_TRUNC ZSOCK_MSG_TRUNC
243+
#define MSG_DONTWAIT ZSOCK_MSG_DONTWAIT
244+
#define MSG_WAITALL ZSOCK_MSG_WAITALL
245+
246+
#define TCP_NODELAY ZSOCK_TCP_NODELAY
247+
#define TCP_KEEPIDLE ZSOCK_TCP_KEEPIDLE
248+
#define TCP_KEEPINTVL ZSOCK_TCP_KEEPINTVL
249+
#define TCP_KEEPCNT ZSOCK_TCP_KEEPCNT
250+
251+
#define IP_TOS ZSOCK_IP_TOS
252+
#define IP_TTL ZSOCK_IP_TTL
253+
#define IP_PKTINFO ZSOCK_IP_PKTINFO
254+
#define IP_RECVTTL ZSOCK_IP_RECVTTL
255+
#define IP_MTU ZSOCK_IP_MTU
256+
#define IP_MULTICAST_IF ZSOCK_IP_MULTICAST_IF
257+
#define IP_MULTICAST_TTL ZSOCK_IP_MULTICAST_TTL
258+
#define IP_MULTICAST_LOOP ZSOCK_IP_MULTICAST_LOOP
259+
#define IP_ADD_MEMBERSHIP ZSOCK_IP_ADD_MEMBERSHIP
260+
#define IP_DROP_MEMBERSHIP ZSOCK_IP_DROP_MEMBERSHIP
261+
#define IP_LOCAL_PORT_RANGE ZSOCK_IP_LOCAL_PORT_RANGE
262+
263+
#define IPV6_UNICAST_HOPS ZSOCK_IPV6_UNICAST_HOPS
264+
#define IPV6_MULTICAST_IF ZSOCK_IPV6_MULTICAST_IF
265+
#define IPV6_MULTICAST_HOPS ZSOCK_IPV6_MULTICAST_HOPS
266+
#define IPV6_MULTICAST_LOOP ZSOCK_IPV6_MULTICAST_LOOP
267+
#define IPV6_ADD_MEMBERSHIP ZSOCK_IPV6_ADD_MEMBERSHIP
268+
#define IPV6_DROP_MEMBERSHIP ZSOCK_IPV6_DROP_MEMBERSHIP
269+
#define IPV6_JOIN_GROUP ZSOCK_IPV6_ADD_MEMBERSHIP
270+
#define IPV6_LEAVE_GROUP ZSOCK_IPV6_DROP_MEMBERSHIP
271+
#define IPV6_MTU ZSOCK_IPV6_MTU
272+
#define IPV6_V6ONLY ZSOCK_IPV6_V6ONLY
273+
#define IPV6_RECVPKTINFO ZSOCK_IPV6_RECVPKTINFO
274+
#define IPV6_PKTINFO ZSOCK_IPV6_PKTINFO
275+
#define IPV6_RECVHOPLIMIT ZSOCK_IPV6_RECVHOPLIMIT
276+
#define IPV6_HOPLIMIT ZSOCK_IPV6_HOPLIMIT
277+
#define IPV6_ADDR_PREFERENCES ZSOCK_IPV6_ADDR_PREFERENCES
278+
#define IPV6_PREFER_SRC_TMP ZSOCK_IPV6_PREFER_SRC_TMP
279+
#define IPV6_PREFER_SRC_PUBLIC ZSOCK_IPV6_PREFER_SRC_PUBLIC
280+
#define IPV6_PREFER_SRC_PUBTMP_DEFAULT ZSOCK_IPV6_PREFER_SRC_PUBTMP_DEFAULT
281+
#define IPV6_PREFER_SRC_COA ZSOCK_IPV6_PREFER_SRC_COA
282+
#define IPV6_PREFER_SRC_HOME ZSOCK_IPV6_PREFER_SRC_HOME
283+
#define IPV6_PREFER_SRC_CGA ZSOCK_IPV6_PREFER_SRC_CGA
284+
#define IPV6_PREFER_SRC_NONCGA ZSOCK_IPV6_PREFER_SRC_NONCGA
285+
#define IPV6_TCLASS ZSOCK_IPV6_TCLASS
286+
287+
#define SOMAXCONN ZSOCK_SOMAXCONN
288+
289+
#define IN6_IS_ADDR_UNSPECIFIED(addr) ZSOCK_IN6_IS_ADDR_UNSPECIFIED(addr)
290+
#define IN6_IS_ADDR_LOOPBACK(addr) ZSOCK_IN6_IS_ADDR_LOOPBACK(addr)
291+
#define IN6_IS_ADDR_MULTICAST(addr) ZSOCK_IN6_IS_ADDR_MULTICAST(addr)
292+
#define IN6_IS_ADDR_LINKLOCAL(addr) ZSOCK_IN6_IS_ADDR_LINKLOCAL(addr)
293+
#define IN6_IS_ADDR_SITELOCAL(addr) ZSOCK_IN6_IS_ADDR_SITELOCAL(addr)
294+
#define IN6_IS_ADDR_V4MAPPED(addr) ZSOCK_IN6_IS_ADDR_V4MAPPED(addr)
295+
#define IN6_IS_ADDR_MC_GLOBAL(addr) ZSOCK_IN6_IS_ADDR_MC_GLOBAL(addr)
296+
#define IN6_IS_ADDR_MC_NODELOCAL(addr) ZSOCK_IN6_IS_ADDR_MC_NODELOCAL(addr)
297+
#define IN6_IS_ADDR_MC_LINKLOCAL(addr) ZSOCK_IN6_IS_ADDR_MC_LINKLOCAL(addr)
298+
#define IN6_IS_ADDR_MC_SITELOCAL(addr) ZSOCK_IN6_IS_ADDR_MC_SITELOCAL(addr)
299+
#define IN6_IS_ADDR_MC_ORGLOCAL(addr) ZSOCK_IN6_IS_ADDR_MC_ORGLOCAL(addr)
300+
301+
#if !defined(ARPHRD_ETHER)
302+
#define ARPHRD_ETHER NET_ARPHRD_ETHER
303+
#endif
304+
305+
#ifdef __cplusplus
306+
}
307+
#endif
308+
309+
/** @endcond */
310+
311+
/**
312+
* @}
313+
*/
314+
315+
#endif /* ZEPHYR_INCLUDE_NET_NET_COMPAT_H_ */

0 commit comments

Comments
 (0)