Patrick McHardy
cc02e457bb
netfilter: nf_tables: implement set transaction support
...
Set elements are the last object type not supporting transaction support.
Implement similar to the existing rule transactions:
The global transaction counter keeps track of two generations, current
and next. Each element contains a bitmask specifying in which generations
it is inactive.
New elements start out as inactive in the current generation and active
in the next. On commit, the previous next generation becomes the current
generation and the element becomes active. The bitmask is then cleared
to indicate that the element is active in all future generations. If the
transaction is aborted, the element is removed from the set before it
becomes active.
When removing an element, it gets marked as inactive in the next generation.
On commit the next generation becomes active and the therefor the element
inactive. It is then taken out of then set and released. On abort, the
element is marked as active for the next generation again.
Lookups ignore elements not active in the current generation.
The current set types (hash/rbtree) both use a field in the extension area
to store the generation mask. This (currently) does not require any
additional memory since we have some free space in there.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2015-03-26 11:09:35 +01:00
..
9p
net/9p: remove a comment about pref member which doesn't exist
2014-11-06 14:59:19 -05:00
bluetooth
Bluetooth: Move generic mgmt command dispatcher to hci_sock.c
2015-03-17 18:03:08 +01:00
caif
caif: fix a signedness bug in cfpkt_iterate()
2015-02-20 17:35:14 -05:00
irda
irda: Convert function pointer arrays and uses to const
2014-12-10 15:33:16 -05:00
iucv
netfilter
netfilter: nf_tables: implement set transaction support
2015-03-26 11:09:35 +01:00
netns
ipv6: introduce idgen_delay and idgen_retries knobs
2015-03-23 22:12:09 -04:00
nfc
NFC: nci: Move logical connection structure allocation
2015-02-04 09:14:09 +01:00
phonet
sctp
switch sctp_user_addto_chunk() and sctp_datamsg_from_user() to passing iov_iter
2014-11-24 05:16:40 -05:00
tc_act
act_bpf: add initial eBPF support for actions
2015-03-20 19:10:44 -04:00
6lowpan.h
ieee802154: 6lowpan: rename process_data and lowpan_process_data
2014-10-27 15:51:16 +01:00
act_api.h
net_sched: act: refuse to remove bound action outside
2014-02-12 19:23:32 -05:00
addrconf.h
net: ipv6: allow explicitly choosing optimistic addresses
2015-02-05 15:37:41 -08:00
af_ieee802154.h
ieee802154: mac802154: remove FSF address
2014-10-25 08:07:30 +02:00
af_rxrpc.h
af_unix.h
af_vsock.h
net: Remove iocb argument from sendmsg and recvmsg
2015-03-02 13:06:31 -05:00
ah.h
ipsec: Remove obsolete MAX_AH_AUTH_LEN
2014-09-18 10:54:36 +02:00
arp.h
neigh: Factor out ___neigh_lookup_noref
2015-03-04 00:23:23 -05:00
atmclip.h
ax25.h
ax25: Stop using magic neighbour cache operations.
2015-03-03 14:44:41 -05:00
ax88796.h
bond_3ad.h
bonding: Implement port churn-machine (AD standard 43.4.17).
2015-02-24 16:05:48 -05:00
bond_alb.h
net: Move bonding headers under include/net
2014-11-10 13:27:49 -05:00
bond_options.h
net: Move bonding headers under include/net
2014-11-10 13:27:49 -05:00
bonding.h
net/bonding: Fix potential bad memory access during bonding events
2015-02-09 14:03:53 -08:00
busy_poll.h
sched, net: Fixup busy_loop_us_clock()
2014-01-13 17:39:11 +01:00
cfg80211-wext.h
cfg80211.h
net: Introduce possible_net_t
2015-03-12 14:39:40 -04:00
cfg802154.h
nl802154: introduce support for cca settings
2014-12-19 00:19:23 +01:00
checksum.h
net: Fix remcsum in GRO path to not change packet
2015-02-11 15:12:09 -08:00
cipso_ipv4.h
cipso: don't use IPCB() to locate the CIPSO IP option
2015-02-11 14:46:37 -05:00
cls_cgroup.h
cgroup: clean up cgroup_subsys names and initialization
2014-02-08 10:36:58 -05:00
codel.h
net: use ktime_get_ns() and ktime_get_real_ns() helpers
2014-08-22 19:57:23 -07:00
compat.h
fold verify_iovec() into copy_msghdr_from_user()
2014-11-19 16:23:49 -05:00
datalink.h
net: Move prototype declaration to header file include/net/datalink.h from net/ipx/af_ipx.c
2014-02-09 17:32:50 -08:00
dcbevent.h
include/net/: Fix FSF address in file headers
2013-12-06 12:37:56 -05:00
dcbnl.h
net/dcb: Add IEEE QCN attribute
2015-03-06 21:50:02 -05:00
dn.h
net: Move prototype declaration to header file include/net/dn.h from net/decnet/af_decnet.c
2014-02-09 17:32:49 -08:00
dn_dev.h
dn_dev: add support for IFA_FLAGS nl attribute
2013-12-10 21:50:00 -05:00
dn_fib.h
dn_neigh.h
DECnet: Only use neigh_ops for adding the link layer header
2015-03-06 14:54:22 -05:00
dn_nsp.h
dn_route.h
net: Move prototype declaration to appropriate header file from decnet/af_decnet.c
2014-02-09 17:32:49 -08:00
dsa.h
net: dsa: utilize of_find_net_device_by_node
2015-03-09 23:50:21 -04:00
dsfield.h
dst.h
xfrm: release dst_orig in case of error in xfrm_lookup()
2015-02-12 07:10:56 +01:00
dst_ops.h
net: Remove protocol from struct dst_ops
2015-03-09 16:06:10 -04:00
esp.h
ethoc.h
net: ethoc: set up MII management bus clock
2014-02-04 20:19:51 -08:00
fib_rules.h
net: Kill hold_net release_net
2015-03-12 14:39:40 -04:00
firewire.h
flow.h
ipv4, fib: pass LOOPBACK_IFINDEX instead of 0 to flowi4_iif
2014-04-16 15:05:11 -04:00
flow_keys.h
flow_keys: n_proto type should be __be16
2015-02-05 00:40:22 -08:00
flowcache.h
flowcache: Make flow cache name space aware
2014-02-12 07:02:11 +01:00
fou.h
ip_tunnel: Ops registration for secondary encap (fou, gue)
2014-11-12 15:01:35 -05:00
garp.h
gen_stats.h
net: sched: enable per cpu qstats
2014-09-30 01:02:26 -04:00
genetlink.h
net: Introduce possible_net_t
2015-03-12 14:39:40 -04:00
geneve.h
openvswitch: Add support for checksums on UDP tunnels.
2015-01-28 23:04:15 -08:00
gre.h
gre: Call gso_make_checksum
2014-06-04 22:46:38 -07:00
gro_cells.h
ip_tunnel: Create percpu gro_cell
2015-01-18 01:56:32 -05:00
gue.h
gue: Protocol constants for remote checksum offload
2014-11-05 16:30:03 -05:00
icmp.h
ieee80211_radiotap.h
mac80211: propagate STBC / LDPC flags to radiotap
2014-02-06 09:34:58 +01:00
ieee802154_netdev.h
ieee802154: rework cca setting
2014-12-19 00:19:23 +01:00
if_inet6.h
ipv6: do retries on stable privacy addresses
2015-03-23 22:12:09 -04:00
inet6_connection_sock.h
inet: get rid of central tcp/dccp listener timer
2015-03-20 12:40:25 -04:00
inet6_hashtables.h
ipv6: get rid of __inet6_hash()
2015-03-18 22:00:35 -04:00
inet_common.h
net: Remove iocb argument from sendmsg and recvmsg
2015-03-02 13:06:31 -05:00
inet_connection_sock.h
inet: get rid of central tcp/dccp listener timer
2015-03-20 12:40:25 -04:00
inet_ecn.h
tunnel: fix RFC number in comment for INET_ECN_decapsulate()
2014-05-07 15:30:52 -04:00
inet_frag.h
percpu_counter: add @gfp to percpu_counter_init()
2014-09-08 09:51:29 +09:00
inet_hashtables.h
inet: get rid of last __inet_hash_connect() argument
2015-03-18 22:00:35 -04:00
inet_sock.h
inet: fix request sock refcounting
2015-03-17 22:02:29 -04:00
inet_timewait_sock.h
net: add real socket cookies
2015-03-11 21:55:28 -04:00
inetpeer.h
inet: remove dead inetpeer sequence code
2014-09-08 16:42:42 -07:00
ip.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-02-05 14:33:28 -08:00
ip6_checksum.h
net: add gro_compute_pseudo functions
2014-08-24 18:09:23 -07:00
ip6_fib.h
net: fib6: convert cfg metric to u32 outside of table write lock
2015-01-05 22:55:24 -05:00
ip6_route.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2014-05-24 00:32:30 -04:00
ip6_tunnel.h
tunnels: advertise link netns via netlink
2015-01-19 14:32:03 -05:00
ip_fib.h
ipv4: FIB Local/MAIN table collapse
2015-03-11 16:22:14 -04:00
ip_tunnels.h
tunnels: advertise link netns via netlink
2015-01-19 14:32:03 -05:00
ip_vs.h
net: Introduce possible_net_t
2015-03-12 14:39:40 -04:00
ipcomp.h
ipconfig.h
ipv6.h
ipv4, ipv6: kill ip_mc_{join, leave}_group and ipv6_sock_mc_{join, drop}
2015-03-18 22:05:09 -04:00
ipx.h
switch ipxrtr_route_packet() from iovec to msghdr
2014-11-24 04:28:49 -05:00
iw_handler.h
lapb.h
lib80211.h
lib80211: remove unused print_ssid()
2014-10-14 02:18:27 +02:00
llc.h
llc: make lock static
2014-01-03 20:56:48 -05:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc: Make llc_conn_ev_qfyr_t function pointer arrays const
2014-12-10 15:21:24 -05:00
llc_conn.h
llc_if.h
llc_pdu.h
net: llc: fix order of evaluation in llc_conn_ac_inc_vr_by_1
2014-01-01 22:22:43 -05:00
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc: Make llc_sap_action_t function pointer arrays const
2014-12-10 15:21:24 -05:00
llc_sap.h
mac80211.h
mac80111: Add BIP-GMAC-128 and BIP-GMAC-256 ciphers
2015-01-27 11:10:13 +01:00
mac802154.h
ieee802154: cleanup ieee802154_le64_to_be64
2015-02-14 05:19:58 +01:00
mip6.h
include/net/: Fix FSF address in file headers
2013-12-06 12:37:56 -05:00
mld.h
ipv6: mld: answer mldv2 queries with mldv1 reports in mldv1 fallback
2014-09-22 16:23:15 -04:00
mpls.h
openvswitch: Add basic MPLS support to kernel
2014-11-05 23:52:33 -08:00
mrp.h
ndisc.h
neigh: Factor out ___neigh_lookup_noref
2015-03-04 00:23:23 -05:00
neighbour.h
net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state.
2015-03-20 21:47:40 -04:00
net_namespace.h
net: Introduce possible_net_t
2015-03-12 14:39:40 -04:00
net_ratelimit.h
netevent.h
netlabel.h
netlabel: fix the netlbl_catmap_setlong() dummy function
2014-08-07 20:55:21 -04:00
netlink.h
netlink: make nlmsg_end() and genlmsg_end() void
2015-01-18 01:03:45 -05:00
netprio_cgroup.h
cgroup: clean up cgroup_subsys names and initialization
2014-02-08 10:36:58 -05:00
netrom.h
nexthop.h
nl802154.h
nl802154: introduce support for cca settings
2014-12-19 00:19:23 +01:00
p8022.h
ping.h
net: Remove iocb argument from sendmsg and recvmsg
2015-03-02 13:06:31 -05:00
pkt_cls.h
net: sched: remove tcf_proto from ematch calls
2014-10-06 18:02:32 -04:00
pkt_sched.h
net: rename vlan_tx_* helpers since "tx" is misleading there
2015-01-13 17:51:08 -05:00
protocol.h
net: Eliminate no_check from protosw
2014-05-23 16:28:53 -04:00
psnap.h
raw.h
rawv6.h
red.h
reciprocal_divide: update/correction of the algorithm
2014-01-21 23:17:20 -08:00
regulatory.h
cfg80211: allow wiphy specific regdomain management
2014-12-17 11:49:55 +01:00
request_sock.h
net: convert syn_wait_lock to a spinlock
2015-03-23 16:52:26 -04:00
rose.h
route.h
ipv4: per cpu uncached list
2015-01-15 18:26:16 -05:00
rtnetlink.h
rtnl: add link netns id to interface messages
2015-01-19 14:21:26 -05:00
sch_generic.h
net_sched: destroy proto tp when all filters are gone
2015-03-09 15:35:55 -04:00
scm.h
secure_seq.h
inetpeer: get rid of ip_id_count
2014-06-02 11:00:41 -07:00
slhc_vj.h
snmp.h
Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2014-10-15 07:48:18 +02:00
sock.h
net: increase sk_[max_]ack_backlog
2015-03-20 12:40:25 -04:00
Space.h
drivers: net: Include new header file in sbni.c
2013-12-19 18:51:20 -05:00
stp.h
switchdev.h
switchdev: kernel-doc cleanup on swithdev ops
2015-03-20 21:36:53 -04:00
tcp.h
tcp: md5: get rid of tcp_v[46]_reqsk_md5_lookup()
2015-03-24 21:16:30 -04:00
tcp_memcontrol.h
tcp_states.h
inet: add TCP_NEW_SYN_RECV state
2015-03-12 22:58:12 -04:00
timewait_sock.h
transp_v6.h
ipv6: make IPV6_RECVPKTINFO work for ipv4 datagrams
2014-01-19 19:53:18 -08:00
tso.h
net: Add a software TSO helper API
2014-05-22 14:57:15 -04:00
udp.h
net: Remove iocb argument from sendmsg and recvmsg
2015-03-02 13:06:31 -05:00
udp_tunnel.h
udp: Do not require sock in udp_tunnel_xmit_skb
2015-01-24 23:15:40 -08:00
udplite.h
net: switch memcpy_fromiovec()/memcpy_fromiovecend() users to copy_from_iter()
2015-02-04 01:34:15 -05:00
vsock_addr.h
vxlan.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-03-20 18:51:09 -04:00
wext.h
wimax.h
net: treewide: Fix typo found in DocBook/networking.xml
2014-09-05 17:35:28 -07:00
x25.h
x25device.h
xfrm.h
net: Introduce possible_net_t
2015-03-12 14:39:40 -04:00