13f2283944535c9980418f23cd0fac86aeeef271
[openwrt/openwrt.git] / package / kernel / linux / modules / netsupport.mk
1 #
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
8 NETWORK_SUPPORT_MENU:=Network Support
9
10 define 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)
20 endef
21
22 define KernelPackage/atm/description
23 Kernel modules for ATM support
24 endef
25
26 $(eval $(call KernelPackage,atm))
27
28
29 define 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)
36 endef
37
38 define KernelPackage/atmtcp/description
39 Kernel module for ATM over TCP support
40 endef
41
42 $(eval $(call KernelPackage,atmtcp))
43
44
45 define KernelPackage/bonding
46 SUBMENU:=$(NETWORK_SUPPORT_MENU)
47 TITLE:=Ethernet bonding driver
48 KCONFIG:=CONFIG_BONDING
49 FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
50 AUTOLOAD:=$(call AutoLoad,40,bonding)
51 endef
52
53 define KernelPackage/bonding/description
54 Kernel module for NIC bonding.
55 endef
56
57 $(eval $(call KernelPackage,bonding))
58
59
60 define KernelPackage/udptunnel4
61 SUBMENU:=$(NETWORK_SUPPORT_MENU)
62 TITLE:=IPv4 UDP tunneling support
63 KCONFIG:=CONFIG_NET_UDP_TUNNEL
64 HIDDEN:=1
65 FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
66 AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
67 endef
68
69
70 $(eval $(call KernelPackage,udptunnel4))
71
72 define KernelPackage/udptunnel6
73 SUBMENU:=$(NETWORK_SUPPORT_MENU)
74 TITLE:=IPv6 UDP tunneling support
75 DEPENDS:=@IPV6
76 KCONFIG:=CONFIG_NET_UDP_TUNNEL
77 HIDDEN:=1
78 FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
79 AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
80 endef
81
82 $(eval $(call KernelPackage,udptunnel6))
83
84
85 define KernelPackage/vxlan
86 SUBMENU:=$(NETWORK_SUPPORT_MENU)
87 TITLE:=Native VXLAN Kernel support
88 DEPENDS:= \
89 +kmod-iptunnel \
90 +kmod-udptunnel4 \
91 +IPV6:kmod-udptunnel6
92 KCONFIG:=CONFIG_VXLAN
93 FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
94 AUTOLOAD:=$(call AutoLoad,13,vxlan)
95 endef
96
97 define KernelPackage/vxlan/description
98 Kernel module for supporting VXLAN in the Kernel.
99 Requires Kernel 3.12 or newer.
100 endef
101
102 $(eval $(call KernelPackage,vxlan))
103
104
105 define KernelPackage/geneve
106 SUBMENU:=$(NETWORK_SUPPORT_MENU)
107 TITLE:=Generic Network Virtualization Encapsulation (Geneve) support
108 DEPENDS:= \
109 +kmod-iptunnel \
110 +kmod-udptunnel4 \
111 +IPV6:kmod-udptunnel6
112 KCONFIG:=CONFIG_GENEVE
113 FILES:= \
114 $(LINUX_DIR)/drivers/net/geneve.ko
115 AUTOLOAD:=$(call AutoLoad,13,geneve)
116 endef
117
118 define KernelPackage/geneve/description
119 Kernel module for supporting Geneve in the Kernel.
120 Requires Kernel 3.18 or newer.
121 endef
122
123 $(eval $(call KernelPackage,geneve))
124
125
126 define KernelPackage/nsh
127 SUBMENU:=$(NETWORK_SUPPORT_MENU)
128 TITLE:=Network Service Header (NSH) protocol
129 DEPENDS:=
130 KCONFIG:=CONFIG_NET_NSH
131 FILES:=$(LINUX_DIR)/net/nsh/nsh.ko
132 AUTOLOAD:=$(call AutoLoad,13,nsh)
133 endef
134
135 define KernelPackage/nsh/description
136 Network Service Header is an implementation of Service Function
137 Chaining (RFC 7665). Requires kernel 4.14 or newer
138 endef
139
140 $(eval $(call KernelPackage,nsh))
141
142
143 define KernelPackage/misdn
144 SUBMENU:=$(NETWORK_SUPPORT_MENU)
145 TITLE:=mISDN (ISDN) Support
146 KCONFIG:= \
147 CONFIG_ISDN=y \
148 CONFIG_MISDN \
149 CONFIG_MISDN_DSP \
150 CONFIG_MISDN_L1OIP
151 FILES:= \
152 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
153 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
154 $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
155 AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
156 endef
157
158 define KernelPackage/misdn/description
159 Modular ISDN driver support
160 endef
161
162 $(eval $(call KernelPackage,misdn))
163
164
165 define KernelPackage/isdn4linux
166 SUBMENU:=$(NETWORK_SUPPORT_MENU)
167 TITLE:=Old ISDN4Linux (deprecated)
168 DEPENDS:=+kmod-ppp
169 KCONFIG:= \
170 CONFIG_ISDN=y \
171 CONFIG_ISDN_I4L \
172 CONFIG_ISDN_PPP=y \
173 CONFIG_ISDN_PPP_VJ=y \
174 CONFIG_ISDN_MPP=y \
175 CONFIG_IPPP_FILTER=y \
176 CONFIG_ISDN_PPP_BSDCOMP \
177 CONFIG_ISDN_CAPI_MIDDLEWARE=y \
178 CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
179 CONFIG_ISDN_AUDIO=y \
180 CONFIG_ISDN_TTY_FAX=y \
181 CONFIG_ISDN_X25=y \
182 CONFIG_ISDN_DIVERSION
183 FILES:= \
184 $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
185 $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
186 $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
187 AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
188 endef
189
190 define KernelPackage/isdn4linux/description
191 This driver allows you to use an ISDN adapter for networking
192 endef
193
194 $(eval $(call KernelPackage,isdn4linux))
195
196
197 define KernelPackage/ipip
198 SUBMENU:=$(NETWORK_SUPPORT_MENU)
199 TITLE:=IP-in-IP encapsulation
200 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
201 KCONFIG:=CONFIG_NET_IPIP
202 FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
203 AUTOLOAD:=$(call AutoLoad,32,ipip)
204 endef
205
206 define KernelPackage/ipip/description
207 Kernel modules for IP-in-IP encapsulation
208 endef
209
210 $(eval $(call KernelPackage,ipip))
211
212
213 IPSEC-m:= \
214 xfrm/xfrm_algo \
215 xfrm/xfrm_ipcomp \
216 xfrm/xfrm_user \
217 key/af_key \
218
219 define KernelPackage/ipsec
220 SUBMENU:=$(NETWORK_SUPPORT_MENU)
221 TITLE:=IPsec related modules (IPv4 and IPv6)
222 DEPENDS:= \
223 +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \
224 +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \
225 +kmod-crypto-md5 +kmod-crypto-sha1
226 KCONFIG:= \
227 CONFIG_NET_KEY \
228 CONFIG_XFRM_USER \
229 CONFIG_INET_IPCOMP \
230 CONFIG_XFRM_IPCOMP
231 FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
232 AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
233 endef
234
235 define KernelPackage/ipsec/description
236 Kernel modules for IPsec support in both IPv4 and IPv6.
237 Includes:
238 - af_key
239 - xfrm_algo
240 - xfrm_ipcomp
241 - xfrm_user
242 endef
243
244 $(eval $(call KernelPackage,ipsec))
245
246 IPSEC4-m = \
247 ipv4/ah4 \
248 ipv4/esp4 \
249 ipv4/xfrm4_tunnel \
250 ipv4/ipcomp \
251
252 IPSEC4-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv4/xfrm4_mode_beet ipv4/xfrm4_mode_transport ipv4/xfrm4_mode_tunnel)
253
254 define KernelPackage/ipsec4
255 SUBMENU:=$(NETWORK_SUPPORT_MENU)
256 TITLE:=IPsec related modules (IPv4)
257 DEPENDS:=kmod-ipsec +kmod-iptunnel4
258 KCONFIG:= \
259 CONFIG_INET_AH \
260 CONFIG_INET_ESP \
261 CONFIG_INET_IPCOMP \
262 CONFIG_INET_XFRM_MODE_BEET \
263 CONFIG_INET_XFRM_MODE_TRANSPORT \
264 CONFIG_INET_XFRM_MODE_TUNNEL \
265 CONFIG_INET_XFRM_TUNNEL \
266 CONFIG_INET_ESP_OFFLOAD=n
267 FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
268 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
269 endef
270
271 define KernelPackage/ipsec4/description
272 Kernel modules for IPsec support in IPv4.
273 Includes:
274 - ah4
275 - esp4
276 - ipcomp4
277 - xfrm4_mode_beet
278 - xfrm4_mode_transport
279 - xfrm4_mode_tunnel
280 - xfrm4_tunnel
281 endef
282
283 $(eval $(call KernelPackage,ipsec4))
284
285
286 IPSEC6-m = \
287 ipv6/ah6 \
288 ipv6/esp6 \
289 ipv6/xfrm6_tunnel \
290 ipv6/ipcomp6 \
291
292 IPSEC6-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv6/xfrm6_mode_beet ipv6/xfrm6_mode_transport ipv6/xfrm6_mode_tunnel)
293
294 define KernelPackage/ipsec6
295 SUBMENU:=$(NETWORK_SUPPORT_MENU)
296 TITLE:=IPsec related modules (IPv6)
297 DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6
298 KCONFIG:= \
299 CONFIG_INET6_AH \
300 CONFIG_INET6_ESP \
301 CONFIG_INET6_IPCOMP \
302 CONFIG_INET6_XFRM_MODE_BEET \
303 CONFIG_INET6_XFRM_MODE_TRANSPORT \
304 CONFIG_INET6_XFRM_MODE_TUNNEL \
305 CONFIG_INET6_XFRM_TUNNEL \
306 CONFIG_INET6_ESP_OFFLOAD=n
307 FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
308 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
309 endef
310
311 define KernelPackage/ipsec6/description
312 Kernel modules for IPsec support in IPv6.
313 Includes:
314 - ah6
315 - esp6
316 - ipcomp6
317 - xfrm6_mode_beet
318 - xfrm6_mode_transport
319 - xfrm6_mode_tunnel
320 - xfrm6_tunnel
321 endef
322
323 $(eval $(call KernelPackage,ipsec6))
324
325
326 define KernelPackage/iptunnel
327 SUBMENU:=$(NETWORK_SUPPORT_MENU)
328 TITLE:=IP tunnel support
329 HIDDEN:=1
330 KCONFIG:= \
331 CONFIG_NET_IP_TUNNEL
332 FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
333 AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
334 endef
335
336 define KernelPackage/iptunnel/description
337 Kernel module for generic IP tunnel support
338 endef
339
340 $(eval $(call KernelPackage,iptunnel))
341
342
343 define KernelPackage/ip-vti
344 SUBMENU:=$(NETWORK_SUPPORT_MENU)
345 TITLE:=IP VTI (Virtual Tunnel Interface)
346 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
347 KCONFIG:=CONFIG_NET_IPVTI
348 FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
349 AUTOLOAD:=$(call AutoLoad,33,ip_vti)
350 endef
351
352 define KernelPackage/ip-vti/description
353 Kernel modules for IP VTI (Virtual Tunnel Interface)
354 endef
355
356 $(eval $(call KernelPackage,ip-vti))
357
358
359 define KernelPackage/ip6-vti
360 SUBMENU:=$(NETWORK_SUPPORT_MENU)
361 TITLE:=IPv6 VTI (Virtual Tunnel Interface)
362 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
363 KCONFIG:=CONFIG_IPV6_VTI
364 FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
365 AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
366 endef
367
368 define KernelPackage/ip6-vti/description
369 Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
370 endef
371
372 $(eval $(call KernelPackage,ip6-vti))
373
374
375 define KernelPackage/xfrm-interface
376 SUBMENU:=$(NETWORK_SUPPORT_MENU)
377 TITLE:=IPsec XFRM Interface
378 DEPENDS:=+kmod-ipsec4 +IPV6:kmod-ipsec6
379 KCONFIG:=CONFIG_XFRM_INTERFACE
380 FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
381 AUTOLOAD:=$(call AutoProbe,xfrm_interface)
382 endef
383
384 define KernelPackage/xfrm-interface/description
385 Kernel module for XFRM interface support
386 endef
387
388 $(eval $(call KernelPackage,xfrm-interface))
389
390
391 define KernelPackage/iptunnel4
392 SUBMENU:=$(NETWORK_SUPPORT_MENU)
393 TITLE:=IPv4 tunneling
394 HIDDEN:=1
395 KCONFIG:= \
396 CONFIG_INET_TUNNEL \
397 CONFIG_NET_IPIP=m
398 FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
399 AUTOLOAD:=$(call AutoLoad,31,tunnel4)
400 endef
401
402 define KernelPackage/iptunnel4/description
403 Kernel modules for IPv4 tunneling
404 endef
405
406 $(eval $(call KernelPackage,iptunnel4))
407
408
409 define KernelPackage/iptunnel6
410 SUBMENU:=$(NETWORK_SUPPORT_MENU)
411 TITLE:=IPv6 tunneling
412 DEPENDS:=@IPV6
413 KCONFIG:= \
414 CONFIG_INET6_TUNNEL
415 FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
416 AUTOLOAD:=$(call AutoLoad,31,tunnel6)
417 endef
418
419 define KernelPackage/iptunnel6/description
420 Kernel modules for IPv6 tunneling
421 endef
422
423 $(eval $(call KernelPackage,iptunnel6))
424
425
426 define KernelPackage/sit
427 SUBMENU:=$(NETWORK_SUPPORT_MENU)
428 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
429 TITLE:=IPv6-in-IPv4 tunnel
430 KCONFIG:=CONFIG_IPV6_SIT \
431 CONFIG_IPV6_SIT_6RD=y
432 FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
433 AUTOLOAD:=$(call AutoLoad,32,sit)
434 endef
435
436 define KernelPackage/sit/description
437 Kernel modules for IPv6-in-IPv4 tunnelling
438 endef
439
440 $(eval $(call KernelPackage,sit))
441
442
443 define KernelPackage/fou
444 SUBMENU:=$(NETWORK_SUPPORT_MENU)
445 TITLE:=FOU and GUE decapsulation
446 DEPENDS:= \
447 +kmod-iptunnel \
448 +kmod-udptunnel4 \
449 +IPV6:kmod-udptunnel6
450 KCONFIG:= \
451 CONFIG_NET_FOU \
452 CONFIG_NET_FOU_IP_TUNNELS=y
453 FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
454 AUTOLOAD:=$(call AutoProbe,fou)
455 endef
456
457 define KernelPackage/fou/description
458 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling.
459 Requires Kernel 3.18 or newer.
460 endef
461
462 $(eval $(call KernelPackage,fou))
463
464
465 define KernelPackage/fou6
466 SUBMENU:=$(NETWORK_SUPPORT_MENU)
467 TITLE:=FOU and GUE decapsulation over IPv6
468 DEPENDS:= @IPV6 \
469 +kmod-fou \
470 +kmod-ip6-tunnel
471 KCONFIG:= \
472 CONFIG_IPV6_FOU \
473 CONFIG_IPV6_FOU_TUNNEL
474 FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
475 AUTOLOAD:=$(call AutoProbe,fou6)
476 endef
477
478 define KernelPackage/fou6/description
479 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6.
480 Requires Kernel 3.18 or newer.
481 endef
482
483 $(eval $(call KernelPackage,fou6))
484
485
486 define KernelPackage/ip6-tunnel
487 SUBMENU:=$(NETWORK_SUPPORT_MENU)
488 TITLE:=IP-in-IPv6 tunnelling
489 DEPENDS:=@IPV6 +kmod-iptunnel6
490 KCONFIG:= CONFIG_IPV6_TUNNEL
491 FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
492 AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
493 endef
494
495 define KernelPackage/ip6-tunnel/description
496 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
497 endef
498
499 $(eval $(call KernelPackage,ip6-tunnel))
500
501
502 define KernelPackage/gre
503 SUBMENU:=$(NETWORK_SUPPORT_MENU)
504 TITLE:=GRE support
505 DEPENDS:=+kmod-iptunnel
506 KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
507 FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
508 AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
509 endef
510
511 define KernelPackage/gre/description
512 Generic Routing Encapsulation support
513 endef
514
515 $(eval $(call KernelPackage,gre))
516
517
518 define KernelPackage/gre6
519 SUBMENU:=$(NETWORK_SUPPORT_MENU)
520 TITLE:=GRE support over IPV6
521 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
522 KCONFIG:=CONFIG_IPV6_GRE
523 FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
524 AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
525 endef
526
527 define KernelPackage/gre6/description
528 Generic Routing Encapsulation support over IPv6
529 endef
530
531 $(eval $(call KernelPackage,gre6))
532
533
534 define KernelPackage/tun
535 SUBMENU:=$(NETWORK_SUPPORT_MENU)
536 TITLE:=Universal TUN/TAP driver
537 KCONFIG:=CONFIG_TUN
538 FILES:=$(LINUX_DIR)/drivers/net/tun.ko
539 AUTOLOAD:=$(call AutoLoad,30,tun)
540 endef
541
542 define KernelPackage/tun/description
543 Kernel support for the TUN/TAP tunneling device
544 endef
545
546 $(eval $(call KernelPackage,tun))
547
548
549 define KernelPackage/veth
550 SUBMENU:=$(NETWORK_SUPPORT_MENU)
551 TITLE:=Virtual ethernet pair device
552 KCONFIG:=CONFIG_VETH
553 FILES:=$(LINUX_DIR)/drivers/net/veth.ko
554 AUTOLOAD:=$(call AutoLoad,30,veth)
555 endef
556
557 define KernelPackage/veth/description
558 This device is a local ethernet tunnel. Devices are created in pairs.
559 When one end receives the packet it appears on its pair and vice
560 versa.
561 endef
562
563 $(eval $(call KernelPackage,veth))
564
565
566 define KernelPackage/slhc
567 SUBMENU:=$(NETWORK_SUPPORT_MENU)
568 HIDDEN:=1
569 TITLE:=Serial Line Header Compression
570 DEPENDS:=+kmod-lib-crc-ccitt
571 KCONFIG:=CONFIG_SLHC
572 FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
573 endef
574
575 $(eval $(call KernelPackage,slhc))
576
577
578 define KernelPackage/ppp
579 SUBMENU:=$(NETWORK_SUPPORT_MENU)
580 TITLE:=PPP modules
581 DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
582 KCONFIG:= \
583 CONFIG_PPP \
584 CONFIG_PPP_ASYNC
585 FILES:= \
586 $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
587 $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
588 AUTOLOAD:=$(call AutoProbe,ppp_async)
589 endef
590
591 define KernelPackage/ppp/description
592 Kernel modules for PPP support
593 endef
594
595 $(eval $(call KernelPackage,ppp))
596
597
598 define KernelPackage/ppp-synctty
599 SUBMENU:=$(NETWORK_SUPPORT_MENU)
600 TITLE:=PPP sync tty support
601 DEPENDS:=kmod-ppp
602 KCONFIG:=CONFIG_PPP_SYNC_TTY
603 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
604 AUTOLOAD:=$(call AutoProbe,ppp_synctty)
605 endef
606
607 define KernelPackage/ppp-synctty/description
608 Kernel modules for PPP sync tty support
609 endef
610
611 $(eval $(call KernelPackage,ppp-synctty))
612
613
614 define KernelPackage/pppox
615 SUBMENU:=$(NETWORK_SUPPORT_MENU)
616 TITLE:=PPPoX helper
617 DEPENDS:=kmod-ppp
618 KCONFIG:=CONFIG_PPPOE
619 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
620 endef
621
622 define KernelPackage/pppox/description
623 Kernel helper module for PPPoE and PPTP support
624 endef
625
626 $(eval $(call KernelPackage,pppox))
627
628
629 define KernelPackage/pppoe
630 SUBMENU:=$(NETWORK_SUPPORT_MENU)
631 TITLE:=PPPoE support
632 DEPENDS:=kmod-ppp +kmod-pppox
633 KCONFIG:=CONFIG_PPPOE
634 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
635 AUTOLOAD:=$(call AutoProbe,pppoe)
636 endef
637
638 define KernelPackage/pppoe/description
639 Kernel module for PPPoE (PPP over Ethernet) support
640 endef
641
642 $(eval $(call KernelPackage,pppoe))
643
644
645 define KernelPackage/pppoa
646 SUBMENU:=$(NETWORK_SUPPORT_MENU)
647 TITLE:=PPPoA support
648 DEPENDS:=kmod-ppp +kmod-atm
649 KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
650 FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
651 AUTOLOAD:=$(call AutoLoad,40,pppoatm)
652 endef
653
654 define KernelPackage/pppoa/description
655 Kernel modules for PPPoA (PPP over ATM) support
656 endef
657
658 $(eval $(call KernelPackage,pppoa))
659
660
661 define KernelPackage/pptp
662 SUBMENU:=$(NETWORK_SUPPORT_MENU)
663 TITLE:=PPtP support
664 DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
665 KCONFIG:=CONFIG_PPTP
666 FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
667 AUTOLOAD:=$(call AutoProbe,pptp)
668 endef
669
670 $(eval $(call KernelPackage,pptp))
671
672
673 define KernelPackage/pppol2tp
674 SUBMENU:=$(NETWORK_SUPPORT_MENU)
675 TITLE:=PPPoL2TP support
676 DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
677 KCONFIG:=CONFIG_PPPOL2TP
678 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
679 AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
680 endef
681
682 define KernelPackage/pppol2tp/description
683 Kernel modules for PPPoL2TP (PPP over L2TP) support
684 endef
685
686 $(eval $(call KernelPackage,pppol2tp))
687
688
689 define KernelPackage/ipoa
690 SUBMENU:=$(NETWORK_SUPPORT_MENU)
691 TITLE:=IPoA support
692 DEPENDS:=kmod-atm
693 KCONFIG:=CONFIG_ATM_CLIP
694 FILES:=$(LINUX_DIR)/net/atm/clip.ko
695 AUTOLOAD:=$(call AutoProbe,clip)
696 endef
697
698 define KernelPackage/ipoa/description
699 Kernel modules for IPoA (IP over ATM) support
700 endef
701
702 $(eval $(call KernelPackage,ipoa))
703
704
705 define KernelPackage/mppe
706 SUBMENU:=$(NETWORK_SUPPORT_MENU)
707 TITLE:=Microsoft PPP compression/encryption
708 DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
709 KCONFIG:= \
710 CONFIG_PPP_MPPE_MPPC \
711 CONFIG_PPP_MPPE
712 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
713 AUTOLOAD:=$(call AutoProbe,ppp_mppe)
714 endef
715
716 define KernelPackage/mppe/description
717 Kernel modules for Microsoft PPP compression/encryption
718 endef
719
720 $(eval $(call KernelPackage,mppe))
721
722
723 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
724 SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit cls_matchall
725 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark act_ctinfo sch_cake sch_netem sch_mqprio em_ipset cls_bpf cls_flower act_bpf act_vlan
726 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
727 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
728 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
729
730 define KernelPackage/sched-core
731 SUBMENU:=$(NETWORK_SUPPORT_MENU)
732 TITLE:=Traffic schedulers
733 KCONFIG:= \
734 CONFIG_NET_SCHED=y \
735 CONFIG_NET_SCH_HFSC \
736 CONFIG_NET_SCH_HTB \
737 CONFIG_NET_SCH_TBF \
738 CONFIG_NET_SCH_INGRESS \
739 CONFIG_NET_SCH_FQ_CODEL \
740 CONFIG_NET_CLS=y \
741 CONFIG_NET_CLS_ACT=y \
742 CONFIG_NET_CLS_BASIC \
743 CONFIG_NET_CLS_FLOW \
744 CONFIG_NET_CLS_FW \
745 CONFIG_NET_CLS_ROUTE4 \
746 CONFIG_NET_CLS_TCINDEX \
747 CONFIG_NET_CLS_U32 \
748 CONFIG_NET_ACT_MIRRED \
749 CONFIG_NET_ACT_SKBEDIT \
750 CONFIG_NET_CLS_MATCHALL \
751 CONFIG_NET_EMATCH=y \
752 CONFIG_NET_EMATCH_U32
753 FILES:=$(SCHED_FILES)
754 AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
755 endef
756
757 define KernelPackage/sched-core/description
758 Core kernel scheduler support for IP traffic
759 endef
760
761 $(eval $(call KernelPackage,sched-core))
762
763
764 define KernelPackage/sched-cake
765 SUBMENU:=$(NETWORK_SUPPORT_MENU)
766 TITLE:=Cake fq_codel/blue derived shaper
767 DEPENDS:=+kmod-sched-core
768 KCONFIG:=CONFIG_NET_SCH_CAKE
769 FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
770 AUTOLOAD:=$(call AutoProbe,sch_cake)
771 endef
772
773 define KernelPackage/sched-cake/description
774 Common Applications Kept Enhanced fq_codel/blue derived shaper
775 endef
776
777 $(eval $(call KernelPackage,sched-cake))
778
779 define KernelPackage/sched-flower
780 SUBMENU:=$(NETWORK_SUPPORT_MENU)
781 TITLE:=Flower traffic classifier
782 DEPENDS:=+kmod-sched-core
783 KCONFIG:=CONFIG_NET_CLS_FLOWER
784 FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
785 AUTOLOAD:=$(call AutoProbe, cls_flower)
786 endef
787
788 define KernelPackage/sched-flower/description
789 Allows to classify packets based on a configurable combination of packet keys and masks.
790 endef
791
792 $(eval $(call KernelPackage,sched-flower))
793
794
795 define KernelPackage/sched-act-vlan
796 SUBMENU:=$(NETWORK_SUPPORT_MENU)
797 TITLE:=Traffic VLAN manipulation
798 DEPENDS:=+kmod-sched-core
799 KCONFIG:=CONFIG_NET_ACT_VLAN
800 FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
801 AUTOLOAD:=$(call AutoProbe, act_vlan)
802 endef
803
804 define KernelPackage/sched-act-vlan/description
805 Allows to configure rules to push or pop vlan headers.
806 endef
807
808 $(eval $(call KernelPackage,sched-act-vlan))
809
810
811 define KernelPackage/sched-mqprio
812 SUBMENU:=$(NETWORK_SUPPORT_MENU)
813 TITLE:=Multi-queue priority scheduler (MQPRIO)
814 DEPENDS:=+kmod-sched-core
815 KCONFIG:=CONFIG_NET_SCH_MQPRIO
816 FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
817 AUTOLOAD:=$(call AutoProbe, sch_mqprio)
818 endef
819
820 define KernelPackage/sched-mqprio/description
821 This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
822 endef
823
824 $(eval $(call KernelPackage,sched-mqprio))
825
826 define KernelPackage/sched-connmark
827 SUBMENU:=$(NETWORK_SUPPORT_MENU)
828 TITLE:=Traffic shaper conntrack mark support
829 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
830 KCONFIG:=CONFIG_NET_ACT_CONNMARK
831 FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
832 AUTOLOAD:=$(call AutoLoad,71, act_connmark)
833 endef
834 $(eval $(call KernelPackage,sched-connmark))
835
836 define KernelPackage/sched-ctinfo
837 SUBMENU:=$(NETWORK_SUPPORT_MENU)
838 TITLE:=Traffic shaper ctinfo support
839 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
840 KCONFIG:=CONFIG_NET_ACT_CTINFO
841 FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
842 AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
843 endef
844 $(eval $(call KernelPackage,sched-ctinfo))
845
846 define KernelPackage/sched-ipset
847 SUBMENU:=$(NETWORK_SUPPORT_MENU)
848 TITLE:=Traffic shaper ipset support
849 DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
850 KCONFIG:= \
851 CONFIG_NET_EMATCH_IPSET
852 FILES:= \
853 $(LINUX_DIR)/net/sched/em_ipset.ko
854 AUTOLOAD:=$(call AutoLoad,72,em_ipset)
855 endef
856
857 $(eval $(call KernelPackage,sched-ipset))
858
859
860 define KernelPackage/sched-bpf
861 SUBMENU:=$(NETWORK_SUPPORT_MENU)
862 TITLE:=Traffic shaper support for Berkeley Packet Filter
863 KCONFIG:= \
864 CONFIG_NET_CLS_BPF \
865 CONFIG_NET_ACT_BPF
866 FILES:= \
867 $(LINUX_DIR)/net/sched/cls_bpf.ko \
868 $(LINUX_DIR)/net/sched/act_bpf.ko
869 AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
870 endef
871
872 $(eval $(call KernelPackage,sched-bpf))
873
874
875 define KernelPackage/bpf-test
876 SUBMENU:=$(NETWORK_SUPPORT_MENU)
877 TITLE:=Test Berkeley Packet Filter functionality
878 KCONFIG:=CONFIG_TEST_BPF
879 FILES:=$(LINUX_DIR)/lib/test_bpf.ko
880 endef
881
882 $(eval $(call KernelPackage,bpf-test))
883
884
885 define KernelPackage/sched
886 SUBMENU:=$(NETWORK_SUPPORT_MENU)
887 TITLE:=Extra traffic schedulers
888 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-lib-crc32c
889 KCONFIG:= \
890 CONFIG_NET_SCH_CODEL \
891 CONFIG_NET_SCH_DSMARK \
892 CONFIG_NET_SCH_FIFO \
893 CONFIG_NET_SCH_GRED \
894 CONFIG_NET_SCH_MULTIQ \
895 CONFIG_NET_SCH_PRIO \
896 CONFIG_NET_SCH_RED \
897 CONFIG_NET_SCH_SFQ \
898 CONFIG_NET_SCH_TEQL \
899 CONFIG_NET_SCH_FQ \
900 CONFIG_NET_SCH_PIE \
901 CONFIG_NET_ACT_POLICE \
902 CONFIG_NET_ACT_GACT \
903 CONFIG_NET_ACT_IPT \
904 CONFIG_NET_ACT_PEDIT \
905 CONFIG_NET_ACT_SIMP \
906 CONFIG_NET_ACT_CSUM \
907 CONFIG_NET_EMATCH_CMP \
908 CONFIG_NET_EMATCH_NBYTE \
909 CONFIG_NET_EMATCH_META \
910 CONFIG_NET_EMATCH_TEXT
911 FILES:=$(SCHED_FILES_EXTRA)
912 AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
913 endef
914
915 define KernelPackage/sched/description
916 Extra kernel schedulers modules for IP traffic
917 endef
918
919 $(eval $(call KernelPackage,sched))
920
921
922 define KernelPackage/tcp-bbr
923 SUBMENU:=$(NETWORK_SUPPORT_MENU)
924 TITLE:=BBR TCP congestion control
925 KCONFIG:=CONFIG_TCP_CONG_BBR
926 FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
927 AUTOLOAD:=$(call AutoProbe,tcp_bbr)
928 endef
929
930 define KernelPackage/tcp-bbr/description
931 Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
932 control. It requires the fq ("Fair Queue") pacing packet scheduler.
933 For kernel 4.13+, TCP internal pacing is implemented as fallback.
934 endef
935
936 TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
937
938 define KernelPackage/tcp-bbr/install
939 $(INSTALL_DIR) $(1)/etc/sysctl.d
940 $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
941 endef
942
943 $(eval $(call KernelPackage,tcp-bbr))
944
945
946 define KernelPackage/tcp-hybla
947 SUBMENU:=$(NETWORK_SUPPORT_MENU)
948 TITLE:=TCP-Hybla congestion control algorithm
949 KCONFIG:=CONFIG_TCP_CONG_HYBLA
950 FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
951 AUTOLOAD:=$(call AutoProbe,tcp_hybla)
952 endef
953
954 define KernelPackage/tcp-hybla/description
955 TCP-Hybla is a sender-side only change that eliminates penalization of
956 long-RTT, large-bandwidth connections, like when satellite legs are
957 involved, especially when sharing a common bottleneck with normal
958 terrestrial connections.
959 endef
960
961 $(eval $(call KernelPackage,tcp-hybla))
962
963
964 define KernelPackage/ax25
965 SUBMENU:=$(NETWORK_SUPPORT_MENU)
966 TITLE:=AX25 support
967 DEPENDS:=+kmod-lib-crc16
968 KCONFIG:= \
969 CONFIG_HAMRADIO=y \
970 CONFIG_AX25 \
971 CONFIG_MKISS
972 FILES:= \
973 $(LINUX_DIR)/net/ax25/ax25.ko \
974 $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
975 AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
976 endef
977
978 define KernelPackage/ax25/description
979 Kernel modules for AX25 support
980 endef
981
982 $(eval $(call KernelPackage,ax25))
983
984
985 define KernelPackage/pktgen
986 SUBMENU:=$(NETWORK_SUPPORT_MENU)
987 DEPENDS:=@!TARGET_uml
988 TITLE:=Network packet generator
989 KCONFIG:=CONFIG_NET_PKTGEN
990 FILES:=$(LINUX_DIR)/net/core/pktgen.ko
991 AUTOLOAD:=$(call AutoLoad,99,pktgen)
992 endef
993
994 define KernelPackage/pktgen/description
995 Kernel modules for the Network Packet Generator
996 endef
997
998 $(eval $(call KernelPackage,pktgen))
999
1000 define KernelPackage/l2tp
1001 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1002 TITLE:=Layer Two Tunneling Protocol (L2TP)
1003 DEPENDS:= \
1004 +kmod-udptunnel4 \
1005 +IPV6:kmod-udptunnel6
1006 KCONFIG:=CONFIG_L2TP \
1007 CONFIG_L2TP_V3=y \
1008 CONFIG_L2TP_DEBUGFS=n
1009 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
1010 $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
1011 AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
1012 endef
1013
1014 define KernelPackage/l2tp/description
1015 Kernel modules for L2TP V3 Support
1016 endef
1017
1018 $(eval $(call KernelPackage,l2tp))
1019
1020
1021 define KernelPackage/l2tp-eth
1022 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1023 TITLE:=L2TP ethernet pseudowire support for L2TPv3
1024 DEPENDS:=+kmod-l2tp
1025 KCONFIG:=CONFIG_L2TP_ETH
1026 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
1027 AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
1028 endef
1029
1030 define KernelPackage/l2tp-eth/description
1031 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
1032 endef
1033
1034 $(eval $(call KernelPackage,l2tp-eth))
1035
1036 define KernelPackage/l2tp-ip
1037 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1038 TITLE:=L2TP IP encapsulation for L2TPv3
1039 DEPENDS:=+kmod-l2tp
1040 KCONFIG:=CONFIG_L2TP_IP
1041 FILES:= \
1042 $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
1043 $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
1044 AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
1045 endef
1046
1047 define KernelPackage/l2tp-ip/description
1048 Kernel modules for L2TP IP encapsulation for L2TPv3
1049 endef
1050
1051 $(eval $(call KernelPackage,l2tp-ip))
1052
1053
1054 define KernelPackage/sctp
1055 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1056 TITLE:=SCTP protocol kernel support
1057 KCONFIG:=\
1058 CONFIG_IP_SCTP \
1059 CONFIG_SCTP_DBG_MSG=n \
1060 CONFIG_SCTP_DBG_OBJCNT=n \
1061 CONFIG_SCTP_HMAC_NONE=n \
1062 CONFIG_SCTP_HMAC_SHA1=n \
1063 CONFIG_SCTP_HMAC_MD5=y \
1064 CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
1065 CONFIG_SCTP_COOKIE_HMAC_MD5=y \
1066 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
1067 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
1068 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
1069 FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
1070 AUTOLOAD:= $(call AutoLoad,32,sctp)
1071 DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
1072 endef
1073
1074 define KernelPackage/sctp/description
1075 Kernel modules for SCTP protocol support
1076 endef
1077
1078 $(eval $(call KernelPackage,sctp))
1079
1080
1081 define KernelPackage/netem
1082 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1083 TITLE:=Network emulation functionality
1084 DEPENDS:=+kmod-sched
1085 KCONFIG:=CONFIG_NET_SCH_NETEM
1086 FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
1087 AUTOLOAD:=$(call AutoLoad,99,netem)
1088 endef
1089
1090 define KernelPackage/netem/description
1091 Kernel modules for emulating the properties of wide area networks
1092 endef
1093
1094 $(eval $(call KernelPackage,netem))
1095
1096 define KernelPackage/slip
1097 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1098 DEPENDS:=+kmod-slhc
1099 TITLE:=SLIP modules
1100 KCONFIG:= \
1101 CONFIG_SLIP \
1102 CONFIG_SLIP_COMPRESSED=y \
1103 CONFIG_SLIP_SMART=y \
1104 CONFIG_SLIP_MODE_SLIP6=y
1105
1106 FILES:= \
1107 $(LINUX_DIR)/drivers/net/slip/slip.ko
1108 AUTOLOAD:=$(call AutoLoad,30,slip)
1109 endef
1110
1111 define KernelPackage/slip/description
1112 Kernel modules for SLIP support
1113 endef
1114
1115 $(eval $(call KernelPackage,slip))
1116
1117 define KernelPackage/dnsresolver
1118 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1119 TITLE:=In-kernel DNS Resolver
1120 KCONFIG:= CONFIG_DNS_RESOLVER
1121 FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
1122 AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
1123 endef
1124
1125 $(eval $(call KernelPackage,dnsresolver))
1126
1127 define KernelPackage/rxrpc
1128 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1129 TITLE:=AF_RXRPC support
1130 HIDDEN:=1
1131 KCONFIG:= \
1132 CONFIG_AF_RXRPC \
1133 CONFIG_RXKAD=m \
1134 CONFIG_AF_RXRPC_DEBUG=n
1135 FILES:= \
1136 $(LINUX_DIR)/net/rxrpc/rxrpc.ko
1137 AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
1138 DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
1139 endef
1140
1141 define KernelPackage/rxrpc/description
1142 Kernel support for AF_RXRPC; required for AFS client
1143 endef
1144
1145 $(eval $(call KernelPackage,rxrpc))
1146
1147 define KernelPackage/mpls
1148 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1149 TITLE:=MPLS support
1150 DEPENDS:=+kmod-iptunnel
1151 KCONFIG:= \
1152 CONFIG_MPLS=y \
1153 CONFIG_LWTUNNEL=y \
1154 CONFIG_LWTUNNEL_BPF=n \
1155 CONFIG_NET_MPLS_GSO=m \
1156 CONFIG_MPLS_ROUTING=m \
1157 CONFIG_MPLS_IPTUNNEL=m
1158 FILES:= \
1159 $(LINUX_DIR)/net/mpls/mpls_gso.ko \
1160 $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
1161 $(LINUX_DIR)/net/mpls/mpls_router.ko
1162 AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
1163 endef
1164
1165 define KernelPackage/mpls/description
1166 Kernel support for MPLS
1167 endef
1168
1169 $(eval $(call KernelPackage,mpls))
1170
1171 define KernelPackage/9pnet
1172 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1173 TITLE:=Plan 9 Resource Sharing Support (9P2000)
1174 DEPENDS:=@VIRTIO_SUPPORT
1175 KCONFIG:= \
1176 CONFIG_NET_9P \
1177 CONFIG_NET_9P_DEBUG=n \
1178 CONFIG_NET_9P_XEN=n \
1179 CONFIG_NET_9P_VIRTIO
1180 FILES:= \
1181 $(LINUX_DIR)/net/9p/9pnet.ko \
1182 $(LINUX_DIR)/net/9p/9pnet_virtio.ko
1183 AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
1184 endef
1185
1186 define KernelPackage/9pnet/description
1187 Kernel support support for
1188 Plan 9 resource sharing via the 9P2000 protocol.
1189 endef
1190
1191 $(eval $(call KernelPackage,9pnet))
1192
1193
1194 define KernelPackage/nlmon
1195 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1196 TITLE:=Virtual netlink monitoring device
1197 KCONFIG:=CONFIG_NLMON
1198 FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
1199 AUTOLOAD:=$(call AutoProbe,nlmon)
1200 endef
1201
1202 define KernelPackage/nlmon/description
1203 Kernel module which adds a monitoring device for netlink.
1204 endef
1205
1206 $(eval $(call KernelPackage,nlmon))
1207
1208
1209 define KernelPackage/mdio
1210 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1211 TITLE:=MDIO (clause 45) PHY support
1212 KCONFIG:=CONFIG_MDIO
1213 HIDDEN:=1
1214 FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
1215 AUTOLOAD:=$(call AutoLoad,32,mdio)
1216 endef
1217
1218 define KernelPackage/mdio/description
1219 Kernel modules for MDIO (clause 45) PHY support
1220 endef
1221
1222 $(eval $(call KernelPackage,mdio))
1223
1224 define KernelPackage/macsec
1225 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1226 TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
1227 DEPENDS:=+kmod-crypto-gcm
1228 KCONFIG:=CONFIG_MACSEC
1229 FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
1230 AUTOLOAD:=$(call AutoLoad,13,macsec)
1231 endef
1232
1233 define KernelPackage/macsec/description
1234 MACsec is an encryption standard for Ethernet.
1235 endef
1236
1237 $(eval $(call KernelPackage,macsec))
1238
1239
1240 define KernelPackage/netlink-diag
1241 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1242 TITLE:=Netlink diag support for ss utility
1243 KCONFIG:=CONFIG_NETLINK_DIAG
1244 FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
1245 AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
1246 endef
1247
1248 define KernelPackage/netlink-diag/description
1249 Netlink diag is a module made for use with iproute2's ss utility
1250 endef
1251
1252 $(eval $(call KernelPackage,netlink-diag))
1253
1254
1255 define KernelPackage/wireguard
1256 SECTION:=kernel
1257 CATEGORY:=Kernel modules
1258 SUBMENU:=Network Support
1259 TITLE:=WireGuard kernel module
1260 DEPENDS:= \
1261 +kmod-crypto-lib-blake2s \
1262 +kmod-crypto-lib-chacha20poly1305 \
1263 +kmod-crypto-lib-curve25519 \
1264 +kmod-udptunnel4 \
1265 +IPV6:kmod-udptunnel6
1266 KCONFIG:= \
1267 CONFIG_WIREGUARD \
1268 CONFIG_WIREGUARD_DEBUG=n
1269 FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
1270 AUTOLOAD:=$(call AutoProbe,wireguard)
1271 endef
1272
1273 define KernelPackage/wireguard/description
1274 WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
1275 state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
1276 more useful than IPSec, while avoiding the massive headache. It intends to
1277 be considerably more performant than OpenVPN. WireGuard is designed as a
1278 general purpose VPN for running on embedded interfaces and super computers
1279 alike, fit for many different circumstances. It uses UDP.
1280 endef
1281
1282 $(eval $(call KernelPackage,wireguard))