587229d00464fd47a95d85b30e6d9e1f57c2f087
[lede.git] / package / kernel / linux / modules / netsupport.mk
1 #
2 # Copyright (C) 2006-2011 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 NETWORK_SUPPORT_MENU:=Network Support
9
10 define KernelPackage/atm
11   SUBMENU:=$(NETWORK_SUPPORT_MENU)
12   TITLE:=ATM support
13   KCONFIG:= \
14         CONFIG_ATM \
15         CONFIG_ATM_BR2684
16   FILES:= \
17         $(LINUX_DIR)/net/atm/atm.ko \
18         $(LINUX_DIR)/net/atm/br2684.ko
19   AUTOLOAD:=$(call AutoLoad,30,atm br2684)
20 endef
21
22 define KernelPackage/atm/description
23  Kernel modules for ATM support
24 endef
25
26 $(eval $(call KernelPackage,atm))
27
28
29 define KernelPackage/atmtcp
30   SUBMENU:=$(NETWORK_SUPPORT_MENU)
31   TITLE:=ATM over TCP
32   DEPENDS:=kmod-atm
33   KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
34   FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
35   AUTOLOAD:=$(call AutoLoad,40,atmtcp)
36 endef
37
38 define KernelPackage/atmtcp/description
39  Kernel module for ATM over TCP support
40 endef
41
42 $(eval $(call KernelPackage,atmtcp))
43
44
45 define KernelPackage/appletalk
46   SUBMENU:=$(NETWORK_SUPPORT_MENU)
47   TITLE:=Appletalk protocol support
48   DEPENDS:=+PACKAGE_kmod-llc:kmod-llc
49   KCONFIG:= \
50         CONFIG_ATALK \
51         CONFIG_DEV_APPLETALK \
52         CONFIG_IPDDP \
53         CONFIG_IPDDP_ENCAP=y \
54         CONFIG_IPDDP_DECAP=y
55   FILES:= \
56         $(LINUX_DIR)/net/appletalk/appletalk.ko \
57         $(LINUX_DIR)/drivers/net/appletalk/ipddp.ko
58   AUTOLOAD:=$(call AutoLoad,40,appletalk ipddp)
59 endef
60
61 define KernelPackage/appletalk/description
62  Kernel module for AppleTalk protocol.
63 endef
64
65 $(eval $(call KernelPackage,appletalk))
66
67
68 define KernelPackage/bonding
69   SUBMENU:=$(NETWORK_SUPPORT_MENU)
70   TITLE:=Ethernet bonding driver
71   KCONFIG:=CONFIG_BONDING
72   FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
73   AUTOLOAD:=$(call AutoLoad,40,bonding)
74 endef
75
76 define KernelPackage/bonding/description
77  Kernel module for NIC bonding.
78 endef
79
80 $(eval $(call KernelPackage,bonding))
81
82
83 define KernelPackage/bridge
84   SUBMENU:=$(NETWORK_SUPPORT_MENU)
85   TITLE:=Ethernet bridging support
86   DEPENDS:=+kmod-stp
87   KCONFIG:= \
88         CONFIG_BRIDGE \
89         CONFIG_BRIDGE_IGMP_SNOOPING=y
90   FILES:=$(LINUX_DIR)/net/bridge/bridge.ko
91   AUTOLOAD:=$(call AutoLoad,11,bridge)
92 endef
93
94 define KernelPackage/bridge/description
95  Kernel module for Ethernet bridging.
96 endef
97
98 $(eval $(call KernelPackage,bridge))
99
100 define KernelPackage/llc
101   SUBMENU:=$(NETWORK_SUPPORT_MENU)
102   TITLE:=ANSI/IEEE 802.2 LLC support
103   KCONFIG:=CONFIG_LLC
104   FILES:= \
105         $(LINUX_DIR)/net/llc/llc.ko \
106         $(LINUX_DIR)/net/802/p8022.ko \
107         $(LINUX_DIR)/net/802/psnap.ko
108   AUTOLOAD:=$(call AutoLoad,09,llc p8022 psnap)
109 endef
110
111 define KernelPackage/llc/description
112  Kernel module for ANSI/IEEE 802.2 LLC support.
113 endef
114
115 $(eval $(call KernelPackage,llc))
116
117 define KernelPackage/stp
118   SUBMENU:=$(NETWORK_SUPPORT_MENU)
119   TITLE:=Ethernet Spanning Tree Protocol support
120   DEPENDS:=+kmod-llc
121   KCONFIG:=CONFIG_STP
122   FILES:=$(LINUX_DIR)/net/802/stp.ko
123   AUTOLOAD:=$(call AutoLoad,10,stp)
124 endef
125
126 define KernelPackage/stp/description
127  Kernel module for Ethernet Spanning Tree Protocol support.
128 endef
129
130 $(eval $(call KernelPackage,stp))
131
132 define KernelPackage/8021q
133   SUBMENU:=$(NETWORK_SUPPORT_MENU)
134   TITLE:=802.1Q VLAN support
135   KCONFIG:=CONFIG_VLAN_8021Q \
136                 CONFIG_VLAN_8021Q_GVRP=n
137   FILES:=$(LINUX_DIR)/net/8021q/8021q.ko
138   AUTOLOAD:=$(call AutoLoad,12,8021q)
139 endef
140
141 define KernelPackage/8021q/description
142  Kernel module for 802.1Q VLAN support
143 endef
144
145 $(eval $(call KernelPackage,8021q))
146
147
148 define KernelPackage/udptunnel4
149   SUBMENU:=$(NETWORK_SUPPORT_MENU)
150   TITLE:=IPv4 UDP tunneling support
151   KCONFIG:= \
152         CONFIG_NET_UDP_TUNNEL \
153         CONFIG_VXLAN=m
154   HIDDEN:=1
155   FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
156   AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
157 endef
158
159
160 $(eval $(call KernelPackage,udptunnel4))
161
162 define KernelPackage/udptunnel6
163   SUBMENU:=$(NETWORK_SUPPORT_MENU)
164   TITLE:=IPv6 UDP tunneling support
165   DEPENDS:=@IPV6
166   KCONFIG:= \
167         CONFIG_NET_UDP_TUNNEL \
168         CONFIG_VXLAN=m
169   HIDDEN:=1
170   FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
171   AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
172 endef
173
174 $(eval $(call KernelPackage,udptunnel6))
175
176
177 define KernelPackage/vxlan
178   SUBMENU:=$(NETWORK_SUPPORT_MENU)
179   TITLE:=Native VXLAN Kernel support
180   DEPENDS:= \
181         +kmod-iptunnel \
182         +kmod-udptunnel4 \
183         +IPV6:kmod-udptunnel6
184   KCONFIG:=CONFIG_VXLAN
185   FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
186   AUTOLOAD:=$(call AutoLoad,13,vxlan)
187 endef
188
189 define KernelPackage/vxlan/description
190  Kernel module for supporting VXLAN in the Kernel.
191  Requires Kernel 3.12 or newer.
192 endef
193
194 $(eval $(call KernelPackage,vxlan))
195
196 define KernelPackage/capi
197   SUBMENU:=$(NETWORK_SUPPORT_MENU)
198   TITLE:=CAPI (ISDN) Support
199   KCONFIG:= \
200         CONFIG_ISDN_CAPI \
201         CONFIG_ISDN_CAPI_CAPI20 \
202         CONFIG_ISDN_CAPIFS \
203         CONFIG_ISDN_CAPI_CAPIFS
204   FILES:= \
205         $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
206         $(LINUX_DIR)/drivers/isdn/capi/capi.ko
207   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
208 endef
209
210 define KernelPackage/capi/description
211  Kernel module for basic CAPI (ISDN) support
212 endef
213
214 $(eval $(call KernelPackage,capi))
215
216 define KernelPackage/misdn
217   SUBMENU:=$(NETWORK_SUPPORT_MENU)
218   TITLE:=mISDN (ISDN) Support
219   KCONFIG:= \
220         CONFIG_ISDN=y \
221         CONFIG_MISDN \
222         CONFIG_MISDN_DSP \
223         CONFIG_MISDN_L1OIP
224   FILES:= \
225         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
226         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
227         $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
228   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
229 endef
230
231 define KernelPackage/misdn/description
232   Modular ISDN driver support
233 endef
234
235 $(eval $(call KernelPackage,misdn))
236
237
238 define KernelPackage/isdn4linux
239   SUBMENU:=$(NETWORK_SUPPORT_MENU)
240   TITLE:=Old ISDN4Linux (deprecated)
241   DEPENDS:=+kmod-ppp
242   KCONFIG:= \
243         CONFIG_ISDN=y \
244     CONFIG_ISDN_I4L \
245     CONFIG_ISDN_PPP=y \
246     CONFIG_ISDN_PPP_VJ=y \
247     CONFIG_ISDN_MPP=y \
248     CONFIG_IPPP_FILTER=y \
249     CONFIG_ISDN_PPP_BSDCOMP \
250     CONFIG_ISDN_CAPI_MIDDLEWARE=y \
251     CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
252     CONFIG_ISDN_AUDIO=y \
253     CONFIG_ISDN_TTY_FAX=y \
254     CONFIG_ISDN_X25=y \
255     CONFIG_ISDN_DIVERSION
256   FILES:= \
257     $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
258         $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
259         $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
260   AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
261 endef
262
263 define KernelPackage/isdn4linux/description
264   This driver allows you to use an ISDN adapter for networking
265 endef
266
267 $(eval $(call KernelPackage,isdn4linux))
268
269
270 define KernelPackage/ipip
271   SUBMENU:=$(NETWORK_SUPPORT_MENU)
272   TITLE:=IP-in-IP encapsulation
273   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
274   KCONFIG:=CONFIG_NET_IPIP
275   FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
276   AUTOLOAD:=$(call AutoLoad,32,ipip)
277 endef
278
279 define KernelPackage/ipip/description
280  Kernel modules for IP-in-IP encapsulation
281 endef
282
283 $(eval $(call KernelPackage,ipip))
284
285
286 IPSEC-m:= \
287         xfrm/xfrm_algo \
288         xfrm/xfrm_ipcomp \
289         xfrm/xfrm_user \
290         key/af_key \
291
292 define KernelPackage/ipsec
293   SUBMENU:=$(NETWORK_SUPPORT_MENU)
294   TITLE:=IPsec related modules (IPv4 and IPv6)
295   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
296   KCONFIG:= \
297         CONFIG_NET_KEY \
298         CONFIG_XFRM_USER \
299         CONFIG_INET_IPCOMP \
300         CONFIG_XFRM_IPCOMP
301   FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
302   AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
303 endef
304
305 define KernelPackage/ipsec/description
306  Kernel modules for IPsec support in both IPv4 and IPv6.
307  Includes:
308  - af_key
309  - xfrm_algo
310  - xfrm_ipcomp
311  - xfrm_user
312 endef
313
314 $(eval $(call KernelPackage,ipsec))
315
316
317 IPSEC4-m:= \
318         ipv4/ah4 \
319         ipv4/esp4 \
320         ipv4/xfrm4_mode_beet \
321         ipv4/xfrm4_mode_transport \
322         ipv4/xfrm4_mode_tunnel \
323         ipv4/xfrm4_tunnel \
324         ipv4/ipcomp \
325
326 define KernelPackage/ipsec4
327   SUBMENU:=$(NETWORK_SUPPORT_MENU)
328   TITLE:=IPsec related modules (IPv4)
329   DEPENDS:=kmod-ipsec +kmod-iptunnel4
330   KCONFIG:= \
331         CONFIG_INET_AH \
332         CONFIG_INET_ESP \
333         CONFIG_INET_IPCOMP \
334         CONFIG_INET_XFRM_MODE_BEET \
335         CONFIG_INET_XFRM_MODE_TRANSPORT \
336         CONFIG_INET_XFRM_MODE_TUNNEL \
337         CONFIG_INET_XFRM_TUNNEL
338   FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
339   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
340 endef
341
342 define KernelPackage/ipsec4/description
343  Kernel modules for IPsec support in IPv4.
344  Includes:
345  - ah4
346  - esp4
347  - ipcomp4
348  - xfrm4_mode_beet
349  - xfrm4_mode_transport
350  - xfrm4_mode_tunnel
351  - xfrm4_tunnel
352 endef
353
354 $(eval $(call KernelPackage,ipsec4))
355
356
357 IPSEC6-m:= \
358         ipv6/ah6 \
359         ipv6/esp6 \
360         ipv6/xfrm6_mode_beet \
361         ipv6/xfrm6_mode_transport \
362         ipv6/xfrm6_mode_tunnel \
363         ipv6/xfrm6_tunnel \
364         ipv6/ipcomp6 \
365
366 define KernelPackage/ipsec6
367   SUBMENU:=$(NETWORK_SUPPORT_MENU)
368   TITLE:=IPsec related modules (IPv6)
369   DEPENDS:=kmod-ipsec +kmod-iptunnel6
370   KCONFIG:= \
371         CONFIG_INET6_AH \
372         CONFIG_INET6_ESP \
373         CONFIG_INET6_IPCOMP \
374         CONFIG_INET6_XFRM_MODE_BEET \
375         CONFIG_INET6_XFRM_MODE_TRANSPORT \
376         CONFIG_INET6_XFRM_MODE_TUNNEL \
377         CONFIG_INET6_XFRM_TUNNEL
378   FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
379   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
380 endef
381
382 define KernelPackage/ipsec6/description
383  Kernel modules for IPsec support in IPv6.
384  Includes:
385  - ah6
386  - esp6
387  - ipcomp6
388  - xfrm6_mode_beet
389  - xfrm6_mode_transport
390  - xfrm6_mode_tunnel
391  - xfrm6_tunnel
392 endef
393
394 $(eval $(call KernelPackage,ipsec6))
395
396
397 define KernelPackage/iptunnel
398   SUBMENU:=$(NETWORK_SUPPORT_MENU)
399   TITLE:=IP tunnel support
400   HIDDEN:=1
401   KCONFIG:= \
402         CONFIG_NET_IP_TUNNEL
403   FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
404   AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
405 endef
406
407 define KernelPackage/iptunnel/description
408  Kernel module for generic IP tunnel support
409 endef
410
411 $(eval $(call KernelPackage,iptunnel))
412
413
414 define KernelPackage/ip-vti
415   SUBMENU:=$(NETWORK_SUPPORT_MENU)
416   TITLE:=IP VTI (Virtual Tunnel Interface)
417   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
418   KCONFIG:=CONFIG_NET_IPVTI
419   FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
420   AUTOLOAD:=$(call AutoLoad,33,ip_vti)
421 endef
422
423 define KernelPackage/ip-vti/description
424  Kernel modules for IP VTI (Virtual Tunnel Interface)
425 endef
426
427 $(eval $(call KernelPackage,ip-vti))
428
429
430 define KernelPackage/ip6-vti
431   SUBMENU:=$(NETWORK_SUPPORT_MENU)
432   TITLE:=IPv6 VTI (Virtual Tunnel Interface)
433   DEPENDS:=+kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
434   KCONFIG:=CONFIG_IPV6_VTI
435   FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
436   AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
437 endef
438
439 define KernelPackage/ip6-vti/description
440  Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
441 endef
442
443 $(eval $(call KernelPackage,ip6-vti))
444
445
446 define KernelPackage/iptunnel4
447   SUBMENU:=$(NETWORK_SUPPORT_MENU)
448   TITLE:=IPv4 tunneling
449   HIDDEN:=1
450   KCONFIG:= \
451         CONFIG_INET_TUNNEL \
452         CONFIG_NET_IPIP=m
453   FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
454   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
455 endef
456
457 define KernelPackage/iptunnel4/description
458  Kernel modules for IPv4 tunneling
459 endef
460
461 $(eval $(call KernelPackage,iptunnel4))
462
463
464 define KernelPackage/iptunnel6
465   SUBMENU:=$(NETWORK_SUPPORT_MENU)
466   TITLE:=IPv6 tunneling
467   DEPENDS:=@IPV6
468   KCONFIG:= \
469         CONFIG_INET6_TUNNEL
470   FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
471   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
472 endef
473
474 define KernelPackage/iptunnel6/description
475  Kernel modules for IPv6 tunneling
476 endef
477
478 $(eval $(call KernelPackage,iptunnel6))
479
480
481 define KernelPackage/sit
482   SUBMENU:=$(NETWORK_SUPPORT_MENU)
483   DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
484   TITLE:=IPv6-in-IPv4 tunnel
485   KCONFIG:=CONFIG_IPV6_SIT \
486         CONFIG_IPV6_SIT_6RD=y
487   FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
488   AUTOLOAD:=$(call AutoLoad,32,sit)
489 endef
490
491 define KernelPackage/sit/description
492  Kernel modules for IPv6-in-IPv4 tunnelling
493 endef
494
495 $(eval $(call KernelPackage,sit))
496
497
498 define KernelPackage/ip6-tunnel
499   SUBMENU:=$(NETWORK_SUPPORT_MENU)
500   TITLE:=IP-in-IPv6 tunnelling
501   DEPENDS:=@IPV6 +kmod-iptunnel6
502   KCONFIG:= CONFIG_IPV6_TUNNEL
503   FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
504   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
505 endef
506
507 define KernelPackage/ip6-tunnel/description
508  Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
509 endef
510
511 $(eval $(call KernelPackage,ip6-tunnel))
512
513
514 define KernelPackage/gre
515   SUBMENU:=$(NETWORK_SUPPORT_MENU)
516   TITLE:=GRE support
517   DEPENDS:=+kmod-iptunnel
518   KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
519   FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
520   AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
521 endef
522
523 define KernelPackage/gre/description
524  Generic Routing Encapsulation support
525 endef
526
527 $(eval $(call KernelPackage,gre))
528
529
530 define KernelPackage/gre6
531   SUBMENU:=$(NETWORK_SUPPORT_MENU)
532   TITLE:=GRE support over IPV6
533   DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel
534   KCONFIG:=CONFIG_IPV6_GRE
535   FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
536   AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
537 endef
538
539 define KernelPackage/gre6/description
540  Generic Routing Encapsulation support over IPv6
541 endef
542
543 $(eval $(call KernelPackage,gre6))
544
545
546 define KernelPackage/tun
547   SUBMENU:=$(NETWORK_SUPPORT_MENU)
548   TITLE:=Universal TUN/TAP driver
549   KCONFIG:=CONFIG_TUN
550   FILES:=$(LINUX_DIR)/drivers/net/tun.ko
551   AUTOLOAD:=$(call AutoLoad,30,tun)
552 endef
553
554 define KernelPackage/tun/description
555  Kernel support for the TUN/TAP tunneling device
556 endef
557
558 $(eval $(call KernelPackage,tun))
559
560
561 define KernelPackage/veth
562   SUBMENU:=$(NETWORK_SUPPORT_MENU)
563   TITLE:=Virtual ethernet pair device
564   KCONFIG:=CONFIG_VETH
565   FILES:=$(LINUX_DIR)/drivers/net/veth.ko
566   AUTOLOAD:=$(call AutoLoad,30,veth)
567 endef
568
569 define KernelPackage/veth/description
570  This device is a local ethernet tunnel. Devices are created in pairs.
571  When one end receives the packet it appears on its pair and vice
572  versa.
573 endef
574
575 $(eval $(call KernelPackage,veth))
576
577
578 define KernelPackage/slhc
579   SUBMENU:=$(NETWORK_SUPPORT_MENU)
580   HIDDEN:=1
581   TITLE:=Serial Line Header Compression
582   DEPENDS:=+kmod-lib-crc-ccitt
583   KCONFIG:=CONFIG_SLHC
584   FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
585 endef
586
587 $(eval $(call KernelPackage,slhc))
588
589
590 define KernelPackage/ppp
591   SUBMENU:=$(NETWORK_SUPPORT_MENU)
592   TITLE:=PPP modules
593   DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
594   KCONFIG:= \
595         CONFIG_PPP \
596         CONFIG_PPP_ASYNC
597   FILES:= \
598         $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
599         $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
600   AUTOLOAD:=$(call AutoProbe,ppp_async)
601 endef
602
603 define KernelPackage/ppp/description
604  Kernel modules for PPP support
605 endef
606
607 $(eval $(call KernelPackage,ppp))
608
609
610 define KernelPackage/ppp-synctty
611   SUBMENU:=$(NETWORK_SUPPORT_MENU)
612   TITLE:=PPP sync tty support
613   DEPENDS:=kmod-ppp
614   KCONFIG:=CONFIG_PPP_SYNC_TTY
615   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
616   AUTOLOAD:=$(call AutoProbe,ppp_synctty)
617 endef
618
619 define KernelPackage/ppp-synctty/description
620  Kernel modules for PPP sync tty support
621 endef
622
623 $(eval $(call KernelPackage,ppp-synctty))
624
625
626 define KernelPackage/pppox
627   SUBMENU:=$(NETWORK_SUPPORT_MENU)
628   TITLE:=PPPoX helper
629   DEPENDS:=kmod-ppp
630   KCONFIG:=CONFIG_PPPOE
631   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
632 endef
633
634 define KernelPackage/pppox/description
635  Kernel helper module for PPPoE and PPTP support
636 endef
637
638 $(eval $(call KernelPackage,pppox))
639
640
641 define KernelPackage/pppoe
642   SUBMENU:=$(NETWORK_SUPPORT_MENU)
643   TITLE:=PPPoE support
644   DEPENDS:=kmod-ppp +kmod-pppox
645   KCONFIG:=CONFIG_PPPOE
646   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
647   AUTOLOAD:=$(call AutoProbe,pppoe)
648 endef
649
650 define KernelPackage/pppoe/description
651  Kernel module for PPPoE (PPP over Ethernet) support
652 endef
653
654 $(eval $(call KernelPackage,pppoe))
655
656
657 define KernelPackage/pppoa
658   SUBMENU:=$(NETWORK_SUPPORT_MENU)
659   TITLE:=PPPoA support
660   DEPENDS:=kmod-ppp +kmod-atm
661   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
662   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
663   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
664 endef
665
666 define KernelPackage/pppoa/description
667  Kernel modules for PPPoA (PPP over ATM) support
668 endef
669
670 $(eval $(call KernelPackage,pppoa))
671
672
673 define KernelPackage/pptp
674   SUBMENU:=$(NETWORK_SUPPORT_MENU)
675   TITLE:=PPtP support
676   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
677   KCONFIG:=CONFIG_PPTP
678   FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
679   AUTOLOAD:=$(call AutoProbe,pptp)
680 endef
681
682 $(eval $(call KernelPackage,pptp))
683
684
685 define KernelPackage/pppol2tp
686   SUBMENU:=$(NETWORK_SUPPORT_MENU)
687   TITLE:=PPPoL2TP support
688   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
689   KCONFIG:=CONFIG_PPPOL2TP
690   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
691   AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
692 endef
693
694 define KernelPackage/pppol2tp/description
695   Kernel modules for PPPoL2TP (PPP over L2TP) support
696 endef
697
698 $(eval $(call KernelPackage,pppol2tp))
699
700
701 define KernelPackage/ipoa
702   SUBMENU:=$(NETWORK_SUPPORT_MENU)
703   TITLE:=IPoA support
704   DEPENDS:=kmod-atm
705   KCONFIG:=CONFIG_ATM_CLIP
706   FILES:=$(LINUX_DIR)/net/atm/clip.ko
707   AUTOLOAD:=$(call AutoProbe,clip)
708 endef
709
710 define KernelPackage/ipoa/description
711   Kernel modules for IPoA (IP over ATM) support
712 endef
713
714 $(eval $(call KernelPackage,ipoa))
715
716
717 define KernelPackage/mppe
718   SUBMENU:=$(NETWORK_SUPPORT_MENU)
719   TITLE:=Microsoft PPP compression/encryption
720   DEPENDS:=kmod-ppp +kmod-crypto-sha1 +kmod-crypto-ecb
721   KCONFIG:= \
722         CONFIG_PPP_MPPE_MPPC \
723         CONFIG_PPP_MPPE
724   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
725   AUTOLOAD:=$(call AutoProbe,ppp_mppe)
726 endef
727
728 define KernelPackage/mppe/description
729  Kernel modules for Microsoft PPP compression/encryption
730 endef
731
732 $(eval $(call KernelPackage,mppe))
733
734
735 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
736 SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit
737 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_netem
738 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
739 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
740 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
741
742 define KernelPackage/sched-core
743   SUBMENU:=$(NETWORK_SUPPORT_MENU)
744   TITLE:=Traffic schedulers
745   KCONFIG:= \
746         CONFIG_NET_SCHED=y \
747         CONFIG_NET_SCH_HFSC \
748         CONFIG_NET_SCH_INGRESS \
749         CONFIG_NET_SCH_FQ_CODEL \
750         CONFIG_NET_CLS=y \
751         CONFIG_NET_CLS_ACT=y \
752         CONFIG_NET_CLS_FLOW \
753         CONFIG_NET_CLS_FW \
754         CONFIG_NET_CLS_ROUTE4 \
755         CONFIG_NET_CLS_TCINDEX \
756         CONFIG_NET_CLS_U32 \
757         CONFIG_NET_ACT_MIRRED \
758         CONFIG_NET_ACT_SKBEDIT \
759         CONFIG_NET_EMATCH=y \
760         CONFIG_NET_EMATCH_U32
761   FILES:=$(SCHED_FILES)
762   AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
763 endef
764
765 define KernelPackage/sched-core/description
766  Core kernel scheduler support for IP traffic
767 endef
768
769 $(eval $(call KernelPackage,sched-core))
770
771
772 define KernelPackage/sched-connmark
773   SUBMENU:=$(NETWORK_SUPPORT_MENU)
774   TITLE:=Traffic shaper conntrack mark support
775   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
776   KCONFIG:=CONFIG_NET_ACT_CONNMARK
777   FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
778   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
779 endef
780 $(eval $(call KernelPackage,sched-connmark))
781
782 define KernelPackage/sched
783   SUBMENU:=$(NETWORK_SUPPORT_MENU)
784   TITLE:=Extra traffic schedulers
785   DEPENDS:=+kmod-sched-core +kmod-ipt-core
786   KCONFIG:= \
787         CONFIG_NET_SCH_CODEL \
788         CONFIG_NET_SCH_DSMARK \
789         CONFIG_NET_SCH_HTB \
790         CONFIG_NET_SCH_FIFO \
791         CONFIG_NET_SCH_GRED \
792         CONFIG_NET_SCH_PRIO \
793         CONFIG_NET_SCH_RED \
794         CONFIG_NET_SCH_TBF \
795         CONFIG_NET_SCH_SFQ \
796         CONFIG_NET_SCH_TEQL \
797         CONFIG_NET_SCH_FQ \
798         CONFIG_NET_SCH_PIE \
799         CONFIG_NET_CLS_BASIC \
800         CONFIG_NET_ACT_POLICE \
801         CONFIG_NET_ACT_IPT \
802         CONFIG_NET_EMATCH_CMP \
803         CONFIG_NET_EMATCH_NBYTE \
804         CONFIG_NET_EMATCH_META \
805         CONFIG_NET_EMATCH_TEXT
806   FILES:=$(SCHED_FILES_EXTRA)
807   AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
808 endef
809
810 define KernelPackage/sched/description
811  Extra kernel schedulers modules for IP traffic
812 endef
813
814 $(eval $(call KernelPackage,sched))
815
816
817 define KernelPackage/ax25
818   SUBMENU:=$(NETWORK_SUPPORT_MENU)
819   TITLE:=AX25 support
820   DEPENDS:=+kmod-lib-crc16
821   KCONFIG:= \
822         CONFIG_HAMRADIO=y \
823         CONFIG_AX25 \
824         CONFIG_MKISS
825   FILES:= \
826         $(LINUX_DIR)/net/ax25/ax25.ko \
827         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
828   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
829 endef
830
831 define KernelPackage/ax25/description
832  Kernel modules for AX25 support
833 endef
834
835 $(eval $(call KernelPackage,ax25))
836
837
838 define KernelPackage/pktgen
839   SUBMENU:=$(NETWORK_SUPPORT_MENU)
840   DEPENDS:=@!TARGET_uml
841   TITLE:=Network packet generator
842   KCONFIG:=CONFIG_NET_PKTGEN
843   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
844   AUTOLOAD:=$(call AutoLoad,99,pktgen)
845 endef
846
847 define KernelPackage/pktgen/description
848   Kernel modules for the Network Packet Generator
849 endef
850
851 $(eval $(call KernelPackage,pktgen))
852
853 define KernelPackage/l2tp
854   SUBMENU:=$(NETWORK_SUPPORT_MENU)
855   TITLE:=Layer Two Tunneling Protocol (L2TP)
856   DEPENDS:= \
857         +kmod-udptunnel4 \
858         +IPV6:kmod-udptunnel6
859   KCONFIG:=CONFIG_L2TP \
860         CONFIG_L2TP_V3=y \
861         CONFIG_L2TP_DEBUGFS=n
862   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
863         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
864   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
865 endef
866
867 define KernelPackage/l2tp/description
868  Kernel modules for L2TP V3 Support
869 endef
870
871 $(eval $(call KernelPackage,l2tp))
872
873
874 define KernelPackage/l2tp-eth
875   SUBMENU:=$(NETWORK_SUPPORT_MENU)
876   TITLE:=L2TP ethernet pseudowire support for L2TPv3
877   DEPENDS:=+kmod-l2tp
878   KCONFIG:=CONFIG_L2TP_ETH
879   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
880   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
881 endef
882
883 define KernelPackage/l2tp-eth/description
884  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
885 endef
886
887 $(eval $(call KernelPackage,l2tp-eth))
888
889 define KernelPackage/l2tp-ip
890   SUBMENU:=$(NETWORK_SUPPORT_MENU)
891   TITLE:=L2TP IP encapsulation for L2TPv3
892   DEPENDS:=+kmod-l2tp
893   KCONFIG:=CONFIG_L2TP_IP
894   FILES:= \
895         $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
896         $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
897   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
898 endef
899
900 define KernelPackage/l2tp-ip/description
901  Kernel modules for L2TP IP encapsulation for L2TPv3
902 endef
903
904 $(eval $(call KernelPackage,l2tp-ip))
905
906
907 define KernelPackage/sctp
908   SUBMENU:=$(NETWORK_SUPPORT_MENU)
909   TITLE:=SCTP protocol kernel support
910   KCONFIG:=\
911      CONFIG_IP_SCTP \
912      CONFIG_SCTP_DBG_MSG=n \
913      CONFIG_SCTP_DBG_OBJCNT=n \
914      CONFIG_SCTP_HMAC_NONE=n \
915      CONFIG_SCTP_HMAC_SHA1=n \
916      CONFIG_SCTP_HMAC_MD5=y \
917      CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
918      CONFIG_SCTP_COOKIE_HMAC_MD5=y \
919      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
920      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
921      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
922   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
923   AUTOLOAD:= $(call AutoLoad,32,sctp)
924   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
925 endef
926
927 define KernelPackage/sctp/description
928  Kernel modules for SCTP protocol support
929 endef
930
931 $(eval $(call KernelPackage,sctp))
932
933
934 define KernelPackage/netem
935   SUBMENU:=$(NETWORK_SUPPORT_MENU)
936   TITLE:=Network emulation functionality
937   DEPENDS:=+kmod-sched
938   KCONFIG:=CONFIG_NET_SCH_NETEM
939   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
940   AUTOLOAD:=$(call AutoLoad,99,netem)
941 endef
942
943 define KernelPackage/netem/description
944   Kernel modules for emulating the properties of wide area networks
945 endef
946
947 $(eval $(call KernelPackage,netem))
948
949 define KernelPackage/slip
950   SUBMENU:=$(NETWORK_SUPPORT_MENU)
951   DEPENDS:=+kmod-slhc
952   TITLE:=SLIP modules
953   KCONFIG:= \
954        CONFIG_SLIP \
955        CONFIG_SLIP_COMPRESSED=y \
956        CONFIG_SLIP_SMART=y \
957        CONFIG_SLIP_MODE_SLIP6=y
958
959   FILES:= \
960        $(LINUX_DIR)/drivers/net/slip/slip.ko
961   AUTOLOAD:=$(call AutoLoad,30,slip)
962 endef
963
964 define KernelPackage/slip/description
965  Kernel modules for SLIP support
966 endef
967
968 $(eval $(call KernelPackage,slip))
969
970 define KernelPackage/dnsresolver
971   SUBMENU:=$(NETWORK_SUPPORT_MENU)
972   TITLE:=In-kernel DNS Resolver
973   KCONFIG:= CONFIG_DNS_RESOLVER
974   FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
975   AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
976 endef
977
978 $(eval $(call KernelPackage,dnsresolver))
979
980 define KernelPackage/rxrpc
981   SUBMENU:=$(NETWORK_SUPPORT_MENU)
982   TITLE:=AF_RXRPC support
983   HIDDEN:=1
984   KCONFIG:= \
985         CONFIG_AF_RXRPC \
986         CONFIG_RXKAD=m \
987         CONFIG_AF_RXRPC_DEBUG=n
988   FILES:= \
989         $(LINUX_DIR)/net/rxrpc/af-rxrpc.ko \
990         $(LINUX_DIR)/net/rxrpc/rxkad.ko
991   AUTOLOAD:=$(call AutoLoad,30,rxkad af-rxrpc)
992   DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
993 endef
994
995 define KernelPackage/rxrpc/description
996   Kernel support for AF_RXRPC; required for AFS client
997 endef
998
999 $(eval $(call KernelPackage,rxrpc))
1000
1001 define KernelPackage/mpls
1002   SUBMENU:=$(NETWORK_SUPPORT_MENU)
1003   TITLE:=MPLS support
1004   DEPENDS:=@!(LINUX_3_18||LINUX_4_1)
1005   KCONFIG:= \
1006         CONFIG_MPLS=y \
1007         CONFIG_LWTUNNEL=y \
1008         CONFIG_NET_MPLS_GSO=m \
1009         CONFIG_MPLS_ROUTING=m \
1010         CONFIG_MPLS_IPTUNNEL=m
1011   FILES:= \
1012         $(LINUX_DIR)/net/mpls/mpls_gso.ko \
1013         $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
1014         $(LINUX_DIR)/net/mpls/mpls_router.ko
1015   AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
1016 endef
1017
1018 define KernelPackage/mpls/description
1019   Kernel support for MPLS
1020 endef
1021
1022 $(eval $(call KernelPackage,mpls))
1023
1024 define KernelPackage/9pnet
1025   SUBMENU:=$(NETWORK_SUPPORT_MENU)
1026   TITLE:=Plan 9 Resource Sharing Support (9P2000)
1027   DEPENDS:=@VIRTIO_SUPPORT
1028   KCONFIG:= \
1029         CONFIG_NET_9P \
1030         CONFIG_NET_9P_DEBUG=n \
1031         CONFIG_NET_9P_VIRTIO
1032   FILES:= \
1033         $(LINUX_DIR)/net/9p/9pnet.ko \
1034         $(LINUX_DIR)/net/9p/9pnet_virtio.ko
1035   AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
1036 endef
1037
1038 define KernelPackage/9pnet/description
1039   Kernel support support for
1040   Plan 9 resource sharing via the 9P2000 protocol.
1041 endef
1042
1043 $(eval $(call KernelPackage,9pnet))
1044
1045
1046 define KernelPackage/nlmon
1047   SUBMENU:=$(NETWORK_SUPPORT_MENU)
1048   TITLE:=Virtual netlink monitoring device
1049   KCONFIG:=CONFIG_NLMON
1050   FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
1051   AUTOLOAD:=$(call AutoProbe,nlmon)
1052 endef
1053
1054 define KernelPackage/nlmon/description
1055   Kernel module which adds a monitoring device for netlink.
1056 endef
1057
1058 $(eval $(call KernelPackage,nlmon))