netsupport.mk 37 KB

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