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)
53 define KernelPackage/bonding/description
54 Kernel module for NIC bonding.
57 $(eval $(call KernelPackage,bonding))
60 define KernelPackage/udptunnel4
61 SUBMENU:=$(NETWORK_SUPPORT_MENU)
62 TITLE:=IPv4 UDP tunneling support
64 CONFIG_NET_UDP_TUNNEL \
67 FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
68 AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
72 $(eval $(call KernelPackage,udptunnel4))
74 define KernelPackage/udptunnel6
75 SUBMENU:=$(NETWORK_SUPPORT_MENU)
76 TITLE:=IPv6 UDP tunneling support
79 CONFIG_NET_UDP_TUNNEL \
82 FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
83 AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
86 $(eval $(call KernelPackage,udptunnel6))
89 define KernelPackage/vxlan
90 SUBMENU:=$(NETWORK_SUPPORT_MENU)
91 TITLE:=Native VXLAN Kernel support
97 FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
98 AUTOLOAD:=$(call AutoLoad,13,vxlan)
101 define KernelPackage/vxlan/description
102 Kernel module for supporting VXLAN in the Kernel.
103 Requires Kernel 3.12 or newer.
106 $(eval $(call KernelPackage,vxlan))
109 define KernelPackage/geneve
110 SUBMENU:=$(NETWORK_SUPPORT_MENU)
111 TITLE:=Generic Network Virtualization Encapsulation (Geneve) support
115 +IPV6:kmod-udptunnel6
116 KCONFIG:=CONFIG_GENEVE
118 $(LINUX_DIR)/net/ipv4/geneve.ko@le4.1 \
119 $(LINUX_DIR)/drivers/net/geneve.ko@ge4.2
120 AUTOLOAD:=$(call AutoLoad,13,geneve)
123 define KernelPackage/geneve/description
124 Kernel module for supporting Geneve in the Kernel.
125 Requires Kernel 3.18 or newer.
128 $(eval $(call KernelPackage,geneve))
131 define KernelPackage/nsh
132 SUBMENU:=$(NETWORK_SUPPORT_MENU)
133 TITLE:=Network Service Header (NSH) protocol
135 KCONFIG:=CONFIG_NET_NSH
136 FILES:=$(LINUX_DIR)/net/nsh/nsh.ko@ge4.14
137 AUTOLOAD:=$(call AutoLoad,13,nsh)
140 define KernelPackage/nsh/description
141 Network Service Header is an implementation of Service Function
142 Chaining (RFC 7665). Requires kernel 4.14 or newer
145 $(eval $(call KernelPackage,nsh))
148 define KernelPackage/capi
149 SUBMENU:=$(NETWORK_SUPPORT_MENU)
150 TITLE:=CAPI (ISDN) Support
153 CONFIG_ISDN_CAPI_CAPI20 \
155 CONFIG_ISDN_CAPI_CAPIFS
157 $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
158 $(LINUX_DIR)/drivers/isdn/capi/capi.ko
159 AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
162 define KernelPackage/capi/description
163 Kernel module for basic CAPI (ISDN) support
166 $(eval $(call KernelPackage,capi))
168 define KernelPackage/misdn
169 SUBMENU:=$(NETWORK_SUPPORT_MENU)
170 TITLE:=mISDN (ISDN) Support
177 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
178 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
179 $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
180 AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
183 define KernelPackage/misdn/description
184 Modular ISDN driver support
187 $(eval $(call KernelPackage,misdn))
190 define KernelPackage/isdn4linux
191 SUBMENU:=$(NETWORK_SUPPORT_MENU)
192 TITLE:=Old ISDN4Linux (deprecated)
198 CONFIG_ISDN_PPP_VJ=y \
200 CONFIG_IPPP_FILTER=y \
201 CONFIG_ISDN_PPP_BSDCOMP \
202 CONFIG_ISDN_CAPI_MIDDLEWARE=y \
203 CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
204 CONFIG_ISDN_AUDIO=y \
205 CONFIG_ISDN_TTY_FAX=y \
207 CONFIG_ISDN_DIVERSION
209 $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
210 $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
211 $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
212 AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
215 define KernelPackage/isdn4linux/description
216 This driver allows you to use an ISDN adapter for networking
219 $(eval $(call KernelPackage,isdn4linux))
222 define KernelPackage/ipip
223 SUBMENU:=$(NETWORK_SUPPORT_MENU)
224 TITLE:=IP-in-IP encapsulation
225 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
226 KCONFIG:=CONFIG_NET_IPIP
227 FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
228 AUTOLOAD:=$(call AutoLoad,32,ipip)
231 define KernelPackage/ipip/description
232 Kernel modules for IP-in-IP encapsulation
235 $(eval $(call KernelPackage,ipip))
244 define KernelPackage/ipsec
245 SUBMENU:=$(NETWORK_SUPPORT_MENU)
246 TITLE:=IPsec related modules (IPv4 and IPv6)
248 +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \
249 +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \
250 +kmod-crypto-iv +kmod-crypto-md5 +kmod-crypto-sha1
256 FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
257 AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
260 define KernelPackage/ipsec/description
261 Kernel modules for IPsec support in both IPv4 and IPv6.
269 $(eval $(call KernelPackage,ipsec))
275 ipv4/xfrm4_mode_beet \
276 ipv4/xfrm4_mode_transport \
277 ipv4/xfrm4_mode_tunnel \
281 define KernelPackage/ipsec4
282 SUBMENU:=$(NETWORK_SUPPORT_MENU)
283 TITLE:=IPsec related modules (IPv4)
284 DEPENDS:=kmod-ipsec +kmod-iptunnel4
289 CONFIG_INET_XFRM_MODE_BEET \
290 CONFIG_INET_XFRM_MODE_TRANSPORT \
291 CONFIG_INET_XFRM_MODE_TUNNEL \
292 CONFIG_INET_XFRM_TUNNEL \
293 CONFIG_INET_ESP_OFFLOAD=n
294 FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
295 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
298 define KernelPackage/ipsec4/description
299 Kernel modules for IPsec support in IPv4.
305 - xfrm4_mode_transport
310 $(eval $(call KernelPackage,ipsec4))
316 ipv6/xfrm6_mode_beet \
317 ipv6/xfrm6_mode_transport \
318 ipv6/xfrm6_mode_tunnel \
322 define KernelPackage/ipsec6
323 SUBMENU:=$(NETWORK_SUPPORT_MENU)
324 TITLE:=IPsec related modules (IPv6)
325 DEPENDS:=kmod-ipsec +kmod-iptunnel6
329 CONFIG_INET6_IPCOMP \
330 CONFIG_INET6_XFRM_MODE_BEET \
331 CONFIG_INET6_XFRM_MODE_TRANSPORT \
332 CONFIG_INET6_XFRM_MODE_TUNNEL \
333 CONFIG_INET6_XFRM_TUNNEL \
334 CONFIG_INET6_ESP_OFFLOAD=n
335 FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
336 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
339 define KernelPackage/ipsec6/description
340 Kernel modules for IPsec support in IPv6.
346 - xfrm6_mode_transport
351 $(eval $(call KernelPackage,ipsec6))
354 define KernelPackage/iptunnel
355 SUBMENU:=$(NETWORK_SUPPORT_MENU)
356 TITLE:=IP tunnel support
360 FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
361 AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
364 define KernelPackage/iptunnel/description
365 Kernel module for generic IP tunnel support
368 $(eval $(call KernelPackage,iptunnel))
371 define KernelPackage/ip-vti
372 SUBMENU:=$(NETWORK_SUPPORT_MENU)
373 TITLE:=IP VTI (Virtual Tunnel Interface)
374 DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
375 KCONFIG:=CONFIG_NET_IPVTI
376 FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
377 AUTOLOAD:=$(call AutoLoad,33,ip_vti)
380 define KernelPackage/ip-vti/description
381 Kernel modules for IP VTI (Virtual Tunnel Interface)
384 $(eval $(call KernelPackage,ip-vti))
387 define KernelPackage/ip6-vti
388 SUBMENU:=$(NETWORK_SUPPORT_MENU)
389 TITLE:=IPv6 VTI (Virtual Tunnel Interface)
390 DEPENDS:=+kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
391 KCONFIG:=CONFIG_IPV6_VTI
392 FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
393 AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
396 define KernelPackage/ip6-vti/description
397 Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
400 $(eval $(call KernelPackage,ip6-vti))
403 define KernelPackage/xfrm-interface
404 SUBMENU:=$(NETWORK_SUPPORT_MENU)
405 TITLE:=IPsec XFRM Interface
406 DEPENDS:=+kmod-ipsec4 +kmod-ipsec6 @!LINUX_4_14 @!LINUX_4_9
407 KCONFIG:=CONFIG_XFRM_INTERFACE
408 FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
409 AUTOLOAD:=$(call AutoProbe,xfrm_interface)
412 define KernelPackage/xfrm-interface/description
413 Kernel module for XFRM interface support
416 $(eval $(call KernelPackage,xfrm-interface))
419 define KernelPackage/iptunnel4
420 SUBMENU:=$(NETWORK_SUPPORT_MENU)
421 TITLE:=IPv4 tunneling
426 FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
427 AUTOLOAD:=$(call AutoLoad,31,tunnel4)
430 define KernelPackage/iptunnel4/description
431 Kernel modules for IPv4 tunneling
434 $(eval $(call KernelPackage,iptunnel4))
437 define KernelPackage/iptunnel6
438 SUBMENU:=$(NETWORK_SUPPORT_MENU)
439 TITLE:=IPv6 tunneling
443 FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
444 AUTOLOAD:=$(call AutoLoad,31,tunnel6)
447 define KernelPackage/iptunnel6/description
448 Kernel modules for IPv6 tunneling
451 $(eval $(call KernelPackage,iptunnel6))
454 define KernelPackage/sit
455 SUBMENU:=$(NETWORK_SUPPORT_MENU)
456 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
457 TITLE:=IPv6-in-IPv4 tunnel
458 KCONFIG:=CONFIG_IPV6_SIT \
459 CONFIG_IPV6_SIT_6RD=y
460 FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
461 AUTOLOAD:=$(call AutoLoad,32,sit)
464 define KernelPackage/sit/description
465 Kernel modules for IPv6-in-IPv4 tunnelling
468 $(eval $(call KernelPackage,sit))
471 define KernelPackage/fou
472 SUBMENU:=$(NETWORK_SUPPORT_MENU)
473 TITLE:=FOU and GUE decapsulation
477 +IPV6:kmod-udptunnel6
480 CONFIG_NET_FOU_IP_TUNNELS=y
481 FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
482 AUTOLOAD:=$(call AutoProbe,fou)
485 define KernelPackage/fou/description
486 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling.
487 Requires Kernel 3.18 or newer.
490 $(eval $(call KernelPackage,fou))
493 define KernelPackage/fou6
494 SUBMENU:=$(NETWORK_SUPPORT_MENU)
495 TITLE:=FOU and GUE decapsulation over IPv6
501 CONFIG_IPV6_FOU_TUNNEL
502 FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
503 AUTOLOAD:=$(call AutoProbe,fou6)
506 define KernelPackage/fou6/description
507 Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6.
508 Requires Kernel 3.18 or newer.
511 $(eval $(call KernelPackage,fou6))
514 define KernelPackage/ip6-tunnel
515 SUBMENU:=$(NETWORK_SUPPORT_MENU)
516 TITLE:=IP-in-IPv6 tunnelling
517 DEPENDS:=@IPV6 +kmod-iptunnel6
518 KCONFIG:= CONFIG_IPV6_TUNNEL
519 FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
520 AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
523 define KernelPackage/ip6-tunnel/description
524 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
527 $(eval $(call KernelPackage,ip6-tunnel))
530 define KernelPackage/gre
531 SUBMENU:=$(NETWORK_SUPPORT_MENU)
533 DEPENDS:=+kmod-iptunnel
534 KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
535 FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
536 AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
539 define KernelPackage/gre/description
540 Generic Routing Encapsulation support
543 $(eval $(call KernelPackage,gre))
546 define KernelPackage/gre6
547 SUBMENU:=$(NETWORK_SUPPORT_MENU)
548 TITLE:=GRE support over IPV6
549 DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
550 KCONFIG:=CONFIG_IPV6_GRE
551 FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
552 AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
555 define KernelPackage/gre6/description
556 Generic Routing Encapsulation support over IPv6
559 $(eval $(call KernelPackage,gre6))
562 define KernelPackage/tun
563 SUBMENU:=$(NETWORK_SUPPORT_MENU)
564 TITLE:=Universal TUN/TAP driver
566 FILES:=$(LINUX_DIR)/drivers/net/tun.ko
567 AUTOLOAD:=$(call AutoLoad,30,tun)
570 define KernelPackage/tun/description
571 Kernel support for the TUN/TAP tunneling device
574 $(eval $(call KernelPackage,tun))
577 define KernelPackage/veth
578 SUBMENU:=$(NETWORK_SUPPORT_MENU)
579 TITLE:=Virtual ethernet pair device
581 FILES:=$(LINUX_DIR)/drivers/net/veth.ko
582 AUTOLOAD:=$(call AutoLoad,30,veth)
585 define KernelPackage/veth/description
586 This device is a local ethernet tunnel. Devices are created in pairs.
587 When one end receives the packet it appears on its pair and vice
591 $(eval $(call KernelPackage,veth))
594 define KernelPackage/slhc
595 SUBMENU:=$(NETWORK_SUPPORT_MENU)
597 TITLE:=Serial Line Header Compression
598 DEPENDS:=+kmod-lib-crc-ccitt
600 FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
603 $(eval $(call KernelPackage,slhc))
606 define KernelPackage/ppp
607 SUBMENU:=$(NETWORK_SUPPORT_MENU)
609 DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
614 $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
615 $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
616 AUTOLOAD:=$(call AutoProbe,ppp_async)
619 define KernelPackage/ppp/description
620 Kernel modules for PPP support
623 $(eval $(call KernelPackage,ppp))
626 define KernelPackage/ppp-synctty
627 SUBMENU:=$(NETWORK_SUPPORT_MENU)
628 TITLE:=PPP sync tty support
630 KCONFIG:=CONFIG_PPP_SYNC_TTY
631 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
632 AUTOLOAD:=$(call AutoProbe,ppp_synctty)
635 define KernelPackage/ppp-synctty/description
636 Kernel modules for PPP sync tty support
639 $(eval $(call KernelPackage,ppp-synctty))
642 define KernelPackage/pppox
643 SUBMENU:=$(NETWORK_SUPPORT_MENU)
646 KCONFIG:=CONFIG_PPPOE
647 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
650 define KernelPackage/pppox/description
651 Kernel helper module for PPPoE and PPTP support
654 $(eval $(call KernelPackage,pppox))
657 define KernelPackage/pppoe
658 SUBMENU:=$(NETWORK_SUPPORT_MENU)
660 DEPENDS:=kmod-ppp +kmod-pppox
661 KCONFIG:=CONFIG_PPPOE
662 FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
663 AUTOLOAD:=$(call AutoProbe,pppoe)
666 define KernelPackage/pppoe/description
667 Kernel module for PPPoE (PPP over Ethernet) support
670 $(eval $(call KernelPackage,pppoe))
673 define KernelPackage/pppoa
674 SUBMENU:=$(NETWORK_SUPPORT_MENU)
676 DEPENDS:=kmod-ppp +kmod-atm
677 KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
678 FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
679 AUTOLOAD:=$(call AutoLoad,40,pppoatm)
682 define KernelPackage/pppoa/description
683 Kernel modules for PPPoA (PPP over ATM) support
686 $(eval $(call KernelPackage,pppoa))
689 define KernelPackage/pptp
690 SUBMENU:=$(NETWORK_SUPPORT_MENU)
692 DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
694 FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
695 AUTOLOAD:=$(call AutoProbe,pptp)
698 $(eval $(call KernelPackage,pptp))
701 define KernelPackage/pppol2tp
702 SUBMENU:=$(NETWORK_SUPPORT_MENU)
703 TITLE:=PPPoL2TP support
704 DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
705 KCONFIG:=CONFIG_PPPOL2TP
706 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
707 AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
710 define KernelPackage/pppol2tp/description
711 Kernel modules for PPPoL2TP (PPP over L2TP) support
714 $(eval $(call KernelPackage,pppol2tp))
717 define KernelPackage/ipoa
718 SUBMENU:=$(NETWORK_SUPPORT_MENU)
721 KCONFIG:=CONFIG_ATM_CLIP
722 FILES:=$(LINUX_DIR)/net/atm/clip.ko
723 AUTOLOAD:=$(call AutoProbe,clip)
726 define KernelPackage/ipoa/description
727 Kernel modules for IPoA (IP over ATM) support
730 $(eval $(call KernelPackage,ipoa))
733 define KernelPackage/mppe
734 SUBMENU:=$(NETWORK_SUPPORT_MENU)
735 TITLE:=Microsoft PPP compression/encryption
736 DEPENDS:=kmod-ppp +kmod-crypto-sha1 +kmod-crypto-ecb
738 CONFIG_PPP_MPPE_MPPC \
740 FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
741 AUTOLOAD:=$(call AutoProbe,ppp_mppe)
744 define KernelPackage/mppe/description
745 Kernel modules for Microsoft PPP compression/encryption
748 $(eval $(call KernelPackage,mppe))
751 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
752 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
753 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark act_ctinfo sch_netem em_ipset cls_bpf act_bpf
754 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
755 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
756 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
758 define KernelPackage/sched-core
759 SUBMENU:=$(NETWORK_SUPPORT_MENU)
760 TITLE:=Traffic schedulers
763 CONFIG_NET_SCH_HFSC \
766 CONFIG_NET_SCH_INGRESS \
767 CONFIG_NET_SCH_FQ_CODEL \
769 CONFIG_NET_CLS_ACT=y \
770 CONFIG_NET_CLS_BASIC \
771 CONFIG_NET_CLS_FLOW \
773 CONFIG_NET_CLS_ROUTE4 \
774 CONFIG_NET_CLS_TCINDEX \
776 CONFIG_NET_ACT_MIRRED \
777 CONFIG_NET_ACT_SKBEDIT \
778 CONFIG_NET_CLS_MATCHALL \
779 CONFIG_NET_EMATCH=y \
780 CONFIG_NET_EMATCH_U32
781 FILES:=$(SCHED_FILES)
782 AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
785 define KernelPackage/sched-core/description
786 Core kernel scheduler support for IP traffic
789 $(eval $(call KernelPackage,sched-core))
792 define KernelPackage/sched-flower
793 SUBMENU:=$(NETWORK_SUPPORT_MENU)
794 TITLE:=Flower traffic classifier
795 DEPENDS:=+kmod-sched-core
796 KCONFIG:=CONFIG_NET_CLS_FLOWER
797 FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
798 AUTOLOAD:=$(call AutoProbe, cls_flower)
801 define KernelPackage/sched-flower/description
802 Allows to classify packets based on a configurable combination of packet keys and masks.
805 $(eval $(call KernelPackage,sched-flower))
808 define KernelPackage/sched-act-vlan
809 SUBMENU:=$(NETWORK_SUPPORT_MENU)
810 TITLE:=Traffic VLAN manipulation
811 DEPENDS:=+kmod-sched-core
812 KCONFIG:=CONFIG_NET_ACT_VLAN
813 FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
814 AUTOLOAD:=$(call AutoProbe, act_vlan)
817 define KernelPackage/sched-act-vlan/description
818 Allows to configure rules to push or pop vlan headers.
821 $(eval $(call KernelPackage,sched-act-vlan))
824 define KernelPackage/sched-mqprio
825 SUBMENU:=$(NETWORK_SUPPORT_MENU)
826 TITLE:=Multi-queue priority scheduler (MQPRIO)
827 DEPENDS:=+kmod-sched-core
828 KCONFIG:=CONFIG_NET_SCH_MQPRIO
829 FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
830 AUTOLOAD:=$(call AutoProbe, sch_mqprio)
833 define KernelPackage/sched-mqprio/description
834 This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
837 $(eval $(call KernelPackage,sched-mqprio))
839 define KernelPackage/sched-connmark
840 SUBMENU:=$(NETWORK_SUPPORT_MENU)
841 TITLE:=Traffic shaper conntrack mark support
842 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
843 KCONFIG:=CONFIG_NET_ACT_CONNMARK
844 FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
845 AUTOLOAD:=$(call AutoLoad,71, act_connmark)
847 $(eval $(call KernelPackage,sched-connmark))
849 define KernelPackage/sched-ctinfo
850 SUBMENU:=$(NETWORK_SUPPORT_MENU)
851 TITLE:=Traffic shaper ctinfo support
852 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
853 KCONFIG:=CONFIG_NET_ACT_CTINFO
854 FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
855 AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
857 $(eval $(call KernelPackage,sched-ctinfo))
859 define KernelPackage/sched-ipset
860 SUBMENU:=$(NETWORK_SUPPORT_MENU)
861 TITLE:=Traffic shaper ipset support
862 DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
864 CONFIG_NET_EMATCH_IPSET
866 $(LINUX_DIR)/net/sched/em_ipset.ko
867 AUTOLOAD:=$(call AutoLoad,72,em_ipset)
870 $(eval $(call KernelPackage,sched-ipset))
873 define KernelPackage/sched-bpf
874 SUBMENU:=$(NETWORK_SUPPORT_MENU)
875 TITLE:=Traffic shaper support for Berkeley Packet Filter
880 $(LINUX_DIR)/net/sched/cls_bpf.ko \
881 $(LINUX_DIR)/net/sched/act_bpf.ko
882 AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
885 $(eval $(call KernelPackage,sched-bpf))
888 define KernelPackage/bpf-test
889 SUBMENU:=$(NETWORK_SUPPORT_MENU)
890 TITLE:=Test Berkeley Packet Filter functionality
891 KCONFIG:=CONFIG_TEST_BPF
892 FILES:=$(LINUX_DIR)/lib/test_bpf.ko
895 $(eval $(call KernelPackage,bpf-test))
898 define KernelPackage/sched
899 SUBMENU:=$(NETWORK_SUPPORT_MENU)
900 TITLE:=Extra traffic schedulers
901 DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-lib-crc32c
903 CONFIG_NET_SCH_CODEL \
904 CONFIG_NET_SCH_DSMARK \
905 CONFIG_NET_SCH_FIFO \
906 CONFIG_NET_SCH_GRED \
907 CONFIG_NET_SCH_MULTIQ \
908 CONFIG_NET_SCH_PRIO \
911 CONFIG_NET_SCH_TEQL \
914 CONFIG_NET_ACT_POLICE \
915 CONFIG_NET_ACT_GACT \
917 CONFIG_NET_ACT_PEDIT \
918 CONFIG_NET_ACT_SIMP \
919 CONFIG_NET_ACT_CSUM \
920 CONFIG_NET_EMATCH_CMP \
921 CONFIG_NET_EMATCH_NBYTE \
922 CONFIG_NET_EMATCH_META \
923 CONFIG_NET_EMATCH_TEXT
924 FILES:=$(SCHED_FILES_EXTRA)
925 AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
928 define KernelPackage/sched/description
929 Extra kernel schedulers modules for IP traffic
932 $(eval $(call KernelPackage,sched))
935 define KernelPackage/tcp-bbr
936 SUBMENU:=$(NETWORK_SUPPORT_MENU)
937 TITLE:=BBR TCP congestion control
938 DEPENDS:=+LINUX_4_9:kmod-sched
940 CONFIG_TCP_CONG_ADVANCED=y \
942 FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
943 AUTOLOAD:=$(call AutoLoad,74,tcp_bbr)
946 define KernelPackage/tcp-bbr/description
947 Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
948 control. It requires the fq ("Fair Queue") pacing packet scheduler.
949 For kernel 4.13+, TCP internal pacing is implemented as fallback.
952 ifdef CONFIG_LINUX_4_9
953 TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr-k4_9.conf
955 TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
958 define KernelPackage/tcp-bbr/install
959 $(INSTALL_DIR) $(1)/etc/sysctl.d
960 $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
963 $(eval $(call KernelPackage,tcp-bbr))
966 define KernelPackage/ax25
967 SUBMENU:=$(NETWORK_SUPPORT_MENU)
969 DEPENDS:=+kmod-lib-crc16
975 $(LINUX_DIR)/net/ax25/ax25.ko \
976 $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
977 AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
980 define KernelPackage/ax25/description
981 Kernel modules for AX25 support
984 $(eval $(call KernelPackage,ax25))
987 define KernelPackage/pktgen
988 SUBMENU:=$(NETWORK_SUPPORT_MENU)
989 DEPENDS:=@!TARGET_uml
990 TITLE:=Network packet generator
991 KCONFIG:=CONFIG_NET_PKTGEN
992 FILES:=$(LINUX_DIR)/net/core/pktgen.ko
993 AUTOLOAD:=$(call AutoLoad,99,pktgen)
996 define KernelPackage/pktgen/description
997 Kernel modules for the Network Packet Generator
1000 $(eval $(call KernelPackage,pktgen))
1002 define KernelPackage/l2tp
1003 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1004 TITLE:=Layer Two Tunneling Protocol (L2TP)
1007 +IPV6:kmod-udptunnel6
1008 KCONFIG:=CONFIG_L2TP \
1010 CONFIG_L2TP_DEBUGFS=n
1011 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
1012 $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
1013 AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
1016 define KernelPackage/l2tp/description
1017 Kernel modules for L2TP V3 Support
1020 $(eval $(call KernelPackage,l2tp))
1023 define KernelPackage/l2tp-eth
1024 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1025 TITLE:=L2TP ethernet pseudowire support for L2TPv3
1027 KCONFIG:=CONFIG_L2TP_ETH
1028 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
1029 AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
1032 define KernelPackage/l2tp-eth/description
1033 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
1036 $(eval $(call KernelPackage,l2tp-eth))
1038 define KernelPackage/l2tp-ip
1039 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1040 TITLE:=L2TP IP encapsulation for L2TPv3
1042 KCONFIG:=CONFIG_L2TP_IP
1044 $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
1045 $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
1046 AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
1049 define KernelPackage/l2tp-ip/description
1050 Kernel modules for L2TP IP encapsulation for L2TPv3
1053 $(eval $(call KernelPackage,l2tp-ip))
1056 define KernelPackage/sctp
1057 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1058 TITLE:=SCTP protocol kernel support
1061 CONFIG_SCTP_DBG_MSG=n \
1062 CONFIG_SCTP_DBG_OBJCNT=n \
1063 CONFIG_SCTP_HMAC_NONE=n \
1064 CONFIG_SCTP_HMAC_SHA1=n \
1065 CONFIG_SCTP_HMAC_MD5=y \
1066 CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
1067 CONFIG_SCTP_COOKIE_HMAC_MD5=y \
1068 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
1069 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
1070 CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
1071 FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
1072 AUTOLOAD:= $(call AutoLoad,32,sctp)
1073 DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
1076 define KernelPackage/sctp/description
1077 Kernel modules for SCTP protocol support
1080 $(eval $(call KernelPackage,sctp))
1083 define KernelPackage/netem
1084 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1085 TITLE:=Network emulation functionality
1086 DEPENDS:=+kmod-sched
1087 KCONFIG:=CONFIG_NET_SCH_NETEM
1088 FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
1089 AUTOLOAD:=$(call AutoLoad,99,netem)
1092 define KernelPackage/netem/description
1093 Kernel modules for emulating the properties of wide area networks
1096 $(eval $(call KernelPackage,netem))
1098 define KernelPackage/slip
1099 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1104 CONFIG_SLIP_COMPRESSED=y \
1105 CONFIG_SLIP_SMART=y \
1106 CONFIG_SLIP_MODE_SLIP6=y
1109 $(LINUX_DIR)/drivers/net/slip/slip.ko
1110 AUTOLOAD:=$(call AutoLoad,30,slip)
1113 define KernelPackage/slip/description
1114 Kernel modules for SLIP support
1117 $(eval $(call KernelPackage,slip))
1119 define KernelPackage/dnsresolver
1120 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1121 TITLE:=In-kernel DNS Resolver
1122 KCONFIG:= CONFIG_DNS_RESOLVER
1123 FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
1124 AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
1127 $(eval $(call KernelPackage,dnsresolver))
1129 define KernelPackage/rxrpc
1130 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1131 TITLE:=AF_RXRPC support
1136 CONFIG_AF_RXRPC_DEBUG=n
1138 $(LINUX_DIR)/net/rxrpc/af-rxrpc.ko@lt4.11 \
1139 $(LINUX_DIR)/net/rxrpc/rxrpc.ko@ge4.11 \
1140 $(LINUX_DIR)/net/rxrpc/rxkad.ko@lt4.7
1141 AUTOLOAD:=$(call AutoLoad,30,rxkad@lt4.7 af-rxrpc.ko@lt4.11 rxrpc.ko@ge4.11)
1142 DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
1145 define KernelPackage/rxrpc/description
1146 Kernel support for AF_RXRPC; required for AFS client
1149 $(eval $(call KernelPackage,rxrpc))
1151 define KernelPackage/mpls
1152 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1154 DEPENDS:=+LINUX_4_19:kmod-iptunnel
1158 CONFIG_LWTUNNEL_BPF=n \
1159 CONFIG_NET_MPLS_GSO=m \
1160 CONFIG_MPLS_ROUTING=m \
1161 CONFIG_MPLS_IPTUNNEL=m
1163 $(LINUX_DIR)/net/mpls/mpls_gso.ko \
1164 $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
1165 $(LINUX_DIR)/net/mpls/mpls_router.ko
1166 AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
1169 define KernelPackage/mpls/description
1170 Kernel support for MPLS
1173 $(eval $(call KernelPackage,mpls))
1175 define KernelPackage/9pnet
1176 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1177 TITLE:=Plan 9 Resource Sharing Support (9P2000)
1178 DEPENDS:=@VIRTIO_SUPPORT
1181 CONFIG_NET_9P_DEBUG=n \
1182 CONFIG_NET_9P_XEN=n \
1183 CONFIG_NET_9P_VIRTIO
1185 $(LINUX_DIR)/net/9p/9pnet.ko \
1186 $(LINUX_DIR)/net/9p/9pnet_virtio.ko
1187 AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
1190 define KernelPackage/9pnet/description
1191 Kernel support support for
1192 Plan 9 resource sharing via the 9P2000 protocol.
1195 $(eval $(call KernelPackage,9pnet))
1198 define KernelPackage/nlmon
1199 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1200 TITLE:=Virtual netlink monitoring device
1201 KCONFIG:=CONFIG_NLMON
1202 FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
1203 AUTOLOAD:=$(call AutoProbe,nlmon)
1206 define KernelPackage/nlmon/description
1207 Kernel module which adds a monitoring device for netlink.
1210 $(eval $(call KernelPackage,nlmon))
1213 define KernelPackage/mdio
1214 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1215 TITLE:=MDIO (clause 45) PHY support
1216 KCONFIG:=CONFIG_MDIO
1218 FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
1219 AUTOLOAD:=$(call AutoLoad,32,mdio)
1222 define KernelPackage/mdio/description
1223 Kernel modules for MDIO (clause 45) PHY support
1226 $(eval $(call KernelPackage,mdio))
1228 define KernelPackage/macsec
1229 SUBMENU:=$(NETWORK_SUPPORT_MENU)
1230 TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
1231 DEPENDS:=+kmod-crypto-gcm
1232 KCONFIG:=CONFIG_MACSEC
1233 FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
1234 AUTOLOAD:=$(call AutoLoad,13,macsec)
1237 define KernelPackage/macsec/description
1238 MACsec is an encryption standard for Ethernet.
1241 $(eval $(call KernelPackage,macsec))