11 Jul, 2016

1 commit

  • When we do "cat /proc/net/nf_conntrack", and meanwhile resize the conntrack
    hash table via /sys/module/nf_conntrack/parameters/hashsize, race will
    happen, because reader can observe a newly allocated hash but the old size
    (or vice versa). So oops will happen like follows:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000017
    IP: [] seq_print_acct+0x11/0x50 [nf_conntrack]
    Call Trace:
    [] ? ct_seq_show+0x14e/0x340 [nf_conntrack]
    [] seq_read+0x2cc/0x390
    [] proc_reg_read+0x42/0x70
    [] __vfs_read+0x37/0x130
    [] ? security_file_permission+0xa0/0xc0
    [] vfs_read+0x95/0x140
    [] SyS_read+0x55/0xc0
    [] entry_SYSCALL_64_fastpath+0x1a/0xa4

    It is very easy to reproduce this kernel crash.
    1. open one shell and input the following cmds:
    while : ; do
    echo $RANDOM > /sys/module/nf_conntrack/parameters/hashsize
    done
    2. open more shells and input the following cmds:
    while : ; do
    cat /proc/net/nf_conntrack
    done
    3. just wait a monent, oops will happen soon.

    The solution in this patch is based on Florian's Commit 5e3c61f98175
    ("netfilter: conntrack: fix lookup race during hash resize"). And
    add a wrapper function nf_conntrack_get_ht to get hash and hsize
    suggested by Florian Westphal.

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

    Liping Zhang
     

07 Jul, 2016

7 commits

  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    One more set of new features:
    * beacon report (for radio measurement) support in cfg80211/mac80211
    * hwsim: allow wmediumd in namespaces
    * mac80211: extend 160MHz workaround to CSA IEs
    * mesh: properly encrypt group-addressed privacy action frames
    * mesh: allow setting peer AID
    * first steps for MU-MIMO monitor mode
    * along with various other cleanups and improvements
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • Remove .owner field since calls to module_platform_driver() will
    set it automatically.

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • 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
     
  • Pull networking fixes from David Miller:

    1) All users of AF_PACKET's fanout feature want a symmetric packet
    header hash for load balancing purposes, so give it to them.

    2) Fix vlan state synchronization in e1000e, from Jarod Wilson.

    3) Use correct socket pointer in ip_skb_dst_mtu(), from Shmulik
    Ladkani.

    4) mlx5 bug fixes from Mohamad Haj Yahia, Daniel Jurgens, Matthew
    Finlay, Rana Shahout, and Shaker Daibes. Mostly to do with
    operation timeouts and PCI error handling.

    5) Fix checksum handling in mirred packet action, from WANG Cong.

    6) Set skb->dev correctly when transmitting in !protect_frames case of
    macsec driver, from Daniel Borkmann.

    7) Fix MTU calculation in geneve driver, from Haishuang Yan.

    8) Missing netif_napi_del() in unregister path of qeth driver, from
    Ursula Braun.

    9) Handle malformed route netlink messages in decnet properly, from
    Vergard Nossum.

    10) Memory leak of percpu data in ipv6 routing code, from Martin KaFai
    Lau.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (41 commits)
    ipv6: Fix mem leak in rt6i_pcpu
    net: fix decnet rtnexthop parsing
    cxgb4: update latest firmware version supported
    net/mlx5: Avoid setting unused var when modifying vport node GUID
    bonding: fix enslavement slave link notifications
    r8152: fix runtime function for RTL8152
    qeth: delete napi struct when removing a qeth device
    Revert "fsl/fman: fix error handling"
    fsl/fman: fix error handling
    cdc_ncm: workaround for EM7455 "silent" data interface
    RDS: fix rds_tcp_init() error path
    geneve: fix max_mtu setting
    net: phy: dp83867: Fix initialization of PHYCR register
    enc28j60: Fix race condition in enc28j60 driver
    net: stmmac: Fix null-function call in ISR on stmmac1000
    tipc: fix nl compat regression for link statistics
    net: bcmsysport: Device stats are unsigned long
    macsec: set actual real device for xmit when !protect_frames
    net_sched: fix mirrored packets checksum
    packet: Use symmetric hash for PACKET_FANOUT_HASH.
    ...

    Linus Torvalds
     
  • 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
     
  • Pull sound fixes from Takashi Iwai:
    "Here are a collection of small fixes: at this time, we've got a
    slightly high amount, but all small and trivial fixes, and nothing
    scary can be seen there"

    * tag 'sound-4.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits)
    ALSA: hda/realtek: Add Lenovo L460 to docking unit fixup
    ALSA: timer: Fix negative queue usage by racy accesses
    ASoC: rt5645: fix reg-2f default value.
    ASoC: fsl_ssi: Fix number of words per frame for I2S-slave mode
    ALSA: au88x0: Fix calculation in vortex_wtdma_bufshift()
    ALSA: hda - Add PCI ID for Kabylake-H
    ALSA: echoaudio: Fix memory allocation
    ASoC: Intel: atom: fix missing breaks that would cause the wrong operation to execute
    ALSA: hda - fix read before array start
    ASoC: cx20442: set tty->receiver_room in v253_open
    ASoC: ak4613: Enable cache usage to fix crashes on resume
    ASoC: wm8940: Enable cache usage to fix crashes on resume
    ASoC: Intel: Skylake: Initialize module list for Broxton
    ASoC: wm5102: Correct supported channels on trace compressed DAI
    ASoC: wm5110: Add missing route from OUT3R to SYSCLK
    ASoC: rt5670: fix HP Playback Volume control
    ASoC: hdmi-codec: select CONFIG_HDMI
    ASoC: davinci-mcasp: Fix dra7 DMA offset when using CFG port
    ASoC: hdac_hdmi: Fix potential NULL dereference
    ASoC: ak4613: Remove owner assignment from platform_driver
    ...

    Linus Torvalds
     
  • Pull chrome platform fix from Olof Johansson:
    "A single fix this time, closing a window where ioctl args are fetched
    twice"

    * tag 'chrome-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
    platform/chrome: cros_ec_dev - double fetch bug in ioctl

    Linus Torvalds
     

06 Jul, 2016

32 commits

  • Previously, mesh power management functionality works only with kernel
    MPM. Because user space MPM did not report mesh peer AID to kernel,
    the kernel could not identify the bit in TIM element. So this patch
    adds mesh peer AID setting API.

    Signed-off-by: Masashi Honma
    Signed-off-by: Johannes Berg

    Masashi Honma
     
  • Continuing the workaround implemented in commit 23665aaf9170
    ("mac80211: Interoperability workaround for 80+80 and 160 MHz channels")
    use the same code to parse the Wide Bandwidth Channel Switch element
    by converting to VHT Operation element since the spec also just refers
    to that for parsing semantics, particularly with the workaround.

    While at it, remove some dead code - the IEEE80211_STA_DISABLE_40MHZ
    flag can never be set at this point since it's checked earlier and the
    wide_bw_chansw_ie pointer is set to NULL if it's set.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Rather than reporting the scan as having completed, report it as
    being aborted.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Add the following to support beacon report radio measurement
    with the measurement mode field set to passive or active:
    1. Propagate the required scan duration to the device
    2. Report the scan start time (in terms of TSF)
    3. Report each BSS's detection time (also in terms of TSF)

    TSF times refer to the BSS that the interface that requested the
    scan is connected to.

    Signed-off-by: Assaf Krauss
    Signed-off-by: Avraham Stern
    [changed ath9k/10k, at76c59x-usb, iwlegacy, wl1251 and wlcore to match
    the new API]
    Signed-off-by: Luca Coelho
    Signed-off-by: Johannes Berg

    Avraham Stern
     
  • Beacon report radio measurement requires reporting observed BSSs
    on the channels specified in the beacon request. If the measurement
    mode is set to passive or active, it requires actually performing a
    scan (passive or active, accordingly), and reporting the time that
    the scan was started and the time each beacon/probe was received
    (both in terms of TSF of the BSS of the requesting AP). If the
    request mode is table, this information is optional.
    In addition, the radio measurement request specifies the channel
    dwell time for the measurement.

    In order to use scan for beacon report when the mode is active or
    passive, add a parameter to scan request that specifies the
    channel dwell time, and add scan start time and beacon received time
    to scan results information.

    Supporting beacon report is required for Multi Band Operation (MBO).

    Signed-off-by: Assaf Krauss
    Signed-off-by: David Spinadel
    Signed-off-by: Avraham Stern
    Signed-off-by: Luca Coelho
    Signed-off-by: Johannes Berg

    Avraham Stern
     
  • The API expects a pointer to a signed int so we should not use an
    unsigned int for it.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Add radar_detect_widths to the interface combination that allows
    concurrent P2P Device dedicated interface and AP interfaces, to enable
    testing of radar detection when P2P Device interface is used.

    Clear the radar_detect_widths in case of multi channel contexts
    as this is not currently supported.

    As radar_detect_widths are now supported in all combinations,
    remove the hwsim_if_dfs_limits definition since it is no longer
    needed.

    Signed-off-by: Ilan Peer
    Signed-off-by: Luca Coelho
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • add API to support VHT MU-MIMO air sniffer.
    in MU-MIMO there are parallel frames on the air while the HW
    has only one RX.
    add the capability to sniff one of the MU-MIMO parallel frames by
    giving the sniffer additional information so it'll know which
    of the parallel frames it shall follow.

    Add attribute - NL80211_ATTR_MU_MIMO_GROUP_DATA - for getting
    a MU-MIMO groupID in order to monitor packets from that group
    using VHT MU-MIMO.
    And add attribute -NL80211_ATTR_MU_MIMO_FOLLOW_ADDR - for passing
    MAC address to monitor mode.
    that option will be used by VHT MU-MIMO air sniffer to follow a
    station according to it's MAC address using VHT MU-MIMO.

    Signed-off-by: Aviya Erenfeld
    Signed-off-by: Luca Coelho
    Signed-off-by: Johannes Berg

    Aviya Erenfeld
     
  • The current implementation of handling ADDBA Request while a session
    is already active with the peer is wrong - in case the peer is using
    the existing session's dialog token this should be treated as update
    to the session, which can update the timeout value.

    We don't really have a good way of supporting that, so reject, but
    implement the required behaviour in the spec of "Even if the updated
    ADDBA Request frame is not accepted, the original Block ACK setup
    remains active." (802.11-2012 10.5.4)

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • It was first reported and reproduced by Petr (thanks!) in
    https://bugzilla.kernel.org/show_bug.cgi?id=119581

    free_percpu(rt->rt6i_pcpu) used to always happen in ip6_dst_destroy().

    However, after fixing a deadlock bug in
    commit 9c7370a166b4 ("ipv6: Fix a potential deadlock when creating pcpu rt"),
    free_percpu() is not called before setting non_pcpu_rt->rt6i_pcpu to NULL.

    It is worth to note that rt6i_pcpu is protected by table->tb6_lock.

    kmemleak somehow did not report it. We nailed it down by
    observing the pcpu entries in /proc/vmallocinfo (first suggested
    by Hannes, thanks!).

    Signed-off-by: Martin KaFai Lau
    Fixes: 9c7370a166b4 ("ipv6: Fix a potential deadlock when creating pcpu rt")
    Reported-by: Petr Novopashenniy
    Tested-by: Petr Novopashenniy
    Acked-by: Hannes Frederic Sowa
    Cc: Hannes Frederic Sowa
    Cc: Petr Novopashenniy
    Signed-off-by: David S. Miller

    Martin KaFai Lau
     
  • dn_fib_count_nhs() could enter an infinite loop if nhp->rtnh_len == 0
    (i.e. if userspace passes a malformed netlink message).

    Let's use the helpers from net/nexthop.h which take care of all this
    stuff. We can do exactly the same as e.g. fib_count_nexthops() and
    fib_get_nhs() from net/ipv4/fib_semantics.c.

    This fixes the softlockup for me.

    Cc: Thomas Graf
    Signed-off-by: Vegard Nossum
    Signed-off-by: David S. Miller

    Vegard Nossum
     
  • We verify "u_cmd.outsize" and "u_cmd.insize" but we need to make sure
    that those values have not changed between the two copy_from_user()
    calls. Otherwise it could lead to a buffer overflow.

    Additionally, cros_ec_cmd_xfer() can set s_cmd->insize to a lower value.
    We should use the new smaller value so we don't copy too much data to
    the user.

    Reported-by: Pengfei Wang
    Fixes: a841178445bb ('mfd: cros_ec: Use a zero-length array for command data')
    Signed-off-by: Dan Carpenter
    Reviewed-by: Kees Cook
    Tested-by: Gwendal Grignou
    Cc: # v4.2+
    Signed-off-by: Olof Johansson

    Dan Carpenter
     
  • Change t4fw_version.h to update latest firmware version number

    Signed-off-by: Ganesh Goudar
    Signed-off-by: David S. Miller

    Ganesh Goudar
     
  • GCC complains on unused-but-set-variable, clean this up.

    Fixes: 23898c763f4a ('net/mlx5: E-Switch, Modify node guid on vf set MAC')
    Signed-off-by: Or Gerlitz
    Acked-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Or Gerlitz
     
  • Currently, link notifications are not sent by
    bond_set_slave_link_state() upon enslavement if
    the slave is enslaved when up.

    This happens because slave->link default init value
    is 0, which is the same as BOND_LINK_UP, resulting
    in bond_set_slave_link_state() ignoring this transition.

    This patch sets the default value of slave->link to
    BOND_LINK_NOCHANGE, assuring it will count as a state
    transition and thus trigger notification logic.

    Signed-off-by: Aviv Heller
    Reviewed-by: Jiri Pirko
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Aviv Heller
     
  • Add support for PREROUTING rules with skb->dev set to the vrf device.
    INPUT rules are already allowed. Provides symmetry with the output path
    which allows POSTROUTING rules.

    Signed-off-by: David Ahern
    Signed-off-by: David S. Miller

    David Ahern
     
  • The Kconfig controlling build of this code is currently:

    drivers/connector/Kconfig:config PROC_EVENTS
    drivers/connector/Kconfig: bool "Report process events to userspace"

    ...meaning that it currently is not being built as a module by anyone.
    Lets remove the two modular references, so that when reading the driver
    there is no doubt it is builtin-only.

    Since module_init translates to device_initcall in the non-modular
    case, the init ordering remains unchanged with this commit.

    Cc: Evgeniy Polyakov
    Cc: netdev@vger.kernel.org
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     
  • The RTL8152 doesn't have U1U2 and U2P3 features, so use different
    runtime functions for RTL812 and RTL8153 by adding autosuspend_en()
    to rtl_ops.

    Signed-off-by: Hayes Wang
    Signed-off-by: David S. Miller

    hayeswang
     
  • In case of error, function devm_ioremap_resource() returns ERR_PTR()
    and never returns NULL. The NULL test in the return value check should
    be replaced with IS_ERR().

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • Jiri Pirko says:

    ====================
    mlxsw: Implement IPV4 unicast routing

    This patchset enables IPv4 unicast routing in the Mellanox Spectrum ASIC
    switch driver. This builds upon the work that was done by a couple of
    previous patchsets.

    Patches 1,2,6 add a couple of dependencies outside the driver. Namely, the
    ability to propagate ndo_neigh_construct()/destroy() through stacked devices and
    a notification whenever DELAY_PROBE_TIME changes. When propagated down, the
    ndos allow drivers to add and remove neighbour entries from their private
    neighbour table. The DELAY_PROBE_TIME notification gives drivers the ability to
    correctly configure their polling interval for neighbour activity, so that
    active neighbour won't be marked as STALE.

    Patches 3-5,7-8 add the neighbour offloading infrastructure, where patch 7 uses
    the DELAY_PROBE_TIME notification in order to correctly configure the device's
    polling interval. Patch 8 finally programs neighbours to the device's table
    based on NEIGH_UPDATE notifications, so that directly connected routes can
    be used.

    Patches 9-16 build upon the previous patches and extend the router with
    remote routes (nexthop) support.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Now, the driver sends arp probes for all unresolved neighbours that are
    currently a nexthop for some route on the system. The job is set
    periodically every 5 seconds.

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

    Yotam Gigi
     
  • For nexthop neighbours we need to make kernel to think there is a traffic
    flowing to them preventing it from going to stale state. Otherwise
    kernel would stale it and eventually the neigh would be removed from HW
    and nexthop as well. That would reduce ECMP group in HW.

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

    Yotam Gigi
     
  • Implement next-hop routing offload including ECMP. To make it possible,
    introduce next-hop group entity. This entity keeps track of resolved
    neighbours and updates HW adjacency table accordingly. Note that HW
    next-hops are stored in this adjacency table, in form of MAC.

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

    Jiri Pirko
     
  • The RALEU register is used to mass update remote action adjacency index
    and ecmp size.

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

    Jiri Pirko
     
  • The RATR register is used to configure the Router Adjacency (next-hop)
    Table.

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

    Yotam Gigi
     
  • This is a very simple manager for KVD linear area. Currently, the
    allocator will either allocate a single entry from pre-defined sub-area,
    or in case more than one entry is needed, it will allocate 32-entry chunk
    in other pre-defined sub-area.

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

    Jiri Pirko
     
  • Override the defaults and define the area sizes ourselves.

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

    Jiri Pirko
     
  • Up until now we only used hash-based tables in the device, but we are
    going to use the linear table for remote routes adjacency lists.

    Add the configuration fields that control the size of the linear table.

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

    Jiri Pirko
     
  • Listen to any NEIGH_UPDATE events sent and program the device
    accordingly. If NUD state is VALID and neighbour isn't yet offloaded,
    then program it into the device's table. Otherwise, just edit its
    parameters.

    If NUD state machine transitioned neighbour out of VALID state and it's
    present in the device's table, then remove it.

    Note that the device is programmed in delayed work, as the netevent
    notification chain is atomic and prevents us from going to sleep.

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

    Yotam Gigi
     
  • As previously explained, the driver should periodically poll the device
    for neighbours activity according to the configured DELAY_PROBE_TIME.
    This will prevent active neighbours from staying in STALE state for long
    periods of time.

    During init configure the polling interval according to the
    DELAY_PROBE_TIME used in the default table. In addition, register a
    netevent notification block, so that the interval is updated whenever
    DELAY_PROBE_TIME changes.

    Using the computed interval schedule a delayed work, which will update
    the kernel via neigh_event_send() on any active neighbour since the last
    delayed work.

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

    Yotam Gigi
     
  • When the data plane is offloaded the traffic doesn't go through the
    networking stack. Therefore, after first resolving a neighbour the NUD
    state machine will transition it from REACHABLE to STALE until it's
    finally deleted by the garbage collector.

    To prevent such situations the offloading driver should notify the NUD
    state machine on any neighbours that were recently used. The driver's
    polling interval should be set so that the NUD state machine can
    function as if the traffic wasn't offloaded.

    Currently, there are no in-tree drivers that can report confirmation for
    a neighbour, but only 'used' indication. Therefore, the polling interval
    should be set according to DELAY_FIRST_PROBE_TIME, as a neighbour will
    transition from REACHABLE state to DELAY (instead of STALE) if "a packet
    was sent within the last DELAY_FIRST_PROBE_TIME seconds" (RFC 4861).

    Send a netevent whenever the DELAY_FIRST_PROBE_TIME changes - either via
    netlink or sysctl - so that offloading drivers can correctly set their
    polling interval.

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

    Ido Schimmel
     
  • The RAUHTD register allows dumping entries from the Router Unicast Host
    Table.

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

    Yotam Gigi