netsupport.mk 35 KB

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