04 Feb, 2017

1 commit

  • [ Upstream commit b6677449dff674cf5b81429b11d5c7f358852ef9 ]

    Any bridge options specified during link creation (e.g. ip link add)
    are ignored as br_dev_newlink() does not process them.
    Use br_changelink() to do it.

    Fixes: 133235161721 ("bridge: implement rtnl_link_ops->changelink")
    Signed-off-by: Ivan Vecera
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Ivan Vecera
     

20 Jan, 2017

1 commit

  • commit 14221cc45caad2fcab3a8543234bb7eda9b540d5 upstream.

    Problem:
    br_nf_pre_routing_finish() calls itself instead of
    br_nf_pre_routing_finish_bridge(). Due to this bug reverse path filter drops
    packets that go through bridge interface.

    User impact:
    Local docker containers with bridge network can not communicate with each
    other.

    Fixes: c5136b15ea36 ("netfilter: bridge: add and use br_nf_hook_thresh")
    Signed-off-by: Artur Molchanov
    Acked-by: Florian Westphal
    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: Greg Kroah-Hartman

    Artur Molchanov
     

06 Dec, 2016

1 commit

  • Function br_sysfs_addbr() does not set error code when the call
    kobject_create_and_add() returns a NULL pointer. It may be better to
    return "-ENOMEM" when kobject_create_and_add() fails.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188781

    Signed-off-by: Pan Bian
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Pan Bian
     

19 Oct, 2016

1 commit

  • Satish reported a problem with the perm multicast router ports not getting
    reenabled after some series of events, in particular if it happens that the
    multicast snooping has been disabled and the port goes to disabled state
    then it will be deleted from the router port list, but if it moves into
    non-disabled state it will not be re-added because the mcast snooping is
    still disabled, and enabling snooping later does nothing.

    Here are the steps to reproduce, setup br0 with snooping enabled and eth1
    added as a perm router (multicast_router = 2):
    1. $ echo 0 > /sys/class/net/br0/bridge/multicast_snooping
    2. $ ip l set eth1 down
    ^ This step deletes the interface from the router list
    3. $ ip l set eth1 up
    ^ This step does not add it again because mcast snooping is disabled
    4. $ echo 1 > /sys/class/net/br0/bridge/multicast_snooping
    5. $ bridge -d -s mdb show

    At this point we have mcast enabled and eth1 as a perm router (value = 2)
    but it is not in the router list which is incorrect.

    After this change:
    1. $ echo 0 > /sys/class/net/br0/bridge/multicast_snooping
    2. $ ip l set eth1 down
    ^ This step deletes the interface from the router list
    3. $ ip l set eth1 up
    ^ This step does not add it again because mcast snooping is disabled
    4. $ echo 1 > /sys/class/net/br0/bridge/multicast_snooping
    5. $ bridge -d -s mdb show
    router ports on br0: eth1

    Note: we can directly do br_multicast_enable_port for all because the
    querier timer already has checks for the port state and will simply
    expire if it's in blocking/disabled. See the comment added by
    commit 9aa66382163e7 ("bridge: multicast: add a comment to
    br_port_state_selection about blocking state")

    Fixes: 561f1103a2b7 ("bridge: Add multicast_snooping sysfs toggle")
    Reported-by: Satish Ashok
    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     

14 Oct, 2016

1 commit


03 Oct, 2016

1 commit

  • When using bridge without bridge netfilter enabled the message
    displayed is rather confusing and leads to belive that a deprecated
    feature is in use. Use IS_MODULE to be explicit that the message only
    affects users which use bridge netfilter as module and reword the
    message.

    Signed-off-by: Stefan Agner
    Acked-by: Florian Westphal
    Signed-off-by: David S. Miller

    Stefan Agner
     

26 Sep, 2016

2 commits

  • Conflicts:
    net/netfilter/core.c
    net/netfilter/nf_tables_netdev.c

    Resolve two conflicts before pull request for David's net-next tree:

    1) Between c73c24849011 ("netfilter: nf_tables_netdev: remove redundant
    ip_hdr assignment") from the net tree and commit ddc8b6027ad0
    ("netfilter: introduce nft_set_pktinfo_{ipv4, ipv6}_validate()").

    2) Between e8bffe0cf964 ("net: Add _nf_(un)register_hooks symbols") and
    Aaron Conole's patches to replace list_head with single linked list.

    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • NFTA_LOG_FLAGS attribute is already supported, but the related
    NF_LOG_XXX flags are not exposed to the userspace. So we cannot
    explicitly enable log flags to log uid, tcp sequence, ip options
    and so on, i.e. such rule "nft add rule filter output log uid"
    is not supported yet.

    So move NF_LOG_XXX macro definitions to the uapi/../nf_log.h. In
    order to keep consistent with other modules, change NF_LOG_MASK to
    refer to all supported log flags. On the other hand, add a new
    NF_LOG_DEFAULT_MASK to refer to the original default log flags.

    Finally, if user specify the unsupported log flags or NFTA_LOG_GROUP
    and NFTA_LOG_FLAGS are set at the same time, report EINVAL to the
    userspace.

    Signed-off-by: Liping Zhang
    Signed-off-by: Pablo Neira Ayuso

    Liping Zhang
     

25 Sep, 2016

3 commits

  • The netfilter hook list never uses the prev pointer, and so can be trimmed to
    be a simple singly-linked list.

    In addition to having a more light weight structure for hook traversal,
    struct net becomes 5568 bytes (down from 6400) and struct net_device becomes
    2176 bytes (down from 2240).

    Signed-off-by: Aaron Conole
    Signed-off-by: Florian Westphal
    Signed-off-by: Pablo Neira Ayuso

    Aaron Conole
     
  • All of the callers of nf_hook_slow already hold the rcu_read_lock, so this
    cleanup removes the recursive call. This is just a cleanup, as the locking
    code gracefully handles this situation.

    Signed-off-by: Aaron Conole
    Signed-off-by: Pablo Neira Ayuso

    Aaron Conole
     
  • This replaces the last uses of NF_HOOK_THRESH().
    Followup patch will remove it and rename nf_hook_thresh.

    The reason is that inet (non-bridge) netfilter no longer invokes the
    hooks from hooks, so we do no longer need the thresh value to skip hooks
    with a lower priority.

    The bridge netfilter however may need to do this. br_nf_hook_thresh is a
    wrapper that is supposed to do this, i.e. only call hooks with a
    priority that exceeds NF_BR_PRI_BRNF.

    It's used only in the recursion cases of br_netfilter. It invokes
    nf_hook_slow while holding an rcu read-side critical section to make a
    future cleanup simpler.

    Signed-off-by: Florian Westphal
    Signed-off-by: Aaron Conole
    Signed-off-by: Pablo Neira Ayuso

    Florian Westphal
     

13 Sep, 2016

5 commits

  • If /sbin/bridge-stp is available on the system, bridge tries to execute
    it instead of the kernel implementation when starting/stopping STP.

    If anything goes wrong with /sbin/bridge-stp, bridge silently falls back
    to kernel STP, making hard to debug userspace STP.

    This patch adds a br_stp_call_user helper to start/stop userspace STP
    and debug errors from the program: abnormal exit status is stored in the
    lower byte and normal exit status is stored in higher byte.

    Below is a simple example on a kernel with dynamic debug enabled:

    # ln -s /bin/false /sbin/bridge-stp
    # brctl stp br0 on
    br0: failed to start userspace STP (256)
    # dmesg
    br0: /sbin/bridge-stp exited with code 1
    br0: failed to start userspace STP (256)
    br0: using kernel STP

    Signed-off-by: Vivien Didelot
    Signed-off-by: David S. Miller

    Vivien Didelot
     
  • Conflicts:
    drivers/net/ethernet/mediatek/mtk_eth_soc.c
    drivers/net/ethernet/qlogic/qed/qed_dcbx.c
    drivers/net/phy/Kconfig

    All conflicts were cases of overlapping commits.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • There are some codes of netfilter module which did not check the return
    value of nft_register_chain_type. Add the checks now.

    Signed-off-by: Gao Feng
    Signed-off-by: Pablo Neira Ayuso

    Gao Feng
     
  • Consolidate pktinfo setup and validation by using the new generic
    functions so we converge to the netdev family codebase.

    We only need a linear IPv4 and IPv6 header from the reject expression,
    so move nft_bridge_iphdr_validate() and nft_bridge_ip6hdr_validate()
    to net/bridge/netfilter/nft_reject_bridge.c.

    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • This patch introduces nft_set_pktinfo_unspec() that ensures proper
    initialization all of pktinfo fields for non-IP traffic. This is used
    by the bridge, netdev and arp families.

    This new function relies on nft_set_pktinfo_proto_unspec() to set a new
    tprot_set field that indicates if transport protocol information is
    available. Remain fields are zeroed.

    The meta expression has been also updated to check to tprot_set in first
    place given that zero is a valid tprot value. Even a handcrafted packet
    may come with the IPPROTO_RAW (255) protocol number so we can't rely on
    this value as tprot unset.

    Reported-by: Florian Westphal
    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     

07 Sep, 2016

1 commit

  • Pablo Neira Ayuso says:

    ====================
    Netfilter updates for net-next

    The following patchset contains Netfilter updates for your net-next
    tree. Most relevant updates are the removal of per-conntrack timers to
    use a workqueue/garbage collection approach instead from Florian
    Westphal, the hash and numgen expression for nf_tables from Laura
    Garcia, updates on nf_tables hash set to honor the NLM_F_EXCL flag,
    removal of ip_conntrack sysctl and many other incremental updates on our
    Netfilter codebase.

    More specifically, they are:

    1) Retrieve only 4 bytes to fetch ports in case of non-linear skb
    transport area in dccp, sctp, tcp, udp and udplite protocol
    conntrackers, from Gao Feng.

    2) Missing whitespace on error message in physdev match, from Hangbin Liu.

    3) Skip redundant IPv4 checksum calculation in nf_dup_ipv4, from Liping Zhang.

    4) Add nf_ct_expires() helper function and use it, from Florian Westphal.

    5) Replace opencoded nf_ct_kill() call in IPVS conntrack support, also
    from Florian.

    6) Rename nf_tables set implementation to nft_set_{name}.c

    7) Introduce the hash expression to allow arbitrary hashing of selector
    concatenations, from Laura Garcia Liebana.

    8) Remove ip_conntrack sysctl backward compatibility code, this code has
    been around for long time already, and we have two interfaces to do
    this already: nf_conntrack sysctl and ctnetlink.

    9) Use nf_conntrack_get_ht() helper function whenever possible, instead
    of opencoding fetch of hashtable pointer and size, patch from Liping Zhang.

    10) Add quota expression for nf_tables.

    11) Add number generator expression for nf_tables, this supports
    incremental and random generators that can be combined with maps,
    very useful for load balancing purpose, again from Laura Garcia Liebana.

    12) Fix a typo in a debug message in FTP conntrack helper, from Colin Ian King.

    13) Introduce a nft_chain_parse_hook() helper function to parse chain hook
    configuration, this is used by a follow up patch to perform better chain
    update validation.

    14) Add rhashtable_lookup_get_insert_key() to rhashtable and use it from the
    nft_set_hash implementation to honor the NLM_F_EXCL flag.

    15) Missing nulls check in nf_conntrack from nf_conntrack_tuple_taken(),
    patch from Florian Westphal.

    16) Don't use the DYING bit to know if the conntrack event has been already
    delivered, instead a state variable to track event re-delivery
    states, also from Florian.

    17) Remove the per-conntrack timer, use the workqueue approach that was
    discussed during the NFWS, from Florian Westphal.

    18) Use the netlink conntrack table dump path to kill stale entries,
    again from Florian.

    19) Add a garbage collector to get rid of stale conntracks, from
    Florian.

    20) Reschedule garbage collector if eviction rate is high.

    21) Get rid of the __nf_ct_kill_acct() helper.

    22) Use ARPHRD_ETHER instead of hardcoded 1 from ARP logger.

    23) Make nf_log_set() interface assertive on unsupported families.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

02 Sep, 2016

4 commits

  • Add a per-port flag to control the unknown multicast flood, similar to the
    unknown unicast flood flag and break a few long lines in the netlink flag
    exports.

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     
  • Remove the unicast flag and introduce an exact pkt_type. That would help us
    for the upcoming per-port multicast flood flag and also slightly reduce the
    tests in the input fast path.

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     
  • fdb dumps spanning multiple skb's currently restart from the first
    interface again for every skb. This results in unnecessary
    iterations on the already visited interfaces and their fdb
    entries. In large scale setups, we have seen this to slow
    down fdb dumps considerably. On a system with 30k macs we
    see fdb dumps spanning across more than 300 skbs.

    To fix the problem, this patch replaces the existing single fdb
    marker with three markers: netdev hash entries, netdevs and fdb
    index to continue where we left off instead of restarting from the
    first netdev. This is consistent with link dumps.

    In the process of fixing the performance issue, this patch also
    re-implements fix done by
    commit 472681d57a5d ("net: ndo_fdb_dump should report -EMSGSIZE to rtnl_fdb_dump")
    (with an internal fix from Wilson Kok) in the following ways:
    - change ndo_fdb_dump handlers to return error code instead
    of the last fdb index
    - use cb->args strictly for dump frag markers and not error codes.
    This is consistent with other dump functions.

    Below results were taken on a system with 1000 netdevs
    and 35085 fdb entries:
    before patch:
    $time bridge fdb show | wc -l
    15065

    real 1m11.791s
    user 0m0.070s
    sys 1m8.395s

    (existing code does not return all macs)

    after patch:
    $time bridge fdb show | wc -l
    35085

    real 0m2.017s
    user 0m0.113s
    sys 0m1.942s

    Signed-off-by: Roopa Prabhu
    Signed-off-by: Wilson Kok
    Signed-off-by: David S. Miller

    Roopa Prabhu
     
  • pskb_may_pull may fail due to various reasons (e.g. alloc failure), but the
    skb isn't changed/dropped and processing continues so we shouldn't
    increment tx_dropped.

    CC: Kyeyoon Park
    CC: Roopa Prabhu
    CC: Stephen Hemminger
    CC: bridge@lists.linux-foundation.org
    Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")
    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     

01 Sep, 2016

1 commit

  • commit bc8c20acaea1 ("bridge: multicast: treat igmpv3 report with
    INCLUDE and no sources as a leave") seems to have accidentally reverted
    commit 47cc84ce0c2f ("bridge: fix parsing of MLDv2 reports"). This
    commit brings back a change to br_ip6_multicast_mld2_report() where
    parsing of MLDv2 reports stops when the first group is successfully
    added to the MDB cache.

    Fixes: bc8c20acaea1 ("bridge: multicast: treat igmpv3 report with INCLUDE and no sources as a leave")
    Signed-off-by: Davide Caratti
    Acked-by: Nikolay Aleksandrov
    Acked-by: Thadeu Lima de Souza Cascardo
    Signed-off-by: David S. Miller

    Davide Caratti
     

30 Aug, 2016

1 commit


27 Aug, 2016

2 commits

  • switchdev_port_fwd_mark_set() is used to set the 'offload_fwd_mark' of
    port netdevs so that packets being flooded by the device won't be
    flooded twice.

    It works by assigning a unique identifier (the ifindex of the first
    bridge port) to bridge ports sharing the same parent ID. This prevents
    packets from being flooded twice by the same switch, but will flood
    packets through bridge ports belonging to a different switch.

    This method is problematic when stacked devices are taken into account,
    such as VLANs. In such cases, a physical port netdev can have upper
    devices being members in two different bridges, thus requiring two
    different 'offload_fwd_mark's to be configured on the port netdev, which
    is impossible.

    The main problem is that packet and netdev marking is performed at the
    physical netdev level, whereas flooding occurs between bridge ports,
    which are not necessarily port netdevs.

    Instead, packet and netdev marking should really be done in the bridge
    driver with the switch driver only telling it which packets it already
    forwarded. The bridge driver will mark such packets using the mark
    assigned to the ingress bridge port and will prevent the packet from
    being forwarded through any bridge port sharing the same mark (i.e.
    having the same parent ID).

    Remove the current switchdev 'offload_fwd_mark' implementation and
    instead implement the proposed method. In addition, make rocker - the
    sole user of the mark - use the proposed method.

    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • When I added support to export the vlan entry flags via xstats I forgot to
    add support for the pvid since it is manually matched, so check if the
    entry matches the vlan_group's pvid and set the flag appropriately.

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     

25 Aug, 2016

2 commits

  • commit bcf493428840 ("netfilter: ebtables: Fix extension lookup with
    identical name") added a second lookup in case the extension that was
    found during the first lookup matched another extension with the same
    name, but didn't release the reference on the incorrect module.

    Fixes: bcf493428840 ("netfilter: ebtables: Fix extension lookup with identical name")
    Signed-off-by: Sabrina Dubroca
    Acked-by: Phil Sutter
    Signed-off-by: Pablo Neira Ayuso

    Sabrina Dubroca
     
  • "meta pkttype set" is only supported on prerouting chain with bridge
    family and ingress chain with netdev family.

    But the validate check is incomplete, and the user can add the nft
    rules on input chain with bridge family, for example:
    # nft add table bridge filter
    # nft add chain bridge filter input {type filter hook input \
    priority 0 \;}
    # nft add chain bridge filter test
    # nft add rule bridge filter test meta pkttype set unicast
    # nft add rule bridge filter input jump test

    This patch fixes the problem.

    Signed-off-by: Liping Zhang
    Signed-off-by: Pablo Neira Ayuso

    Liping Zhang
     

19 Aug, 2016

2 commits

  • Use one of the vlan xstats padding fields to export the vlan flags. This is
    needed in order to be able to distinguish between master (bridge) and port
    vlan entries in user-space when dumping the bridge vlan stats.

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     
  • In the bridge driver we usually have the same function working for both
    port and bridge. In order to follow that logic and also avoid code
    duplication, consolidate the bridge_ and brport_ linkxstats calls into
    one since they share most of their code. As a side effect this allows us
    to dump the vlan stats also via the slave call which is in preparation for
    the upcoming per-port vlan stats and vlan flag dumping.

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     

10 Aug, 2016

1 commit

  • Adding fdb entries pointing to the bridge device uses fdb_insert(),
    which lacks various checks and does not respect added_by_user flag.

    As a result, some inconsistent behavior can happen:
    * Adding temporary entries succeeds but results in permanent entries.
    * Same goes for "dynamic" and "use".
    * Changing mac address of the bridge device causes deletion of
    user-added entries.
    * Replacing existing entries looks successful from userspace but actually
    not, regardless of NLM_F_EXCL flag.

    Use the same logic as other entries and fix them.

    Fixes: 3741873b4f73 ("bridge: allow adding of fdb entries pointing to the bridge device")
    Signed-off-by: Toshiaki Makita
    Acked-by: Roopa Prabhu
    Signed-off-by: David S. Miller

    Toshiaki Makita
     

26 Jul, 2016

3 commits

  • Commit 8626c56c8279 ("bridge: fix potential use-after-free when hook
    returns QUEUE or STOLEN verdict") caused LLDP packets arriving through a
    bridge port to be re-injected to the Rx path with skb->dev set to the
    bridge device, but this breaks the lldpad daemon.

    The lldpad daemon opens a packet socket with protocol set to ETH_P_LLDP
    for any valid device on the system, which doesn't not include soft
    devices such as bridge and VLAN.

    Since packet sockets (ptype_base) are processed in the Rx path after the
    Rx handler, LLDP packets with skb->dev set to the bridge device never
    reach the lldpad daemon.

    Fix this by making the bridge's Rx handler re-inject LLDP packets with
    RX_HANDLER_PASS, which effectively restores the behaviour prior to the
    mentioned commit.

    This means netfilter will never receive LLDP packets coming through a
    bridge port, as I don't see a way in which we can have okfn() consume
    the packet without breaking existing behaviour. I've already carried out
    a similar fix for STP packets in commit 56fae404fb2c ("bridge: Fix
    incorrect re-injection of STP packets").

    Fixes: 8626c56c8279 ("bridge: fix potential use-after-free when hook returns QUEUE or STOLEN verdict")
    Signed-off-by: Ido Schimmel
    Reviewed-by: Jiri Pirko
    Cc: Florian Westphal
    Cc: John Fastabend
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • Change the ageing_time type in br_set_ageing_time() from u32 to what it
    is expected to be, i.e. a clock_t.

    Signed-off-by: Vivien Didelot
    Signed-off-by: David S. Miller

    Vivien Didelot
     
  • br_stp_enable_bridge() does take the br->lock spinlock. Fix its wrongly
    pasted comment and use the same as br_stp_disable_bridge().

    Signed-off-by: Vivien Didelot
    Signed-off-by: David S. Miller

    Vivien Didelot
     

17 Jul, 2016

4 commits


10 Jul, 2016

1 commit

  • As was suggested this patch adds support for the different versions of MLD
    and IGMP query types. Since the user visible structure is still in net-next
    we can augment it instead of adding netlink attributes.
    The distinction between the different IGMP/MLD query types is done as
    suggested in Section 7.1, RFC 3376 [1] and Section 8.1, RFC 3810 [2] based
    on query payload size and code for IGMP. Since all IGMP packets go through
    multicast_rcv() and it uses ip_mc_check_igmp/ipv6_mc_check_mld we can be
    sure that at least the ip/ipv6 header can be directly used.

    [1] https://tools.ietf.org/html/rfc3376#section-7
    [2] https://tools.ietf.org/html/rfc3810#section-8.1

    Suggested-by: Linus Lüssing
    Signed-off-by: Nikolay Aleksandrov
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Nikolay Aleksandrov
     

07 Jul, 2016

2 commits

  • Conflicts:
    drivers/net/ethernet/mellanox/mlx5/core/en.h
    drivers/net/ethernet/mellanox/mlx5/core/en_main.c
    drivers/net/usb/r8152.c

    All three conflicts were overlapping changes.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pablo Neira Ayuso says:

    ====================
    Netfilter updates for net-next

    The following patchset contains Netfilter updates for net-next,
    they are:

    1) Don't use userspace datatypes in bridge netfilter code, from
    Tobin Harding.

    2) Iterate only once over the expectation table when removing the
    helper module, instead of once per-netns, from Florian Westphal.

    3) Extra sanitization in xt_hook_ops_alloc() to return error in case
    we ever pass zero hooks, xt_hook_ops_alloc():

    4) Handle NFPROTO_INET from the logging core infrastructure, from
    Liping Zhang.

    5) Autoload loggers when TRACE target is used from rules, this doesn't
    change the behaviour in case the user already selected nfnetlink_log
    as preferred way to print tracing logs, also from Liping Zhang.

    6) Conntrack slabs with SLAB_HWCACHE_ALIGN to allow rearranging fields
    by cache lines, increases the size of entries in 11% per entry.
    From Florian Westphal.

    7) Skip zone comparison if CONFIG_NF_CONNTRACK_ZONES=n, from Florian.

    8) Remove useless defensive check in nf_logger_find_get() from Shivani
    Bhardwaj.

    9) Remove zone extension as place it in the conntrack object, this is
    always include in the hashing and we expect more intensive use of
    zones since containers are in place. Also from Florian Westphal.

    10) Owner match now works from any namespace, from Eric Bierdeman.

    11) Make sure we only reply with TCP reset to TCP traffic from
    nf_reject_ipv4, patch from Liping Zhang.

    12) Introduce --nflog-size to indicate amount of network packet bytes
    that are copied to userspace via log message, from Vishwanath Pai.
    This obsoletes --nflog-range that has never worked, it was designed
    to achieve this but it has never worked.

    13) Introduce generic macros for nf_tables object generation masks.

    14) Use generation mask in table, chain and set objects in nf_tables.
    This allows fixes interferences with ongoing preparation phase of
    the commit protocol and object listings going on at the same time.
    This update is introduced in three patches, one per object.

    15) Check if the object is active in the next generation for element
    deactivation in the rbtree implementation, given that deactivation
    happens from the commit phase path we have to observe the future
    status of the object.

    16) Support for deletion of just added elements in the hash set type.

    17) Allow to resize hashtable from /proc entry, not only from the
    obscure /sys entry that maps to the module parameter, from Florian
    Westphal.

    18) Get rid of NFT_BASECHAIN_DISABLED, this code is not exercised
    anymore since we tear down the ruleset whenever the netdevice
    goes away.

    19) Support for matching inverted set lookups, from Arturo Borrero.

    20) Simplify the iptables_mangle_hook() by removing a superfluous
    extra branch.

    21) Introduce ether_addr_equal_masked() and use it from the netfilter
    codebase, from Joe Perches.

    22) Remove references to "Use netfilter MARK value as routing key"
    from the Netfilter Kconfig description given that this toggle
    doesn't exists already for 10 years, from Moritz Sichert.

    23) Introduce generic NF_INVF() and use it from the xtables codebase,
    from Joe Perches.

    24) Setting logger to NONE via /proc was not working unless explicit
    nul-termination was included in the string. This fixes seems to
    leave the former behaviour there, so we don't break backward.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller