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
8NETWORK_SUPPORT_MENU:=Network Support
9
10define KernelPackage/atm
11  SUBMENU:=$(NETWORK_SUPPORT_MENU)
12  TITLE:=ATM support
13  KCONFIG:= \
14	CONFIG_ATM \
15	CONFIG_ATM_BR2684
16  FILES:= \
17	$(LINUX_DIR)/net/atm/atm.ko \
18	$(LINUX_DIR)/net/atm/br2684.ko
19  AUTOLOAD:=$(call AutoLoad,30,atm br2684)
20endef
21
22define KernelPackage/atm/description
23 Kernel modules for ATM support
24endef
25
26$(eval $(call KernelPackage,atm))
27
28
29define KernelPackage/atmtcp
30  SUBMENU:=$(NETWORK_SUPPORT_MENU)
31  TITLE:=ATM over TCP
32  DEPENDS:=kmod-atm
33  KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
34  FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
35  AUTOLOAD:=$(call AutoLoad,40,atmtcp)
36endef
37
38define KernelPackage/atmtcp/description
39 Kernel module for ATM over TCP support
40endef
41
42$(eval $(call KernelPackage,atmtcp))
43
44
45define KernelPackage/appletalk
46  SUBMENU:=$(NETWORK_SUPPORT_MENU)
47  TITLE:=Appletalk protocol support
48  KCONFIG:= \
49	CONFIG_ATALK \
50	CONFIG_DEV_APPLETALK \
51	CONFIG_IPDDP \
52	CONFIG_IPDDP_ENCAP=y \
53	CONFIG_IPDDP_DECAP=y
54  FILES:= \
55	$(LINUX_DIR)/net/appletalk/appletalk.ko \
56	$(LINUX_DIR)/drivers/net/appletalk/ipddp.ko
57  AUTOLOAD:=$(call AutoLoad,40,appletalk ipddp)
58endef
59
60define KernelPackage/appletalk/description
61 Kernel module for AppleTalk protocol.
62endef
63
64$(eval $(call KernelPackage,appletalk))
65
66
67define 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)
73endef
74
75define KernelPackage/bonding/description
76 Kernel module for NIC bonding.
77endef
78
79$(eval $(call KernelPackage,bonding))
80
81
82define KernelPackage/bridge
83  SUBMENU:=$(NETWORK_SUPPORT_MENU)
84  TITLE:=Ethernet bridging support
85  DEPENDS:=+kmod-stp
86  KCONFIG:= \
87	CONFIG_BRIDGE \
88	CONFIG_BRIDGE_IGMP_SNOOPING=y
89  FILES:=$(LINUX_DIR)/net/bridge/bridge.ko
90  AUTOLOAD:=$(call AutoLoad,11,bridge)
91endef
92
93define KernelPackage/bridge/description
94 Kernel module for Ethernet bridging.
95endef
96
97$(eval $(call KernelPackage,bridge))
98
99define KernelPackage/llc
100  SUBMENU:=$(NETWORK_SUPPORT_MENU)
101  TITLE:=ANSI/IEEE 802.2 LLC support
102  KCONFIG:=CONFIG_LLC
103  FILES:=$(LINUX_DIR)/net/llc/llc.ko
104  AUTOLOAD:=$(call AutoLoad,09,llc)
105endef
106
107define KernelPackage/llc/description
108 Kernel module for ANSI/IEEE 802.2 LLC support.
109endef
110
111$(eval $(call KernelPackage,llc))
112
113define KernelPackage/stp
114  SUBMENU:=$(NETWORK_SUPPORT_MENU)
115  TITLE:=Ethernet Spanning Tree Protocol support
116  DEPENDS:=+kmod-llc
117  KCONFIG:=CONFIG_STP
118  FILES:=$(LINUX_DIR)/net/802/stp.ko
119  AUTOLOAD:=$(call AutoLoad,10,stp)
120endef
121
122define KernelPackage/stp/description
123 Kernel module for Ethernet Spanning Tree Protocol support.
124endef
125
126$(eval $(call KernelPackage,stp))
127
128define KernelPackage/8021q
129  SUBMENU:=$(NETWORK_SUPPORT_MENU)
130  TITLE:=802.1Q VLAN support
131  KCONFIG:=CONFIG_VLAN_8021Q \
132		CONFIG_VLAN_8021Q_GVRP=n
133  FILES:=$(LINUX_DIR)/net/8021q/8021q.ko
134  AUTOLOAD:=$(call AutoLoad,12,8021q)
135endef
136
137define KernelPackage/8021q/description
138 Kernel module for 802.1Q VLAN support
139endef
140
141$(eval $(call KernelPackage,8021q))
142
143
144define KernelPackage/capi
145  SUBMENU:=$(NETWORK_SUPPORT_MENU)
146  TITLE:=CAPI (ISDN) Support
147  KCONFIG:= \
148	CONFIG_ISDN_CAPI \
149	CONFIG_ISDN_CAPI_CAPI20 \
150	CONFIG_ISDN_CAPIFS \
151	CONFIG_ISDN_CAPI_CAPIFS
152  FILES:= \
153	$(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
154	$(LINUX_DIR)/drivers/isdn/capi/capi.ko
155  AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
156endef
157
158define KernelPackage/capi/description
159 Kernel module for basic CAPI (ISDN) support
160endef
161
162$(eval $(call KernelPackage,capi))
163
164define KernelPackage/misdn
165  SUBMENU:=$(NETWORK_SUPPORT_MENU)
166  TITLE:=mISDN (ISDN) Support
167  KCONFIG:= \
168	CONFIG_ISDN=y \
169  	CONFIG_MISDN \
170	CONFIG_MISDN_DSP \
171	CONFIG_MISDN_L1OIP
172  FILES:= \
173  	$(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
174	$(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
175	$(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
176  AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
177endef
178
179define KernelPackage/misdn/description
180  Modular ISDN driver support
181endef
182
183$(eval $(call KernelPackage,misdn))
184
185
186define KernelPackage/isdn4linux
187  SUBMENU:=$(NETWORK_SUPPORT_MENU)
188  TITLE:=Old ISDN4Linux (deprecated)
189  KCONFIG:= \
190	CONFIG_ISDN=y \
191    CONFIG_ISDN_I4L \
192    CONFIG_ISDN_PPP=y \
193    CONFIG_ISDN_PPP_VJ=y \
194    CONFIG_ISDN_MPP=y \
195    CONFIG_IPPP_FILTER=y \
196    CONFIG_ISDN_PPP_BSDCOMP \
197    CONFIG_ISDN_CAPI_MIDDLEWARE=y \
198    CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
199    CONFIG_ISDN_AUDIO=y \
200    CONFIG_ISDN_TTY_FAX=y \
201    CONFIG_ISDN_X25=y \
202    CONFIG_ISDN_DIVERSION
203  FILES:= \
204    $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
205	$(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
206	$(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
207  AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
208endef
209
210define KernelPackage/isdn4linux/description
211  This driver allows you to use an ISDN adapter for networking
212endef
213
214$(eval $(call KernelPackage,isdn4linux))
215
216
217define KernelPackage/ipip
218  SUBMENU:=$(NETWORK_SUPPORT_MENU)
219  TITLE:=IP-in-IP encapsulation
220  DEPENDS:=+kmod-iptunnel4
221  KCONFIG:=CONFIG_NET_IPIP
222  FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
223  AUTOLOAD:=$(call AutoLoad,32,ipip)
224endef
225
226define KernelPackage/ipip/description
227 Kernel modules for IP-in-IP encapsulation
228endef
229
230$(eval $(call KernelPackage,ipip))
231
232
233IPSEC-m:= \
234	key/af_key \
235	xfrm/xfrm_ipcomp \
236	xfrm/xfrm_user \
237
238define KernelPackage/ipsec
239  SUBMENU:=$(NETWORK_SUPPORT_MENU)
240  TITLE:=IPsec related modules (IPv4 and IPv6)
241  DEPENDS:=+kmod-crypto-authenc +kmod-crypto-iv +kmod-crypto-des +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-sha1 +kmod-crypto-deflate +kmod-crypto-cbc
242  KCONFIG:= \
243	CONFIG_NET_KEY \
244	CONFIG_XFRM_USER \
245	CONFIG_INET_IPCOMP \
246	CONFIG_XFRM_IPCOMP
247  FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
248  AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
249endef
250
251define KernelPackage/ipsec/description
252 Kernel modules for IPsec support in both IPv4 and IPv6.
253 Includes:
254 - af_key
255 - xfrm_ipcomp
256 - xfrm_user
257endef
258
259$(eval $(call KernelPackage,ipsec))
260
261
262IPSEC4-m:= \
263	ipv4/ah4 \
264	ipv4/esp4 \
265	ipv4/xfrm4_mode_beet \
266	ipv4/xfrm4_mode_transport \
267	ipv4/xfrm4_mode_tunnel \
268	ipv4/xfrm4_tunnel \
269	ipv4/ipcomp \
270
271define KernelPackage/ipsec4
272  SUBMENU:=$(NETWORK_SUPPORT_MENU)
273  TITLE:=IPsec related modules (IPv4)
274  DEPENDS:=kmod-ipsec +kmod-iptunnel4
275  KCONFIG:= \
276	CONFIG_INET_AH \
277	CONFIG_INET_ESP \
278	CONFIG_INET_IPCOMP \
279	CONFIG_INET_XFRM_MODE_BEET \
280	CONFIG_INET_XFRM_MODE_TRANSPORT \
281	CONFIG_INET_XFRM_MODE_TUNNEL \
282	CONFIG_INET_XFRM_TUNNEL
283  FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
284  AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
285endef
286
287define KernelPackage/ipsec4/description
288 Kernel modules for IPsec support in IPv4.
289 Includes:
290 - ah4
291 - esp4
292 - ipcomp4
293 - xfrm4_mode_beet
294 - xfrm4_mode_transport
295 - xfrm4_mode_tunnel
296 - xfrm4_tunnel
297endef
298
299$(eval $(call KernelPackage,ipsec4))
300
301
302IPSEC6-m:= \
303	ipv6/ah6 \
304	ipv6/esp6 \
305	ipv6/xfrm6_mode_beet \
306	ipv6/xfrm6_mode_transport \
307	ipv6/xfrm6_mode_tunnel \
308	ipv6/xfrm6_tunnel \
309	ipv6/ipcomp6 \
310
311define KernelPackage/ipsec6
312  SUBMENU:=$(NETWORK_SUPPORT_MENU)
313  TITLE:=IPsec related modules (IPv6)
314  DEPENDS:=kmod-ipsec +kmod-iptunnel6
315  KCONFIG:= \
316	CONFIG_INET6_AH \
317	CONFIG_INET6_ESP \
318	CONFIG_INET6_IPCOMP \
319	CONFIG_INET6_XFRM_MODE_BEET \
320	CONFIG_INET6_XFRM_MODE_TRANSPORT \
321	CONFIG_INET6_XFRM_MODE_TUNNEL \
322	CONFIG_INET6_XFRM_TUNNEL
323  FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
324  AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
325endef
326
327define KernelPackage/ipsec6/description
328 Kernel modules for IPsec support in IPv6.
329 Includes:
330 - ah6
331 - esp6
332 - ipcomp6
333 - xfrm6_mode_beet
334 - xfrm6_mode_transport
335 - xfrm6_mode_tunnel
336 - xfrm6_tunnel
337endef
338
339$(eval $(call KernelPackage,ipsec6))
340
341
342# NOTE: tunnel4 is not selectable by itself, so enable ipip for that
343define KernelPackage/iptunnel4
344  SUBMENU:=$(NETWORK_SUPPORT_MENU)
345  TITLE:=IPv4 tunneling
346  KCONFIG:= \
347	CONFIG_NET_IPIP \
348	CONFIG_INET_TUNNEL
349  FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
350  AUTOLOAD:=$(call AutoLoad,31,tunnel4)
351endef
352
353define KernelPackage/iptunnel4/description
354 Kernel modules for IPv4 tunneling
355endef
356
357$(eval $(call KernelPackage,iptunnel4))
358
359
360define KernelPackage/iptunnel6
361  SUBMENU:=$(NETWORK_SUPPORT_MENU)
362  TITLE:=IPv6 tunneling
363  DEPENDS:= +kmod-ipv6
364  KCONFIG:= \
365	CONFIG_INET6_TUNNEL
366  FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
367  AUTOLOAD:=$(call AutoLoad,31,tunnel6)
368endef
369
370define KernelPackage/iptunnel6/description
371 Kernel modules for IPv6 tunneling
372endef
373
374$(eval $(call KernelPackage,iptunnel6))
375
376
377define KernelPackage/ipv6
378  SUBMENU:=$(NETWORK_SUPPORT_MENU)
379  TITLE:=IPv6 support
380  KCONFIG:= \
381	CONFIG_IPV6 \
382	CONFIG_IPV6_PRIVACY=y \
383	CONFIG_IPV6_MULTIPLE_TABLES=y \
384	CONFIG_IPV6_MROUTE=y \
385	CONFIG_IPV6_PIMSM_V2=n \
386	CONFIG_IPV6_SUBTREES=y
387  FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko
388  AUTOLOAD:=$(call AutoLoad,20,ipv6)
389endef
390
391define KernelPackage/ipv6/description
392 Kernel modules for IPv6 support
393endef
394
395$(eval $(call KernelPackage,ipv6))
396
397
398define KernelPackage/sit
399  SUBMENU:=$(NETWORK_SUPPORT_MENU)
400  DEPENDS:=+kmod-ipv6 +kmod-iptunnel4
401  TITLE:=IPv6-in-IPv4 tunnel
402  KCONFIG:=CONFIG_IPV6_SIT \
403	CONFIG_IPV6_SIT_6RD=y
404  FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
405  AUTOLOAD:=$(call AutoLoad,32,sit)
406endef
407
408define KernelPackage/sit/description
409 Kernel modules for IPv6-in-IPv4 tunnelling
410endef
411
412$(eval $(call KernelPackage,sit))
413
414
415define KernelPackage/ip6-tunnel
416  SUBMENU:=$(NETWORK_SUPPORT_MENU)
417  TITLE:=IP-in-IPv6 tunnelling
418  DEPENDS:= +kmod-ipv6 +kmod-iptunnel6
419  KCONFIG:= CONFIG_IPV6_TUNNEL
420  FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
421  AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
422endef
423
424define KernelPackage/ip6-tunnel/description
425 Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
426endef
427
428$(eval $(call KernelPackage,ip6-tunnel))
429
430
431define KernelPackage/gre
432  SUBMENU:=$(NETWORK_SUPPORT_MENU)
433  TITLE:=GRE support
434  DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6
435  KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
436  FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
437  AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
438endef
439
440define KernelPackage/gre/description
441 Generic Routing Encapsulation support
442endef
443
444$(eval $(call KernelPackage,gre))
445
446
447define KernelPackage/tun
448  SUBMENU:=$(NETWORK_SUPPORT_MENU)
449  TITLE:=Universal TUN/TAP driver
450  KCONFIG:=CONFIG_TUN
451  FILES:=$(LINUX_DIR)/drivers/net/tun.ko
452  AUTOLOAD:=$(call AutoLoad,30,tun)
453endef
454
455define KernelPackage/tun/description
456 Kernel support for the TUN/TAP tunneling device
457endef
458
459$(eval $(call KernelPackage,tun))
460
461
462define KernelPackage/ppp
463  SUBMENU:=$(NETWORK_SUPPORT_MENU)
464  TITLE:=PPP modules
465  DEPENDS:=+kmod-lib-crc-ccitt
466  KCONFIG:= \
467	CONFIG_PPP \
468	CONFIG_PPP_ASYNC \
469	CONFIG_SLHC
470  FILES:= \
471	$(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
472	$(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko \
473	$(LINUX_DIR)/drivers/net/slip/slhc.ko
474  AUTOLOAD:=$(call AutoLoad,30,slhc ppp_generic ppp_async)
475endef
476
477define KernelPackage/ppp/description
478 Kernel modules for PPP support
479endef
480
481$(eval $(call KernelPackage,ppp))
482
483
484define KernelPackage/ppp-synctty
485  SUBMENU:=$(NETWORK_SUPPORT_MENU)
486  TITLE:=PPP sync tty support
487  DEPENDS:=kmod-ppp
488  KCONFIG:=CONFIG_PPP_SYNC_TTY
489  FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
490  AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
491endef
492
493define KernelPackage/ppp-synctty/description
494 Kernel modules for PPP sync tty support
495endef
496
497$(eval $(call KernelPackage,ppp-synctty))
498
499
500define KernelPackage/pppox
501  SUBMENU:=$(NETWORK_SUPPORT_MENU)
502  TITLE:=PPPoX helper
503  DEPENDS:=kmod-ppp
504  KCONFIG:=CONFIG_PPPOE
505  FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
506  AUTOLOAD:=$(call AutoLoad,31,pppox)
507endef
508
509define KernelPackage/pppox/description
510 Kernel helper module for PPPoE and PPTP support
511endef
512
513$(eval $(call KernelPackage,pppox))
514
515
516define KernelPackage/pppoe
517  SUBMENU:=$(NETWORK_SUPPORT_MENU)
518  TITLE:=PPPoE support
519  DEPENDS:=kmod-ppp +kmod-pppox
520  KCONFIG:=CONFIG_PPPOE
521  FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
522  AUTOLOAD:=$(call AutoLoad,32,pppoe)
523endef
524
525define KernelPackage/pppoe/description
526 Kernel module for PPPoE (PPP over Ethernet) support
527endef
528
529$(eval $(call KernelPackage,pppoe))
530
531
532define KernelPackage/pppoa
533  SUBMENU:=$(NETWORK_SUPPORT_MENU)
534  TITLE:=PPPoA support
535  DEPENDS:=kmod-ppp +kmod-atm
536  KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
537  FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
538  AUTOLOAD:=$(call AutoLoad,40,pppoatm)
539endef
540
541define KernelPackage/pppoa/description
542 Kernel modules for PPPoA (PPP over ATM) support
543endef
544
545$(eval $(call KernelPackage,pppoa))
546
547
548#define KernelPackage/pptp
549#  SUBMENU:=$(NETWORK_SUPPORT_MENU)
550#  TITLE:=PPtP support
551#  DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
552#  KCONFIG:=CONFIG_PPTP
553#  FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
554#  AUTOLOAD:=$(call AutoLoad,41,pptp)
555#endef
556#
557#$(eval $(call KernelPackage,pptp))
558
559
560define KernelPackage/pppol2tp
561  SUBMENU:=$(NETWORK_SUPPORT_MENU)
562  TITLE:=PPPoL2TP support
563  DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
564  KCONFIG:=CONFIG_PPPOL2TP
565  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
566  AUTOLOAD:=$(call AutoLoad,41,l2tp_ppp)
567endef
568
569define KernelPackage/pppol2tp/description
570  Kernel modules for PPPoL2TP (PPP over L2TP) support
571endef
572
573$(eval $(call KernelPackage,pppol2tp))
574
575
576define KernelPackage/ipoa
577  SUBMENU:=$(NETWORK_SUPPORT_MENU)
578  TITLE:=IPoA support
579  DEPENDS:=kmod-atm
580  KCONFIG:=CONFIG_ATM_CLIP
581  FILES:=$(LINUX_DIR)/net/atm/clip.ko
582  AUTOLOAD:=$(call AutoLoad,40,clip)
583endef
584
585define KernelPackage/ipoa/description
586  Kernel modules for IPoA (IP over ATM) support
587endef
588
589$(eval $(call KernelPackage,ipoa))
590
591
592define KernelPackage/mppe
593  SUBMENU:=$(NETWORK_SUPPORT_MENU)
594  TITLE:=Microsoft PPP compression/encryption
595  DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
596  KCONFIG:= \
597	CONFIG_PPP_MPPE_MPPC \
598	CONFIG_PPP_MPPE
599  FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
600  AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
601endef
602
603define KernelPackage/mppe/description
604 Kernel modules for Microsoft PPP compression/encryption
605endef
606
607$(eval $(call KernelPackage,mppe))
608
609
610SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
611SCHED_MODULES_CORE = sch_ingress sch_codel sch_fq_codel sch_hfsc cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit
612SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq
613SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
614SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
615SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
616
617define KernelPackage/sched-core
618  SUBMENU:=$(NETWORK_SUPPORT_MENU)
619  TITLE:=Traffic schedulers
620  KCONFIG:= \
621	CONFIG_NET_SCHED=y \
622	CONFIG_NET_SCH_HFSC \
623	CONFIG_NET_SCH_INGRESS \
624	CONFIG_NET_SCH_CODEL \
625	CONFIG_NET_SCH_FQ_CODEL \
626	CONFIG_NET_CLS=y \
627	CONFIG_NET_CLS_ACT=y \
628	CONFIG_NET_CLS_FLOW \
629	CONFIG_NET_CLS_FW \
630	CONFIG_NET_CLS_ROUTE4 \
631	CONFIG_NET_CLS_TCINDEX \
632	CONFIG_NET_CLS_U32 \
633	CONFIG_NET_ACT_MIRRED \
634	CONFIG_NET_ACT_SKBEDIT \
635	CONFIG_NET_EMATCH=y \
636	CONFIG_NET_EMATCH_U32
637  FILES:=$(SCHED_FILES)
638endef
639
640define KernelPackage/sched-core/description
641 Core kernel scheduler support for IP traffic
642endef
643
644$(eval $(call KernelPackage,sched-core))
645
646
647define KernelPackage/sched-connmark
648  SUBMENU:=$(NETWORK_SUPPORT_MENU)
649  TITLE:=Traffic shaper conntrack mark support
650  DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
651  KCONFIG:=CONFIG_NET_ACT_CONNMARK
652  FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
653endef
654$(eval $(call KernelPackage,sched-connmark))
655
656define KernelPackage/sched-esfq
657  SUBMENU:=$(NETWORK_SUPPORT_MENU)
658  TITLE:=Traffic shaper ESFQ support
659  DEPENDS:=+kmod-sched-core +kmod-ipt-core
660  KCONFIG:= \
661	CONFIG_NET_SCH_ESFQ \
662	CONFIG_NET_SCH_ESFQ_NFCT=y
663  FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko
664endef
665$(eval $(call KernelPackage,sched-esfq))
666
667define KernelPackage/sched
668  SUBMENU:=$(NETWORK_SUPPORT_MENU)
669  TITLE:=Extra traffic schedulers
670  DEPENDS:=+kmod-sched-core
671  KCONFIG:= \
672	CONFIG_NET_SCH_DSMARK \
673	CONFIG_NET_SCH_HTB \
674	CONFIG_NET_SCH_FIFO \
675	CONFIG_NET_SCH_GRED \
676	CONFIG_NET_SCH_PRIO \
677	CONFIG_NET_SCH_RED \
678	CONFIG_NET_SCH_TBF \
679	CONFIG_NET_SCH_SFQ \
680	CONFIG_NET_SCH_TEQL \
681	CONFIG_NET_CLS_BASIC \
682	CONFIG_NET_ACT_POLICE \
683	CONFIG_NET_ACT_IPT \
684	CONFIG_NET_EMATCH_CMP \
685	CONFIG_NET_EMATCH_NBYTE \
686	CONFIG_NET_EMATCH_META \
687	CONFIG_NET_EMATCH_TEXT
688  FILES:=$(SCHED_FILES_EXTRA)
689endef
690
691define KernelPackage/sched/description
692 Extra kernel schedulers modules for IP traffic
693endef
694
695$(eval $(call KernelPackage,sched))
696
697
698define KernelPackage/ax25
699  SUBMENU:=$(NETWORK_SUPPORT_MENU)
700  TITLE:=AX25 support
701  KCONFIG:= \
702	CONFIG_AX25 \
703	CONFIG_MKISS
704  FILES:= \
705	$(LINUX_DIR)/net/ax25/ax25.ko \
706	$(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
707  AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
708  $(call AddDepends/crc16)
709endef
710
711define KernelPackage/ax25/description
712 Kernel modules for AX25 support
713endef
714
715$(eval $(call KernelPackage,ax25))
716
717
718define KernelPackage/mp-alg
719  SUBMENU:=$(NETWORK_SUPPORT_MENU)
720  TITLE:=ECMP caching algorithms
721  KCONFIG:= \
722	CONFIG_IP_ROUTE_MULTIPATH_RR \
723	CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
724	CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
725	CONFIG_IP_ROUTE_MULTIPATH_DRR
726  FILES:= \
727	$(LINUX_DIR)/net/ipv4/multipath_rr.ko \
728	$(LINUX_DIR)/net/ipv4/multipath_random.ko \
729	$(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
730	$(LINUX_DIR)/net/ipv4/multipath_drr.ko
731  AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
732endef
733
734define KernelPackage/mp-alg/description
735 Kernel modules that provide several different algorithms for multipath
736 route selection from the route cache. The iproute "mpath" argument allows
737 specifying which algorithm to use for routes.
738 quagga (at least <=0.99.6) requires a multipath patch to support this
739 cached mp route feature.
740endef
741
742$(eval $(call KernelPackage,mp-alg))
743
744
745define KernelPackage/pktgen
746  SUBMENU:=$(NETWORK_SUPPORT_MENU)
747  DEPENDS:=@!TARGET_uml
748  TITLE:=Network packet generator
749  KCONFIG:=CONFIG_NET_PKTGEN
750  FILES:=$(LINUX_DIR)/net/core/pktgen.ko
751  AUTOLOAD:=$(call AutoLoad,99,pktgen)
752endef
753
754define KernelPackage/pktgen/description
755  Kernel modules for the Network Packet Generator
756endef
757
758$(eval $(call KernelPackage,pktgen))
759
760define KernelPackage/l2tp
761  SUBMENU:=$(NETWORK_SUPPORT_MENU)
762  TITLE:=Layer Two Tunneling Protocol (L2TP)
763  KCONFIG:=CONFIG_L2TP \
764	CONFIG_L2TP_V3=y \
765	CONFIG_L2TP_DEBUGFS=n
766  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
767	$(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
768  AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
769endef
770
771define KernelPackage/l2tp/description
772 Kernel modules for L2TP V3 Support
773endef
774
775$(eval $(call KernelPackage,l2tp))
776
777
778define KernelPackage/l2tp-eth
779  SUBMENU:=$(NETWORK_SUPPORT_MENU)
780  TITLE:=L2TP ethernet pseudowire support for L2TPv3
781  DEPENDS:=+kmod-l2tp
782  KCONFIG:=CONFIG_L2TP_ETH
783  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
784  AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
785endef
786
787define KernelPackage/l2tp-eth/description
788 Kernel modules for L2TP ethernet pseudowire support for L2TPv3
789endef
790
791$(eval $(call KernelPackage,l2tp-eth))
792
793define KernelPackage/l2tp-ip
794  SUBMENU:=$(NETWORK_SUPPORT_MENU)
795  TITLE:=L2TP IP encapsulation for L2TPv3
796  DEPENDS:=+kmod-l2tp
797  KCONFIG:=CONFIG_L2TP_IP
798  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
799  AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
800endef
801
802define KernelPackage/l2tp-ip/description
803 Kernel modules for L2TP IP encapsulation for L2TPv3
804endef
805
806$(eval $(call KernelPackage,l2tp-ip))
807
808
809define KernelPackage/sctp
810  SUBMENU:=$(NETWORK_SUPPORT_MENU)
811  TITLE:=SCTP protocol kernel support
812  KCONFIG:=\
813     CONFIG_IP_SCTP \
814     CONFIG_SCTP_DBG_MSG=n \
815     CONFIG_SCTP_DBG_OBJCNT=n \
816     CONFIG_SCTP_HMAC_NONE=n \
817     CONFIG_SCTP_HMAC_SHA1=n \
818     CONFIG_SCTP_HMAC_MD5=y
819  FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
820  AUTOLOAD:= $(call AutoLoad,32,sctp)
821  DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
822endef
823
824define KernelPackage/sctp/description
825 Kernel modules for SCTP protocol support
826endef
827
828$(eval $(call KernelPackage,sctp))
829
830
831define KernelPackage/netem
832  SUBMENU:=$(NETWORK_SUPPORT_MENU)
833  TITLE:=Network emulation functionality
834  DEPENDS:=+kmod-sched
835  KCONFIG:=CONFIG_NET_SCH_NETEM
836  FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
837  AUTOLOAD:=$(call AutoLoad,99,netem)
838endef
839
840define KernelPackage/netem/description
841  Kernel modules for emulating the properties of wide area networks
842endef
843
844$(eval $(call KernelPackage,netem))
845
846define KernelPackage/slip
847  SUBMENU:=$(NETWORK_SUPPORT_MENU)
848  TITLE:=SLIP modules
849  KCONFIG:= \
850       CONFIG_SLIP \
851       CONFIG_SLIP_COMPRESSED=y \
852       CONFIG_SLIP_SMART=y \
853       CONFIG_SLIP_MODE_SLIP6=y
854
855  FILES:= \
856       $(LINUX_DIR)/drivers/net/slip/slip.ko
857  AUTOLOAD:=$(call AutoLoad,30,slip)
858endef
859
860define KernelPackage/slip/description
861 Kernel modules for SLIP support
862endef
863
864$(eval $(call KernelPackage,slip))
865
866