netsupport.mk 39 KB

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