2018-03-21 12:49:40 +01:00
|
|
|
ifneq (,$(filter gnrc_dhcpv6,$(USEMODULE)))
|
|
|
|
DIRS += application_layer/dhcpv6
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_icmpv6,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/icmpv6
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/icmpv6/echo
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2015-06-10 04:02:10 +02:00
|
|
|
ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/icmpv6/error
|
2015-06-10 04:02:10 +02:00
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6/ext
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2019-05-23 16:29:19 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6_ext_frag,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/ipv6/ext/frag
|
|
|
|
endif
|
2020-02-03 18:09:29 +01:00
|
|
|
ifneq (,$(filter gnrc_ipv6_ext_opt,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/ipv6/ext/opt
|
|
|
|
endif
|
2018-10-23 19:34:46 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6_ext_rh,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/ipv6/ext/rh
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6_hdr,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6/hdr
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2017-01-11 11:54:53 +01:00
|
|
|
ifneq (,$(filter gnrc_ipv6_nib,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6/nib
|
2017-01-11 11:54:53 +01:00
|
|
|
endif
|
2015-09-28 14:40:35 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6_whitelist,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6/whitelist
|
2015-09-28 14:40:35 +02:00
|
|
|
endif
|
2016-01-26 11:28:01 +01:00
|
|
|
ifneq (,$(filter gnrc_ipv6_blacklist,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/ipv6/blacklist
|
2016-01-26 11:28:01 +01:00
|
|
|
endif
|
2017-11-17 10:25:17 +01:00
|
|
|
ifneq (,$(filter gnrc_ndp,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/ndp
|
2017-05-11 16:33:05 +02:00
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_netapi,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += netapi
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2018-12-05 14:22:14 +01:00
|
|
|
ifneq (,$(filter gnrc_netif gnrc_netif_%,$(USEMODULE)))
|
2017-11-16 18:06:46 +01:00
|
|
|
DIRS += netif
|
2017-05-16 13:23:54 +02:00
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_netreg,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += netreg
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2016-11-07 18:18:19 +01:00
|
|
|
ifneq (,$(filter gnrc_mac,$(USEMODULE)))
|
2019-05-09 14:43:41 +02:00
|
|
|
DIRS += link_layer/mac
|
2016-11-07 18:18:19 +01:00
|
|
|
endif
|
2016-02-11 00:45:25 +01:00
|
|
|
ifneq (,$(filter gnrc_pkt,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += pkt
|
2016-02-11 00:45:25 +01:00
|
|
|
endif
|
2017-01-31 17:25:32 +01:00
|
|
|
ifneq (,$(filter gnrc_lwmac,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += link_layer/lwmac
|
2017-01-31 17:25:32 +01:00
|
|
|
endif
|
2017-06-15 15:49:16 +02:00
|
|
|
ifneq (,$(filter gnrc_pktbuf_malloc,$(USEMODULE)))
|
|
|
|
DIRS += pktbuf_malloc
|
|
|
|
endif
|
2019-03-07 17:12:24 +01:00
|
|
|
ifneq (,$(filter gnrc_lorawan,$(USEMODULE)))
|
|
|
|
DIRS += link_layer/lorawan
|
|
|
|
endif
|
2016-04-10 20:17:45 +02:00
|
|
|
ifneq (,$(filter gnrc_gomach,$(USEMODULE)))
|
|
|
|
DIRS += link_layer/gomach
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_pktbuf_static,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += pktbuf_static
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2017-06-14 12:24:46 +02:00
|
|
|
ifneq (,$(filter gnrc_pktbuf,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += pktbuf
|
2017-06-14 12:24:46 +02:00
|
|
|
endif
|
2016-10-17 15:30:35 +02:00
|
|
|
ifneq (,$(filter gnrc_priority_pktqueue,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += priority_pktqueue
|
2016-10-17 15:30:35 +02:00
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_pktdump,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += pktdump
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_rpl,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += routing/rpl
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_rpl_srh,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += routing/rpl/srh
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2015-08-23 14:25:39 +02:00
|
|
|
ifneq (,$(filter gnrc_rpl_p2p,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += routing/rpl/p2p
|
2015-08-23 14:25:39 +02:00
|
|
|
endif
|
2021-06-07 16:53:34 +02:00
|
|
|
ifneq (,$(filter gnrc_ipv6_auto_subnets,$(USEMODULE)))
|
|
|
|
DIRS += routing/ipv6_auto_subnets
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/sixlowpan
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_sixlowpan_ctx,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/sixlowpan/ctx
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/sixlowpan/frag
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2019-10-17 16:56:38 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_fb,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/fb
|
|
|
|
endif
|
2019-02-12 12:24:51 +01:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_minfwd,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/minfwd
|
|
|
|
endif
|
2019-09-27 18:17:07 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_rb,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/rb
|
|
|
|
endif
|
2019-09-27 15:34:35 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_sfr,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/sfr
|
|
|
|
endif
|
2019-12-18 13:41:31 +01:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_stats,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/stats
|
|
|
|
endif
|
2019-02-06 14:48:13 +01:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_frag_vrb,$(USEMODULE)))
|
|
|
|
DIRS += network_layer/sixlowpan/frag/vrb
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_iphc,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/sixlowpan/iphc
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2015-08-28 03:59:38 +02:00
|
|
|
ifneq (,$(filter gnrc_sixlowpan_nd,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += network_layer/sixlowpan/nd
|
2015-08-28 03:59:38 +02:00
|
|
|
endif
|
2016-06-09 11:08:53 +02:00
|
|
|
ifneq (,$(filter gnrc_sock,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += sock
|
2016-06-09 11:08:53 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_sock_ip,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += sock/ip
|
2016-06-09 11:08:53 +02:00
|
|
|
endif
|
|
|
|
ifneq (,$(filter gnrc_sock_udp,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += sock/udp
|
2016-06-09 11:08:53 +02:00
|
|
|
endif
|
2021-05-22 13:41:03 +02:00
|
|
|
ifneq (,$(filter gnrc_sock_tcp,$(USEMODULE)))
|
|
|
|
DIRS += sock/tcp
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
ifneq (,$(filter gnrc_udp,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += transport_layer/udp
|
2015-08-17 15:41:29 +02:00
|
|
|
endif
|
2016-02-04 14:37:35 +01:00
|
|
|
ifneq (,$(filter gnrc_tcp,$(USEMODULE)))
|
2017-09-21 15:20:30 +02:00
|
|
|
DIRS += transport_layer/tcp
|
2016-02-04 14:37:35 +01:00
|
|
|
endif
|
sys/net/gnrc/tx_sync: new module
The new `gnrc_tx_sync` module allows users of the GNRC network stack to
synchronize with the actual transmission of outgoing packets. This is directly
integrated into gnrc_sock. Hence, if `gnrc_tx_sync` is used, calls to e.g.
sock_udp_send() will block until the network stack has processed the message.
Use cases:
1. Prevent packet drop when sending at high rate
- If the application is sending faster than the stack can handle, the
message queues will overflow and outgoing packets are lost
2. Passing auxiliary data about the transmission back the stack
- When e.g. the number of required retransmissions, the transmission time
stamp, etc. should be made available to a user of an UDP sock, a
synchronization mechanism is needed
3. Simpler error reporting without footguns
- The current approach of using `core/msg` for passing up error messages is
difficult to use if other message come in. Currently, gnrc_sock is
busy-waiting and fetching messages from the message queue until the number
of expected status reports is received. It will enqueue all
non-status-report messages again at the end of the queue. This has
multiple issues:
- Busy waiting is especially in lower power scenarios with time slotted
MAC protocols harmful, as the CPU will remain active and consume
power even though the it could sleep until the TX slot is reached
- The status reports from the network stack are send to the user thread
blocking. If the message queue of the user thread is full, the network
stack would block until the user stack can fetch the messages. If
another higher priority thread would start sending a message, it
would busy wait for its status reports to completely come in. Hence,
the first thread doesn't get CPU time to fetch messages and unblock
the network stack. As a result, the system would lock up completely.
- Just adding the error/status code to the gnrc_tx_sync_t would preallocate
and reserve memory for the error reporting. That way gnrc_sock does not
need to search through the message queue for status reports and the
network stack does not need to block for the user thread fetching it.
2020-12-23 15:46:59 +01:00
|
|
|
ifneq (,$(filter gnrc_tx_sync,$(USEMODULE)))
|
|
|
|
DIRS += tx_sync
|
|
|
|
endif
|
2015-08-17 15:41:29 +02:00
|
|
|
|
2015-08-10 02:41:08 +02:00
|
|
|
include $(RIOTBASE)/Makefile.base
|