netsupport.mk 37 KB

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