2 # Copyright (C) 2006-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 NETWORK_SUPPORT_MENU
:=Network Support
10 define KernelPackage
/atm
11 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
17 $(LINUX_DIR
)/net
/atm
/atm.ko \
18 $(LINUX_DIR
)/net
/atm
/br2684.ko
19 AUTOLOAD
:=$(call AutoLoad
,30,atm br2684
)
22 define KernelPackage
/atm
/description
23 Kernel modules for ATM support
26 $(eval
$(call KernelPackage
,atm
))
29 define KernelPackage
/atmtcp
30 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
33 KCONFIG
:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS
=y
34 FILES
:=$(LINUX_DIR
)/drivers
/atm
/atmtcp.ko
35 AUTOLOAD
:=$(call AutoLoad
,40,atmtcp
)
38 define KernelPackage
/atmtcp
/description
39 Kernel module for ATM over TCP support
42 $(eval
$(call KernelPackage
,atmtcp
))
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 MODPARAMS.bonding
:=max_bonds
=0
54 define KernelPackage
/bonding
/description
55 Kernel module for NIC bonding.
58 $(eval
$(call KernelPackage
,bonding
))
61 define KernelPackage
/udptunnel4
62 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
63 TITLE
:=IPv4 UDP tunneling support
64 KCONFIG
:=CONFIG_NET_UDP_TUNNEL
66 FILES
:=$(LINUX_DIR
)/net
/ipv4
/udp_tunnel.ko
67 AUTOLOAD
:=$(call AutoLoad
,32,udp_tunnel
)
71 $(eval
$(call KernelPackage
,udptunnel4
))
73 define KernelPackage
/udptunnel6
74 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
75 TITLE
:=IPv6 UDP tunneling support
77 KCONFIG
:=CONFIG_NET_UDP_TUNNEL
79 FILES
:=$(LINUX_DIR
)/net
/ipv6
/ip6_udp_tunnel.ko
80 AUTOLOAD
:=$(call AutoLoad
,32,ip6_udp_tunnel
)
83 $(eval
$(call KernelPackage
,udptunnel6
))
86 define KernelPackage
/vxlan
87 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
88 TITLE
:=Native VXLAN Kernel support
94 FILES
:=$(LINUX_DIR
)/drivers
/net
/vxlan.ko
95 AUTOLOAD
:=$(call AutoLoad
,13,vxlan
)
98 define KernelPackage
/vxlan
/description
99 Kernel module for supporting VXLAN in the Kernel.
100 Requires Kernel
3.12 or newer.
103 $(eval
$(call KernelPackage
,vxlan
))
106 define KernelPackage
/geneve
107 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
108 TITLE
:=Generic Network Virtualization Encapsulation
(Geneve
) support
112 +IPV6
:kmod-udptunnel6
113 KCONFIG
:=CONFIG_GENEVE
115 $(LINUX_DIR
)/drivers
/net
/geneve.ko
116 AUTOLOAD
:=$(call AutoLoad
,13,geneve
)
119 define KernelPackage
/geneve
/description
120 Kernel module for supporting Geneve in the Kernel.
121 Requires Kernel
3.18 or newer.
124 $(eval
$(call KernelPackage
,geneve
))
127 define KernelPackage
/nsh
128 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
129 TITLE
:=Network Service Header
(NSH
) protocol
131 KCONFIG
:=CONFIG_NET_NSH
132 FILES
:=$(LINUX_DIR
)/net
/nsh
/nsh.ko
133 AUTOLOAD
:=$(call AutoLoad
,13,nsh
)
136 define KernelPackage
/nsh
/description
137 Network Service Header is an implementation of Service Function
138 Chaining
(RFC
7665). Requires kernel
4.14 or newer
141 $(eval
$(call KernelPackage
,nsh
))
144 define KernelPackage
/misdn
145 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
146 TITLE
:=mISDN
(ISDN
) Support
153 $(LINUX_DIR
)/drivers
/isdn
/mISDN
/mISDN_core.ko \
154 $(LINUX_DIR
)/drivers
/isdn
/mISDN
/mISDN_dsp.ko \
155 $(LINUX_DIR
)/drivers
/isdn
/mISDN
/l1oip.ko
156 AUTOLOAD
:=$(call AutoLoad
,30,mISDN_core mISDN_dsp l1oip
)
159 define KernelPackage
/misdn
/description
160 Modular ISDN driver support
163 $(eval
$(call KernelPackage
,misdn
))
166 define KernelPackage
/isdn4linux
167 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
168 TITLE
:=Old ISDN4Linux
(deprecated
)
174 CONFIG_ISDN_PPP_VJ
=y \
176 CONFIG_IPPP_FILTER
=y \
177 CONFIG_ISDN_PPP_BSDCOMP \
178 CONFIG_ISDN_CAPI_MIDDLEWARE
=y \
179 CONFIG_ISDN_CAPI_CAPIFS_BOOL
=y \
180 CONFIG_ISDN_AUDIO
=y \
181 CONFIG_ISDN_TTY_FAX
=y \
183 CONFIG_ISDN_DIVERSION
185 $(LINUX_DIR
)/drivers
/isdn
/divert
/dss1_divert.ko \
186 $(LINUX_DIR
)/drivers
/isdn
/i4l
/isdn.ko \
187 $(LINUX_DIR
)/drivers
/isdn
/i4l
/isdn_bsdcomp.ko
188 AUTOLOAD
:=$(call AutoLoad
,40,isdn isdn_bsdcomp dss1_divert
)
191 define KernelPackage
/isdn4linux
/description
192 This driver allows you to use an ISDN adapter for networking
195 $(eval
$(call KernelPackage
,isdn4linux
))
198 define KernelPackage
/ipip
199 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
200 TITLE
:=IP-in-IP encapsulation
201 DEPENDS
:=+kmod-iptunnel
+kmod-iptunnel4
202 KCONFIG
:=CONFIG_NET_IPIP
203 FILES
:=$(LINUX_DIR
)/net
/ipv4
/ipip.ko
204 AUTOLOAD
:=$(call AutoLoad
,32,ipip
)
207 define KernelPackage
/ipip
/description
208 Kernel modules for IP-in-IP encapsulation
211 $(eval
$(call KernelPackage
,ipip
))
220 define KernelPackage
/ipsec
221 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
222 TITLE
:=IPsec related modules
(IPv4 and IPv6
)
224 +kmod-crypto-authenc
+kmod-crypto-cbc
+kmod-crypto-deflate \
225 +kmod-crypto-des
+kmod-crypto-echainiv
+kmod-crypto-hmac \
226 +kmod-crypto-md5
+kmod-crypto-sha1
232 FILES
:=$(foreach mod
,$(IPSEC-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
233 AUTOLOAD
:=$(call AutoLoad
,30,$(notdir $(IPSEC-m
)))
236 define KernelPackage
/ipsec
/description
237 Kernel modules for IPsec support in both IPv4 and IPv6.
245 $(eval
$(call KernelPackage
,ipsec
))
253 IPSEC4-m
+= $(ifeq ($$(strip $$(call CompareKernelPatchVer
,$$(KERNEL_PATCHVER
),le
,5.2))),ipv4
/xfrm4_mode_beet ipv4
/xfrm4_mode_transport ipv4
/xfrm4_mode_tunnel
)
255 define KernelPackage
/ipsec4
256 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
257 TITLE
:=IPsec related modules
(IPv4
)
258 DEPENDS
:=kmod-ipsec
+kmod-iptunnel4
263 CONFIG_INET_XFRM_MODE_BEET \
264 CONFIG_INET_XFRM_MODE_TRANSPORT \
265 CONFIG_INET_XFRM_MODE_TUNNEL \
266 CONFIG_INET_XFRM_TUNNEL \
267 CONFIG_INET_ESP_OFFLOAD
=n
268 FILES
:=$(foreach mod
,$(IPSEC4-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
269 AUTOLOAD
:=$(call AutoLoad
,32,$(notdir $(IPSEC4-m
)))
272 define KernelPackage
/ipsec4
/description
273 Kernel modules for IPsec support in IPv4.
279 - xfrm4_mode_transport
284 $(eval
$(call KernelPackage
,ipsec4
))
293 IPSEC6-m
+= $(ifeq ($$(strip $$(call CompareKernelPatchVer
,$$(KERNEL_PATCHVER
),le
,5.2))),ipv6
/xfrm6_mode_beet ipv6
/xfrm6_mode_transport ipv6
/xfrm6_mode_tunnel
)
295 define KernelPackage
/ipsec6
296 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
297 TITLE
:=IPsec related modules
(IPv6
)
298 DEPENDS
:=@IPV6 kmod-ipsec
+kmod-iptunnel6
302 CONFIG_INET6_IPCOMP \
303 CONFIG_INET6_XFRM_MODE_BEET \
304 CONFIG_INET6_XFRM_MODE_TRANSPORT \
305 CONFIG_INET6_XFRM_MODE_TUNNEL \
306 CONFIG_INET6_XFRM_TUNNEL \
307 CONFIG_INET6_ESP_OFFLOAD
=n
308 FILES
:=$(foreach mod
,$(IPSEC6-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
309 AUTOLOAD
:=$(call AutoLoad
,32,$(notdir $(IPSEC6-m
)))
312 define KernelPackage
/ipsec6
/description
313 Kernel modules for IPsec support in IPv6.
319 - xfrm6_mode_transport
324 $(eval
$(call KernelPackage
,ipsec6
))
327 define KernelPackage
/iptunnel
328 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
329 TITLE
:=IP tunnel support
333 FILES
:=$(LINUX_DIR
)/net
/ipv4
/ip_tunnel.ko
334 AUTOLOAD
:=$(call AutoLoad
,31,ip_tunnel
)
337 define KernelPackage
/iptunnel
/description
338 Kernel module for generic IP tunnel support
341 $(eval
$(call KernelPackage
,iptunnel
))
344 define KernelPackage
/ip-vti
345 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
346 TITLE
:=IP VTI
(Virtual Tunnel Interface
)
347 DEPENDS
:=+kmod-iptunnel
+kmod-iptunnel4
+kmod-ipsec4
348 KCONFIG
:=CONFIG_NET_IPVTI
349 FILES
:=$(LINUX_DIR
)/net
/ipv4
/ip_vti.ko
350 AUTOLOAD
:=$(call AutoLoad
,33,ip_vti
)
353 define KernelPackage
/ip-vti
/description
354 Kernel modules for IP VTI
(Virtual Tunnel Interface
)
357 $(eval
$(call KernelPackage
,ip-vti
))
360 define KernelPackage
/ip6-vti
361 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
362 TITLE
:=IPv6 VTI
(Virtual Tunnel Interface
)
363 DEPENDS
:=@IPV6
+kmod-iptunnel
+kmod-ip6-tunnel
+kmod-ipsec6
364 KCONFIG
:=CONFIG_IPV6_VTI
365 FILES
:=$(LINUX_DIR
)/net
/ipv6
/ip6_vti.ko
366 AUTOLOAD
:=$(call AutoLoad
,33,ip6_vti
)
369 define KernelPackage
/ip6-vti
/description
370 Kernel modules for IPv6 VTI
(Virtual Tunnel Interface
)
373 $(eval
$(call KernelPackage
,ip6-vti
))
376 define KernelPackage
/xfrm-interface
377 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
378 TITLE
:=IPsec XFRM Interface
379 DEPENDS
:=@IPV6
+kmod-ipsec4
+kmod-ipsec6
380 KCONFIG
:=CONFIG_XFRM_INTERFACE
381 FILES
:=$(LINUX_DIR
)/net
/xfrm
/xfrm_interface.ko
382 AUTOLOAD
:=$(call AutoProbe
,xfrm_interface
)
385 define KernelPackage
/xfrm-interface
/description
386 Kernel module for XFRM interface support
389 $(eval
$(call KernelPackage
,xfrm-interface
))
392 define KernelPackage
/iptunnel4
393 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
394 TITLE
:=IPv4 tunneling
399 FILES
:=$(LINUX_DIR
)/net
/ipv4
/tunnel4.ko
400 AUTOLOAD
:=$(call AutoLoad
,31,tunnel4
)
403 define KernelPackage
/iptunnel4
/description
404 Kernel modules for IPv4 tunneling
407 $(eval
$(call KernelPackage
,iptunnel4
))
410 define KernelPackage
/iptunnel6
411 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
412 TITLE
:=IPv6 tunneling
416 FILES
:=$(LINUX_DIR
)/net
/ipv6
/tunnel6.ko
417 AUTOLOAD
:=$(call AutoLoad
,31,tunnel6
)
420 define KernelPackage
/iptunnel6
/description
421 Kernel modules for IPv6 tunneling
424 $(eval
$(call KernelPackage
,iptunnel6
))
427 define KernelPackage
/sit
428 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
429 DEPENDS
:=@IPV6
+kmod-iptunnel
+kmod-iptunnel4
430 TITLE
:=IPv6-in-IPv4 tunnel
431 KCONFIG
:=CONFIG_IPV6_SIT \
432 CONFIG_IPV6_SIT_6RD
=y
433 FILES
:=$(LINUX_DIR
)/net
/ipv6
/sit.ko
434 AUTOLOAD
:=$(call AutoLoad
,32,sit
)
437 define KernelPackage
/sit
/description
438 Kernel modules for IPv6-in-IPv4 tunnelling
441 $(eval
$(call KernelPackage
,sit
))
444 define KernelPackage
/fou
445 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
446 TITLE
:=FOU and GUE decapsulation
450 +IPV6
:kmod-udptunnel6
453 CONFIG_NET_FOU_IP_TUNNELS
=y
454 FILES
:=$(LINUX_DIR
)/net
/ipv4
/fou.ko
455 AUTOLOAD
:=$(call AutoProbe
,fou
)
458 define KernelPackage
/fou
/description
459 Kernel module for FOU
(Foo over UDP
) and GUE
(Generic UDP Encapsulation
) tunnelling.
460 Requires Kernel
3.18 or newer.
463 $(eval
$(call KernelPackage
,fou
))
466 define KernelPackage
/fou6
467 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
468 TITLE
:=FOU and GUE decapsulation over IPv6
474 CONFIG_IPV6_FOU_TUNNEL
475 FILES
:=$(LINUX_DIR
)/net
/ipv6
/fou6.ko
476 AUTOLOAD
:=$(call AutoProbe
,fou6
)
479 define KernelPackage
/fou6
/description
480 Kernel module for FOU
(Foo over UDP
) and GUE
(Generic UDP Encapsulation
) tunnelling over IPv6.
481 Requires Kernel
3.18 or newer.
484 $(eval
$(call KernelPackage
,fou6
))
487 define KernelPackage
/ip6-tunnel
488 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
489 TITLE
:=IP-in-IPv6 tunnelling
490 DEPENDS
:=@IPV6
+kmod-iptunnel6
491 KCONFIG
:= CONFIG_IPV6_TUNNEL
492 FILES
:=$(LINUX_DIR
)/net
/ipv6
/ip6_tunnel.ko
493 AUTOLOAD
:=$(call AutoLoad
,32,ip6_tunnel
)
496 define KernelPackage
/ip6-tunnel
/description
497 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
500 $(eval
$(call KernelPackage
,ip6-tunnel
))
503 define KernelPackage
/gre
504 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
506 DEPENDS
:=+kmod-iptunnel
507 KCONFIG
:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
508 FILES
:=$(LINUX_DIR
)/net
/ipv4
/ip_gre.ko
$(LINUX_DIR
)/net
/ipv4
/gre.ko
509 AUTOLOAD
:=$(call AutoLoad
,39,gre ip_gre
)
512 define KernelPackage
/gre
/description
513 Generic Routing Encapsulation support
516 $(eval
$(call KernelPackage
,gre
))
519 define KernelPackage
/gre6
520 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
521 TITLE
:=GRE support over IPV6
522 DEPENDS
:=@IPV6
+kmod-iptunnel
+kmod-ip6-tunnel
+kmod-gre
523 KCONFIG
:=CONFIG_IPV6_GRE
524 FILES
:=$(LINUX_DIR
)/net
/ipv6
/ip6_gre.ko
525 AUTOLOAD
:=$(call AutoLoad
,39,ip6_gre
)
528 define KernelPackage
/gre6
/description
529 Generic Routing Encapsulation support over IPv6
532 $(eval
$(call KernelPackage
,gre6
))
535 define KernelPackage
/tun
536 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
537 TITLE
:=Universal TUN
/TAP driver
539 FILES
:=$(LINUX_DIR
)/drivers
/net
/tun.ko
540 AUTOLOAD
:=$(call AutoLoad
,30,tun
)
543 define KernelPackage
/tun
/description
544 Kernel support for the TUN
/TAP tunneling device
547 $(eval
$(call KernelPackage
,tun
))
550 define KernelPackage
/veth
551 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
552 TITLE
:=Virtual ethernet pair device
554 FILES
:=$(LINUX_DIR
)/drivers
/net
/veth.ko
555 AUTOLOAD
:=$(call AutoLoad
,30,veth
)
558 define KernelPackage
/veth
/description
559 This device is a local ethernet tunnel. Devices are created in pairs.
560 When one end receives the packet it appears on its pair and vice
564 $(eval
$(call KernelPackage
,veth
))
567 define KernelPackage
/vrf
568 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
569 TITLE
:=Virtual Routing and Forwarding
(Lite
)
570 DEPENDS
:=@KERNEL_NET_L3_MASTER_DEV
571 KCONFIG
:=CONFIG_NET_VRF
572 FILES
:=$(LINUX_DIR
)/drivers
/net
/vrf.ko
573 AUTOLOAD
:=$(call AutoLoad
,30,vrf
)
576 define KernelPackage
/vrf
/description
577 This option enables the support for mapping interfaces into VRF
's. The
578 support enables VRF devices.
581 $(eval $(call KernelPackage,vrf))
584 define KernelPackage/slhc
585 SUBMENU:=$(NETWORK_SUPPORT_MENU)
587 TITLE:=Serial Line Header Compression
588 DEPENDS:=+kmod-lib-crc-ccitt
590 FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
593 $(eval $(call KernelPackage,slhc))
596 define KernelPackage/ppp
597 SUBMENU:=$(NETWORK_SUPPORT_MENU)
599 DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
604 $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
605 $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
606 AUTOLOAD:=$(call AutoProbe,ppp_async)
609 define KernelPackage/ppp/description
610 Kernel modules for PPP support
613 $(eval $(call KernelPackage,ppp))
616 define KernelPackage/ppp-synctty
617 SUBMENU:=$(NETWORK_SUPPORT_MENU)
618 TITLE:=PPP sync tty support
620 KCONFIG:=CONFIG_PPP_SYNC_TTY
621 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
622 AUTOLOAD:=$(call AutoProbe,ppp_synctty)
625 define KernelPackage/ppp-synctty/description
626 Kernel modules for PPP sync tty support
629 $(eval $(call KernelPackage,ppp-synctty))
632 define KernelPackage/pppox
633 SUBMENU:=$(NETWORK_SUPPORT_MENU)
636 KCONFIG:=CONFIG_PPPOE
637 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
640 define KernelPackage/pppox/description
641 Kernel helper module for PPPoE and PPTP support
644 $(eval $(call KernelPackage,pppox))
647 define KernelPackage/pppoe
648 SUBMENU:=$(NETWORK_SUPPORT_MENU)
650 DEPENDS:=kmod-ppp +kmod-pppox
651 KCONFIG:=CONFIG_PPPOE
652 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
653 AUTOLOAD:=$(call AutoProbe,pppoe)
656 define KernelPackage/pppoe/description
657 Kernel module for PPPoE (PPP over Ethernet) support
660 $(eval $(call KernelPackage,pppoe))
663 define KernelPackage/pppoa
664 SUBMENU:=$(NETWORK_SUPPORT_MENU)
666 DEPENDS:=kmod-ppp +kmod-atm
667 KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
668 FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
669 AUTOLOAD:=$(call AutoLoad,40,pppoatm)
672 define KernelPackage/pppoa/description
673 Kernel modules for PPPoA (PPP over ATM) support
676 $(eval $(call KernelPackage,pppoa))
679 define KernelPackage/pptp
680 SUBMENU:=$(NETWORK_SUPPORT_MENU)
682 DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
684 FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
685 AUTOLOAD:=$(call AutoProbe,pptp)
688 $(eval $(call KernelPackage,pptp))
691 define KernelPackage/pppol2tp
692 SUBMENU:=$(NETWORK_SUPPORT_MENU)
693 TITLE:=PPPoL2TP support
694 DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
695 KCONFIG:=CONFIG_PPPOL2TP
696 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
697 AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
700 define KernelPackage/pppol2tp/description
701 Kernel modules for PPPoL2TP (PPP over L2TP) support
704 $(eval $(call KernelPackage,pppol2tp))
707 define KernelPackage/ipoa
708 SUBMENU:=$(NETWORK_SUPPORT_MENU)
711 KCONFIG:=CONFIG_ATM_CLIP
712 FILES:=$(LINUX_DIR)/net/atm/clip.ko
713 AUTOLOAD:=$(call AutoProbe,clip)
716 define KernelPackage/ipoa/description
717 Kernel modules for IPoA (IP over ATM) support
720 $(eval $(call KernelPackage,ipoa))
723 define KernelPackage/mppe
724 SUBMENU:=$(NETWORK_SUPPORT_MENU)
725 TITLE:=Microsoft PPP compression/encryption
726 DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
728 CONFIG_PPP_MPPE_MPPC \
730 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
731 AUTOLOAD:=$(call AutoProbe,ppp_mppe)
734 define KernelPackage/mppe/description
735 Kernel modules for Microsoft PPP compression/encryption
738 $(eval $(call KernelPackage,mppe))
741 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
742 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_gact act_mirred act_skbedit cls_matchall
743 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
744 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
745 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
746 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
748 define KernelPackage/sched-core
749 SUBMENU:=$(NETWORK_SUPPORT_MENU)
750 TITLE:=Traffic schedulers
753 CONFIG_NET_SCH_HFSC \
756 CONFIG_NET_SCH_INGRESS \
757 CONFIG_NET_SCH_FQ_CODEL \
759 CONFIG_NET_CLS_ACT=y \
760 CONFIG_NET_CLS_BASIC \
761 CONFIG_NET_CLS_FLOW \
763 CONFIG_NET_CLS_ROUTE4 \
764 CONFIG_NET_CLS_TCINDEX \
766 CONFIG_NET_ACT_GACT \
767 CONFIG_NET_ACT_MIRRED \
768 CONFIG_NET_ACT_SKBEDIT \
769 CONFIG_NET_CLS_MATCHALL \
770 CONFIG_NET_EMATCH=y \
771 CONFIG_NET_EMATCH_U32
772 FILES:=$(SCHED_FILES)
773 AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
776 define KernelPackage/sched-core/description
777 Core kernel scheduler support for IP traffic
780 $(eval $(call KernelPackage,sched-core))
783 define KernelPackage/sched-cake
784 SUBMENU:=$(NETWORK_SUPPORT_MENU)
785 TITLE:=Cake fq_codel/blue derived shaper
786 DEPENDS:=+kmod-sched-core
787 KCONFIG:=CONFIG_NET_SCH_CAKE
788 FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
789 AUTOLOAD:=$(call AutoProbe,sch_cake)
792 define KernelPackage/sched-cake/description
793 Common Applications Kept Enhanced fq_codel/blue derived shaper
796 $(eval $(call KernelPackage,sched-cake))
798 define KernelPackage/sched-flower
799 SUBMENU:=$(NETWORK_SUPPORT_MENU)
800 TITLE:=Flower traffic classifier
801 DEPENDS:=+kmod-sched-core
802 KCONFIG:=CONFIG_NET_CLS_FLOWER
803 FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
804 AUTOLOAD:=$(call AutoProbe, cls_flower)
807 define KernelPackage/sched-flower/description
808 Allows to classify packets based on a configurable combination of packet keys and masks.
811 $(eval $(call KernelPackage,sched-flower))
814 define KernelPackage/sched-act-vlan
815 SUBMENU:=$(NETWORK_SUPPORT_MENU)
816 TITLE:=Traffic VLAN manipulation
817 DEPENDS:=+kmod-sched-core
818 KCONFIG:=CONFIG_NET_ACT_VLAN
819 FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
820 AUTOLOAD:=$(call AutoProbe, act_vlan)
823 define KernelPackage/sched-act-vlan/description
824 Allows to configure rules to push or pop vlan headers.
827 $(eval $(call KernelPackage,sched-act-vlan))
830 define KernelPackage/sched-mqprio
831 SUBMENU:=$(NETWORK_SUPPORT_MENU)
832 TITLE:=Multi-queue priority scheduler (MQPRIO)
833 DEPENDS:=+kmod-sched-core
834 KCONFIG:=CONFIG_NET_SCH_MQPRIO
835 FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
836 AUTOLOAD:=$(call AutoProbe, sch_mqprio)
839 define KernelPackage/sched-mqprio/description
840 This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
843 $(eval $(call KernelPackage,sched-mqprio))
845 define KernelPackage/sched-connmark
846 SUBMENU:=$(NETWORK_SUPPORT_MENU)
847 TITLE:=Traffic shaper conntrack mark support
848 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
849 KCONFIG:=CONFIG_NET_ACT_CONNMARK
850 FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
851 AUTOLOAD:=$(call AutoLoad,71, act_connmark)
853 $(eval $(call KernelPackage,sched-connmark))
855 define KernelPackage/sched-ctinfo
856 SUBMENU:=$(NETWORK_SUPPORT_MENU)
857 TITLE:=Traffic shaper ctinfo support
858 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
859 KCONFIG:=CONFIG_NET_ACT_CTINFO
860 FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
861 AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
863 $(eval $(call KernelPackage,sched-ctinfo))
865 define KernelPackage/sched-ipset
866 SUBMENU:=$(NETWORK_SUPPORT_MENU)
867 TITLE:=Traffic shaper ipset support
868 DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
870 CONFIG_NET_EMATCH_IPSET
872 $(LINUX_DIR)/net/sched/em_ipset.ko
873 AUTOLOAD:=$(call AutoLoad,72,em_ipset)
876 $(eval $(call KernelPackage,sched-ipset))
879 define KernelPackage/sched-bpf
880 SUBMENU:=$(NETWORK_SUPPORT_MENU)
881 TITLE:=Traffic shaper support for Berkeley Packet Filter
886 $(LINUX_DIR)/net/sched/cls_bpf.ko \
887 $(LINUX_DIR)/net/sched/act_bpf.ko
888 AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
891 $(eval $(call KernelPackage,sched-bpf))
894 define KernelPackage/bpf-test
895 SUBMENU:=$(NETWORK_SUPPORT_MENU)
896 TITLE:=Test Berkeley Packet Filter functionality
897 KCONFIG:=CONFIG_TEST_BPF
898 FILES:=$(LINUX_DIR)/lib/test_bpf.ko
901 $(eval $(call KernelPackage,bpf-test))
904 define KernelPackage/sched
905 SUBMENU:=$(NETWORK_SUPPORT_MENU)
906 TITLE:=Extra traffic schedulers
907 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-lib-crc32c
909 CONFIG_NET_SCH_CODEL \
910 CONFIG_NET_SCH_DSMARK \
911 CONFIG_NET_SCH_FIFO \
912 CONFIG_NET_SCH_GRED \
913 CONFIG_NET_SCH_MULTIQ \
914 CONFIG_NET_SCH_PRIO \
917 CONFIG_NET_SCH_TEQL \
920 CONFIG_NET_ACT_POLICE \
922 CONFIG_NET_ACT_PEDIT \
923 CONFIG_NET_ACT_SIMP \
924 CONFIG_NET_ACT_CSUM \
925 CONFIG_NET_EMATCH_CMP \
926 CONFIG_NET_EMATCH_NBYTE \
927 CONFIG_NET_EMATCH_META \
928 CONFIG_NET_EMATCH_TEXT
929 FILES:=$(SCHED_FILES_EXTRA)
930 AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
933 define KernelPackage/sched/description
934 Extra kernel schedulers modules for IP traffic
937 SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
939 define KernelPackage/sched/install
940 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
941 $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
944 $(eval $(call KernelPackage,sched))
947 define KernelPackage/tcp-bbr
948 SUBMENU:=$(NETWORK_SUPPORT_MENU)
949 TITLE:=BBR TCP congestion control
950 KCONFIG:=CONFIG_TCP_CONG_BBR
951 FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
952 AUTOLOAD:=$(call AutoProbe,tcp_bbr)
955 define KernelPackage/tcp-bbr/description
956 Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
957 control. It requires the fq ("Fair Queue") pacing packet scheduler.
958 For kernel 4.13+, TCP internal pacing is implemented as fallback.
961 TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
963 define KernelPackage/tcp-bbr/install
964 $(INSTALL_DIR) $(1)/etc/sysctl.d
965 $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
968 $(eval $(call KernelPackage,tcp-bbr))
971 define KernelPackage/tcp-hybla
972 SUBMENU:=$(NETWORK_SUPPORT_MENU)
973 TITLE:=TCP-Hybla congestion control algorithm
974 KCONFIG:=CONFIG_TCP_CONG_HYBLA
975 FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
976 AUTOLOAD:=$(call AutoProbe,tcp_hybla)
979 define KernelPackage/tcp-hybla/description
980 TCP-Hybla is a sender-side only change that eliminates penalization of
981 long-RTT, large-bandwidth connections, like when satellite legs are
982 involved, especially when sharing a common bottleneck with normal
983 terrestrial connections.
986 $(eval $(call KernelPackage,tcp-hybla))
989 define KernelPackage/tcp-scalable
990 SUBMENU:=$(NETWORK_SUPPORT_MENU)
991 TITLE:=TCP-Scalable congestion control algorithm
992 KCONFIG:=CONFIG_TCP_CONG_SCALABLE
993 FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
994 AUTOLOAD:=$(call AutoProbe,tcp-scalable)
997 define KernelPackage/tcp-scalable/description
998 Scalable TCP is a sender-side only change to TCP which uses a
999 MIMD congestion control algorithm which has some nice scaling
1000 properties, though is known to have fairness issues.
1001 See http://www.deneholme.net/tom/scalable/
1004 $(eval $(call KernelPackage,tcp-scalable))
1007 define KernelPackage/ax25
1008 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1010 DEPENDS:=+kmod-lib-crc16
1016 $(LINUX_DIR)/net/ax25/ax25.ko \
1017 $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
1018 AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
1021 define KernelPackage/ax25/description
1022 Kernel modules for AX25 support
1025 $(eval $(call KernelPackage,ax25))
1028 define KernelPackage/pktgen
1029 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1030 DEPENDS:=@!TARGET_uml
1031 TITLE:=Network packet generator
1032 KCONFIG:=CONFIG_NET_PKTGEN
1033 FILES:=$(LINUX_DIR)/net/core/pktgen.ko
1034 AUTOLOAD:=$(call AutoLoad,99,pktgen)
1037 define KernelPackage/pktgen/description
1038 Kernel modules for the Network Packet Generator
1041 $(eval $(call KernelPackage,pktgen))
1043 define KernelPackage/l2tp
1044 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1045 TITLE:=Layer Two Tunneling Protocol (L2TP)
1048 +IPV6:kmod-udptunnel6
1049 KCONFIG:=CONFIG_L2TP \
1051 CONFIG_L2TP_DEBUGFS=n
1052 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
1053 $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
1054 AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
1057 define KernelPackage/l2tp/description
1058 Kernel modules for L2TP V3 Support
1061 $(eval $(call KernelPackage,l2tp))
1064 define KernelPackage/l2tp-eth
1065 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1066 TITLE:=L2TP ethernet pseudowire support for L2TPv3
1068 KCONFIG:=CONFIG_L2TP_ETH
1069 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
1070 AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
1073 define KernelPackage/l2tp-eth/description
1074 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
1077 $(eval $(call KernelPackage,l2tp-eth))
1079 define KernelPackage/l2tp-ip
1080 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1081 TITLE:=L2TP IP encapsulation for L2TPv3
1083 KCONFIG:=CONFIG_L2TP_IP
1085 $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
1086 $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
1087 AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
1090 define KernelPackage/l2tp-ip/description
1091 Kernel modules for L2TP IP encapsulation for L2TPv3
1094 $(eval $(call KernelPackage,l2tp-ip))
1097 define KernelPackage/sctp
1098 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1099 TITLE:=SCTP protocol kernel support
1102 CONFIG_SCTP_DBG_MSG=n \
1103 CONFIG_SCTP_DBG_OBJCNT=n \
1104 CONFIG_SCTP_HMAC_NONE=n \
1105 CONFIG_SCTP_HMAC_SHA1=n \
1106 CONFIG_SCTP_HMAC_MD5=y \
1107 CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
1108 CONFIG_SCTP_COOKIE_HMAC_MD5=y \
1109 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
1110 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
1111 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
1112 FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
1113 AUTOLOAD:= $(call AutoLoad,32,sctp)
1114 DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
1117 define KernelPackage/sctp/description
1118 Kernel modules for SCTP protocol support
1121 $(eval $(call KernelPackage,sctp))
1124 define KernelPackage/netem
1125 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1126 TITLE:=Network emulation functionality
1127 DEPENDS:=+kmod-sched
1128 KCONFIG:=CONFIG_NET_SCH_NETEM
1129 FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
1130 AUTOLOAD:=$(call AutoLoad,99,netem)
1133 define KernelPackage/netem/description
1134 Kernel modules for emulating the properties of wide area networks
1137 $(eval $(call KernelPackage,netem))
1139 define KernelPackage/slip
1140 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1145 CONFIG_SLIP_COMPRESSED=y \
1146 CONFIG_SLIP_SMART=y \
1147 CONFIG_SLIP_MODE_SLIP6=y
1150 $(LINUX_DIR)/drivers/net/slip/slip.ko
1151 AUTOLOAD:=$(call AutoLoad,30,slip)
1154 define KernelPackage/slip/description
1155 Kernel modules for SLIP support
1158 $(eval $(call KernelPackage,slip))
1160 define KernelPackage/dnsresolver
1161 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1162 TITLE:=In-kernel DNS Resolver
1163 KCONFIG:= CONFIG_DNS_RESOLVER
1164 FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
1165 AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
1168 $(eval $(call KernelPackage,dnsresolver))
1170 define KernelPackage/rxrpc
1171 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1172 TITLE:=AF_RXRPC support
1177 CONFIG_AF_RXRPC_DEBUG=n
1179 $(LINUX_DIR)/net/rxrpc/rxrpc.ko
1180 AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
1181 DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
1184 define KernelPackage/rxrpc/description
1185 Kernel support for AF_RXRPC; required for AFS client
1188 $(eval $(call KernelPackage,rxrpc))
1190 define KernelPackage/mpls
1191 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1193 DEPENDS:=+kmod-iptunnel
1197 CONFIG_LWTUNNEL_BPF=n \
1198 CONFIG_NET_MPLS_GSO=m \
1199 CONFIG_MPLS_ROUTING=m \
1200 CONFIG_MPLS_IPTUNNEL=m
1202 $(LINUX_DIR)/net/mpls/mpls_gso.ko \
1203 $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
1204 $(LINUX_DIR)/net/mpls/mpls_router.ko
1205 AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
1208 define KernelPackage/mpls/description
1209 Kernel support for MPLS
1212 $(eval $(call KernelPackage,mpls))
1214 define KernelPackage/9pnet
1215 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1216 TITLE:=Plan 9 Resource Sharing Support (9P2000)
1217 DEPENDS:=@VIRTIO_SUPPORT
1220 CONFIG_NET_9P_DEBUG=n \
1221 CONFIG_NET_9P_XEN=n \
1222 CONFIG_NET_9P_VIRTIO
1224 $(LINUX_DIR)/net/9p/9pnet.ko \
1225 $(LINUX_DIR)/net/9p/9pnet_virtio.ko
1226 AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
1229 define KernelPackage/9pnet/description
1230 Kernel support support for
1231 Plan 9 resource sharing via the 9P2000 protocol.
1234 $(eval $(call KernelPackage,9pnet))
1237 define KernelPackage/nlmon
1238 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1239 TITLE:=Virtual netlink monitoring device
1240 KCONFIG:=CONFIG_NLMON
1241 FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
1242 AUTOLOAD:=$(call AutoProbe,nlmon)
1245 define KernelPackage/nlmon/description
1246 Kernel module which adds a monitoring device for netlink.
1249 $(eval $(call KernelPackage,nlmon))
1252 define KernelPackage/mdio
1253 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1254 TITLE:=MDIO (clause 45) PHY support
1255 KCONFIG:=CONFIG_MDIO
1257 FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
1258 AUTOLOAD:=$(call AutoLoad,32,mdio)
1261 define KernelPackage/mdio/description
1262 Kernel modules for MDIO (clause 45) PHY support
1265 $(eval $(call KernelPackage,mdio))
1267 define KernelPackage/macsec
1268 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1269 TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
1270 DEPENDS:=+kmod-crypto-gcm
1271 KCONFIG:=CONFIG_MACSEC
1272 FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
1273 AUTOLOAD:=$(call AutoLoad,13,macsec)
1276 define KernelPackage/macsec/description
1277 MACsec is an encryption standard for Ethernet.
1280 $(eval $(call KernelPackage,macsec))
1283 define KernelPackage/netlink-diag
1284 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1285 TITLE:=Netlink diag support for ss utility
1286 KCONFIG:=CONFIG_NETLINK_DIAG
1287 FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
1288 AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
1291 define KernelPackage/netlink-diag/description
1292 Netlink diag is a module made for use with iproute2's ss utility
1295 $(eval
$(call KernelPackage
,netlink-diag
))
1298 define KernelPackage
/wireguard
1299 SUBMENU
:=$(NETWORK_SUPPORT_MENU
)
1300 TITLE
:=WireGuard secure network tunnel
1302 +kmod-crypto-lib-blake2s \
1303 +kmod-crypto-lib-chacha20poly1305 \
1304 +kmod-crypto-lib-curve25519 \
1306 +IPV6
:kmod-udptunnel6
1309 CONFIG_WIREGUARD_DEBUG
=n
1310 FILES
:=$(LINUX_DIR
)/drivers
/net
/wireguard
/wireguard.ko
1311 AUTOLOAD
:=$(call AutoProbe
,wireguard
)
1314 define KernelPackage
/wireguard
/description
1315 WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
1316 state-of-the-art cryptography. It aims to be faster
, simpler
, leaner
, and
1317 more useful than IPSec
, while avoiding the massive headache. It intends to
1318 be considerably more performant than OpenVPN. WireGuard is designed
as a
1319 general purpose VPN for running on embedded interfaces and super computers
1320 alike
, fit for many different circumstances. It uses UDP.
1323 $(eval
$(call KernelPackage
,wireguard
))