netfilter.mk 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. #
  2. # Copyright (C) 2006-2008 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. NF_MENU:=Netfilter Extensions
  8. NF_KMOD:=1
  9. include $(INCLUDE_DIR)/netfilter.mk
  10. define KernelPackage/ipt-core
  11. SUBMENU:=$(NF_MENU)
  12. TITLE:=Netfilter core
  13. KCONFIG:=$(KCONFIG_IPT_CORE)
  14. FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  15. AUTOLOAD:=$(call AutoLoad,40,$(notdir $(IPT_CORE-m)))
  16. endef
  17. define KernelPackage/ipt-core/description
  18. Netfilter core kernel modules
  19. Includes:
  20. - limit
  21. - LOG
  22. - mac
  23. - multiport
  24. - TCPMSS
  25. - REJECT
  26. endef
  27. $(eval $(call KernelPackage,ipt-core))
  28. define KernelPackage/ipt-conntrack
  29. SUBMENU:=$(NF_MENU)
  30. TITLE:=Basic connection tracking modules
  31. KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
  32. FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  33. AUTOLOAD:=$(call AutoLoad,41,$(notdir $(IPT_CONNTRACK-m)))
  34. DEPENDS:= kmod-ipt-core
  35. endef
  36. define KernelPackage/ipt-conntrack/description
  37. Netfilter (IPv4) kernel modules for connection tracking
  38. Includes:
  39. - state
  40. endef
  41. $(eval $(call KernelPackage,ipt-conntrack))
  42. define KernelPackage/ipt-conntrack-extra
  43. SUBMENU:=$(NF_MENU)
  44. TITLE:=Extra connection tracking modules
  45. KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
  46. FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  47. AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
  48. DEPENDS:= kmod-ipt-core +kmod-ipt-conntrack
  49. endef
  50. define KernelPackage/ipt-conntrack-extra/description
  51. Netfilter (IPv4) extra kernel modules for connection tracking
  52. Includes:
  53. - connbytes
  54. - connmark/CONNMARK
  55. - conntrack
  56. - helper
  57. - recent
  58. - NOTRACK
  59. endef
  60. $(eval $(call KernelPackage,ipt-conntrack-extra))
  61. define KernelPackage/ipt-filter
  62. SUBMENU:=$(NF_MENU)
  63. TITLE:=Modules for packet content inspection
  64. KCONFIG:=$(KCONFIG_IPT_FILTER)
  65. FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  66. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_FILTER-m)))
  67. DEPENDS:=kmod-ipt-core +LINUX_2_6:kmod-textsearch
  68. endef
  69. define KernelPackage/ipt-filter/description
  70. Netfilter (IPv4) kernel modules for packet content inspection
  71. Includes:
  72. - ipt_layer7
  73. - ipt_string
  74. endef
  75. $(eval $(call KernelPackage,ipt-filter))
  76. define KernelPackage/ipt-ipopt
  77. SUBMENU:=$(NF_MENU)
  78. TITLE:=Modules for matching/changing IP packet options
  79. KCONFIG:=$(KCONFIG_IPT_IPOPT)
  80. FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  81. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPOPT-m)))
  82. DEPENDS:= kmod-ipt-core
  83. endef
  84. define KernelPackage/ipt-ipopt/description
  85. Netfilter (IPv4) modules for matching/changing IP packet options
  86. Includes:
  87. - ipt_CLASSIFY
  88. - ipt_dscp/DSCP
  89. - ipt_ecn/ECN
  90. - ipt_length
  91. - ipt_tos/TOS
  92. - ipt_tcpmms
  93. - ipt_ttl/TTL
  94. - ipt_unclean
  95. endef
  96. $(eval $(call KernelPackage,ipt-ipopt))
  97. define KernelPackage/ipt-ipsec
  98. SUBMENU:=$(NF_MENU)
  99. TITLE:=Modules for matching IPSec packets
  100. KCONFIG:=$(KCONFIG_IPT_IPSEC)
  101. FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  102. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPSEC-m)))
  103. DEPENDS:= kmod-ipt-core
  104. endef
  105. define KernelPackage/ipt-ipsec/description
  106. Netfilter (IPv4) modules for matching IPSec packets
  107. Includes:
  108. - ipt_ah
  109. - ipt_esp
  110. endef
  111. $(eval $(call KernelPackage,ipt-ipsec))
  112. define KernelPackage/ipt-nat
  113. SUBMENU:=$(NF_MENU)
  114. TITLE:=Basic NAT targets
  115. KCONFIG:=$(KCONFIG_IPT_NAT)
  116. FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  117. AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_NAT-m)))
  118. DEPENDS:= kmod-ipt-core +kmod-ipt-conntrack
  119. endef
  120. define KernelPackage/ipt-nat/description
  121. Netfilter (IPv4) kernel modules for basic NAT targets
  122. Includes:
  123. - MASQUERADE
  124. endef
  125. $(eval $(call KernelPackage,ipt-nat))
  126. define KernelPackage/ipt-nat-extra
  127. SUBMENU:=$(NF_MENU)
  128. TITLE:=Extra NAT targets
  129. KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
  130. FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  131. AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT_EXTRA-m)))
  132. DEPENDS:= kmod-ipt-core +kmod-ipt-nat
  133. endef
  134. define KernelPackage/ipt-nat-extra/description
  135. Netfilter (IPv4) kernel modules for extra NAT targets
  136. Includes:
  137. - MIRROR
  138. - NETMAP
  139. - REDIRECT
  140. endef
  141. $(eval $(call KernelPackage,ipt-nat-extra))
  142. define KernelPackage/ipt-nathelper
  143. SUBMENU:=$(NF_MENU)
  144. TITLE:=Basic Conntrack and NAT helpers
  145. KCONFIG:=$(KCONFIG_IPT_NATHELPER)
  146. FILES:=$(foreach mod,$(IPT_NATHELPER-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  147. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_NATHELPER-m)))
  148. DEPENDS:= kmod-ipt-core +kmod-ipt-nat
  149. endef
  150. define KernelPackage/ipt-nathelper/description
  151. Default Netfilter (IPv4) Conntrack and NAT helpers
  152. Includes:
  153. - conntrack_ftp
  154. - nat_ftp
  155. - conntrack_irc
  156. - nat_irc
  157. - conntrack_tftp
  158. - nat_tftp
  159. endef
  160. $(eval $(call KernelPackage,ipt-nathelper))
  161. define KernelPackage/ipt-nathelper-extra
  162. SUBMENU:=$(NF_MENU)
  163. TITLE:=Extra Conntrack and NAT helpers
  164. KCONFIG:=$(KCONFIG_IPT_NATHELPER_EXTRA)
  165. FILES:=$(foreach mod,$(IPT_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  166. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_NATHELPER_EXTRA-m)))
  167. DEPENDS:= kmod-ipt-core +kmod-ipt-nat +kmod-textsearch
  168. endef
  169. define KernelPackage/ipt-nathelper-extra/description
  170. Extra Netfilter (IPv4) Conntrack and NAT helpers
  171. Includes:
  172. - ip_conntrack_amanda
  173. - ip_conntrack_proto_gre
  174. - ip_nat_proto_gre
  175. - ip_conntrack_pptp
  176. - ip_nat_pptp
  177. - ip_conntrack_sip
  178. - ip_nat_sip
  179. - ip_nat_snmp_basic
  180. endef
  181. $(eval $(call KernelPackage,ipt-nathelper-extra))
  182. define KernelPackage/ipt-imq
  183. SUBMENU:=$(NF_MENU)
  184. TITLE:=Intermediate Queueing support
  185. KCONFIG:= \
  186. CONFIG_IMQ \
  187. CONFIG_IMQ_BEHAVIOR_BA=y \
  188. CONFIG_IMQ_NUM_DEVS=2 \
  189. CONFIG_NETFILTER_XT_TARGET_IMQ
  190. FILES:= \
  191. $(LINUX_DIR)/drivers/net/imq.$(LINUX_KMOD_SUFFIX) \
  192. $(foreach mod,$(IPT_IMQ-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  193. AUTOLOAD:=$(call AutoLoad,45,$(notdir \
  194. imq \
  195. $(IPT_IMQ-m) \
  196. ))
  197. DEPENDS:= kmod-ipt-core
  198. endef
  199. define KernelPackage/ipt-imq/description
  200. Kernel support for Intermediate Queueing devices
  201. endef
  202. $(eval $(call KernelPackage,ipt-imq))
  203. define KernelPackage/ipt-queue
  204. SUBMENU:=$(NF_MENU)
  205. TITLE:=Module for user-space packet queueing
  206. KCONFIG:=$(KCONFIG_IPT_QUEUE)
  207. FILES:=$(foreach mod,$(IPT_QUEUE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  208. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_QUEUE-m)))
  209. DEPENDS:= kmod-ipt-core
  210. endef
  211. define KernelPackage/ipt-queue/description
  212. Netfilter (IPv4) module for user-space packet queueing
  213. Includes:
  214. - QUEUE
  215. endef
  216. $(eval $(call KernelPackage,ipt-queue))
  217. define KernelPackage/ipt-ulog
  218. SUBMENU:=$(NF_MENU)
  219. TITLE:=Module for user-space packet logging
  220. KCONFIG:=$(KCONFIG_IPT_ULOG)
  221. FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  222. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_ULOG-m)))
  223. DEPENDS:= kmod-ipt-core
  224. endef
  225. define KernelPackage/ipt-ulog/description
  226. Netfilter (IPv4) module for user-space packet logging
  227. Includes:
  228. - ipt_ULOG
  229. endef
  230. $(eval $(call KernelPackage,ipt-ulog))
  231. define KernelPackage/ipt-iprange
  232. SUBMENU:=$(NF_MENU)
  233. TITLE:=Module for matching ip ranges
  234. FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  235. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPRANGE-m)))
  236. DEPENDS:= kmod-ipt-core
  237. endef
  238. define KernelPackage/ipt-iprange/description
  239. Netfilter (IPv4) module for matching ip ranges
  240. Includes:
  241. - ipt_IPRANGE
  242. endef
  243. $(eval $(call KernelPackage,ipt-iprange))
  244. define KernelPackage/ipt-ipset
  245. SUBMENU:=$(NF_MENU)
  246. TITLE:=IPSET Modules
  247. KCONFIG:=$(KCONFIG_IPT_IPSET)
  248. FILES:=$(foreach mod,$(IPT_IPSET-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  249. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPSET-m)))
  250. DEPENDS:= kmod-ipt-core
  251. endef
  252. define KernelPackage/ipt-ipset/description
  253. Netfilter kernel modules for ipset
  254. Includes:
  255. - ip_set
  256. - ip_set_iphash
  257. - ip_set_ipmap
  258. - ip_set_ipporthash
  259. - ip_set_iptree
  260. - ip_set_iptreemap
  261. - ip_set_macipmap
  262. - ip_set_nethash
  263. - ip_set_portmap
  264. - ipt_set
  265. - ipt_SET
  266. endef
  267. $(eval $(call KernelPackage,ipt-ipset))
  268. define KernelPackage/ipt-extra
  269. SUBMENU:=$(NF_MENU)
  270. TITLE:=Extra modules
  271. KCONFIG:=$(KCONFIG_IPT_EXTRA)
  272. FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  273. AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_EXTRA-m)))
  274. DEPENDS:= kmod-ipt-core
  275. endef
  276. define KernelPackage/ipt-extra/description
  277. Other Netfilter (IPv4) kernel modules
  278. Includes:
  279. - ipt_owner
  280. - ipt_physdev
  281. - ipt_pkttype
  282. - ipt_recent
  283. - iptable_raw
  284. - xt_NOTRACK
  285. endef
  286. $(eval $(call KernelPackage,ipt-extra))
  287. define KernelPackage/ip6tables
  288. SUBMENU:=$(NF_MENU)
  289. TITLE:=IPv6 modules
  290. DEPENDS:=+kmod-ipv6
  291. KCONFIG:=CONFIG_IP6_NF_IPTABLES
  292. FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
  293. AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPT_IPV6-m)))
  294. endef
  295. define KernelPackage/ip6tables/description
  296. Netfilter IPv6 firewalling support
  297. endef
  298. $(eval $(call KernelPackage,ip6tables))
  299. define KernelPackage/arptables
  300. SUBMENU:=$(NF_MENU)
  301. TITLE:=ARP firewalling modules
  302. FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.$(LINUX_KMOD_SUFFIX)
  303. KCONFIG:=CONFIG_IP_NF_ARPTABLES
  304. AUTOLOAD:=$(call AutoLoad,49,$(notdir $(patsubst %.ko,%,$(wildcard $(LINUX_DIR)/net/ipv4/netfilter/arp*.$(LINUX_KMOD_SUFFIX)))))
  305. endef
  306. define KernelPackage/arptables/description
  307. Kernel modules for ARP firewalling
  308. endef
  309. $(eval $(call KernelPackage,arptables))
  310. define KernelPackage/ebtables
  311. SUBMENU:=$(NF_MENU)
  312. TITLE:=Bridge firewalling modules
  313. DEPENDS:=@LINUX_2_6
  314. FILES:=$(LINUX_DIR)/net/bridge/netfilter/*.$(LINUX_KMOD_SUFFIX)
  315. KCONFIG:=CONFIG_BRIDGE_NETFILTER=y \
  316. CONFIG_BRIDGE_NF_EBTABLES
  317. AUTOLOAD:=$(call AutoLoad,49,$(notdir $(patsubst %.ko,%,ebtables.ko $(wildcard $(LINUX_DIR)/net/bridge/netfilter/ebtable_*.$(LINUX_KMOD_SUFFIX)) $(wildcard $(LINUX_DIR)/net/bridge/netfilter/ebt_*.$(LINUX_KMOD_SUFFIX)))))
  318. endef
  319. define KernelPackage/ebtables/description
  320. Kernel modules for Ethernet Bridge firewalling
  321. endef
  322. $(eval $(call KernelPackage,ebtables))
  323. define KernelPackage/nfnetlink
  324. SUBMENU:=$(NF_MENU)
  325. TITLE:=Netlink-based userspace interface
  326. DEPENDS:=@LINUX_2_6 +kmod-ipt-core
  327. FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink.$(LINUX_KMOD_SUFFIX)
  328. KCONFIG:=CONFIG_NETFILTER_NETLINK
  329. AUTOLOAD:=$(call AutoLoad,48,nfnetlink)
  330. endef
  331. define KernelPackage/nfnetlink/description
  332. Kernel modules support for a netlink-based userspace interface
  333. endef
  334. $(eval $(call KernelPackage,nfnetlink))
  335. define KernelPackage/nfnetlink-log
  336. SUBMENU:=$(NF_MENU)
  337. TITLE:=Netfilter LOG over NFNETLINK interface
  338. DEPENDS:=@LINUX_2_6 +kmod-nfnetlink
  339. FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_log.$(LINUX_KMOD_SUFFIX)
  340. KCONFIG:=CONFIG_NETFILTER_NETLINK_LOG
  341. AUTOLOAD:=$(call AutoLoad,48,nfnetlink_log)
  342. endef
  343. define KernelPackage/nfnetlink-log/description
  344. Kernel modules support for logging packets via NFNETLINK
  345. endef
  346. $(eval $(call KernelPackage,nfnetlink-log))
  347. define KernelPackage/nfnetlink-queue
  348. SUBMENU:=$(NF_MENU)
  349. TITLE:=Netfilter QUEUE over NFNETLINK interface
  350. DEPENDS:=@LINUX_2_6 +kmod-nfnetlink
  351. FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_queue.$(LINUX_KMOD_SUFFIX)
  352. KCONFIG:=CONFIG_NETFILTER_NETLINK_QUEUE
  353. AUTOLOAD:=$(call AutoLoad,48,nfnetlink_queue)
  354. endef
  355. define KernelPackage/nfnetlink-queue/description
  356. Kernel modules support for queueing packets via NFNETLINK
  357. endef
  358. $(eval $(call KernelPackage,nfnetlink-queue))
  359. define KernelPackage/nf-conntrack-netlink
  360. SUBMENU:=$(NF_MENU)
  361. TITLE:=Connection tracking netlink interface
  362. DEPENDS:=@LINUX_2_6 +kmod-nfnetlink +kmod-ipt-conntrack
  363. FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.$(LINUX_KMOD_SUFFIX)
  364. KCONFIG:=CONFIG_NF_CT_NETLINK
  365. AUTOLOAD:=$(call AutoLoad,49,nf_conntrack_netlink)
  366. endef
  367. define KernelPackage/nf-conntrack-netlink/description
  368. Kernel modules support for a netlink-based connection tracking
  369. userspace interface
  370. endef
  371. $(eval $(call KernelPackage,nf-conntrack-netlink))