1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig IP_SET
3	tristate "IP set support"
4	depends on INET && NETFILTER
5	select NETFILTER_NETLINK
6	help
7	  This option adds IP set support to the kernel.
8	  In order to define and use the sets, you need the userspace utility
9	  ipset(8). You can use the sets in netfilter via the "set" match
10	  and "SET" target.
11
12	  To compile it as a module, choose M here.  If unsure, say N.
13
14if IP_SET
15
16config IP_SET_MAX
17	int "Maximum number of IP sets"
18	default 256
19	range 2 65534
20	depends on IP_SET
21	help
22	  You can define here default value of the maximum number
23	  of IP sets for the kernel.
24
25	  The value can be overridden by the 'max_sets' module
26	  parameter of the 'ip_set' module.
27
28config IP_SET_BITMAP_IP
29	tristate "bitmap:ip set support"
30	depends on IP_SET
31	help
32	  This option adds the bitmap:ip set type support, by which one
33	  can store IPv4 addresses (or network addresses) from a range.
34
35	  To compile it as a module, choose M here.  If unsure, say N.
36
37config IP_SET_BITMAP_IPMAC
38	tristate "bitmap:ip,mac set support"
39	depends on IP_SET
40	help
41	  This option adds the bitmap:ip,mac set type support, by which one
42	  can store IPv4 address and (source) MAC address pairs from a range.
43
44	  To compile it as a module, choose M here.  If unsure, say N.
45
46config IP_SET_BITMAP_PORT
47	tristate "bitmap:port set support"
48	depends on IP_SET
49	help
50	  This option adds the bitmap:port set type support, by which one
51	  can store TCP/UDP port numbers from a range.
52
53	  To compile it as a module, choose M here.  If unsure, say N.
54
55config IP_SET_HASH_IP
56	tristate "hash:ip set support"
57	depends on IP_SET
58	help
59	  This option adds the hash:ip set type support, by which one
60	  can store arbitrary IPv4 or IPv6 addresses (or network addresses)
61	  in a set.
62
63	  To compile it as a module, choose M here.  If unsure, say N.
64
65config IP_SET_HASH_IPMARK
66	tristate "hash:ip,mark set support"
67	depends on IP_SET
68	help
69	  This option adds the hash:ip,mark set type support, by which one
70	  can store IPv4/IPv6 address and mark pairs.
71
72	  To compile it as a module, choose M here.  If unsure, say N.
73
74config IP_SET_HASH_IPPORT
75	tristate "hash:ip,port set support"
76	depends on IP_SET
77	help
78	  This option adds the hash:ip,port set type support, by which one
79	  can store IPv4/IPv6 address and protocol/port pairs.
80
81	  To compile it as a module, choose M here.  If unsure, say N.
82
83config IP_SET_HASH_IPPORTIP
84	tristate "hash:ip,port,ip set support"
85	depends on IP_SET
86	help
87	  This option adds the hash:ip,port,ip set type support, by which
88	  one can store IPv4/IPv6 address, protocol/port, and IPv4/IPv6
89	  address triples in a set.
90
91	  To compile it as a module, choose M here.  If unsure, say N.
92
93config IP_SET_HASH_IPPORTNET
94	tristate "hash:ip,port,net set support"
95	depends on IP_SET
96	help
97	  This option adds the hash:ip,port,net set type support, by which
98	  one can store IPv4/IPv6 address, protocol/port, and IPv4/IPv6
99	  network address/prefix triples in a set.
100
101	  To compile it as a module, choose M here.  If unsure, say N.
102
103config IP_SET_HASH_IPMAC
104	tristate "hash:ip,mac set support"
105	depends on IP_SET
106	help
107	  This option adds the hash:ip,mac set type support, by which
108	  one can store IPv4/IPv6 address and MAC (ethernet address) pairs in a set.
109
110	  To compile it as a module, choose M here.  If unsure, say N.
111
112config IP_SET_HASH_MAC
113	tristate "hash:mac set support"
114	depends on IP_SET
115	help
116	  This option adds the hash:mac set type support, by which
117	  one can store MAC (ethernet address) elements in a set.
118
119	  To compile it as a module, choose M here.  If unsure, say N.
120
121config IP_SET_HASH_NETPORTNET
122	tristate "hash:net,port,net set support"
123	depends on IP_SET
124	help
125	  This option adds the hash:net,port,net set type support, by which
126	  one can store two IPv4/IPv6 subnets, and a protocol/port in a set.
127
128	  To compile it as a module, choose M here.  If unsure, say N.
129
130config IP_SET_HASH_NET
131	tristate "hash:net set support"
132	depends on IP_SET
133	help
134	  This option adds the hash:net set type support, by which
135	  one can store IPv4/IPv6 network address/prefix elements in a set.
136
137	  To compile it as a module, choose M here.  If unsure, say N.
138
139config IP_SET_HASH_NETNET
140	tristate "hash:net,net set support"
141	depends on IP_SET
142	help
143	  This option adds the hash:net,net  set type support, by which
144	  one can store IPv4/IPv6 network address/prefix pairs in a set.
145
146	  To compile it as a module, choose M here.  If unsure, say N.
147
148config IP_SET_HASH_NETPORT
149	tristate "hash:net,port set support"
150	depends on IP_SET
151	help
152	  This option adds the hash:net,port set type support, by which
153	  one can store IPv4/IPv6 network address/prefix and
154	  protocol/port pairs as elements in a set.
155
156	  To compile it as a module, choose M here.  If unsure, say N.
157
158config IP_SET_HASH_NETIFACE
159	tristate "hash:net,iface set support"
160	depends on IP_SET
161	help
162	  This option adds the hash:net,iface set type support, by which
163	  one can store IPv4/IPv6 network address/prefix and
164	  interface name pairs as elements in a set.
165
166	  To compile it as a module, choose M here.  If unsure, say N.
167
168config IP_SET_LIST_SET
169	tristate "list:set set support"
170	depends on IP_SET
171	help
172	  This option adds the list:set set type support. In this
173	  kind of set one can store the name of other sets and it forms
174	  an ordered union of the member sets.
175
176	  To compile it as a module, choose M here.  If unsure, say N.
177
178endif # IP_SET
179