2 # Copyright (C) 2006-2008 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/appletalk
46 SUBMENU:=$(NETWORK_SUPPORT_MENU)
47 TITLE:=Appletalk protocol support
50 CONFIG_DEV_APPLETALK \
52 CONFIG_IPDDP_ENCAP=y \
55 $(LINUX_DIR)/net/appletalk/appletalk.ko \
56 $(LINUX_DIR)/drivers/net/appletalk/ipddp.ko
57 AUTOLOAD:=$(call AutoLoad,40,appletalk ipddp)
60 define KernelPackage/appletalk/description
61 Kernel module for AppleTalk protocol.
64 $(eval $(call KernelPackage,appletalk))
67 define KernelPackage/bonding
68 SUBMENU:=$(NETWORK_SUPPORT_MENU)
69 TITLE:=Ethernet bonding driver
70 KCONFIG:=CONFIG_BONDING
71 FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
72 AUTOLOAD:=$(call AutoLoad,40,bonding)
75 define KernelPackage/bonding/description
76 Kernel module for NIC bonding.
79 $(eval $(call KernelPackage,bonding))
82 define KernelPackage/capi
83 SUBMENU:=$(NETWORK_SUPPORT_MENU)
84 TITLE:=CAPI (ISDN) Support
87 CONFIG_ISDN_CAPI_CAPI20 \
89 CONFIG_ISDN_CAPI_CAPIFS
91 $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
92 $(LINUX_DIR)/drivers/isdn/capi/capifs.ko \
93 $(LINUX_DIR)/drivers/isdn/capi/capi.ko
94 AUTOLOAD:=$(call AutoLoad,30,kernelcapi capifs capi)
97 define KernelPackage/capi/description
98 Kernel module for basic CAPI (ISDN) support
101 $(eval $(call KernelPackage,capi))
103 define KernelPackage/misdn
104 SUBMENU:=$(NETWORK_SUPPORT_MENU)
105 TITLE:=mISDN (ISDN) Support
112 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
113 $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
114 $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
115 AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
118 define KernelPackage/misdn/description
119 Modular ISDN driver support
122 $(eval $(call KernelPackage,misdn))
125 define KernelPackage/isdn4linux
126 SUBMENU:=$(NETWORK_SUPPORT_MENU)
127 TITLE:=Old ISDN4Linux (deprecated)
132 CONFIG_ISDN_PPP_VJ=y \
134 CONFIG_IPPP_FILTER=y \
135 CONFIG_ISDN_PPP_BSDCOMP \
136 CONFIG_ISDN_CAPI_MIDDLEWARE=y \
137 CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
138 CONFIG_ISDN_AUDIO=y \
139 CONFIG_ISDN_TTY_FAX=y \
141 CONFIG_ISDN_DIVERSION
143 $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
144 $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
145 $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
146 AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
149 define KernelPackage/isdn4linux/description
150 This driver allows you to use an ISDN adapter for networking
153 $(eval $(call KernelPackage,isdn4linux))
156 define KernelPackage/ipip
157 SUBMENU:=$(NETWORK_SUPPORT_MENU)
158 TITLE:=IP-in-IP encapsulation
159 DEPENDS:=+kmod-iptunnel4
160 KCONFIG:=CONFIG_NET_IPIP
161 FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
162 AUTOLOAD:=$(call AutoLoad,32,ipip)
165 define KernelPackage/ipip/description
166 Kernel modules for IP-in-IP encapsulation
169 $(eval $(call KernelPackage,ipip))
177 define KernelPackage/ipsec
178 SUBMENU:=$(NETWORK_SUPPORT_MENU)
179 TITLE:=IPsec related modules (IPv4 and IPv6)
180 DEPENDS:=+kmod-crypto-iv +kmod-crypto-des +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-sha1 +kmod-crypto-deflate +kmod-crypto-cbc
186 FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
187 AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
190 define KernelPackage/ipsec/description
191 Kernel modules for IPsec support in both IPv4 and IPv6.
198 $(eval $(call KernelPackage,ipsec))
204 ipv4/xfrm4_mode_beet \
205 ipv4/xfrm4_mode_transport \
206 ipv4/xfrm4_mode_tunnel \
210 define KernelPackage/ipsec4
211 SUBMENU:=$(NETWORK_SUPPORT_MENU)
212 TITLE:=IPsec related modules (IPv4)
213 DEPENDS:=kmod-ipsec +kmod-iptunnel4
218 CONFIG_INET_XFRM_MODE_BEET \
219 CONFIG_INET_XFRM_MODE_TRANSPORT \
220 CONFIG_INET_XFRM_MODE_TUNNEL \
221 CONFIG_INET_XFRM_TUNNEL
222 FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
223 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
226 define KernelPackage/ipsec4/description
227 Kernel modules for IPsec support in IPv4.
233 - xfrm4_mode_transport
238 $(eval $(call KernelPackage,ipsec4))
244 ipv6/xfrm6_mode_beet \
245 ipv6/xfrm6_mode_transport \
246 ipv6/xfrm6_mode_tunnel \
250 define KernelPackage/ipsec6
251 SUBMENU:=$(NETWORK_SUPPORT_MENU)
252 TITLE:=IPsec related modules (IPv6)
253 DEPENDS:=kmod-ipsec +kmod-iptunnel6
257 CONFIG_INET6_IPCOMP \
258 CONFIG_INET6_XFRM_MODE_BEET \
259 CONFIG_INET6_XFRM_MODE_TRANSPORT \
260 CONFIG_INET6_XFRM_MODE_TUNNEL \
261 CONFIG_INET6_XFRM_TUNNEL
262 FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
263 AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
266 define KernelPackage/ipsec6/description
267 Kernel modules for IPsec support in IPv6.
273 - xfrm6_mode_transport
278 $(eval $(call KernelPackage,ipsec6))
281 # NOTE: tunnel4 is not selectable by itself, so enable ipip for that
282 define KernelPackage/iptunnel4
283 SUBMENU:=$(NETWORK_SUPPORT_MENU)
284 TITLE:=IPv4 tunneling
288 FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
289 AUTOLOAD:=$(call AutoLoad,31,tunnel4)
292 define KernelPackage/iptunnel4/description
293 Kernel modules for IPv4 tunneling
296 $(eval $(call KernelPackage,iptunnel4))
299 define KernelPackage/iptunnel6
300 SUBMENU:=$(NETWORK_SUPPORT_MENU)
301 TITLE:=IPv6 tunneling
305 FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
306 AUTOLOAD:=$(call AutoLoad,31,tunnel6)
309 define KernelPackage/iptunnel6/description
310 Kernel modules for IPv6 tunneling
313 $(eval $(call KernelPackage,iptunnel6))
316 define KernelPackage/ipv6
317 SUBMENU:=$(NETWORK_SUPPORT_MENU)
321 CONFIG_IPV6_PRIVACY=y \
322 CONFIG_IPV6_MULTIPLE_TABLES=y \
323 CONFIG_IPV6_MROUTE=y \
324 CONFIG_IPV6_PIMSM_V2=n \
325 CONFIG_IPV6_SUBTREES=y
326 FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko
327 AUTOLOAD:=$(call AutoLoad,20,ipv6)
330 define KernelPackage/ipv6/description
331 Kernel modules for IPv6 support
334 $(eval $(call KernelPackage,ipv6))
337 define KernelPackage/sit
338 SUBMENU:=$(NETWORK_SUPPORT_MENU)
339 DEPENDS:=+kmod-ipv6 +kmod-iptunnel4
340 TITLE:=IPv6-in-IPv4 tunnel
341 KCONFIG:=CONFIG_IPV6_SIT \
342 CONFIG_IPV6_SIT_6RD=y
343 FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
344 AUTOLOAD:=$(call AutoLoad,32,sit)
347 define KernelPackage/sit/description
348 Kernel modules for IPv6-in-IPv4 tunnelling
351 $(eval $(call KernelPackage,sit))
354 define KernelPackage/ip6-tunnel
355 SUBMENU:=$(NETWORK_SUPPORT_MENU)
356 TITLE:=IP-in-IPv6 tunnelling
357 DEPENDS:= +kmod-ipv6 +kmod-iptunnel6
358 KCONFIG:= CONFIG_IPV6_TUNNEL
359 FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
360 AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
363 define KernelPackage/ip6-tunnel/description
364 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
367 $(eval $(call KernelPackage,ip6-tunnel))
370 define KernelPackage/gre
371 SUBMENU:=$(NETWORK_SUPPORT_MENU)
373 DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6
374 KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
375 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.37)),1)
376 FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
377 AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
379 FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko
380 AUTOLOAD:=$(call AutoLoad,39,ip_gre)
384 define KernelPackage/gre/description
385 Generic Routing Encapsulation support
388 $(eval $(call KernelPackage,gre))
391 define KernelPackage/tun
392 SUBMENU:=$(NETWORK_SUPPORT_MENU)
393 TITLE:=Universal TUN/TAP driver
395 FILES:=$(LINUX_DIR)/drivers/net/tun.ko
396 AUTOLOAD:=$(call AutoLoad,30,tun)
399 define KernelPackage/tun/description
400 Kernel support for the TUN/TAP tunneling device
403 $(eval $(call KernelPackage,tun))
406 define KernelPackage/ppp
407 SUBMENU:=$(NETWORK_SUPPORT_MENU)
409 DEPENDS:=+kmod-crc-ccitt
415 $(LINUX_DIR)/drivers/net/ppp_async.ko \
416 $(LINUX_DIR)/drivers/net/ppp_generic.ko \
417 $(LINUX_DIR)/drivers/net/slhc.ko
418 AUTOLOAD:=$(call AutoLoad,30,slhc ppp_generic ppp_async)
421 define KernelPackage/ppp/description
422 Kernel modules for PPP support
425 $(eval $(call KernelPackage,ppp))
428 define KernelPackage/ppp-synctty
429 SUBMENU:=$(NETWORK_SUPPORT_MENU)
430 TITLE:=PPP sync tty support
432 KCONFIG:=CONFIG_PPP_SYNC_TTY
433 FILES:=$(LINUX_DIR)/drivers/net/ppp_synctty.ko
434 AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
437 define KernelPackage/ppp-synctty/description
438 Kernel modules for PPP sync tty support
441 $(eval $(call KernelPackage,ppp-synctty))
444 define KernelPackage/pppoe
445 SUBMENU:=$(NETWORK_SUPPORT_MENU)
448 KCONFIG:=CONFIG_PPPOE
450 $(LINUX_DIR)/drivers/net/pppoe.ko \
451 $(LINUX_DIR)/drivers/net/pppox.ko
452 AUTOLOAD:=$(call AutoLoad,40,pppox pppoe)
455 define KernelPackage/pppoe/description
456 Kernel modules for PPPoE (PPP over Ethernet) support
459 $(eval $(call KernelPackage,pppoe))
462 define KernelPackage/pppoa
463 SUBMENU:=$(NETWORK_SUPPORT_MENU)
465 DEPENDS:=kmod-ppp +kmod-atm
466 KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
467 FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
468 AUTOLOAD:=$(call AutoLoad,40,pppoatm)
471 define KernelPackage/pppoa/description
472 Kernel modules for PPPoA (PPP over ATM) support
475 $(eval $(call KernelPackage,pppoa))
478 define KernelPackage/pptp
479 SUBMENU:=$(NETWORK_SUPPORT_MENU)
481 DEPENDS:=kmod-ppp +kmod-gre @LINUX_2_6_37||LINUX_2_6_38||LINUX_2_6_39
483 FILES:=$(LINUX_DIR)/drivers/net/pptp.ko
484 AUTOLOAD:=$(call AutoLoad,41,pptp)
487 $(eval $(call KernelPackage,pptp))
490 define KernelPackage/pppol2tp
491 SUBMENU:=$(NETWORK_SUPPORT_MENU)
492 TITLE:=PPPoL2TP support
493 DEPENDS:=kmod-ppp +kmod-pppoe +LINUX_2_6_35||LINUX_2_6_36||LINUX_2_6_37||LINUX_2_6_38||LINUX_2_6_39:kmod-l2tp
494 KCONFIG:=CONFIG_PPPOL2TP
495 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.35)),1)
496 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
497 AUTOLOAD:=$(call AutoLoad,40,l2tp_ppp)
499 FILES:=$(LINUX_DIR)/drivers/net/pppol2tp.ko
500 AUTOLOAD:=$(call AutoLoad,40,pppol2tp)
504 define KernelPackage/pppol2tp/description
505 Kernel modules for PPPoL2TP (PPP over L2TP) support
508 $(eval $(call KernelPackage,pppol2tp))
511 define KernelPackage/ipoa
512 SUBMENU:=$(NETWORK_SUPPORT_MENU)
515 KCONFIG:=CONFIG_ATM_CLIP
516 FILES:=$(LINUX_DIR)/net/atm/clip.ko
517 AUTOLOAD:=$(call AutoLoad,40,clip)
520 define KernelPackage/ipoa/description
521 Kernel modules for IPoA (IP over ATM) support
524 $(eval $(call KernelPackage,ipoa))
527 define KernelPackage/mppe
528 SUBMENU:=$(NETWORK_SUPPORT_MENU)
529 TITLE:=Microsoft PPP compression/encryption
530 DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
532 CONFIG_PPP_MPPE_MPPC \
534 FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe.ko
535 AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
538 define KernelPackage/mppe/description
539 Kernel modules for Microsoft PPP compression/encryption
542 $(eval $(call KernelPackage,mppe))
545 define KernelPackage/sched
546 SUBMENU:=$(NETWORK_SUPPORT_MENU)
547 TITLE:=Traffic schedulers
550 CONFIG_NET_SCH_DSMARK \
551 CONFIG_NET_SCH_ESFQ \
552 CONFIG_NET_SCH_ESFQ_NFCT=y \
553 CONFIG_NET_SCH_FIFO \
554 CONFIG_NET_SCH_GRED \
555 CONFIG_NET_SCH_HFSC \
557 CONFIG_NET_SCH_INGRESS \
558 CONFIG_NET_SCH_PRIO \
562 CONFIG_NET_SCH_TEQL \
565 CONFIG_NET_CLS_ACT=y \
566 CONFIG_NET_CLS_BASIC \
567 CONFIG_NET_CLS_FLOW \
569 CONFIG_NET_CLS_ROUTE4 \
570 CONFIG_NET_CLS_TCINDEX \
572 CONFIG_NET_ACT_MIRRED \
574 CONFIG_NET_ACT_POLICE \
575 CONFIG_NET_ACT_CONNMARK \
576 CONFIG_NET_ACT_SKBEDIT \
577 CONFIG_NET_EMATCH=y \
578 CONFIG_NET_EMATCH_CMP \
579 CONFIG_NET_EMATCH_NBYTE \
580 CONFIG_NET_EMATCH_U32 \
581 CONFIG_NET_EMATCH_META \
582 CONFIG_NET_EMATCH_TEXT
583 FILES:=$(LINUX_DIR)/net/sched/*.ko
586 define KernelPackage/sched/description
587 Kernel schedulers for IP traffic
590 $(eval $(call KernelPackage,sched))
593 define KernelPackage/ax25
594 SUBMENU:=$(NETWORK_SUPPORT_MENU)
600 $(LINUX_DIR)/net/ax25/ax25.ko \
601 $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
602 AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
603 $(call AddDepends/crc16)
606 define KernelPackage/ax25/description
607 Kernel modules for AX25 support
610 $(eval $(call KernelPackage,ax25))
613 define KernelPackage/mp-alg
614 SUBMENU:=$(NETWORK_SUPPORT_MENU)
615 TITLE:=ECMP caching algorithms
617 CONFIG_IP_ROUTE_MULTIPATH_RR \
618 CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
619 CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
620 CONFIG_IP_ROUTE_MULTIPATH_DRR
622 $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
623 $(LINUX_DIR)/net/ipv4/multipath_random.ko \
624 $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
625 $(LINUX_DIR)/net/ipv4/multipath_drr.ko
626 AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
629 define KernelPackage/mp-alg/description
630 Kernel modules that provide several different algorithms for multipath
631 route selection from the route cache. The iproute "mpath" argument allows
632 specifying which algorithm to use for routes.
633 quagga (at least <=0.99.6) requires a multipath patch to support this
634 cached mp route feature.
637 $(eval $(call KernelPackage,mp-alg))
640 define KernelPackage/pktgen
641 SUBMENU:=$(NETWORK_SUPPORT_MENU)
642 DEPENDS:=@!TARGET_uml
643 TITLE:=Network packet generator
644 KCONFIG:=CONFIG_NET_PKTGEN
645 FILES:=$(LINUX_DIR)/net/core/pktgen.ko
646 AUTOLOAD:=$(call AutoLoad,99,pktgen)
649 define KernelPackage/pktgen/description
650 Kernel modules for the Network Packet Generator
653 $(eval $(call KernelPackage,pktgen))
655 define KernelPackage/l2tp
656 SUBMENU:=$(NETWORK_SUPPORT_MENU)
657 DEPENDS:=@LINUX_2_6_35||LINUX_2_6_36||LINUX_2_6_37||LINUX_2_6_38||LINUX_2_6_39
658 TITLE:=Layer Two Tunneling Protocol (L2TP)
659 KCONFIG:=CONFIG_L2TP \
661 CONFIG_L2TP_DEBUGFS=n
662 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
663 $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
664 AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
667 define KernelPackage/l2tp/description
668 Kernel modules for L2TP V3 Support
671 $(eval $(call KernelPackage,l2tp))
674 define KernelPackage/l2tp-eth
675 SUBMENU:=$(NETWORK_SUPPORT_MENU)
676 TITLE:=L2TP ethernet pseudowire support for L2TPv3
678 KCONFIG:=CONFIG_L2TP_ETH
679 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
680 AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
683 define KernelPackage/l2tp-eth/description
684 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
687 $(eval $(call KernelPackage,l2tp-eth))
689 define KernelPackage/l2tp-ip
690 SUBMENU:=$(NETWORK_SUPPORT_MENU)
691 TITLE:=L2TP IP encapsulation for L2TPv3
693 KCONFIG:=CONFIG_L2TP_IP
694 FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
695 AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
698 define KernelPackage/l2tp-ip/description
699 Kernel modules for L2TP IP encapsulation for L2TPv3
702 $(eval $(call KernelPackage,l2tp-ip))
705 define KernelPackage/sctp
706 SUBMENU:=$(NETWORK_SUPPORT_MENU)
707 TITLE:=SCTP protocol kernel support
710 CONFIG_SCTP_DBG_MSG=n \
711 CONFIG_SCTP_DBG_OBJCNT=n \
712 CONFIG_SCTP_HMAC_NONE=n \
713 CONFIG_SCTP_HMAC_SHA1=n \
714 CONFIG_SCTP_HMAC_MD5=y
715 FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
716 AUTOLOAD:= $(call AutoLoad,32,sctp)
717 DEPENDS:=+kmod-libcrc32c +kmod-crypto-md5 +kmod-crypto-hmac
720 define KernelPackage/sctp/description
721 Kernel modules for SCTP protocol support
724 $(eval $(call KernelPackage,sctp))