netsupport.mk 38 KB

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