blob: fac6146a006bac5d8dbd571ca22f738e3c0090da [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
2# Copyright (C) 2006-2011 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8NETWORK_SUPPORT_MENU:=Network Support
9
10define KernelPackage/atm
11 SUBMENU:=$(NETWORK_SUPPORT_MENU)
12 TITLE:=ATM support
13 KCONFIG:= \
14 CONFIG_ATM \
15 CONFIG_ATM_BR2684
16 FILES:= \
17 $(LINUX_DIR)/net/atm/atm.ko \
18 $(LINUX_DIR)/net/atm/br2684.ko
19 AUTOLOAD:=$(call AutoLoad,30,atm br2684)
20endef
21
22define KernelPackage/atm/description
23 Kernel modules for ATM support
24endef
25
26$(eval $(call KernelPackage,atm))
27
28
29define KernelPackage/atmtcp
30 SUBMENU:=$(NETWORK_SUPPORT_MENU)
31 TITLE:=ATM over TCP
32 DEPENDS:=kmod-atm
33 KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
34 FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
35 AUTOLOAD:=$(call AutoLoad,40,atmtcp)
36endef
37
38define KernelPackage/atmtcp/description
39 Kernel module for ATM over TCP support
40endef
41
42$(eval $(call KernelPackage,atmtcp))
43
44
45define KernelPackage/appletalk
46 SUBMENU:=$(NETWORK_SUPPORT_MENU)
47 TITLE:=Appletalk protocol support
48 KCONFIG:= \
49 CONFIG_ATALK \
50 CONFIG_DEV_APPLETALK \
51 CONFIG_IPDDP=n
52 FILES:=$(LINUX_DIR)/net/appletalk/appletalk.ko
53 AUTOLOAD:=$(call AutoLoad,40,appletalk)
54endef
55
56define KernelPackage/appletalk/description
57 Kernel module for AppleTalk protocol.
58endef
59
60$(eval $(call KernelPackage,appletalk))
61
62
63define KernelPackage/bonding
64 SUBMENU:=$(NETWORK_SUPPORT_MENU)
65 TITLE:=Ethernet bonding driver
66 KCONFIG:=CONFIG_BONDING
67 DEPENDS:=PACKAGE_kmod-tls:kmod-tls
68 FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
69 AUTOLOAD:=$(call AutoLoad,40,bonding)
70 MODPARAMS.bonding:=max_bonds=0
71endef
72
73define KernelPackage/bonding/description
74 Kernel module for NIC bonding.
75endef
76
77$(eval $(call KernelPackage,bonding))
78
79
80define KernelPackage/udptunnel4
81 SUBMENU:=$(NETWORK_SUPPORT_MENU)
82 TITLE:=IPv4 UDP tunneling support
83 KCONFIG:=CONFIG_NET_UDP_TUNNEL
84 HIDDEN:=1
85 FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
86 AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
87endef
88
89
90$(eval $(call KernelPackage,udptunnel4))
91
92define KernelPackage/udptunnel6
93 SUBMENU:=$(NETWORK_SUPPORT_MENU)
94 TITLE:=IPv6 UDP tunneling support
95 DEPENDS:=@IPV6
96 KCONFIG:=CONFIG_NET_UDP_TUNNEL
97 HIDDEN:=1
98 FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
99 AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
100endef
101
102$(eval $(call KernelPackage,udptunnel6))
103
104
105define KernelPackage/vxlan
106 SUBMENU:=$(NETWORK_SUPPORT_MENU)
107 TITLE:=Native VXLAN Kernel support
108 DEPENDS:= \
109 +kmod-iptunnel \
110 +kmod-udptunnel4 \
111 +IPV6:kmod-udptunnel6
112 KCONFIG:=CONFIG_VXLAN
113 FILES:= \
114 $(LINUX_DIR)/drivers/net/vxlan.ko@lt5.5 \
115 $(LINUX_DIR)/drivers/net/vxlan/vxlan.ko@ge5.6
116 AUTOLOAD:=$(call AutoLoad,13,vxlan)
117endef
118
119define KernelPackage/vxlan/description
120 Kernel module for supporting VXLAN in the Kernel.
121 Requires Kernel 3.12 or newer.
122endef
123
124$(eval $(call KernelPackage,vxlan))
125
126
127define KernelPackage/geneve
128 SUBMENU:=$(NETWORK_SUPPORT_MENU)
129 TITLE:=Generic Network Virtualization Encapsulation (Geneve) support
130 DEPENDS:= \
131 +kmod-iptunnel \
132 +kmod-udptunnel4 \
133 +IPV6:kmod-udptunnel6
134 KCONFIG:=CONFIG_GENEVE
135 FILES:= \
136 $(LINUX_DIR)/drivers/net/geneve.ko
137 AUTOLOAD:=$(call AutoLoad,13,geneve)
138endef
139
140define KernelPackage/geneve/description
141 Kernel module for supporting Geneve in the Kernel.
142 Requires Kernel 3.18 or newer.
143endef
144
145$(eval $(call KernelPackage,geneve))
146
147
148define KernelPackage/nsh
149 SUBMENU:=$(NETWORK_SUPPORT_MENU)
150 TITLE:=Network Service Header (NSH) protocol
151 DEPENDS:=
152 KCONFIG:=CONFIG_NET_NSH
153 FILES:=$(LINUX_DIR)/net/nsh/nsh.ko
154 AUTOLOAD:=$(call AutoLoad,13,nsh)
155endef
156
157define KernelPackage/nsh/description
158 Network Service Header is an implementation of Service Function
159 Chaining (RFC 7665). Requires kernel 4.14 or newer
160endef
161
162$(eval $(call KernelPackage,nsh))
163
164
165define KernelPackage/misdn
166 SUBMENU:=$(NETWORK_SUPPORT_MENU)
167 TITLE:=mISDN (ISDN) Support
168 KCONFIG:= \
169 CONFIG_ISDN=y \
170 CONFIG_MISDN \
171 CONFIG_MISDN_DSP \
172 CONFIG_MISDN_L1OIP
173 FILES:= \
174 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
175 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
176 $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
177 AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
178endef
179
180define KernelPackage/misdn/description
181 Modular ISDN driver support
182endef
183
184$(eval $(call KernelPackage,misdn))
185
186
187define KernelPackage/ipip
188 SUBMENU:=$(NETWORK_SUPPORT_MENU)
189 TITLE:=IP-in-IP encapsulation
190 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
191 KCONFIG:=CONFIG_NET_IPIP
192 FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
193 AUTOLOAD:=$(call AutoLoad,32,ipip)
194endef
195
196define KernelPackage/ipip/description
197 Kernel modules for IP-in-IP encapsulation
198endef
199
200$(eval $(call KernelPackage,ipip))
201
202
203IPSEC-m:= \
204 xfrm/xfrm_algo \
205 xfrm/xfrm_ipcomp \
206 xfrm/xfrm_user \
207 key/af_key \
208
209define KernelPackage/ipsec
210 SUBMENU:=$(NETWORK_SUPPORT_MENU)
211 TITLE:=IPsec related modules (IPv4 and IPv6)
212 DEPENDS:= \
213 +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \
214 +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \
215 +kmod-crypto-md5 +kmod-crypto-sha1
216 KCONFIG:= \
217 CONFIG_NET_KEY \
218 CONFIG_XFRM_USER \
219 CONFIG_INET_IPCOMP \
220 CONFIG_XFRM_IPCOMP \
221 CONFIG_XFRM_SUB_POLICY=y
222 FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
223 AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
224endef
225
226define KernelPackage/ipsec/description
227 Kernel modules for IPsec support in both IPv4 and IPv6.
228 Includes:
229 - af_key
230 - xfrm_algo
231 - xfrm_ipcomp
232 - xfrm_user
233endef
234
235$(eval $(call KernelPackage,ipsec))
236
237IPSEC4-m = \
238 ipv4/ah4 \
239 ipv4/esp4 \
240 ipv4/ipcomp \
241 ipv4/xfrm4_tunnel
242
243define KernelPackage/ipsec4
244 SUBMENU:=$(NETWORK_SUPPORT_MENU)
245 TITLE:=IPsec related modules (IPv4)
246 DEPENDS:=kmod-ipsec +kmod-iptunnel4
247 KCONFIG:= \
248 CONFIG_INET_AH \
249 CONFIG_INET_ESP \
250 CONFIG_INET_IPCOMP \
251 CONFIG_INET_XFRM_TUNNEL \
252 CONFIG_INET_ESP_OFFLOAD=n
253 FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
254 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
255endef
256
257define KernelPackage/ipsec4/description
258 Kernel modules for IPsec support in IPv4.
259 Includes:
260 - ah4
261 - esp4
262 - ipcomp4
263 - xfrm4_tunnel
264endef
265
266$(eval $(call KernelPackage,ipsec4))
267
268
269IPSEC6-m = \
270 ipv6/ah6 \
271 ipv6/esp6 \
272 ipv6/ipcomp6 \
273 ipv6/xfrm6_tunnel
274
275define KernelPackage/ipsec6
276 SUBMENU:=$(NETWORK_SUPPORT_MENU)
277 TITLE:=IPsec related modules (IPv6)
278 DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6
279 KCONFIG:= \
280 CONFIG_INET6_AH \
281 CONFIG_INET6_ESP \
282 CONFIG_INET6_IPCOMP \
283 CONFIG_INET6_XFRM_TUNNEL \
284 CONFIG_INET6_ESP_OFFLOAD=n
285 FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
286 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
287endef
288
289define KernelPackage/ipsec6/description
290 Kernel modules for IPsec support in IPv6.
291 Includes:
292 - ah6
293 - esp6
294 - ipcomp6
295 - xfrm6_tunnel
296endef
297
298$(eval $(call KernelPackage,ipsec6))
299
300
301define KernelPackage/iptunnel
302 SUBMENU:=$(NETWORK_SUPPORT_MENU)
303 TITLE:=IP tunnel support
304 HIDDEN:=1
305 KCONFIG:= \
306 CONFIG_NET_IP_TUNNEL
307 FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
308 AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
309endef
310
311define KernelPackage/iptunnel/description
312 Kernel module for generic IP tunnel support
313endef
314
315$(eval $(call KernelPackage,iptunnel))
316
317
318define KernelPackage/ip-vti
319 SUBMENU:=$(NETWORK_SUPPORT_MENU)
320 TITLE:=IP VTI (Virtual Tunnel Interface)
321 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
322 KCONFIG:=CONFIG_NET_IPVTI
323 FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
324 AUTOLOAD:=$(call AutoLoad,33,ip_vti)
325endef
326
327define KernelPackage/ip-vti/description
328 Kernel modules for IP VTI (Virtual Tunnel Interface)
329endef
330
331$(eval $(call KernelPackage,ip-vti))
332
333
334define KernelPackage/ip6-vti
335 SUBMENU:=$(NETWORK_SUPPORT_MENU)
336 TITLE:=IPv6 VTI (Virtual Tunnel Interface)
337 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
338 KCONFIG:=CONFIG_IPV6_VTI
339 FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
340 AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
341endef
342
343define KernelPackage/ip6-vti/description
344 Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
345endef
346
347$(eval $(call KernelPackage,ip6-vti))
348
349
350define KernelPackage/xfrm-interface
351 SUBMENU:=$(NETWORK_SUPPORT_MENU)
352 TITLE:=IPsec XFRM Interface
353 DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6
354 KCONFIG:=CONFIG_XFRM_INTERFACE
355 FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
356 AUTOLOAD:=$(call AutoProbe,xfrm_interface)
357endef
358
359define KernelPackage/xfrm-interface/description
360 Kernel module for XFRM interface support
361endef
362
363$(eval $(call KernelPackage,xfrm-interface))
364
365
366define KernelPackage/iptunnel4
367 SUBMENU:=$(NETWORK_SUPPORT_MENU)
368 TITLE:=IPv4 tunneling
369 HIDDEN:=1
370 KCONFIG:= \
371 CONFIG_INET_TUNNEL \
372 CONFIG_NET_IPIP=m
373 FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
374 AUTOLOAD:=$(call AutoLoad,31,tunnel4)
375endef
376
377define KernelPackage/iptunnel4/description
378 Kernel modules for IPv4 tunneling
379endef
380
381$(eval $(call KernelPackage,iptunnel4))
382
383
384define KernelPackage/iptunnel6
385 SUBMENU:=$(NETWORK_SUPPORT_MENU)
386 TITLE:=IPv6 tunneling
387 DEPENDS:=@IPV6
388 KCONFIG:= \
389 CONFIG_INET6_TUNNEL
390 FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
391 AUTOLOAD:=$(call AutoLoad,31,tunnel6)
392endef
393
394define KernelPackage/iptunnel6/description
395 Kernel modules for IPv6 tunneling
396endef
397
398$(eval $(call KernelPackage,iptunnel6))
399
400
401define KernelPackage/sit
402 SUBMENU:=$(NETWORK_SUPPORT_MENU)
403 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
404 TITLE:=IPv6-in-IPv4 tunnel
405 KCONFIG:=CONFIG_IPV6_SIT \
406 CONFIG_IPV6_SIT_6RD=y
407 FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
408 AUTOLOAD:=$(call AutoLoad,32,sit)
409endef
410
411define KernelPackage/sit/description
412 Kernel modules for IPv6-in-IPv4 tunnelling
413endef
414
415$(eval $(call KernelPackage,sit))
416
417
418define KernelPackage/fou
419 SUBMENU:=$(NETWORK_SUPPORT_MENU)
420 TITLE:=FOU and GUE decapsulation
421 DEPENDS:= \
422 +kmod-iptunnel \
423 +kmod-udptunnel4 \
424 +IPV6:kmod-udptunnel6
425 KCONFIG:= \
426 CONFIG_NET_FOU \
427 CONFIG_NET_FOU_IP_TUNNELS=y
428 FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
429 AUTOLOAD:=$(call AutoProbe,fou)
430endef
431
432define KernelPackage/fou/description
433 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling.
434 Requires Kernel 3.18 or newer.
435endef
436
437$(eval $(call KernelPackage,fou))
438
439
440define KernelPackage/fou6
441 SUBMENU:=$(NETWORK_SUPPORT_MENU)
442 TITLE:=FOU and GUE decapsulation over IPv6
443 DEPENDS:= @IPV6 \
444 +kmod-fou \
445 +kmod-ip6-tunnel
446 KCONFIG:= \
447 CONFIG_IPV6_FOU \
448 CONFIG_IPV6_FOU_TUNNEL
449 FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
450 AUTOLOAD:=$(call AutoProbe,fou6)
451endef
452
453define KernelPackage/fou6/description
454 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6.
455 Requires Kernel 3.18 or newer.
456endef
457
458$(eval $(call KernelPackage,fou6))
459
460
461define KernelPackage/ip6-tunnel
462 SUBMENU:=$(NETWORK_SUPPORT_MENU)
463 TITLE:=IP-in-IPv6 tunnelling
464 DEPENDS:=@IPV6 +kmod-iptunnel6
465 KCONFIG:= CONFIG_IPV6_TUNNEL
466 FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
467 AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
468endef
469
470define KernelPackage/ip6-tunnel/description
471 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
472endef
473
474$(eval $(call KernelPackage,ip6-tunnel))
475
476
477define KernelPackage/gre
478 SUBMENU:=$(NETWORK_SUPPORT_MENU)
479 TITLE:=GRE support
480 DEPENDS:=+kmod-iptunnel
481 KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
482 FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
483 AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
484endef
485
486define KernelPackage/gre/description
487 Generic Routing Encapsulation support
488endef
489
490$(eval $(call KernelPackage,gre))
491
492
493define KernelPackage/gre6
494 SUBMENU:=$(NETWORK_SUPPORT_MENU)
495 TITLE:=GRE support over IPV6
496 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
497 KCONFIG:=CONFIG_IPV6_GRE
498 FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
499 AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
500endef
501
502define KernelPackage/gre6/description
503 Generic Routing Encapsulation support over IPv6
504endef
505
506$(eval $(call KernelPackage,gre6))
507
508
509define KernelPackage/tun
510 SUBMENU:=$(NETWORK_SUPPORT_MENU)
511 TITLE:=Universal TUN/TAP driver
512 KCONFIG:=CONFIG_TUN
513 FILES:=$(LINUX_DIR)/drivers/net/tun.ko
514 AUTOLOAD:=$(call AutoLoad,30,tun)
515endef
516
517define KernelPackage/tun/description
518 Kernel support for the TUN/TAP tunneling device
519endef
520
521$(eval $(call KernelPackage,tun))
522
523
524define KernelPackage/veth
525 SUBMENU:=$(NETWORK_SUPPORT_MENU)
526 TITLE:=Virtual ethernet pair device
527 KCONFIG:=CONFIG_VETH
528 FILES:=$(LINUX_DIR)/drivers/net/veth.ko
529 AUTOLOAD:=$(call AutoLoad,30,veth)
530endef
531
532define KernelPackage/veth/description
533 This device is a local ethernet tunnel. Devices are created in pairs.
534 When one end receives the packet it appears on its pair and vice
535 versa.
536endef
537
538$(eval $(call KernelPackage,veth))
539
540
541define KernelPackage/vrf
542 SUBMENU:=$(NETWORK_SUPPORT_MENU)
543 TITLE:=Virtual Routing and Forwarding (Lite)
544 DEPENDS:=@KERNEL_NET_L3_MASTER_DEV
545 KCONFIG:=CONFIG_NET_VRF
546 FILES:=$(LINUX_DIR)/drivers/net/vrf.ko
547 AUTOLOAD:=$(call AutoLoad,30,vrf)
548endef
549
550define KernelPackage/vrf/description
551 This option enables the support for mapping interfaces into VRF's. The
552 support enables VRF devices.
553endef
554
555$(eval $(call KernelPackage,vrf))
556
557
558define KernelPackage/slhc
559 SUBMENU:=$(NETWORK_SUPPORT_MENU)
560 HIDDEN:=1
561 TITLE:=Serial Line Header Compression
562 DEPENDS:=+kmod-lib-crc-ccitt
563 KCONFIG:=CONFIG_SLHC
564 FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
565endef
566
567$(eval $(call KernelPackage,slhc))
568
569
570define KernelPackage/ppp
571 SUBMENU:=$(NETWORK_SUPPORT_MENU)
572 TITLE:=PPP modules
573 DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
574 KCONFIG:= \
575 CONFIG_PPP \
576 CONFIG_PPP_ASYNC
577 FILES:= \
578 $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
579 $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
580 AUTOLOAD:=$(call AutoProbe,ppp_async)
581endef
582
583define KernelPackage/ppp/description
584 Kernel modules for PPP support
585endef
586
587$(eval $(call KernelPackage,ppp))
588
589
590define KernelPackage/ppp-synctty
591 SUBMENU:=$(NETWORK_SUPPORT_MENU)
592 TITLE:=PPP sync tty support
593 DEPENDS:=kmod-ppp
594 KCONFIG:=CONFIG_PPP_SYNC_TTY
595 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
596 AUTOLOAD:=$(call AutoProbe,ppp_synctty)
597endef
598
599define KernelPackage/ppp-synctty/description
600 Kernel modules for PPP sync tty support
601endef
602
603$(eval $(call KernelPackage,ppp-synctty))
604
605
606define KernelPackage/pppox
607 SUBMENU:=$(NETWORK_SUPPORT_MENU)
608 TITLE:=PPPoX helper
609 DEPENDS:=kmod-ppp
610 KCONFIG:=CONFIG_PPPOE
611 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
612endef
613
614define KernelPackage/pppox/description
615 Kernel helper module for PPPoE and PPTP support
616endef
617
618$(eval $(call KernelPackage,pppox))
619
620
621define KernelPackage/pppoe
622 SUBMENU:=$(NETWORK_SUPPORT_MENU)
623 TITLE:=PPPoE support
624 DEPENDS:=kmod-ppp +kmod-pppox
625 KCONFIG:=CONFIG_PPPOE
626 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
627 AUTOLOAD:=$(call AutoProbe,pppoe)
628endef
629
630define KernelPackage/pppoe/description
631 Kernel module for PPPoE (PPP over Ethernet) support
632endef
633
634$(eval $(call KernelPackage,pppoe))
635
636
637define KernelPackage/pppoa
638 SUBMENU:=$(NETWORK_SUPPORT_MENU)
639 TITLE:=PPPoA support
640 DEPENDS:=kmod-ppp +kmod-atm
641 KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
642 FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
643 AUTOLOAD:=$(call AutoLoad,40,pppoatm)
644endef
645
646define KernelPackage/pppoa/description
647 Kernel modules for PPPoA (PPP over ATM) support
648endef
649
650$(eval $(call KernelPackage,pppoa))
651
652
653define KernelPackage/pptp
654 SUBMENU:=$(NETWORK_SUPPORT_MENU)
655 TITLE:=PPtP support
656 DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
657 KCONFIG:=CONFIG_PPTP
658 FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
659 AUTOLOAD:=$(call AutoProbe,pptp)
660endef
661
662$(eval $(call KernelPackage,pptp))
663
664
665define KernelPackage/pppol2tp
666 SUBMENU:=$(NETWORK_SUPPORT_MENU)
667 TITLE:=PPPoL2TP support
668 DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
669 KCONFIG:=CONFIG_PPPOL2TP
670 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
671 AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
672endef
673
674define KernelPackage/pppol2tp/description
675 Kernel modules for PPPoL2TP (PPP over L2TP) support
676endef
677
678$(eval $(call KernelPackage,pppol2tp))
679
680
681define KernelPackage/ipoa
682 SUBMENU:=$(NETWORK_SUPPORT_MENU)
683 TITLE:=IPoA support
684 DEPENDS:=kmod-atm
685 KCONFIG:=CONFIG_ATM_CLIP
686 FILES:=$(LINUX_DIR)/net/atm/clip.ko
687 AUTOLOAD:=$(call AutoProbe,clip)
688endef
689
690define KernelPackage/ipoa/description
691 Kernel modules for IPoA (IP over ATM) support
692endef
693
694$(eval $(call KernelPackage,ipoa))
695
696
697define KernelPackage/mppe
698 SUBMENU:=$(NETWORK_SUPPORT_MENU)
699 TITLE:=Microsoft PPP compression/encryption
700 DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
701 KCONFIG:= \
702 CONFIG_PPP_MPPE_MPPC \
703 CONFIG_PPP_MPPE
704 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
705 AUTOLOAD:=$(call AutoProbe,ppp_mppe)
706endef
707
708define KernelPackage/mppe/description
709 Kernel modules for Microsoft PPP compression/encryption
710endef
711
712$(eval $(call KernelPackage,mppe))
713
714
715SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
716SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko)
717
718define KernelPackage/sched-core
719 SUBMENU:=$(NETWORK_SUPPORT_MENU)
720 TITLE:=Traffic schedulers
721 KCONFIG:= \
722 CONFIG_NET_SCHED=y \
723 CONFIG_NET_SCH_HFSC \
724 CONFIG_NET_SCH_HTB \
725 CONFIG_NET_SCH_TBF \
726 CONFIG_NET_SCH_INGRESS \
727 CONFIG_NET_CLS=y \
728 CONFIG_NET_CLS_ACT=y \
729 CONFIG_NET_CLS_BASIC \
730 CONFIG_NET_CLS_FLOW \
731 CONFIG_NET_CLS_FW \
732 CONFIG_NET_CLS_ROUTE4 \
733 CONFIG_NET_CLS_U32 \
734 CONFIG_NET_ACT_GACT \
735 CONFIG_NET_ACT_MIRRED \
736 CONFIG_NET_ACT_SKBEDIT \
737 CONFIG_NET_CLS_MATCHALL \
738 CONFIG_NET_EMATCH=y \
739 CONFIG_NET_EMATCH_U32
740 FILES:=$(SCHED_FILES_CORE)
741 AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
742endef
743
744define KernelPackage/sched-core/description
745 Core kernel scheduler support for IP traffic
746endef
747
748$(eval $(call KernelPackage,sched-core))
749
750
751define KernelPackage/sched-act-police
752 SUBMENU:=$(NETWORK_SUPPORT_MENU)
753 TITLE:=Traffic Policing
754 DEPENDS:=+kmod-sched-core
755 KCONFIG:=CONFIG_NET_ACT_POLICE
756 FILES:=$(LINUX_DIR)/net/sched/act_police.ko
757 AUTOLOAD:=$(call AutoProbe,act_police)
758endef
759
760$(eval $(call KernelPackage,sched-act-police))
761
762
763define KernelPackage/sched-act-sample
764 SUBMENU:=$(NETWORK_SUPPORT_MENU)
765 TITLE:=Traffic Sampling
766 DEPENDS:=+kmod-sched-core
767 KCONFIG:= \
768 CONFIG_NET_ACT_SAMPLE \
769 CONFIG_PSAMPLE
770 FILES:= \
771 $(LINUX_DIR)/net/psample/psample.ko \
772 $(LINUX_DIR)/net/sched/act_sample.ko
773 AUTOLOAD:=$(call AutoProbe,act_sample psample)
774endef
775
776define KernelPackage/sched-act-sample/description
777 Packet sampling tc action.
778endef
779
780$(eval $(call KernelPackage,sched-act-sample))
781
782
783define KernelPackage/sched-act-ipt
784 SUBMENU:=$(NETWORK_SUPPORT_MENU)
785 TITLE:=IPtables targets
786 DEPENDS:=+kmod-ipt-core +kmod-sched-core
787 KCONFIG:=CONFIG_NET_ACT_IPT
788 FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko
789 AUTOLOAD:=$(call AutoProbe, act_ipt)
790endef
791
792define KernelPackage/sched-act-ipt/description
793 Allows to invoke iptables targets after successful classification.
794endef
795
796$(eval $(call KernelPackage,sched-act-ipt))
797
798
799define KernelPackage/sched-act-vlan
800 SUBMENU:=$(NETWORK_SUPPORT_MENU)
801 TITLE:=Traffic VLAN manipulation
802 DEPENDS:=+kmod-sched-core
803 KCONFIG:=CONFIG_NET_ACT_VLAN
804 FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
805 AUTOLOAD:=$(call AutoProbe, act_vlan)
806endef
807
808define KernelPackage/sched-act-vlan/description
809 Allows to configure rules to push or pop vlan headers.
810endef
811
812$(eval $(call KernelPackage,sched-act-vlan))
813
814
815define KernelPackage/sched-bpf
816 SUBMENU:=$(NETWORK_SUPPORT_MENU)
817 TITLE:=Traffic shaper support for Berkeley Packet Filter
818 KCONFIG:= \
819 CONFIG_NET_CLS_BPF \
820 CONFIG_NET_ACT_BPF
821 FILES:= \
822 $(LINUX_DIR)/net/sched/cls_bpf.ko \
823 $(LINUX_DIR)/net/sched/act_bpf.ko
824 AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
825endef
826
827$(eval $(call KernelPackage,sched-bpf))
828
829
830define KernelPackage/sched-cake
831 SUBMENU:=$(NETWORK_SUPPORT_MENU)
832 TITLE:=Cake fq_codel/blue derived shaper
833 DEPENDS:=+kmod-sched-core
834 KCONFIG:=CONFIG_NET_SCH_CAKE
835 FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
836 AUTOLOAD:=$(call AutoProbe,sch_cake)
837endef
838
839define KernelPackage/sched-cake/description
840 Common Applications Kept Enhanced fq_codel/blue derived shaper
841endef
842
843$(eval $(call KernelPackage,sched-cake))
844
845
846define KernelPackage/sched-connmark
847 SUBMENU:=$(NETWORK_SUPPORT_MENU)
848 TITLE:=Traffic shaper conntrack mark support
849 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
850 KCONFIG:=CONFIG_NET_ACT_CONNMARK
851 FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
852 AUTOLOAD:=$(call AutoLoad,71, act_connmark)
853endef
854$(eval $(call KernelPackage,sched-connmark))
855
856
857define KernelPackage/sched-ctinfo
858 SUBMENU:=$(NETWORK_SUPPORT_MENU)
859 TITLE:=Traffic shaper ctinfo support
860 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
861 KCONFIG:=CONFIG_NET_ACT_CTINFO
862 FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
863 AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
864endef
865$(eval $(call KernelPackage,sched-ctinfo))
866
867
868define KernelPackage/sched-drr
869 SUBMENU:=$(NETWORK_SUPPORT_MENU)
870 TITLE:=Deficit Round Robin scheduler (DRR)
871 DEPENDS:=+kmod-sched-core
872 KCONFIG:=CONFIG_NET_SCH_DRR
873 FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko
874 AUTOLOAD:=$(call AutoProbe,sch_drr)
875endef
876
877define KernelPackage/sched-drr/description
878 DRR algorithm Configuration
879endef
880
881$(eval $(call KernelPackage,sched-drr))
882
883
884define KernelPackage/sched-flower
885 SUBMENU:=$(NETWORK_SUPPORT_MENU)
886 TITLE:=Flower traffic classifier
887 DEPENDS:=+kmod-sched-core
888 KCONFIG:=CONFIG_NET_CLS_FLOWER
889 FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
890 AUTOLOAD:=$(call AutoProbe, cls_flower)
891endef
892
893define KernelPackage/sched-flower/description
894 Allows to classify packets based on a configurable combination of packet keys and masks.
895endef
896
897$(eval $(call KernelPackage,sched-flower))
898
899
900define KernelPackage/sched-fq-pie
901 SUBMENU:=$(NETWORK_SUPPORT_MENU)
902 TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE)
903 DEPENDS:=+kmod-sched-core +kmod-sched-pie
904 KCONFIG:=CONFIG_NET_SCH_FQ_PIE
905 FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko
906 AUTOLOAD:=$(call AutoProbe, sch_fq_pie)
907endef
908
909define KernelPackage/sched-fq-pie/description
910 A queuing discipline that combines Flow Queuing with the PIE AQM.
911endef
912
913$(eval $(call KernelPackage,sched-fq-pie))
914
915
916define KernelPackage/sched-ipset
917 SUBMENU:=$(NETWORK_SUPPORT_MENU)
918 TITLE:=Traffic shaper ipset support
919 DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
920 KCONFIG:= \
921 CONFIG_NET_EMATCH_IPSET
922 FILES:= \
923 $(LINUX_DIR)/net/sched/em_ipset.ko
924 AUTOLOAD:=$(call AutoLoad,72,em_ipset)
925endef
926
927$(eval $(call KernelPackage,sched-ipset))
928
929
930define KernelPackage/sched-mqprio-common
931 SUBMENU:=$(NETWORK_SUPPORT_MENU)
932 TITLE:=mqprio queue common dependencies support
933 DEPENDS:=@LINUX_6_6
934 HIDDEN:=1
935 KCONFIG:=CONFIG_NET_SCH_MQPRIO_LIB
936 FILES:=$(LINUX_DIR)/net/sched/sch_mqprio_lib.ko
937endef
938
939define KernelPackage/sched-mqprio-common/description
940 Common library for manipulating mqprio queue configurations
941endef
942
943$(eval $(call KernelPackage,sched-mqprio-common))
944
945
946define KernelPackage/sched-mqprio
947 SUBMENU:=$(NETWORK_SUPPORT_MENU)
948 TITLE:=Multi-queue priority scheduler (MQPRIO)
949 DEPENDS:=+kmod-sched-core +LINUX_6_6:kmod-sched-mqprio-common
950 KCONFIG:=CONFIG_NET_SCH_MQPRIO
951 FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
952 AUTOLOAD:=$(call AutoProbe, sch_mqprio)
953endef
954
955define KernelPackage/sched-mqprio/description
956 This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
957endef
958
959$(eval $(call KernelPackage,sched-mqprio))
960
961
962define KernelPackage/sched-pie
963 SUBMENU:=$(NETWORK_SUPPORT_MENU)
964 TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
965 DEPENDS:=+kmod-sched-core
966 KCONFIG:=CONFIG_NET_SCH_PIE
967 FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
968 AUTOLOAD:=$(call AutoProbe, sch_pie)
969endef
970
971define KernelPackage/sched-pie/description
972 A control theoretic active queue management scheme.
973endef
974
975$(eval $(call KernelPackage,sched-pie))
976
977
978define KernelPackage/sched-prio
979 SUBMENU:=$(NETWORK_SUPPORT_MENU)
980 TITLE:=Multi Band Priority Queueing (PRIO)
981 DEPENDS:=+kmod-sched-core
982 KCONFIG:=CONFIG_NET_SCH_PRIO
983 FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
984 AUTOLOAD:=$(call AutoProbe,sch_prio)
985endef
986
987define KernelPackage/sched-prio/description
988 PRIO algorithm Configuration
989endef
990
991$(eval $(call KernelPackage,sched-prio))
992
993
994define KernelPackage/sched-red
995 SUBMENU:=$(NETWORK_SUPPORT_MENU)
996 TITLE:=Random Early Detection (RED)
997 DEPENDS:=+kmod-sched-core
998 KCONFIG:=CONFIG_NET_SCH_RED
999 FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
1000 AUTOLOAD:=$(call AutoProbe,sch_red)
1001endef
1002
1003define KernelPackage/sched-red/description
1004 Random Early Detection (RED) algorithm Configuration
1005endef
1006
1007$(eval $(call KernelPackage,sched-red))
1008
1009
1010define KernelPackage/sched-skbprio
1011 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1012 TITLE:=SKB priority queue scheduler (SKBPRIO)
1013 DEPENDS:=+kmod-sched-core
1014 KCONFIG:= CONFIG_NET_SCH_SKBPRIO
1015 FILES:= $(LINUX_DIR)/net/sched/sch_skbprio.ko
1016 AUTOLOAD:=$(call AutoProbe,sch_skbprio)
1017endef
1018
1019$(eval $(call KernelPackage,sched-skbprio))
1020
1021
1022define KernelPackage/bpf-test
1023 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1024 TITLE:=Test Berkeley Packet Filter functionality
1025 KCONFIG:=CONFIG_TEST_BPF
1026 FILES:=$(LINUX_DIR)/lib/test_bpf.ko
1027endef
1028
1029$(eval $(call KernelPackage,bpf-test))
1030
1031
1032SCHED_MODULES_EXTRA = sch_codel sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_skbmod act_csum em_cmp em_nbyte em_meta em_text
1033SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
1034
1035define KernelPackage/sched
1036 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1037 TITLE:=Extra traffic schedulers
1038 DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
1039 KCONFIG:= \
1040 CONFIG_NET_SCH_CODEL \
1041 CONFIG_NET_SCH_GRED \
1042 CONFIG_NET_SCH_MULTIQ \
1043 CONFIG_NET_SCH_SFQ \
1044 CONFIG_NET_SCH_TEQL \
1045 CONFIG_NET_SCH_FQ \
1046 CONFIG_NET_ACT_PEDIT \
1047 CONFIG_NET_ACT_SIMP \
1048 CONFIG_NET_ACT_SKBMOD \
1049 CONFIG_NET_ACT_CSUM \
1050 CONFIG_NET_EMATCH_CMP \
1051 CONFIG_NET_EMATCH_NBYTE \
1052 CONFIG_NET_EMATCH_META \
1053 CONFIG_NET_EMATCH_TEXT
1054 FILES:=$(SCHED_FILES_EXTRA)
1055 AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
1056endef
1057
1058define KernelPackage/sched/description
1059 Extra kernel schedulers modules for IP traffic
1060endef
1061
1062SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
1063
1064define KernelPackage/sched/install
1065 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
1066 $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
1067endef
1068
1069$(eval $(call KernelPackage,sched))
1070
1071
1072define KernelPackage/tcp-bbr
1073 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1074 TITLE:=BBR TCP congestion control
1075 KCONFIG:=CONFIG_TCP_CONG_BBR
1076 FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
1077 AUTOLOAD:=$(call AutoProbe,tcp_bbr)
1078endef
1079
1080define KernelPackage/tcp-bbr/description
1081 Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
1082 control. It requires the fq ("Fair Queue") pacing packet scheduler.
1083 For kernel 4.13+, TCP internal pacing is implemented as fallback.
1084endef
1085
1086TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
1087
1088define KernelPackage/tcp-bbr/install
1089 $(INSTALL_DIR) $(1)/etc/sysctl.d
1090 $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
1091endef
1092
1093$(eval $(call KernelPackage,tcp-bbr))
1094
1095define KernelPackage/tls
1096 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1097 TITLE:=In-kernel TLS Support with HW Offload
1098 KCONFIG:=CONFIG_TLS \
1099 CONFIG_TLS_DEVICE=y
1100 FILES:=$(LINUX_DIR)/net/tls/tls.ko
1101 AUTOLOAD:=$(call AutoProbe,tls)
1102endef
1103
1104define KernelPackage/tls/description
1105 Kernel module for in-kernel TLS protocol support and hw offload
1106 (to supported interfaces).
1107 This allows symmetric encryption handling of the TLS protocol to
1108 be done in-kernel and it's HW offload when available.
1109endef
1110
1111$(eval $(call KernelPackage,tls))
1112
1113
1114define KernelPackage/tcp-hybla
1115 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1116 TITLE:=TCP-Hybla congestion control algorithm
1117 KCONFIG:=CONFIG_TCP_CONG_HYBLA
1118 FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
1119 AUTOLOAD:=$(call AutoProbe,tcp_hybla)
1120endef
1121
1122define KernelPackage/tcp-hybla/description
1123 TCP-Hybla is a sender-side only change that eliminates penalization of
1124 long-RTT, large-bandwidth connections, like when satellite legs are
1125 involved, especially when sharing a common bottleneck with normal
1126 terrestrial connections.
1127endef
1128
1129$(eval $(call KernelPackage,tcp-hybla))
1130
1131
1132define KernelPackage/tcp-scalable
1133 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1134 TITLE:=TCP-Scalable congestion control algorithm
1135 KCONFIG:=CONFIG_TCP_CONG_SCALABLE
1136 FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
1137 AUTOLOAD:=$(call AutoProbe,tcp-scalable)
1138endef
1139
1140define KernelPackage/tcp-scalable/description
1141 Scalable TCP is a sender-side only change to TCP which uses a
1142 MIMD congestion control algorithm which has some nice scaling
1143 properties, though is known to have fairness issues.
1144 See http://www.deneholme.net/tom/scalable/
1145endef
1146
1147$(eval $(call KernelPackage,tcp-scalable))
1148
1149
1150define KernelPackage/ax25
1151 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1152 TITLE:=AX25 support
1153 DEPENDS:=+kmod-lib-crc16
1154 KCONFIG:= \
1155 CONFIG_HAMRADIO=y \
1156 CONFIG_AX25 \
1157 CONFIG_MKISS
1158 FILES:= \
1159 $(LINUX_DIR)/net/ax25/ax25.ko \
1160 $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
1161 AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
1162endef
1163
1164define KernelPackage/ax25/description
1165 Kernel modules for AX25 support
1166endef
1167
1168$(eval $(call KernelPackage,ax25))
1169
1170
1171define KernelPackage/pktgen
1172 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1173 DEPENDS:=@!TARGET_uml
1174 TITLE:=Network packet generator
1175 KCONFIG:=CONFIG_NET_PKTGEN
1176 FILES:=$(LINUX_DIR)/net/core/pktgen.ko
1177 AUTOLOAD:=$(call AutoLoad,99,pktgen)
1178endef
1179
1180define KernelPackage/pktgen/description
1181 Kernel modules for the Network Packet Generator
1182endef
1183
1184$(eval $(call KernelPackage,pktgen))
1185
1186define KernelPackage/l2tp
1187 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1188 TITLE:=Layer Two Tunneling Protocol (L2TP)
1189 DEPENDS:= \
1190 +kmod-udptunnel4 \
1191 +IPV6:kmod-udptunnel6
1192 KCONFIG:=CONFIG_L2TP \
1193 CONFIG_L2TP_V3=y \
1194 CONFIG_L2TP_DEBUGFS=n
1195 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
1196 $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
1197 AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
1198endef
1199
1200define KernelPackage/l2tp/description
1201 Kernel modules for L2TP V3 Support
1202endef
1203
1204$(eval $(call KernelPackage,l2tp))
1205
1206
1207define KernelPackage/l2tp-eth
1208 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1209 TITLE:=L2TP ethernet pseudowire support for L2TPv3
1210 DEPENDS:=+kmod-l2tp
1211 KCONFIG:=CONFIG_L2TP_ETH
1212 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
1213 AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
1214endef
1215
1216define KernelPackage/l2tp-eth/description
1217 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
1218endef
1219
1220$(eval $(call KernelPackage,l2tp-eth))
1221
1222define KernelPackage/l2tp-ip
1223 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1224 TITLE:=L2TP IP encapsulation for L2TPv3
1225 DEPENDS:=+kmod-l2tp
1226 KCONFIG:=CONFIG_L2TP_IP
1227 FILES:= \
1228 $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
1229 $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
1230 AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
1231endef
1232
1233define KernelPackage/l2tp-ip/description
1234 Kernel modules for L2TP IP encapsulation for L2TPv3
1235endef
1236
1237$(eval $(call KernelPackage,l2tp-ip))
1238
1239
1240define KernelPackage/sctp
1241 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1242 TITLE:=SCTP protocol kernel support
1243 KCONFIG:=\
1244 CONFIG_IP_SCTP \
1245 CONFIG_SCTP_DBG_MSG=n \
1246 CONFIG_SCTP_DBG_OBJCNT=n \
1247 CONFIG_SCTP_HMAC_NONE=n \
1248 CONFIG_SCTP_HMAC_SHA1=n \
1249 CONFIG_SCTP_HMAC_MD5=y \
1250 CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
1251 CONFIG_SCTP_COOKIE_HMAC_MD5=y \
1252 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
1253 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
1254 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
1255 FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
1256 AUTOLOAD:= $(call AutoLoad,32,sctp)
1257 DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
1258 +kmod-udptunnel4 +kmod-udptunnel6
1259endef
1260
1261define KernelPackage/sctp/description
1262 Kernel modules for SCTP protocol support
1263endef
1264
1265$(eval $(call KernelPackage,sctp))
1266
1267
1268define KernelPackage/netem
1269 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1270 TITLE:=Network emulation functionality
1271 DEPENDS:=+kmod-sched
1272 KCONFIG:=CONFIG_NET_SCH_NETEM
1273 FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
1274 AUTOLOAD:=$(call AutoLoad,99,netem)
1275endef
1276
1277define KernelPackage/netem/description
1278 Kernel modules for emulating the properties of wide area networks
1279endef
1280
1281$(eval $(call KernelPackage,netem))
1282
1283define KernelPackage/slip
1284 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1285 DEPENDS:=+kmod-slhc
1286 TITLE:=SLIP modules
1287 KCONFIG:= \
1288 CONFIG_SLIP \
1289 CONFIG_SLIP_COMPRESSED=y \
1290 CONFIG_SLIP_SMART=y \
1291 CONFIG_SLIP_MODE_SLIP6=y
1292
1293 FILES:= \
1294 $(LINUX_DIR)/drivers/net/slip/slip.ko
1295 AUTOLOAD:=$(call AutoLoad,30,slip)
1296endef
1297
1298define KernelPackage/slip/description
1299 Kernel modules for SLIP support
1300endef
1301
1302$(eval $(call KernelPackage,slip))
1303
1304define KernelPackage/dnsresolver
1305 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1306 TITLE:=In-kernel DNS Resolver
1307 KCONFIG:= CONFIG_DNS_RESOLVER
1308 FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
1309 AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
1310endef
1311
1312$(eval $(call KernelPackage,dnsresolver))
1313
1314define KernelPackage/rxrpc
1315 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1316 TITLE:=AF_RXRPC support
1317 HIDDEN:=1
1318 KCONFIG:= \
1319 CONFIG_AF_RXRPC \
1320 CONFIG_RXKAD=m \
1321 CONFIG_AF_RXRPC_DEBUG=n
1322 FILES:= \
1323 $(LINUX_DIR)/net/rxrpc/rxrpc.ko
1324 AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
1325 DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt \
1326 +kmod-udptunnel4 +kmod-udptunnel6
1327endef
1328
1329define KernelPackage/rxrpc/description
1330 Kernel support for AF_RXRPC; required for AFS client
1331endef
1332
1333$(eval $(call KernelPackage,rxrpc))
1334
1335define KernelPackage/mpls
1336 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1337 TITLE:=MPLS support
1338 DEPENDS:=+kmod-iptunnel
1339 KCONFIG:= \
1340 CONFIG_MPLS=y \
1341 CONFIG_LWTUNNEL=y \
1342 CONFIG_LWTUNNEL_BPF=n \
1343 CONFIG_NET_MPLS_GSO=m \
1344 CONFIG_MPLS_ROUTING=m \
1345 CONFIG_MPLS_IPTUNNEL=m
1346 FILES:= \
1347 $(LINUX_DIR)/net/mpls/mpls_gso.ko \
1348 $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
1349 $(LINUX_DIR)/net/mpls/mpls_router.ko
1350 AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
1351endef
1352
1353define KernelPackage/mpls/description
1354 Kernel support for MPLS
1355endef
1356
1357$(eval $(call KernelPackage,mpls))
1358
1359define KernelPackage/9pnet
1360 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1361 TITLE:=Plan 9 Resource Sharing Support (9P2000)
1362 KCONFIG:= \
1363 CONFIG_NET_9P \
1364 CONFIG_NET_9P_DEBUG=n \
1365 CONFIG_NET_9P_FD=n@ge5.17
1366 FILES:= \
1367 $(LINUX_DIR)/net/9p/9pnet.ko
1368 AUTOLOAD:=$(call AutoLoad,29,9pnet)
1369endef
1370
1371define KernelPackage/9pnet/description
1372 Kernel support support for
1373 Plan 9 resource sharing via the 9P2000 protocol.
1374endef
1375
1376$(eval $(call KernelPackage,9pnet))
1377
1378define KernelPackage/9pvirtio
1379 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1380 TITLE:=Plan 9 Virtio Support
1381 DEPENDS:=+kmod-9pnet @VIRTIO_SUPPORT
1382 KCONFIG:= \
1383 CONFIG_NET_9P_XEN=n \
1384 CONFIG_NET_9P_VIRTIO
1385 FILES:= \
1386 $(LINUX_DIR)/net/9p/9pnet_virtio.ko
1387 AUTOLOAD:=$(call AutoLoad,29,9pnet_virtio)
1388endef
1389
1390define KernelPackage/9pvirtio/description
1391 Kernel support support for
1392 Plan 9 resource sharing for virtio.
1393endef
1394
1395$(eval $(call KernelPackage,9pvirtio))
1396
1397
1398define KernelPackage/nlmon
1399 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1400 TITLE:=Virtual netlink monitoring device
1401 KCONFIG:=CONFIG_NLMON
1402 FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
1403 AUTOLOAD:=$(call AutoProbe,nlmon)
1404endef
1405
1406define KernelPackage/nlmon/description
1407 Kernel module which adds a monitoring device for netlink.
1408endef
1409
1410$(eval $(call KernelPackage,nlmon))
1411
1412
1413define KernelPackage/mdio
1414 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1415 TITLE:=MDIO (clause 45) PHY support
1416 KCONFIG:=CONFIG_MDIO
1417 HIDDEN:=1
1418 FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
1419 AUTOLOAD:=$(call AutoLoad,32,mdio)
1420endef
1421
1422define KernelPackage/mdio/description
1423 Kernel modules for MDIO (clause 45) PHY support
1424endef
1425
1426$(eval $(call KernelPackage,mdio))
1427
1428define KernelPackage/mdio-bus-mux
1429 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1430 TITLE:=MDIO bus multiplexers
1431 KCONFIG:=CONFIG_MDIO_BUS_MUX
1432 HIDDEN:=1
1433 FILES:=$(LINUX_DIR)/drivers/net/mdio/mdio-mux.ko
1434 AUTOLOAD:=$(call AutoLoad,32,mdio-mux)
1435endef
1436
1437define KernelPackage/mdio-bus-mux/description
1438 Kernel framework for MDIO bus multiplexers.
1439endef
1440
1441$(eval $(call KernelPackage,mdio-bus-mux))
1442
1443define KernelPackage/macsec
1444 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1445 TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
1446 DEPENDS:=+kmod-crypto-gcm
1447 KCONFIG:=CONFIG_MACSEC
1448 FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
1449 AUTOLOAD:=$(call AutoLoad,13,macsec)
1450endef
1451
1452define KernelPackage/macsec/description
1453 MACsec is an encryption standard for Ethernet.
1454endef
1455
1456$(eval $(call KernelPackage,macsec))
1457
1458
1459define KernelPackage/netlink-diag
1460 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1461 TITLE:=Netlink diag support for ss utility
1462 KCONFIG:=CONFIG_NETLINK_DIAG
1463 FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
1464 AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
1465endef
1466
1467define KernelPackage/netlink-diag/description
1468 Netlink diag is a module made for use with iproute2's ss utility
1469endef
1470
1471$(eval $(call KernelPackage,netlink-diag))
1472
1473
1474define KernelPackage/inet-diag
1475 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1476 TITLE:=INET diag support for ss utility
1477 KCONFIG:= \
1478 CONFIG_INET_DIAG \
1479 CONFIG_INET_TCP_DIAG \
1480 CONFIG_INET_UDP_DIAG \
1481 CONFIG_INET_RAW_DIAG \
1482 CONFIG_INET_DIAG_DESTROY=n
1483 FILES:= \
1484 $(LINUX_DIR)/net/ipv4/inet_diag.ko \
1485 $(LINUX_DIR)/net/ipv4/tcp_diag.ko \
1486 $(LINUX_DIR)/net/ipv4/udp_diag.ko \
1487 $(LINUX_DIR)/net/ipv4/raw_diag.ko
1488 AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
1489endef
1490
1491define KernelPackage/inet-diag/description
1492Support for INET (TCP, DCCP, etc) socket monitoring interface used by
1493native Linux tools such as ss.
1494endef
1495
1496$(eval $(call KernelPackage,inet-diag))
1497
1498
1499define KernelPackage/inet-mptcp-diag
1500 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1501 TITLE:=INET diag support for MultiPath TCP
1502 DEPENDS:=@KERNEL_MPTCP +kmod-inet-diag
1503 KCONFIG:=CONFIG_INET_MPTCP_DIAG
1504 FILES:=$(LINUX_DIR)/net/mptcp/mptcp_diag.ko
1505 AUTOLOAD:=$(call AutoProbe,mptcp_diag)
1506endef
1507
1508define KernelPackage/inet-mptcp-diag/description
1509Support for INET (MultiPath TCP) socket monitoring interface used by
1510native Linux tools such as ss.
1511endef
1512
1513$(eval $(call KernelPackage,inet-mptcp-diag))
1514
1515
1516define KernelPackage/xdp-sockets-diag
1517 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1518 TITLE:=PF_XDP sockets monitoring interface support for ss utility
1519 DEPENDS:=@KERNEL_XDP_SOCKETS
1520 KCONFIG:=CONFIG_XDP_SOCKETS_DIAG
1521 FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko
1522 AUTOLOAD:=$(call AutoLoad,31,xsk_diag)
1523endef
1524
1525define KernelPackage/xdp-sockets-diag/description
1526 Support for PF_XDP sockets monitoring interface used by the ss tool
1527endef
1528
1529$(eval $(call KernelPackage,xdp-sockets-diag))
1530
1531
1532define KernelPackage/wireguard
1533 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1534 TITLE:=WireGuard secure network tunnel
1535 DEPENDS:= \
1536 +kmod-crypto-lib-chacha20poly1305 \
1537 +kmod-crypto-lib-curve25519 \
1538 +kmod-udptunnel4 \
1539 +IPV6:kmod-udptunnel6
1540 KCONFIG:= \
1541 CONFIG_WIREGUARD \
1542 CONFIG_WIREGUARD_DEBUG=n
1543 FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
1544 AUTOLOAD:=$(call AutoProbe,wireguard)
1545endef
1546
1547define KernelPackage/wireguard/description
1548 WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
1549 state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
1550 more useful than IPSec, while avoiding the massive headache. It intends to
1551 be considerably more performant than OpenVPN. WireGuard is designed as a
1552 general purpose VPN for running on embedded interfaces and super computers
1553 alike, fit for many different circumstances. It uses UDP.
1554endef
1555
1556$(eval $(call KernelPackage,wireguard))
1557
1558
1559define KernelPackage/netconsole
1560 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1561 TITLE:=Network console logging support
1562 KCONFIG:=CONFIG_NETCONSOLE \
1563 CONFIG_NETCONSOLE_DYNAMIC=n
1564 FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
1565 AUTOLOAD:=$(call AutoProbe,netconsole)
1566endef
1567
1568define KernelPackage/netconsole/description
1569 Network console logging support.
1570endef
1571
1572$(eval $(call KernelPackage,netconsole))
1573
1574
1575define KernelPackage/qrtr
1576 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1577 TITLE:=Qualcomm IPC Router support
1578 HIDDEN:=1
1579 DEPENDS:=@!(LINUX_5_4||LINUX_5_10)
1580 KCONFIG:=CONFIG_QRTR
1581 FILES:= \
1582 $(LINUX_DIR)/net/qrtr/qrtr.ko
1583 AUTOLOAD:=$(call AutoProbe,qrtr)
1584endef
1585
1586define KernelPackage/qrtr/description
1587 Qualcomm IPC Router support
1588endef
1589
1590$(eval $(call KernelPackage,qrtr))
1591
1592define KernelPackage/qrtr-tun
1593 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1594 TITLE:=TUN device for Qualcomm IPC Router
1595 DEPENDS:=+kmod-qrtr
1596 KCONFIG:=CONFIG_QRTR_TUN
1597 FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
1598 AUTOLOAD:=$(call AutoProbe,qrtr-tun)
1599endef
1600
1601define KernelPackage/qrtr-tun/description
1602 TUN device for Qualcomm IPC Router
1603endef
1604
1605$(eval $(call KernelPackage,qrtr-tun))
1606
1607define KernelPackage/qrtr-smd
1608 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1609 TITLE:=SMD IPC Router channels
1610 DEPENDS:=+kmod-qrtr @TARGET_qualcommax
1611 KCONFIG:=CONFIG_QRTR_SMD
1612 FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
1613 AUTOLOAD:=$(call AutoProbe,qrtr-smd)
1614endef
1615
1616define KernelPackage/qrtr-smd/description
1617 SMD IPC Router channels
1618endef
1619
1620$(eval $(call KernelPackage,qrtr-smd))
1621
1622define KernelPackage/qrtr-mhi
1623 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1624 TITLE:=MHI IPC Router channels
1625 DEPENDS:=+kmod-mhi-bus +kmod-qrtr
1626 KCONFIG:=CONFIG_QRTR_MHI
1627 FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
1628 AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
1629endef
1630
1631define KernelPackage/qrtr-mhi/description
1632 MHI IPC Router channels
1633endef
1634
1635$(eval $(call KernelPackage,qrtr-mhi))