netsupport.mk 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597
  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. DEPENDS:=@LINUX_6_6
  716. HIDDEN:=1
  717. KCONFIG:=CONFIG_NET_SCH_MQPRIO_LIB
  718. FILES:=$(LINUX_DIR)/net/sched/sch_mqprio_lib.ko
  719. endef
  720. define KernelPackage/sched-mqprio-common/description
  721. Common library for manipulating mqprio queue configurations
  722. endef
  723. $(eval $(call KernelPackage,sched-mqprio-common))
  724. define KernelPackage/sched-mqprio
  725. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  726. TITLE:=Multi-queue priority scheduler (MQPRIO)
  727. DEPENDS:=+kmod-sched-core +LINUX_6_6:kmod-sched-mqprio-common
  728. KCONFIG:=CONFIG_NET_SCH_MQPRIO
  729. FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
  730. AUTOLOAD:=$(call AutoProbe, sch_mqprio)
  731. endef
  732. define KernelPackage/sched-mqprio/description
  733. This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
  734. endef
  735. $(eval $(call KernelPackage,sched-mqprio))
  736. define KernelPackage/sched-pie
  737. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  738. TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
  739. DEPENDS:=+kmod-sched-core
  740. KCONFIG:=CONFIG_NET_SCH_PIE
  741. FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
  742. AUTOLOAD:=$(call AutoProbe, sch_pie)
  743. endef
  744. define KernelPackage/sched-pie/description
  745. A control theoretic active queue management scheme.
  746. endef
  747. $(eval $(call KernelPackage,sched-pie))
  748. define KernelPackage/sched-prio
  749. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  750. TITLE:=Multi Band Priority Queueing (PRIO)
  751. DEPENDS:=+kmod-sched-core
  752. KCONFIG:=CONFIG_NET_SCH_PRIO
  753. FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
  754. AUTOLOAD:=$(call AutoProbe,sch_prio)
  755. endef
  756. define KernelPackage/sched-prio/description
  757. PRIO algorithm Configuration
  758. endef
  759. $(eval $(call KernelPackage,sched-prio))
  760. define KernelPackage/sched-red
  761. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  762. TITLE:=Random Early Detection (RED)
  763. DEPENDS:=+kmod-sched-core
  764. KCONFIG:=CONFIG_NET_SCH_RED
  765. FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
  766. AUTOLOAD:=$(call AutoProbe,sch_red)
  767. endef
  768. define KernelPackage/sched-red/description
  769. Random Early Detection (RED) algorithm Configuration
  770. endef
  771. $(eval $(call KernelPackage,sched-red))
  772. define KernelPackage/sched-skbprio
  773. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  774. TITLE:=SKB priority queue scheduler (SKBPRIO)
  775. DEPENDS:=+kmod-sched-core
  776. KCONFIG:= CONFIG_NET_SCH_SKBPRIO
  777. FILES:= $(LINUX_DIR)/net/sched/sch_skbprio.ko
  778. AUTOLOAD:=$(call AutoProbe,sch_skbprio)
  779. endef
  780. $(eval $(call KernelPackage,sched-skbprio))
  781. define KernelPackage/bpf-test
  782. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  783. TITLE:=Test Berkeley Packet Filter functionality
  784. KCONFIG:=CONFIG_TEST_BPF
  785. FILES:=$(LINUX_DIR)/lib/test_bpf.ko
  786. endef
  787. $(eval $(call KernelPackage,bpf-test))
  788. 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
  789. SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
  790. define KernelPackage/sched
  791. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  792. TITLE:=Extra traffic schedulers
  793. DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
  794. KCONFIG:= \
  795. CONFIG_NET_SCH_CODEL \
  796. CONFIG_NET_SCH_GRED \
  797. CONFIG_NET_SCH_MULTIQ \
  798. CONFIG_NET_SCH_SFQ \
  799. CONFIG_NET_SCH_TEQL \
  800. CONFIG_NET_SCH_FQ \
  801. CONFIG_NET_ACT_PEDIT \
  802. CONFIG_NET_ACT_SIMP \
  803. CONFIG_NET_ACT_SKBMOD \
  804. CONFIG_NET_ACT_CSUM \
  805. CONFIG_NET_EMATCH_CMP \
  806. CONFIG_NET_EMATCH_NBYTE \
  807. CONFIG_NET_EMATCH_META \
  808. CONFIG_NET_EMATCH_TEXT
  809. FILES:=$(SCHED_FILES_EXTRA)
  810. AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
  811. endef
  812. define KernelPackage/sched/description
  813. Extra kernel schedulers modules for IP traffic
  814. endef
  815. SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
  816. define KernelPackage/sched/install
  817. $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
  818. $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
  819. endef
  820. $(eval $(call KernelPackage,sched))
  821. define KernelPackage/tcp-bbr
  822. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  823. TITLE:=BBR TCP congestion control
  824. KCONFIG:=CONFIG_TCP_CONG_BBR
  825. FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
  826. AUTOLOAD:=$(call AutoProbe,tcp_bbr)
  827. endef
  828. define KernelPackage/tcp-bbr/description
  829. Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion
  830. control. It requires the fq ("Fair Queue") pacing packet scheduler.
  831. For kernel 4.13+, TCP internal pacing is implemented as fallback.
  832. endef
  833. TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf
  834. define KernelPackage/tcp-bbr/install
  835. $(INSTALL_DIR) $(1)/etc/sysctl.d
  836. $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf
  837. endef
  838. $(eval $(call KernelPackage,tcp-bbr))
  839. define KernelPackage/tls
  840. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  841. TITLE:=In-kernel TLS Support with HW Offload
  842. KCONFIG:=CONFIG_TLS \
  843. CONFIG_TLS_DEVICE=y
  844. FILES:=$(LINUX_DIR)/net/tls/tls.ko
  845. AUTOLOAD:=$(call AutoProbe,tls)
  846. endef
  847. define KernelPackage/tls/description
  848. Kernel module for in-kernel TLS protocol support and hw offload
  849. (to supported interfaces).
  850. This allows symmetric encryption handling of the TLS protocol to
  851. be done in-kernel and it's HW offload when available.
  852. endef
  853. $(eval $(call KernelPackage,tls))
  854. define KernelPackage/tcp-hybla
  855. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  856. TITLE:=TCP-Hybla congestion control algorithm
  857. KCONFIG:=CONFIG_TCP_CONG_HYBLA
  858. FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
  859. AUTOLOAD:=$(call AutoProbe,tcp_hybla)
  860. endef
  861. define KernelPackage/tcp-hybla/description
  862. TCP-Hybla is a sender-side only change that eliminates penalization of
  863. long-RTT, large-bandwidth connections, like when satellite legs are
  864. involved, especially when sharing a common bottleneck with normal
  865. terrestrial connections.
  866. endef
  867. $(eval $(call KernelPackage,tcp-hybla))
  868. define KernelPackage/tcp-scalable
  869. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  870. TITLE:=TCP-Scalable congestion control algorithm
  871. KCONFIG:=CONFIG_TCP_CONG_SCALABLE
  872. FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
  873. AUTOLOAD:=$(call AutoProbe,tcp-scalable)
  874. endef
  875. define KernelPackage/tcp-scalable/description
  876. Scalable TCP is a sender-side only change to TCP which uses a
  877. MIMD congestion control algorithm which has some nice scaling
  878. properties, though is known to have fairness issues.
  879. See http://www.deneholme.net/tom/scalable/
  880. endef
  881. $(eval $(call KernelPackage,tcp-scalable))
  882. define KernelPackage/ax25
  883. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  884. TITLE:=AX25 support
  885. DEPENDS:=+kmod-lib-crc16
  886. KCONFIG:= \
  887. CONFIG_HAMRADIO=y \
  888. CONFIG_AX25 \
  889. CONFIG_MKISS
  890. FILES:= \
  891. $(LINUX_DIR)/net/ax25/ax25.ko \
  892. $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
  893. AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
  894. endef
  895. define KernelPackage/ax25/description
  896. Kernel modules for AX25 support
  897. endef
  898. $(eval $(call KernelPackage,ax25))
  899. define KernelPackage/pktgen
  900. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  901. DEPENDS:=@!TARGET_uml
  902. TITLE:=Network packet generator
  903. KCONFIG:=CONFIG_NET_PKTGEN
  904. FILES:=$(LINUX_DIR)/net/core/pktgen.ko
  905. AUTOLOAD:=$(call AutoLoad,99,pktgen)
  906. endef
  907. define KernelPackage/pktgen/description
  908. Kernel modules for the Network Packet Generator
  909. endef
  910. $(eval $(call KernelPackage,pktgen))
  911. define KernelPackage/l2tp
  912. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  913. TITLE:=Layer Two Tunneling Protocol (L2TP)
  914. DEPENDS:= \
  915. +kmod-udptunnel4 \
  916. +IPV6:kmod-udptunnel6
  917. KCONFIG:=CONFIG_L2TP \
  918. CONFIG_L2TP_V3=y \
  919. CONFIG_L2TP_DEBUGFS=n
  920. FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
  921. $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
  922. AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
  923. endef
  924. define KernelPackage/l2tp/description
  925. Kernel modules for L2TP V3 Support
  926. endef
  927. $(eval $(call KernelPackage,l2tp))
  928. define KernelPackage/l2tp-eth
  929. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  930. TITLE:=L2TP ethernet pseudowire support for L2TPv3
  931. DEPENDS:=+kmod-l2tp
  932. KCONFIG:=CONFIG_L2TP_ETH
  933. FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
  934. AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
  935. endef
  936. define KernelPackage/l2tp-eth/description
  937. Kernel modules for L2TP ethernet pseudowire support for L2TPv3
  938. endef
  939. $(eval $(call KernelPackage,l2tp-eth))
  940. define KernelPackage/l2tp-ip
  941. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  942. TITLE:=L2TP IP encapsulation for L2TPv3
  943. DEPENDS:=+kmod-l2tp
  944. KCONFIG:=CONFIG_L2TP_IP
  945. FILES:= \
  946. $(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
  947. $(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
  948. AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
  949. endef
  950. define KernelPackage/l2tp-ip/description
  951. Kernel modules for L2TP IP encapsulation for L2TPv3
  952. endef
  953. $(eval $(call KernelPackage,l2tp-ip))
  954. define KernelPackage/sctp
  955. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  956. TITLE:=SCTP protocol kernel support
  957. KCONFIG:=\
  958. CONFIG_IP_SCTP \
  959. CONFIG_SCTP_DBG_MSG=n \
  960. CONFIG_SCTP_DBG_OBJCNT=n \
  961. CONFIG_SCTP_HMAC_NONE=n \
  962. CONFIG_SCTP_HMAC_SHA1=n \
  963. CONFIG_SCTP_HMAC_MD5=y \
  964. CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
  965. CONFIG_SCTP_COOKIE_HMAC_MD5=y \
  966. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
  967. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
  968. CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
  969. FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
  970. AUTOLOAD:= $(call AutoLoad,32,sctp)
  971. DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
  972. +kmod-udptunnel4 +kmod-udptunnel6
  973. endef
  974. define KernelPackage/sctp/description
  975. Kernel modules for SCTP protocol support
  976. endef
  977. $(eval $(call KernelPackage,sctp))
  978. define KernelPackage/netem
  979. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  980. TITLE:=Network emulation functionality
  981. DEPENDS:=+kmod-sched
  982. KCONFIG:=CONFIG_NET_SCH_NETEM
  983. FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
  984. AUTOLOAD:=$(call AutoLoad,99,netem)
  985. endef
  986. define KernelPackage/netem/description
  987. Kernel modules for emulating the properties of wide area networks
  988. endef
  989. $(eval $(call KernelPackage,netem))
  990. define KernelPackage/slip
  991. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  992. DEPENDS:=+kmod-slhc
  993. TITLE:=SLIP modules
  994. KCONFIG:= \
  995. CONFIG_SLIP \
  996. CONFIG_SLIP_COMPRESSED=y \
  997. CONFIG_SLIP_SMART=y \
  998. CONFIG_SLIP_MODE_SLIP6=y
  999. FILES:= \
  1000. $(LINUX_DIR)/drivers/net/slip/slip.ko
  1001. AUTOLOAD:=$(call AutoLoad,30,slip)
  1002. endef
  1003. define KernelPackage/slip/description
  1004. Kernel modules for SLIP support
  1005. endef
  1006. $(eval $(call KernelPackage,slip))
  1007. define KernelPackage/dnsresolver
  1008. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1009. TITLE:=In-kernel DNS Resolver
  1010. KCONFIG:= CONFIG_DNS_RESOLVER
  1011. FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
  1012. AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
  1013. endef
  1014. $(eval $(call KernelPackage,dnsresolver))
  1015. define KernelPackage/rxrpc
  1016. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1017. TITLE:=AF_RXRPC support
  1018. HIDDEN:=1
  1019. KCONFIG:= \
  1020. CONFIG_AF_RXRPC \
  1021. CONFIG_RXKAD=m \
  1022. CONFIG_AF_RXRPC_DEBUG=n
  1023. FILES:= \
  1024. $(LINUX_DIR)/net/rxrpc/rxrpc.ko
  1025. AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
  1026. DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt \
  1027. +kmod-udptunnel4 +kmod-udptunnel6
  1028. endef
  1029. define KernelPackage/rxrpc/description
  1030. Kernel support for AF_RXRPC; required for AFS client
  1031. endef
  1032. $(eval $(call KernelPackage,rxrpc))
  1033. define KernelPackage/mpls
  1034. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1035. TITLE:=MPLS support
  1036. DEPENDS:=+kmod-iptunnel
  1037. KCONFIG:= \
  1038. CONFIG_MPLS=y \
  1039. CONFIG_LWTUNNEL=y \
  1040. CONFIG_LWTUNNEL_BPF=n \
  1041. CONFIG_NET_MPLS_GSO=m \
  1042. CONFIG_MPLS_ROUTING=m \
  1043. CONFIG_MPLS_IPTUNNEL=m
  1044. FILES:= \
  1045. $(LINUX_DIR)/net/mpls/mpls_gso.ko \
  1046. $(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
  1047. $(LINUX_DIR)/net/mpls/mpls_router.ko
  1048. AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
  1049. endef
  1050. define KernelPackage/mpls/description
  1051. Kernel support for MPLS
  1052. endef
  1053. $(eval $(call KernelPackage,mpls))
  1054. define KernelPackage/9pnet
  1055. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1056. TITLE:=Plan 9 Resource Sharing Support (9P2000)
  1057. KCONFIG:= \
  1058. CONFIG_NET_9P \
  1059. CONFIG_NET_9P_DEBUG=n \
  1060. [email protected]
  1061. FILES:= \
  1062. $(LINUX_DIR)/net/9p/9pnet.ko
  1063. AUTOLOAD:=$(call AutoLoad,29,9pnet)
  1064. endef
  1065. define KernelPackage/9pnet/description
  1066. Kernel support support for
  1067. Plan 9 resource sharing via the 9P2000 protocol.
  1068. endef
  1069. $(eval $(call KernelPackage,9pnet))
  1070. define KernelPackage/9pvirtio
  1071. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1072. TITLE:=Plan 9 Virtio Support
  1073. DEPENDS:=+kmod-9pnet @VIRTIO_SUPPORT
  1074. KCONFIG:= \
  1075. CONFIG_NET_9P_XEN=n \
  1076. CONFIG_NET_9P_VIRTIO
  1077. FILES:= \
  1078. $(LINUX_DIR)/net/9p/9pnet_virtio.ko
  1079. AUTOLOAD:=$(call AutoLoad,29,9pnet_virtio)
  1080. endef
  1081. define KernelPackage/9pvirtio/description
  1082. Kernel support support for
  1083. Plan 9 resource sharing for virtio.
  1084. endef
  1085. $(eval $(call KernelPackage,9pvirtio))
  1086. define KernelPackage/nlmon
  1087. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1088. TITLE:=Virtual netlink monitoring device
  1089. KCONFIG:=CONFIG_NLMON
  1090. FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
  1091. AUTOLOAD:=$(call AutoProbe,nlmon)
  1092. endef
  1093. define KernelPackage/nlmon/description
  1094. Kernel module which adds a monitoring device for netlink.
  1095. endef
  1096. $(eval $(call KernelPackage,nlmon))
  1097. define KernelPackage/mdio
  1098. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1099. TITLE:=MDIO (clause 45) PHY support
  1100. KCONFIG:=CONFIG_MDIO
  1101. HIDDEN:=1
  1102. FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
  1103. AUTOLOAD:=$(call AutoLoad,32,mdio)
  1104. endef
  1105. define KernelPackage/mdio/description
  1106. Kernel modules for MDIO (clause 45) PHY support
  1107. endef
  1108. $(eval $(call KernelPackage,mdio))
  1109. define KernelPackage/mdio-bus-mux
  1110. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1111. TITLE:=MDIO bus multiplexers
  1112. KCONFIG:=CONFIG_MDIO_BUS_MUX
  1113. HIDDEN:=1
  1114. FILES:=$(LINUX_DIR)/drivers/net/mdio/mdio-mux.ko
  1115. AUTOLOAD:=$(call AutoLoad,32,mdio-mux)
  1116. endef
  1117. define KernelPackage/mdio-bus-mux/description
  1118. Kernel framework for MDIO bus multiplexers.
  1119. endef
  1120. $(eval $(call KernelPackage,mdio-bus-mux))
  1121. define KernelPackage/macsec
  1122. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1123. TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
  1124. DEPENDS:=+kmod-crypto-gcm
  1125. KCONFIG:=CONFIG_MACSEC
  1126. FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
  1127. AUTOLOAD:=$(call AutoLoad,13,macsec)
  1128. endef
  1129. define KernelPackage/macsec/description
  1130. MACsec is an encryption standard for Ethernet.
  1131. endef
  1132. $(eval $(call KernelPackage,macsec))
  1133. define KernelPackage/netlink-diag
  1134. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1135. TITLE:=Netlink diag support for ss utility
  1136. KCONFIG:=CONFIG_NETLINK_DIAG
  1137. FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
  1138. AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
  1139. endef
  1140. define KernelPackage/netlink-diag/description
  1141. Netlink diag is a module made for use with iproute2's ss utility
  1142. endef
  1143. $(eval $(call KernelPackage,netlink-diag))
  1144. define KernelPackage/inet-diag
  1145. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1146. TITLE:=INET diag support for ss utility
  1147. KCONFIG:= \
  1148. CONFIG_INET_DIAG \
  1149. CONFIG_INET_TCP_DIAG \
  1150. CONFIG_INET_UDP_DIAG \
  1151. CONFIG_INET_RAW_DIAG \
  1152. CONFIG_INET_DIAG_DESTROY=n
  1153. FILES:= \
  1154. $(LINUX_DIR)/net/ipv4/inet_diag.ko \
  1155. $(LINUX_DIR)/net/ipv4/tcp_diag.ko \
  1156. $(LINUX_DIR)/net/ipv4/udp_diag.ko \
  1157. $(LINUX_DIR)/net/ipv4/raw_diag.ko
  1158. AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
  1159. endef
  1160. define KernelPackage/inet-diag/description
  1161. Support for INET (TCP, DCCP, etc) socket monitoring interface used by
  1162. native Linux tools such as ss.
  1163. endef
  1164. $(eval $(call KernelPackage,inet-diag))
  1165. define KernelPackage/xdp-sockets-diag
  1166. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1167. TITLE:=PF_XDP sockets monitoring interface support for ss utility
  1168. DEPENDS:=@KERNEL_XDP_SOCKETS
  1169. KCONFIG:=CONFIG_XDP_SOCKETS_DIAG
  1170. FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko
  1171. AUTOLOAD:=$(call AutoLoad,31,xsk_diag)
  1172. endef
  1173. define KernelPackage/xdp-sockets-diag/description
  1174. Support for PF_XDP sockets monitoring interface used by the ss tool
  1175. endef
  1176. $(eval $(call KernelPackage,xdp-sockets-diag))
  1177. define KernelPackage/wireguard
  1178. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1179. TITLE:=WireGuard secure network tunnel
  1180. DEPENDS:= \
  1181. +kmod-crypto-lib-chacha20poly1305 \
  1182. +kmod-crypto-lib-curve25519 \
  1183. +kmod-udptunnel4 \
  1184. +IPV6:kmod-udptunnel6
  1185. KCONFIG:= \
  1186. CONFIG_WIREGUARD \
  1187. CONFIG_WIREGUARD_DEBUG=n
  1188. FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
  1189. AUTOLOAD:=$(call AutoProbe,wireguard)
  1190. endef
  1191. define KernelPackage/wireguard/description
  1192. WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes
  1193. state-of-the-art cryptography. It aims to be faster, simpler, leaner, and
  1194. more useful than IPSec, while avoiding the massive headache. It intends to
  1195. be considerably more performant than OpenVPN. WireGuard is designed as a
  1196. general purpose VPN for running on embedded interfaces and super computers
  1197. alike, fit for many different circumstances. It uses UDP.
  1198. endef
  1199. $(eval $(call KernelPackage,wireguard))
  1200. define KernelPackage/netconsole
  1201. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1202. TITLE:=Network console logging support
  1203. KCONFIG:=CONFIG_NETCONSOLE \
  1204. CONFIG_NETCONSOLE_DYNAMIC=n
  1205. FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
  1206. AUTOLOAD:=$(call AutoProbe,netconsole)
  1207. endef
  1208. define KernelPackage/netconsole/description
  1209. Network console logging support.
  1210. endef
  1211. $(eval $(call KernelPackage,netconsole))
  1212. define KernelPackage/qrtr
  1213. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1214. TITLE:=Qualcomm IPC Router support
  1215. HIDDEN:=1
  1216. KCONFIG:=CONFIG_QRTR
  1217. FILES:= \
  1218. $(LINUX_DIR)/net/qrtr/qrtr.ko
  1219. AUTOLOAD:=$(call AutoProbe,qrtr)
  1220. endef
  1221. define KernelPackage/qrtr/description
  1222. Qualcomm IPC Router support
  1223. endef
  1224. $(eval $(call KernelPackage,qrtr))
  1225. define KernelPackage/qrtr-tun
  1226. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1227. TITLE:=TUN device for Qualcomm IPC Router
  1228. DEPENDS:=+kmod-qrtr
  1229. KCONFIG:=CONFIG_QRTR_TUN
  1230. FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
  1231. AUTOLOAD:=$(call AutoProbe,qrtr-tun)
  1232. endef
  1233. define KernelPackage/qrtr-tun/description
  1234. TUN device for Qualcomm IPC Router
  1235. endef
  1236. $(eval $(call KernelPackage,qrtr-tun))
  1237. define KernelPackage/qrtr-smd
  1238. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1239. TITLE:=SMD IPC Router channels
  1240. DEPENDS:=+kmod-qrtr @TARGET_qualcommax
  1241. KCONFIG:=CONFIG_QRTR_SMD
  1242. FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
  1243. AUTOLOAD:=$(call AutoProbe,qrtr-smd)
  1244. endef
  1245. define KernelPackage/qrtr-smd/description
  1246. SMD IPC Router channels
  1247. endef
  1248. $(eval $(call KernelPackage,qrtr-smd))
  1249. define KernelPackage/qrtr-mhi
  1250. SUBMENU:=$(NETWORK_SUPPORT_MENU)
  1251. TITLE:=MHI IPC Router channels
  1252. DEPENDS:=+kmod-mhi-bus +kmod-qrtr
  1253. KCONFIG:=CONFIG_QRTR_MHI
  1254. FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
  1255. AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
  1256. endef
  1257. define KernelPackage/qrtr-mhi/description
  1258. MHI IPC Router channels
  1259. endef
  1260. $(eval $(call KernelPackage,qrtr-mhi))