netsupport.mk 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456
  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. NETWORK_SUPPORT_MENU:=Network Support
  8. define KernelPackage/atm
  9. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  10. TITLE:=ATM support
  11. KCONFIG:= \
  12. CONFIG_ATM \
  13. CONFIG_ATM_BR2684
  14. FILES:= \
  15. $(LINUX_DIR)/net/atm/atm.ko \
  16. $(LINUX_DIR)/net/atm/br2684.ko
  17. AUTOLOAD:=$(call AutoLoad,30,atm br2684)
  18. endef
  19. define KernelPackage/atm/description
  20. Kernel modules for ATM support
  21. endef
  22. $(eval $(call KernelPackage,atm))
  23. define KernelPackage/atmtcp
  24. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  25. TITLE:=ATM over TCP
  26. DEPENDS:=kmod-atm
  27. KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
  28. FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
  29. AUTOLOAD:=$(call AutoLoad,40,atmtcp)
  30. endef
  31. define KernelPackage/atmtcp/description
  32. Kernel module for ATM over TCP support
  33. endef
  34. $(eval $(call KernelPackage,atmtcp))
  35. define KernelPackage/bonding
  36. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  37. TITLE:=Ethernet bonding driver
  38. KCONFIG:=CONFIG_BONDING
  39. FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
  40. AUTOLOAD:=$(call AutoLoad,40,bonding)
  41. MODPARAMS.bonding:=max_bonds=0
  42. endef
  43. define KernelPackage/bonding/description
  44. Kernel module for NIC bonding.
  45. endef
  46. $(eval $(call KernelPackage,bonding))
  47. define KernelPackage/udptunnel4
  48. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  49. TITLE:=IPv4 UDP tunneling support
  50. KCONFIG:=CONFIG_NET_UDP_TUNNEL
  51. HIDDEN:=1
  52. FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
  53. AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
  54. endef
  55. $(eval $(call KernelPackage,udptunnel4))
  56. define KernelPackage/udptunnel6
  57. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  58. TITLE:=IPv6 UDP tunneling support
  59. DEPENDS:=@IPV6
  60. KCONFIG:=CONFIG_NET_UDP_TUNNEL
  61. HIDDEN:=1
  62. FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
  63. AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
  64. endef
  65. $(eval $(call KernelPackage,udptunnel6))
  66. define KernelPackage/vxlan
  67. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  68. TITLE:=Native VXLAN Kernel support
  69. DEPENDS:= \
  70. +kmod-iptunnel \
  71. +kmod-udptunnel4 \
  72. +IPV6:kmod-udptunnel6
  73. KCONFIG:=CONFIG_VXLAN
  74. FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
  75. AUTOLOAD:=$(call AutoLoad,13,vxlan)
  76. endef
  77. define KernelPackage/vxlan/description
  78. Kernel module for supporting VXLAN in the Kernel.
  79. Requires Kernel 3.12 or newer.
  80. endef
  81. $(eval $(call KernelPackage,vxlan))
  82. define KernelPackage/geneve
  83. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  84. TITLE:=Generic Network Virtualization Encapsulation (Geneve) support
  85. DEPENDS:= \
  86. +kmod-iptunnel \
  87. +kmod-udptunnel4 \
  88. +IPV6:kmod-udptunnel6
  89. KCONFIG:=CONFIG_GENEVE
  90. FILES:= \
  91. $(LINUX_DIR)/drivers/net/geneve.ko
  92. AUTOLOAD:=$(call AutoLoad,13,geneve)
  93. endef
  94. define KernelPackage/geneve/description
  95. Kernel module for supporting Geneve in the Kernel.
  96. Requires Kernel 3.18 or newer.
  97. endef
  98. $(eval $(call KernelPackage,geneve))
  99. define KernelPackage/nsh
  100. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  101. TITLE:=Network Service Header (NSH) protocol
  102. DEPENDS:=
  103. KCONFIG:=CONFIG_NET_NSH
  104. FILES:=$(LINUX_DIR)/net/nsh/nsh.ko
  105. AUTOLOAD:=$(call AutoLoad,13,nsh)
  106. endef
  107. define KernelPackage/nsh/description
  108. Network Service Header is an implementation of Service Function
  109. Chaining (RFC 7665). Requires kernel 4.14 or newer
  110. endef
  111. $(eval $(call KernelPackage,nsh))
  112. define KernelPackage/misdn
  113. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  114. TITLE:=mISDN (ISDN) Support
  115. KCONFIG:= \
  116. CONFIG_ISDN=y \
  117. CONFIG_MISDN \
  118. CONFIG_MISDN_DSP \
  119. CONFIG_MISDN_L1OIP
  120. FILES:= \
  121. $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
  122. $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
  123. $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
  124. AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
  125. endef
  126. define KernelPackage/misdn/description
  127. Modular ISDN driver support
  128. endef
  129. $(eval $(call KernelPackage,misdn))
  130. define KernelPackage/ipip
  131. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  132. TITLE:=IP-in-IP encapsulation
  133. DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
  134. KCONFIG:=CONFIG_NET_IPIP
  135. FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
  136. AUTOLOAD:=$(call AutoLoad,32,ipip)
  137. endef
  138. define KernelPackage/ipip/description
  139. Kernel modules for IP-in-IP encapsulation
  140. endef
  141. $(eval $(call KernelPackage,ipip))
  142. IPSEC-m:= \
  143. xfrm/xfrm_algo \
  144. xfrm/xfrm_ipcomp \
  145. xfrm/xfrm_user \
  146. key/af_key \
  147. define KernelPackage/ipsec
  148. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  149. TITLE:=IPsec related modules (IPv4 and IPv6)
  150. DEPENDS:= \
  151. +kmod-crypto-authenc +kmod-crypto-cbc +kmod-crypto-deflate \
  152. +kmod-crypto-des +kmod-crypto-echainiv +kmod-crypto-hmac \
  153. +kmod-crypto-md5 +kmod-crypto-sha1
  154. KCONFIG:= \
  155. CONFIG_NET_KEY \
  156. CONFIG_XFRM_USER \
  157. CONFIG_INET_IPCOMP \
  158. CONFIG_XFRM_IPCOMP
  159. FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
  160. AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
  161. endef
  162. define KernelPackage/ipsec/description
  163. Kernel modules for IPsec support in both IPv4 and IPv6.
  164. Includes:
  165. - af_key
  166. - xfrm_algo
  167. - xfrm_ipcomp
  168. - xfrm_user
  169. endef
  170. $(eval $(call KernelPackage,ipsec))
  171. IPSEC4-m = \
  172. ipv4/ah4 \
  173. ipv4/esp4 \
  174. ipv4/xfrm4_tunnel \
  175. ipv4/ipcomp \
  176. IPSEC4-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv4/xfrm4_mode_beet ipv4/xfrm4_mode_transport ipv4/xfrm4_mode_tunnel)
  177. define KernelPackage/ipsec4
  178. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  179. TITLE:=IPsec related modules (IPv4)
  180. DEPENDS:=kmod-ipsec +kmod-iptunnel4
  181. KCONFIG:= \
  182. CONFIG_INET_AH \
  183. CONFIG_INET_ESP \
  184. CONFIG_INET_IPCOMP \
  185. CONFIG_INET_XFRM_MODE_BEET \
  186. CONFIG_INET_XFRM_MODE_TRANSPORT \
  187. CONFIG_INET_XFRM_MODE_TUNNEL \
  188. CONFIG_INET_XFRM_TUNNEL \
  189. CONFIG_INET_ESP_OFFLOAD=n
  190. FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
  191. AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
  192. endef
  193. define KernelPackage/ipsec4/description
  194. Kernel modules for IPsec support in IPv4.
  195. Includes:
  196. - ah4
  197. - esp4
  198. - ipcomp4
  199. - xfrm4_mode_beet
  200. - xfrm4_mode_transport
  201. - xfrm4_mode_tunnel
  202. - xfrm4_tunnel
  203. endef
  204. $(eval $(call KernelPackage,ipsec4))
  205. IPSEC6-m = \
  206. ipv6/ah6 \
  207. ipv6/esp6 \
  208. ipv6/xfrm6_tunnel \
  209. ipv6/ipcomp6 \
  210. IPSEC6-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv6/xfrm6_mode_beet ipv6/xfrm6_mode_transport ipv6/xfrm6_mode_tunnel)
  211. define KernelPackage/ipsec6
  212. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  213. TITLE:=IPsec related modules (IPv6)
  214. DEPENDS:=@IPV6 kmod-ipsec +kmod-iptunnel6
  215. KCONFIG:= \
  216. CONFIG_INET6_AH \
  217. CONFIG_INET6_ESP \
  218. CONFIG_INET6_IPCOMP \
  219. CONFIG_INET6_XFRM_MODE_BEET \
  220. CONFIG_INET6_XFRM_MODE_TRANSPORT \
  221. CONFIG_INET6_XFRM_MODE_TUNNEL \
  222. CONFIG_INET6_XFRM_TUNNEL \
  223. CONFIG_INET6_ESP_OFFLOAD=n
  224. FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
  225. AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
  226. endef
  227. define KernelPackage/ipsec6/description
  228. Kernel modules for IPsec support in IPv6.
  229. Includes:
  230. - ah6
  231. - esp6
  232. - ipcomp6
  233. - xfrm6_mode_beet
  234. - xfrm6_mode_transport
  235. - xfrm6_mode_tunnel
  236. - xfrm6_tunnel
  237. endef
  238. $(eval $(call KernelPackage,ipsec6))
  239. define KernelPackage/iptunnel
  240. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  241. TITLE:=IP tunnel support
  242. HIDDEN:=1
  243. KCONFIG:= \
  244. CONFIG_NET_IP_TUNNEL
  245. FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
  246. AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
  247. endef
  248. define KernelPackage/iptunnel/description
  249. Kernel module for generic IP tunnel support
  250. endef
  251. $(eval $(call KernelPackage,iptunnel))
  252. define KernelPackage/ip-vti
  253. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  254. TITLE:=IP VTI (Virtual Tunnel Interface)
  255. DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
  256. KCONFIG:=CONFIG_NET_IPVTI
  257. FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
  258. AUTOLOAD:=$(call AutoLoad,33,ip_vti)
  259. endef
  260. define KernelPackage/ip-vti/description
  261. Kernel modules for IP VTI (Virtual Tunnel Interface)
  262. endef
  263. $(eval $(call KernelPackage,ip-vti))
  264. define KernelPackage/ip6-vti
  265. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  266. TITLE:=IPv6 VTI (Virtual Tunnel Interface)
  267. DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
  268. KCONFIG:=CONFIG_IPV6_VTI
  269. FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
  270. AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
  271. endef
  272. define KernelPackage/ip6-vti/description
  273. Kernel modules for IPv6 VTI (Virtual Tunnel Interface)
  274. endef
  275. $(eval $(call KernelPackage,ip6-vti))
  276. define KernelPackage/xfrm-interface
  277. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  278. TITLE:=IPsec XFRM Interface
  279. DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6
  280. KCONFIG:=CONFIG_XFRM_INTERFACE
  281. FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
  282. AUTOLOAD:=$(call AutoProbe,xfrm_interface)
  283. endef
  284. define KernelPackage/xfrm-interface/description
  285. Kernel module for XFRM interface support
  286. endef
  287. $(eval $(call KernelPackage,xfrm-interface))
  288. define KernelPackage/iptunnel4
  289. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  290. TITLE:=IPv4 tunneling
  291. HIDDEN:=1
  292. KCONFIG:= \
  293. CONFIG_INET_TUNNEL \
  294. CONFIG_NET_IPIP=m
  295. FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
  296. AUTOLOAD:=$(call AutoLoad,31,tunnel4)
  297. endef
  298. define KernelPackage/iptunnel4/description
  299. Kernel modules for IPv4 tunneling
  300. endef
  301. $(eval $(call KernelPackage,iptunnel4))
  302. define KernelPackage/iptunnel6
  303. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  304. TITLE:=IPv6 tunneling
  305. DEPENDS:=@IPV6
  306. KCONFIG:= \
  307. CONFIG_INET6_TUNNEL
  308. FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
  309. AUTOLOAD:=$(call AutoLoad,31,tunnel6)
  310. endef
  311. define KernelPackage/iptunnel6/description
  312. Kernel modules for IPv6 tunneling
  313. endef
  314. $(eval $(call KernelPackage,iptunnel6))
  315. define KernelPackage/sit
  316. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  317. DEPENDS:=@IPV6 +kmod-iptunnel +kmod-iptunnel4
  318. TITLE:=IPv6-in-IPv4 tunnel
  319. KCONFIG:=CONFIG_IPV6_SIT \
  320. CONFIG_IPV6_SIT_6RD=y
  321. FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
  322. AUTOLOAD:=$(call AutoLoad,32,sit)
  323. endef
  324. define KernelPackage/sit/description
  325. Kernel modules for IPv6-in-IPv4 tunnelling
  326. endef
  327. $(eval $(call KernelPackage,sit))
  328. define KernelPackage/fou
  329. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  330. TITLE:=FOU and GUE decapsulation
  331. DEPENDS:= \
  332. +kmod-iptunnel \
  333. +kmod-udptunnel4 \
  334. +IPV6:kmod-udptunnel6
  335. KCONFIG:= \
  336. CONFIG_NET_FOU \
  337. CONFIG_NET_FOU_IP_TUNNELS=y
  338. FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
  339. AUTOLOAD:=$(call AutoProbe,fou)
  340. endef
  341. define KernelPackage/fou/description
  342. Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling.
  343. Requires Kernel 3.18 or newer.
  344. endef
  345. $(eval $(call KernelPackage,fou))
  346. define KernelPackage/fou6
  347. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  348. TITLE:=FOU and GUE decapsulation over IPv6
  349. DEPENDS:= @IPV6 \
  350. +kmod-fou \
  351. +kmod-ip6-tunnel
  352. KCONFIG:= \
  353. CONFIG_IPV6_FOU \
  354. CONFIG_IPV6_FOU_TUNNEL
  355. FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
  356. AUTOLOAD:=$(call AutoProbe,fou6)
  357. endef
  358. define KernelPackage/fou6/description
  359. Kernel module for FOU (Foo over UDP) and GUE (Generic UDP Encapsulation) tunnelling over IPv6.
  360. Requires Kernel 3.18 or newer.
  361. endef
  362. $(eval $(call KernelPackage,fou6))
  363. define KernelPackage/ip6-tunnel
  364. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  365. TITLE:=IP-in-IPv6 tunnelling
  366. DEPENDS:=@IPV6 +kmod-iptunnel6
  367. KCONFIG:= CONFIG_IPV6_TUNNEL
  368. FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
  369. AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
  370. endef
  371. define KernelPackage/ip6-tunnel/description
  372. Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
  373. endef
  374. $(eval $(call KernelPackage,ip6-tunnel))
  375. define KernelPackage/gre
  376. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  377. TITLE:=GRE support
  378. DEPENDS:=+kmod-iptunnel
  379. KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
  380. FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
  381. AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
  382. endef
  383. define KernelPackage/gre/description
  384. Generic Routing Encapsulation support
  385. endef
  386. $(eval $(call KernelPackage,gre))
  387. define KernelPackage/gre6
  388. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  389. TITLE:=GRE support over IPV6
  390. DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
  391. KCONFIG:=CONFIG_IPV6_GRE
  392. FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
  393. AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
  394. endef
  395. define KernelPackage/gre6/description
  396. Generic Routing Encapsulation support over IPv6
  397. endef
  398. $(eval $(call KernelPackage,gre6))
  399. define KernelPackage/tun
  400. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  401. TITLE:=Universal TUN/TAP driver
  402. KCONFIG:=CONFIG_TUN
  403. FILES:=$(LINUX_DIR)/drivers/net/tun.ko
  404. AUTOLOAD:=$(call AutoLoad,30,tun)
  405. endef
  406. define KernelPackage/tun/description
  407. Kernel support for the TUN/TAP tunneling device
  408. endef
  409. $(eval $(call KernelPackage,tun))
  410. define KernelPackage/veth
  411. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  412. TITLE:=Virtual ethernet pair device
  413. KCONFIG:=CONFIG_VETH
  414. FILES:=$(LINUX_DIR)/drivers/net/veth.ko
  415. AUTOLOAD:=$(call AutoLoad,30,veth)
  416. endef
  417. define KernelPackage/veth/description
  418. This device is a local ethernet tunnel. Devices are created in pairs.
  419. When one end receives the packet it appears on its pair and vice
  420. versa.
  421. endef
  422. $(eval $(call KernelPackage,veth))
  423. define KernelPackage/vrf
  424. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  425. TITLE:=Virtual Routing and Forwarding (Lite)
  426. DEPENDS:=@KERNEL_NET_L3_MASTER_DEV
  427. KCONFIG:=CONFIG_NET_VRF
  428. FILES:=$(LINUX_DIR)/drivers/net/vrf.ko
  429. AUTOLOAD:=$(call AutoLoad,30,vrf)
  430. endef
  431. define KernelPackage/vrf/description
  432. This option enables the support for mapping interfaces into VRF's. The
  433. support enables VRF devices.
  434. endef
  435. $(eval $(call KernelPackage,vrf))
  436. define KernelPackage/slhc
  437. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  438. HIDDEN:=1
  439. TITLE:=Serial Line Header Compression
  440. DEPENDS:=+kmod-lib-crc-ccitt
  441. KCONFIG:=CONFIG_SLHC
  442. FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
  443. endef
  444. $(eval $(call KernelPackage,slhc))
  445. define KernelPackage/ppp
  446. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  447. TITLE:=PPP modules
  448. DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
  449. KCONFIG:= \
  450. CONFIG_PPP \
  451. CONFIG_PPP_ASYNC
  452. FILES:= \
  453. $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
  454. $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
  455. AUTOLOAD:=$(call AutoProbe,ppp_async)
  456. endef
  457. define KernelPackage/ppp/description
  458. Kernel modules for PPP support
  459. endef
  460. $(eval $(call KernelPackage,ppp))
  461. define KernelPackage/ppp-synctty
  462. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  463. TITLE:=PPP sync tty support
  464. DEPENDS:=kmod-ppp
  465. KCONFIG:=CONFIG_PPP_SYNC_TTY
  466. FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
  467. AUTOLOAD:=$(call AutoProbe,ppp_synctty)
  468. endef
  469. define KernelPackage/ppp-synctty/description
  470. Kernel modules for PPP sync tty support
  471. endef
  472. $(eval $(call KernelPackage,ppp-synctty))
  473. define KernelPackage/pppox
  474. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  475. TITLE:=PPPoX helper
  476. DEPENDS:=kmod-ppp
  477. KCONFIG:=CONFIG_PPPOE
  478. FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
  479. endef
  480. define KernelPackage/pppox/description
  481. Kernel helper module for PPPoE and PPTP support
  482. endef
  483. $(eval $(call KernelPackage,pppox))
  484. define KernelPackage/pppoe
  485. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  486. TITLE:=PPPoE support
  487. DEPENDS:=kmod-ppp +kmod-pppox
  488. KCONFIG:=CONFIG_PPPOE
  489. FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
  490. AUTOLOAD:=$(call AutoProbe,pppoe)
  491. endef
  492. define KernelPackage/pppoe/description
  493. Kernel module for PPPoE (PPP over Ethernet) support
  494. endef
  495. $(eval $(call KernelPackage,pppoe))
  496. define KernelPackage/pppoa
  497. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  498. TITLE:=PPPoA support
  499. DEPENDS:=kmod-ppp +kmod-atm
  500. KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
  501. FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
  502. AUTOLOAD:=$(call AutoLoad,40,pppoatm)
  503. endef
  504. define KernelPackage/pppoa/description
  505. Kernel modules for PPPoA (PPP over ATM) support
  506. endef
  507. $(eval $(call KernelPackage,pppoa))
  508. define KernelPackage/pptp
  509. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  510. TITLE:=PPtP support
  511. DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
  512. KCONFIG:=CONFIG_PPTP
  513. FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
  514. AUTOLOAD:=$(call AutoProbe,pptp)
  515. endef
  516. $(eval $(call KernelPackage,pptp))
  517. define KernelPackage/pppol2tp
  518. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  519. TITLE:=PPPoL2TP support
  520. DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
  521. KCONFIG:=CONFIG_PPPOL2TP
  522. FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
  523. AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
  524. endef
  525. define KernelPackage/pppol2tp/description
  526. Kernel modules for PPPoL2TP (PPP over L2TP) support
  527. endef
  528. $(eval $(call KernelPackage,pppol2tp))
  529. define KernelPackage/ipoa
  530. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  531. TITLE:=IPoA support
  532. DEPENDS:=kmod-atm
  533. KCONFIG:=CONFIG_ATM_CLIP
  534. FILES:=$(LINUX_DIR)/net/atm/clip.ko
  535. AUTOLOAD:=$(call AutoProbe,clip)
  536. endef
  537. define KernelPackage/ipoa/description
  538. Kernel modules for IPoA (IP over ATM) support
  539. endef
  540. $(eval $(call KernelPackage,ipoa))
  541. define KernelPackage/mppe
  542. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  543. TITLE:=Microsoft PPP compression/encryption
  544. DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
  545. KCONFIG:= \
  546. CONFIG_PPP_MPPE_MPPC \
  547. CONFIG_PPP_MPPE
  548. FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
  549. AUTOLOAD:=$(call AutoProbe,ppp_mppe)
  550. endef
  551. define KernelPackage/mppe/description
  552. Kernel modules for Microsoft PPP compression/encryption
  553. endef
  554. $(eval $(call KernelPackage,mppe))
  555. SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
  556. SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko)
  557. define KernelPackage/sched-core
  558. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  559. TITLE:=Traffic schedulers
  560. KCONFIG:= \
  561. CONFIG_NET_SCHED=y \
  562. CONFIG_NET_SCH_HFSC \
  563. CONFIG_NET_SCH_HTB \
  564. CONFIG_NET_SCH_TBF \
  565. CONFIG_NET_SCH_INGRESS \
  566. CONFIG_NET_CLS=y \
  567. CONFIG_NET_CLS_ACT=y \
  568. CONFIG_NET_CLS_BASIC \
  569. CONFIG_NET_CLS_FLOW \
  570. CONFIG_NET_CLS_FW \
  571. CONFIG_NET_CLS_ROUTE4 \
  572. CONFIG_NET_CLS_TCINDEX \
  573. CONFIG_NET_CLS_U32 \
  574. CONFIG_NET_ACT_GACT \
  575. CONFIG_NET_ACT_MIRRED \
  576. CONFIG_NET_ACT_SKBEDIT \
  577. CONFIG_NET_CLS_MATCHALL \
  578. CONFIG_NET_EMATCH=y \
  579. CONFIG_NET_EMATCH_U32
  580. FILES:=$(SCHED_FILES_CORE)
  581. AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
  582. endef
  583. define KernelPackage/sched-core/description
  584. Core kernel scheduler support for IP traffic
  585. endef
  586. $(eval $(call KernelPackage,sched-core))
  587. define KernelPackage/sched-act-police
  588. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  589. TITLE:=Traffic Policing
  590. DEPENDS:=+kmod-sched-core
  591. KCONFIG:=CONFIG_NET_ACT_POLICE
  592. FILES:=$(LINUX_DIR)/net/sched/act_police.ko
  593. AUTOLOAD:=$(call AutoProbe,act_police)
  594. endef
  595. $(eval $(call KernelPackage,sched-act-police))
  596. define KernelPackage/sched-act-sample
  597. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  598. TITLE:=Traffic Sampling
  599. DEPENDS:=+kmod-sched-core
  600. KCONFIG:= \
  601. CONFIG_NET_ACT_SAMPLE \
  602. CONFIG_PSAMPLE
  603. FILES:= \
  604. $(LINUX_DIR)/net/psample/psample.ko \
  605. $(LINUX_DIR)/net/sched/act_sample.ko
  606. AUTOLOAD:=$(call AutoProbe,act_sample psample)
  607. endef
  608. define KernelPackage/sched-act-sample/description
  609. Packet sampling tc action.
  610. endef
  611. $(eval $(call KernelPackage,sched-act-sample))
  612. define KernelPackage/sched-act-ipt
  613. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  614. TITLE:=IPtables targets
  615. DEPENDS:=+kmod-ipt-core +kmod-sched-core
  616. KCONFIG:=CONFIG_NET_ACT_IPT
  617. FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko
  618. AUTOLOAD:=$(call AutoProbe, act_ipt)
  619. endef
  620. define KernelPackage/sched-act-ipt/description
  621. Allows to invoke iptables targets after successful classification.
  622. endef
  623. $(eval $(call KernelPackage,sched-act-ipt))
  624. define KernelPackage/sched-act-vlan
  625. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  626. TITLE:=Traffic VLAN manipulation
  627. DEPENDS:=+kmod-sched-core
  628. KCONFIG:=CONFIG_NET_ACT_VLAN
  629. FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
  630. AUTOLOAD:=$(call AutoProbe, act_vlan)
  631. endef
  632. define KernelPackage/sched-act-vlan/description
  633. Allows to configure rules to push or pop vlan headers.
  634. endef
  635. $(eval $(call KernelPackage,sched-act-vlan))
  636. define KernelPackage/sched-bpf
  637. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  638. TITLE:=Traffic shaper support for Berkeley Packet Filter
  639. KCONFIG:= \
  640. CONFIG_NET_CLS_BPF \
  641. CONFIG_NET_ACT_BPF
  642. FILES:= \
  643. $(LINUX_DIR)/net/sched/cls_bpf.ko \
  644. $(LINUX_DIR)/net/sched/act_bpf.ko
  645. AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
  646. endef
  647. $(eval $(call KernelPackage,sched-bpf))
  648. define KernelPackage/sched-cake
  649. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  650. TITLE:=Cake fq_codel/blue derived shaper
  651. DEPENDS:=+kmod-sched-core
  652. KCONFIG:=CONFIG_NET_SCH_CAKE
  653. FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
  654. AUTOLOAD:=$(call AutoProbe,sch_cake)
  655. endef
  656. define KernelPackage/sched-cake/description
  657. Common Applications Kept Enhanced fq_codel/blue derived shaper
  658. endef
  659. $(eval $(call KernelPackage,sched-cake))
  660. define KernelPackage/sched-connmark
  661. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  662. TITLE:=Traffic shaper conntrack mark support
  663. DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
  664. KCONFIG:=CONFIG_NET_ACT_CONNMARK
  665. FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
  666. AUTOLOAD:=$(call AutoLoad,71, act_connmark)
  667. endef
  668. $(eval $(call KernelPackage,sched-connmark))
  669. define KernelPackage/sched-ctinfo
  670. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  671. TITLE:=Traffic shaper ctinfo support
  672. DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
  673. KCONFIG:=CONFIG_NET_ACT_CTINFO
  674. FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
  675. AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
  676. endef
  677. $(eval $(call KernelPackage,sched-ctinfo))
  678. define KernelPackage/sched-drr
  679. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  680. TITLE:=Deficit Round Robin scheduler (DRR)
  681. DEPENDS:=+kmod-sched-core
  682. KCONFIG:=CONFIG_NET_SCH_DRR
  683. FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko
  684. AUTOLOAD:=$(call AutoProbe,sch_drr)
  685. endef
  686. define KernelPackage/sched-drr/description
  687. DRR algorithm Configuration
  688. endef
  689. $(eval $(call KernelPackage,sched-drr))
  690. define KernelPackage/sched-flower
  691. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  692. TITLE:=Flower traffic classifier
  693. DEPENDS:=+kmod-sched-core
  694. KCONFIG:=CONFIG_NET_CLS_FLOWER
  695. FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
  696. AUTOLOAD:=$(call AutoProbe, cls_flower)
  697. endef
  698. define KernelPackage/sched-flower/description
  699. Allows to classify packets based on a configurable combination of packet keys and masks.
  700. endef
  701. $(eval $(call KernelPackage,sched-flower))
  702. define KernelPackage/sched-fq-pie
  703. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  704. TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE)
  705. DEPENDS:=+kmod-sched-core +kmod-sched-pie
  706. KCONFIG:=CONFIG_NET_SCH_FQ_PIE
  707. FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko
  708. AUTOLOAD:=$(call AutoProbe, sch_fq_pie)
  709. endef
  710. define KernelPackage/sched-fq-pie/description
  711. A queuing discipline that combines Flow Queuing with the PIE AQM.
  712. endef
  713. $(eval $(call KernelPackage,sched-fq-pie))
  714. define KernelPackage/sched-ipset
  715. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  716. TITLE:=Traffic shaper ipset support
  717. DEPENDS:=+kmod-sched-core +kmod-ipt-ipset
  718. KCONFIG:= \
  719. CONFIG_NET_EMATCH_IPSET
  720. FILES:= \
  721. $(LINUX_DIR)/net/sched/em_ipset.ko
  722. AUTOLOAD:=$(call AutoLoad,72,em_ipset)
  723. endef
  724. $(eval $(call KernelPackage,sched-ipset))
  725. define KernelPackage/sched-mqprio
  726. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  727. TITLE:=Multi-queue priority scheduler (MQPRIO)
  728. DEPENDS:=+kmod-sched-core
  729. KCONFIG:=CONFIG_NET_SCH_MQPRIO
  730. FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
  731. AUTOLOAD:=$(call AutoProbe, sch_mqprio)
  732. endef
  733. define KernelPackage/sched-mqprio/description
  734. This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
  735. endef
  736. $(eval $(call KernelPackage,sched-mqprio))
  737. define KernelPackage/sched-pie
  738. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  739. TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
  740. DEPENDS:=+kmod-sched-core
  741. KCONFIG:=CONFIG_NET_SCH_PIE
  742. FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
  743. AUTOLOAD:=$(call AutoProbe, sch_pie)
  744. endef
  745. define KernelPackage/sched-pie/description
  746. A control theoretic active queue management scheme.
  747. endef
  748. $(eval $(call KernelPackage,sched-pie))
  749. define KernelPackage/sched-prio
  750. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  751. TITLE:=Multi Band Priority Queueing (PRIO)
  752. DEPENDS:=+kmod-sched-core
  753. KCONFIG:=CONFIG_NET_SCH_PRIO
  754. FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
  755. AUTOLOAD:=$(call AutoProbe,sch_prio)
  756. endef
  757. define KernelPackage/sched-prio/description
  758. PRIO algorithm Configuration
  759. endef
  760. $(eval $(call KernelPackage,sched-prio))
  761. define KernelPackage/sched-red
  762. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  763. TITLE:=Random Early Detection (RED)
  764. DEPENDS:=+kmod-sched-core
  765. KCONFIG:=CONFIG_NET_SCH_RED
  766. FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
  767. AUTOLOAD:=$(call AutoProbe,sch_red)
  768. endef
  769. define KernelPackage/sched-red/description
  770. Random Early Detection (RED) algorithm Configuration
  771. endef
  772. $(eval $(call KernelPackage,sched-red))
  773. define KernelPackage/bpf-test
  774. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  775. TITLE:=Test Berkeley Packet Filter functionality
  776. KCONFIG:=CONFIG_TEST_BPF
  777. FILES:=$(LINUX_DIR)/lib/test_bpf.ko
  778. endef
  779. $(eval $(call KernelPackage,bpf-test))
  780. SCHED_MODULES_EXTRA = sch_codel sch_dsmark sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_csum em_cmp em_nbyte em_meta em_text
  781. SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
  782. define KernelPackage/sched
  783. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  784. TITLE:=Extra traffic schedulers
  785. DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
  786. KCONFIG:= \
  787. CONFIG_NET_SCH_CODEL \
  788. CONFIG_NET_SCH_DSMARK \
  789. CONFIG_NET_SCH_GRED \
  790. CONFIG_NET_SCH_MULTIQ \
  791. CONFIG_NET_SCH_SFQ \
  792. CONFIG_NET_SCH_TEQL \
  793. CONFIG_NET_SCH_FQ \
  794. CONFIG_NET_ACT_PEDIT \
  795. CONFIG_NET_ACT_SIMP \
  796. CONFIG_NET_ACT_CSUM \
  797. CONFIG_NET_EMATCH_CMP \
  798. CONFIG_NET_EMATCH_NBYTE \
  799. CONFIG_NET_EMATCH_META \
  800. CONFIG_NET_EMATCH_TEXT
  801. FILES:=$(SCHED_FILES_EXTRA)
  802. AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
  803. endef
  804. define KernelPackage/sched/description
  805. Extra kernel schedulers modules for IP traffic
  806. endef
  807. SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
  808. define KernelPackage/sched/install
  809. $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
  810. $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
  811. endef
  812. $(eval $(call KernelPackage,sched))
  813. define KernelPackage/tcp-bbr
  814. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  815. TITLE:=BBR TCP congestion control
  816. KCONFIG:=CONFIG_TCP_CONG_BBR
  817. FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
  818. AUTOLOAD:=$(call AutoProbe,tcp_bbr)
  819. endef
  820. define KernelPackage/tcp-bbr/description
  821. Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
  822. control. It requires the fq ("Fair Queue") pacing packet scheduler.
  823. For kernel 4.13+, TCP internal pacing is implemented as fallback.
  824. endef
  825. TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
  826. define KernelPackage/tcp-bbr/install
  827. $(INSTALL_DIR) $(1)/etc/sysctl.d
  828. $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
  829. endef
  830. $(eval $(call KernelPackage,tcp-bbr))
  831. define KernelPackage/tcp-hybla
  832. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  833. TITLE:=TCP-Hybla congestion control algorithm
  834. KCONFIG:=CONFIG_TCP_CONG_HYBLA
  835. FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
  836. AUTOLOAD:=$(call AutoProbe,tcp_hybla)
  837. endef
  838. define KernelPackage/tcp-hybla/description
  839. TCP-Hybla is a sender-side only change that eliminates penalization of
  840. long-RTT, large-bandwidth connections, like when satellite legs are
  841. involved, especially when sharing a common bottleneck with normal
  842. terrestrial connections.
  843. endef
  844. $(eval $(call KernelPackage,tcp-hybla))
  845. define KernelPackage/tcp-scalable
  846. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  847. TITLE:=TCP-Scalable congestion control algorithm
  848. KCONFIG:=CONFIG_TCP_CONG_SCALABLE
  849. FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
  850. AUTOLOAD:=$(call AutoProbe,tcp-scalable)
  851. endef
  852. define KernelPackage/tcp-scalable/description
  853. Scalable TCP is a sender-side only change to TCP which uses a
  854. MIMD congestion control algorithm which has some nice scaling
  855. properties, though is known to have fairness issues.
  856. See http://www.deneholme.net/tom/scalable/
  857. endef
  858. $(eval $(call KernelPackage,tcp-scalable))
  859. define KernelPackage/ax25
  860. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  861. TITLE:=AX25 support
  862. DEPENDS:=+kmod-lib-crc16
  863. KCONFIG:= \
  864. CONFIG_HAMRADIO=y \
  865. CONFIG_AX25 \
  866. CONFIG_MKISS
  867. FILES:= \
  868. $(LINUX_DIR)/net/ax25/ax25.ko \
  869. $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
  870. AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
  871. endef
  872. define KernelPackage/ax25/description
  873. Kernel modules for AX25 support
  874. endef
  875. $(eval $(call KernelPackage,ax25))
  876. define KernelPackage/pktgen
  877. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  878. DEPENDS:=@!TARGET_uml
  879. TITLE:=Network packet generator
  880. KCONFIG:=CONFIG_NET_PKTGEN
  881. FILES:=$(LINUX_DIR)/net/core/pktgen.ko
  882. AUTOLOAD:=$(call AutoLoad,99,pktgen)
  883. endef
  884. define KernelPackage/pktgen/description
  885. Kernel modules for the Network Packet Generator
  886. endef
  887. $(eval $(call KernelPackage,pktgen))
  888. define KernelPackage/l2tp
  889. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  890. TITLE:=Layer Two Tunneling Protocol (L2TP)
  891. DEPENDS:= \
  892. +kmod-udptunnel4 \
  893. +IPV6:kmod-udptunnel6
  894. KCONFIG:=CONFIG_L2TP \
  895. CONFIG_L2TP_V3=y \
  896. CONFIG_L2TP_DEBUGFS=n
  897. FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
  898. $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
  899. AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
  900. endef
  901. define KernelPackage/l2tp/description
  902. Kernel modules for L2TP V3 Support
  903. endef
  904. $(eval $(call KernelPackage,l2tp))
  905. define KernelPackage/l2tp-eth
  906. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  907. TITLE:=L2TP ethernet pseudowire support for L2TPv3
  908. DEPENDS:=+kmod-l2tp
  909. KCONFIG:=CONFIG_L2TP_ETH
  910. FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
  911. AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
  912. endef
  913. define KernelPackage/l2tp-eth/description
  914. Kernel modules for L2TP ethernet pseudowire support for L2TPv3
  915. endef
  916. $(eval $(call KernelPackage,l2tp-eth))
  917. define KernelPackage/l2tp-ip
  918. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  919. TITLE:=L2TP IP encapsulation for L2TPv3
  920. DEPENDS:=+kmod-l2tp
  921. KCONFIG:=CONFIG_L2TP_IP
  922. FILES:= \
  923. $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
  924. $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
  925. AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
  926. endef
  927. define KernelPackage/l2tp-ip/description
  928. Kernel modules for L2TP IP encapsulation for L2TPv3
  929. endef
  930. $(eval $(call KernelPackage,l2tp-ip))
  931. define KernelPackage/sctp
  932. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  933. TITLE:=SCTP protocol kernel support
  934. KCONFIG:=\
  935. CONFIG_IP_SCTP \
  936. CONFIG_SCTP_DBG_MSG=n \
  937. CONFIG_SCTP_DBG_OBJCNT=n \
  938. CONFIG_SCTP_HMAC_NONE=n \
  939. CONFIG_SCTP_HMAC_SHA1=n \
  940. CONFIG_SCTP_HMAC_MD5=y \
  941. CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
  942. CONFIG_SCTP_COOKIE_HMAC_MD5=y \
  943. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
  944. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
  945. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
  946. FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
  947. AUTOLOAD:= $(call AutoLoad,32,sctp)
  948. DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
  949. +LINUX_5_15:kmod-udptunnel4 +LINUX_5_15:kmod-udptunnel6
  950. endef
  951. define KernelPackage/sctp/description
  952. Kernel modules for SCTP protocol support
  953. endef
  954. $(eval $(call KernelPackage,sctp))
  955. define KernelPackage/netem
  956. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  957. TITLE:=Network emulation functionality
  958. DEPENDS:=+kmod-sched
  959. KCONFIG:=CONFIG_NET_SCH_NETEM
  960. FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
  961. AUTOLOAD:=$(call AutoLoad,99,netem)
  962. endef
  963. define KernelPackage/netem/description
  964. Kernel modules for emulating the properties of wide area networks
  965. endef
  966. $(eval $(call KernelPackage,netem))
  967. define KernelPackage/slip
  968. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  969. DEPENDS:=+kmod-slhc
  970. TITLE:=SLIP modules
  971. KCONFIG:= \
  972. CONFIG_SLIP \
  973. CONFIG_SLIP_COMPRESSED=y \
  974. CONFIG_SLIP_SMART=y \
  975. CONFIG_SLIP_MODE_SLIP6=y
  976. FILES:= \
  977. $(LINUX_DIR)/drivers/net/slip/slip.ko
  978. AUTOLOAD:=$(call AutoLoad,30,slip)
  979. endef
  980. define KernelPackage/slip/description
  981. Kernel modules for SLIP support
  982. endef
  983. $(eval $(call KernelPackage,slip))
  984. define KernelPackage/dnsresolver
  985. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  986. TITLE:=In-kernel DNS Resolver
  987. KCONFIG:= CONFIG_DNS_RESOLVER
  988. FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
  989. AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
  990. endef
  991. $(eval $(call KernelPackage,dnsresolver))
  992. define KernelPackage/rxrpc
  993. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  994. TITLE:=AF_RXRPC support
  995. HIDDEN:=1
  996. KCONFIG:= \
  997. CONFIG_AF_RXRPC \
  998. CONFIG_RXKAD=m \
  999. CONFIG_AF_RXRPC_DEBUG=n
  1000. FILES:= \
  1001. $(LINUX_DIR)/net/rxrpc/rxrpc.ko
  1002. AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
  1003. DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
  1004. endef
  1005. define KernelPackage/rxrpc/description
  1006. Kernel support for AF_RXRPC; required for AFS client
  1007. endef
  1008. $(eval $(call KernelPackage,rxrpc))
  1009. define KernelPackage/mpls
  1010. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1011. TITLE:=MPLS support
  1012. DEPENDS:=+kmod-iptunnel
  1013. KCONFIG:= \
  1014. CONFIG_MPLS=y \
  1015. CONFIG_LWTUNNEL=y \
  1016. CONFIG_LWTUNNEL_BPF=n \
  1017. CONFIG_NET_MPLS_GSO=m \
  1018. CONFIG_MPLS_ROUTING=m \
  1019. CONFIG_MPLS_IPTUNNEL=m
  1020. FILES:= \
  1021. $(LINUX_DIR)/net/mpls/mpls_gso.ko \
  1022. $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
  1023. $(LINUX_DIR)/net/mpls/mpls_router.ko
  1024. AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
  1025. endef
  1026. define KernelPackage/mpls/description
  1027. Kernel support for MPLS
  1028. endef
  1029. $(eval $(call KernelPackage,mpls))
  1030. define KernelPackage/9pnet
  1031. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1032. TITLE:=Plan 9 Resource Sharing Support (9P2000)
  1033. DEPENDS:=@VIRTIO_SUPPORT
  1034. KCONFIG:= \
  1035. CONFIG_NET_9P \
  1036. CONFIG_NET_9P_DEBUG=n \
  1037. CONFIG_NET_9P_XEN=n \
  1038. CONFIG_NET_9P_VIRTIO
  1039. FILES:= \
  1040. $(LINUX_DIR)/net/9p/9pnet.ko \
  1041. $(LINUX_DIR)/net/9p/9pnet_virtio.ko
  1042. AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
  1043. endef
  1044. define KernelPackage/9pnet/description
  1045. Kernel support support for
  1046. Plan 9 resource sharing via the 9P2000 protocol.
  1047. endef
  1048. $(eval $(call KernelPackage,9pnet))
  1049. define KernelPackage/nlmon
  1050. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1051. TITLE:=Virtual netlink monitoring device
  1052. KCONFIG:=CONFIG_NLMON
  1053. FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
  1054. AUTOLOAD:=$(call AutoProbe,nlmon)
  1055. endef
  1056. define KernelPackage/nlmon/description
  1057. Kernel module which adds a monitoring device for netlink.
  1058. endef
  1059. $(eval $(call KernelPackage,nlmon))
  1060. define KernelPackage/mdio
  1061. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1062. TITLE:=MDIO (clause 45) PHY support
  1063. KCONFIG:=CONFIG_MDIO
  1064. HIDDEN:=1
  1065. FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
  1066. AUTOLOAD:=$(call AutoLoad,32,mdio)
  1067. endef
  1068. define KernelPackage/mdio/description
  1069. Kernel modules for MDIO (clause 45) PHY support
  1070. endef
  1071. $(eval $(call KernelPackage,mdio))
  1072. define KernelPackage/macsec
  1073. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1074. TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
  1075. DEPENDS:=+kmod-crypto-gcm
  1076. KCONFIG:=CONFIG_MACSEC
  1077. FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
  1078. AUTOLOAD:=$(call AutoLoad,13,macsec)
  1079. endef
  1080. define KernelPackage/macsec/description
  1081. MACsec is an encryption standard for Ethernet.
  1082. endef
  1083. $(eval $(call KernelPackage,macsec))
  1084. define KernelPackage/netlink-diag
  1085. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1086. TITLE:=Netlink diag support for ss utility
  1087. KCONFIG:=CONFIG_NETLINK_DIAG
  1088. FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
  1089. AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
  1090. endef
  1091. define KernelPackage/netlink-diag/description
  1092. Netlink diag is a module made for use with iproute2's ss utility
  1093. endef
  1094. $(eval $(call KernelPackage,netlink-diag))
  1095. define KernelPackage/inet-diag
  1096. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1097. TITLE:=INET diag support for ss utility
  1098. KCONFIG:= \
  1099. CONFIG_INET_DIAG \
  1100. CONFIG_INET_TCP_DIAG \
  1101. CONFIG_INET_UDP_DIAG \
  1102. CONFIG_INET_RAW_DIAG \
  1103. CONFIG_INET_DIAG_DESTROY=n
  1104. FILES:= \
  1105. $(LINUX_DIR)/net/ipv4/inet_diag.ko \
  1106. $(LINUX_DIR)/net/ipv4/tcp_diag.ko \
  1107. $(LINUX_DIR)/net/ipv4/udp_diag.ko \
  1108. $(LINUX_DIR)/net/ipv4/raw_diag.ko
  1109. AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
  1110. endef
  1111. define KernelPackage/inet-diag/description
  1112. Support for INET (TCP, DCCP, etc) socket monitoring interface used by
  1113. native Linux tools such as ss.
  1114. endef
  1115. $(eval $(call KernelPackage,inet-diag))
  1116. define KernelPackage/wireguard
  1117. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1118. TITLE:=WireGuard secure network tunnel
  1119. DEPENDS:= \
  1120. +kmod-crypto-lib-chacha20poly1305 \
  1121. +kmod-crypto-lib-curve25519 \
  1122. +kmod-udptunnel4 \
  1123. +IPV6:kmod-udptunnel6
  1124. KCONFIG:= \
  1125. CONFIG_WIREGUARD \
  1126. CONFIG_WIREGUARD_DEBUG=n
  1127. FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
  1128. AUTOLOAD:=$(call AutoProbe,wireguard)
  1129. endef
  1130. define KernelPackage/wireguard/description
  1131. WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
  1132. state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
  1133. more useful than IPSec, while avoiding the massive headache. It intends to
  1134. be considerably more performant than OpenVPN. WireGuard is designed as a
  1135. general purpose VPN for running on embedded interfaces and super computers
  1136. alike, fit for many different circumstances. It uses UDP.
  1137. endef
  1138. $(eval $(call KernelPackage,wireguard))
  1139. define KernelPackage/netconsole
  1140. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1141. TITLE:=Network console logging support
  1142. KCONFIG:=CONFIG_NETCONSOLE \
  1143. CONFIG_NETCONSOLE_DYNAMIC=n
  1144. FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
  1145. AUTOLOAD:=$(call AutoProbe,netconsole)
  1146. endef
  1147. define KernelPackage/netconsole/description
  1148. Network console logging support.
  1149. endef
  1150. $(eval $(call KernelPackage,netconsole))