16 Sep, 2013

1 commit

  • running bonding in ALB mode requires that learning packets be sent periodically,
    so that the switch knows where to send responding traffic. However, depending
    on switch configuration, there may not be any need to send traffic at the
    default rate of 3 packets per second, which represents little more than wasted
    data. Allow the ALB learning packet interval to be made configurable via sysfs

    Signed-off-by: Neil Horman
    Acked-by: Acked-by: Veaceslav Falico
    CC: Jay Vosburgh
    CC: Andy Gospodarek
    CC: "David S. Miller"
    Signed-off-by: Andy Gospodarek
    Signed-off-by: David S. Miller

    Neil Horman
     

11 Sep, 2013

1 commit

  • This patch adds the changes for Kconfig, i40e.txt, MAINTAINERS, Kbuild
    and new i40e/Makefile to build i40e with the kernel.

    New driver build option is CONFIG_I40E

    Signed-off-by: Jesse Brandeburg
    Signed-off-by: Shannon Nelson
    CC: PJ Waskiewicz
    CC: e1000-devel@lists.sourceforge.net
    Tested-by: Kavindya Deegala
    Signed-off-by: Jeff Kirsher

    Jesse Brandeburg
     

05 Sep, 2013

1 commit


31 Aug, 2013

1 commit


30 Aug, 2013

3 commits

  • Update documentation to add fanout policies that are available.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • After hearing many people over past years complaining against TSO being
    bursty or even buggy, we are proud to present automatic sizing of TSO
    packets.

    One part of the problem is that tcp_tso_should_defer() uses an heuristic
    relying on upcoming ACKS instead of a timer, but more generally, having
    big TSO packets makes little sense for low rates, as it tends to create
    micro bursts on the network, and general consensus is to reduce the
    buffering amount.

    This patch introduces a per socket sk_pacing_rate, that approximates
    the current sending rate, and allows us to size the TSO packets so
    that we try to send one packet every ms.

    This field could be set by other transports.

    Patch has no impact for high speed flows, where having large TSO packets
    makes sense to reach line rate.

    For other flows, this helps better packet scheduling and ACK clocking.

    This patch increases performance of TCP flows in lossy environments.

    A new sysctl (tcp_min_tso_segs) is added, to specify the
    minimal size of a TSO packet (default being 2).

    A follow-up patch will provide a new packet scheduler (FQ), using
    sk_pacing_rate as an input to perform optional per flow pacing.

    This explains why we chose to set sk_pacing_rate to twice the current
    rate, allowing 'slow start' ramp up.

    sk_pacing_rate = 2 * cwnd * mss / srtt

    v2: Neal Cardwell reported a suspect deferring of last two segments on
    initial write of 10 MSS, I had to change tcp_tso_should_defer() to take
    into account tp->xmit_size_goal_segs

    Signed-off-by: Eric Dumazet
    Cc: Neal Cardwell
    Cc: Yuchung Cheng
    Cc: Van Jacobson
    Cc: Tom Herbert
    Acked-by: Yuchung Cheng
    Acked-by: Neal Cardwell
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This patch implements RFC6980: Drop fragmented ndisc packets by
    default. If a fragmented ndisc packet is received the user is informed
    that it is possible to disable the check.

    Cc: Fernando Gont
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

28 Aug, 2013

2 commits


24 Aug, 2013

1 commit

  • Add wildcarded flow support in kernel datapath.

    Wildcarded flow can improve OVS flow set up performance by avoid sending
    matching new flows to the user space program. The exact performance boost
    will largely dependent on wildcarded flow hit rate.

    In case all new flows hits wildcard flows, the flow set up rate is
    within 5% of that of linux bridge module.

    Pravin has made significant contributions to this patch. Including API
    clean ups and bug fixes.

    Signed-off-by: Pravin B Shelar
    Signed-off-by: Andy Zhou
    Signed-off-by: Jesse Gross

    Andy Zhou
     

21 Aug, 2013

1 commit

  • Conflicts:
    net/netfilter/nf_conntrack_proto_tcp.c

    The conflict had to do with overlapping changes dealing with
    fixing the use of an "s32" to hold the value returned by
    NAT_OFFSET().

    Pablo Neira Ayuso says:

    ====================
    The following batch contains Netfilter/IPVS updates for your net-next tree.
    More specifically, they are:

    * Trivial typo fix in xt_addrtype, from Phil Oester.

    * Remove net_ratelimit in the conntrack logging for consistency with other
    logging subsystem, from Patrick McHardy.

    * Remove unneeded includes from the recently added xt_connlabel support, from
    Florian Westphal.

    * Allow to update conntracks via nfqueue, don't need NFQA_CFG_F_CONNTRACK for
    this, from Florian Westphal.

    * Remove tproxy core, now that we have socket early demux, from Florian
    Westphal.

    * A couple of patches to refactor conntrack event reporting to save a good
    bunch of lines, from Florian Westphal.

    * Fix missing locking in NAT sequence adjustment, it did not manifested in
    any known bug so far, from Patrick McHardy.

    * Change sequence number adjustment variable to 32 bits, to delay the
    possible early overflow in long standing connections, also from Patrick.

    * Comestic cleanups for IPVS, from Dragos Foianu.

    * Fix possible null dereference in IPVS in the SH scheduler, from Daniel
    Borkmann.

    * Allow to attach conntrack expectations via nfqueue. Before this patch, you
    had to use ctnetlink instead, thus, we save the conntrack lookup.

    * Export xt_rpfilter and xt_HMARK header files, from Nicolas Dichtel.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

14 Aug, 2013

1 commit

  • Commit cab70040dfd95ee32144f02fade64f0cb94f31a0 ("net: igmp:
    Reduce Unsolicited report interval to 1s when using IGMPv3") and
    2690048c01f32bf45d1c1e1ab3079bc10ad2aea7 ("net: igmp: Allow user-space
    configuration of igmp unsolicited report interval") by William Manley made
    igmp unsolicited report intervals configurable per interface and corrected
    the interval of unsolicited igmpv3 report messages resendings to 1s.

    Same needs to be done for IPv6:

    MLDv1 (RFC2710 7.10.): 10 seconds
    MLDv2 (RFC3810 9.11.): 1 second

    Both intervals are configurable via new procfs knobs
    mldv1_unsolicited_report_interval and mldv2_unsolicited_report_interval.

    (also added .force_mld_version to ipv6_devconf_dflt to bring structs in
    line without semantic changes)

    v2:
    a) Joined documentation update for IPv4 and IPv6 MLD/IGMP
    unsolicited_report_interval procfs knobs.
    b) incorporate stylistic feedback from William Manley

    v3:
    a) add new DEVCONF_* values to the end of the enum (thanks to David
    Miller)

    Cc: Cong Wang
    Cc: William Manley
    Cc: Benjamin LaHaise
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

10 Aug, 2013

2 commits


01 Aug, 2013

1 commit

  • A collection of expectations and operational details about how
    networking development takes place in the context of the netdev
    mailing list.

    The content is meant to capture specific items that are unique
    to netdev workflow, and not re-document generic linux expectations
    that are already captured elsewhere.

    This was originally proposed[1] as a regular posting mailing list
    FAQ, but it probably is more universally accessible here in tree.

    [1] https://lwn.net/Articles/559211/

    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     

31 Jul, 2013

2 commits

  • The module was "permanent", due to the special tproxy skb->destructor.
    Nowadays we have tcp early demux and its sock_edemux destructor in
    networking core which can be used instead.

    Thanks to early demux changes the input path now also handles
    "skb->sk is tw socket" correctly, so this no longer needs the special
    handling introduced with commit d503b30bd648b3cb4e5f50b65d27e389960cc6d9
    (netfilter: tproxy: do not assign timewait sockets to skb->sk).

    Thus:
    - move assign_sock function to where its needed
    - don't prevent timewait sockets from being assigned to the skb
    - remove nf_tproxy_core.

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

    Florian Westphal
     
  • | If you want to test which effects syncookies have to your
    | network connections you can set this knob to 2 to enable
    | unconditionally generation of syncookies.

    Original idea and first implementation by Eric Dumazet.

    Cc: Florian Westphal
    Cc: David Miller
    Signed-off-by: Eric Dumazet
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

25 Jul, 2013

2 commits

  • Idea of this patch is to add optional limitation of number of
    unsent bytes in TCP sockets, to reduce usage of kernel memory.

    TCP receiver might announce a big window, and TCP sender autotuning
    might allow a large amount of bytes in write queue, but this has little
    performance impact if a large part of this buffering is wasted :

    Write queue needs to be large only to deal with large BDP, not
    necessarily to cope with scheduling delays (incoming ACKS make room
    for the application to queue more bytes)

    For most workloads, using a value of 128 KB or less is OK to give
    applications enough time to react to POLLOUT events in time
    (or being awaken in a blocking sendmsg())

    This patch adds two ways to set the limit :

    1) Per socket option TCP_NOTSENT_LOWAT

    2) A sysctl (/proc/sys/net/ipv4/tcp_notsent_lowat) for sockets
    not using TCP_NOTSENT_LOWAT socket option (or setting a zero value)
    Default value being UINT_MAX (0xFFFFFFFF), meaning this has no effect.

    This changes poll()/select()/epoll() to report POLLOUT
    only if number of unsent bytes is below tp->nosent_lowat

    Note this might increase number of sendmsg()/sendfile() calls
    when using non blocking sockets,
    and increase number of context switches for blocking sockets.

    Note this is not related to SO_SNDLOWAT (as SO_SNDLOWAT is
    defined as :
    Specify the minimum number of bytes in the buffer until
    the socket layer will pass the data to the protocol)

    Tested:

    netperf sessions, and watching /proc/net/protocols "memory" column for TCP

    With 200 concurrent netperf -t TCP_STREAM sessions, amount of kernel memory
    used by TCP buffers shrinks by ~55 % (20567 pages instead of 45458)

    lpq83:~# echo -1 >/proc/sys/net/ipv4/tcp_notsent_lowat
    lpq83:~# (super_netperf 200 -t TCP_STREAM -H remote -l 90 &); sleep 60 ; grep TCP /proc/net/protocols
    TCPv6 1880 2 45458 no 208 yes ipv6 y y y y y y y y y y y y y n y y y y y
    TCP 1696 508 45458 no 208 yes kernel y y y y y y y y y y y y y n y y y y y

    lpq83:~# echo 131072 >/proc/sys/net/ipv4/tcp_notsent_lowat
    lpq83:~# (super_netperf 200 -t TCP_STREAM -H remote -l 90 &); sleep 60 ; grep TCP /proc/net/protocols
    TCPv6 1880 2 20567 no 208 yes ipv6 y y y y y y y y y y y y y n y y y y y
    TCP 1696 508 20567 no 208 yes kernel y y y y y y y y y y y y y n y y y y y

    Using 128KB has no bad effect on the throughput or cpu usage
    of a single flow, although there is an increase of context switches.

    A bonus is that we hold socket lock for a shorter amount
    of time and should improve latencies of ACK processing.

    lpq83:~# echo -1 >/proc/sys/net/ipv4/tcp_notsent_lowat
    lpq83:~# perf stat -e context-switches ./netperf -H 7.7.7.84 -t omni -l 20 -c -i10,3
    OMNI Send TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 7.7.7.84 () port 0 AF_INET : +/-2.500% @ 99% conf.
    Local Remote Local Elapsed Throughput Throughput Local Local Remote Remote Local Remote Service
    Send Socket Recv Socket Send Time Units CPU CPU CPU CPU Service Service Demand
    Size Size Size (sec) Util Util Util Util Demand Demand Units
    Final Final % Method % Method
    1651584 6291456 16384 20.00 17447.90 10^6bits/s 3.13 S -1.00 U 0.353 -1.000 usec/KB

    Performance counter stats for './netperf -H 7.7.7.84 -t omni -l 20 -c -i10,3':

    412,514 context-switches

    200.034645535 seconds time elapsed

    lpq83:~# echo 131072 >/proc/sys/net/ipv4/tcp_notsent_lowat
    lpq83:~# perf stat -e context-switches ./netperf -H 7.7.7.84 -t omni -l 20 -c -i10,3
    OMNI Send TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 7.7.7.84 () port 0 AF_INET : +/-2.500% @ 99% conf.
    Local Remote Local Elapsed Throughput Throughput Local Local Remote Remote Local Remote Service
    Send Socket Recv Socket Send Time Units CPU CPU CPU CPU Service Service Demand
    Size Size Size (sec) Util Util Util Util Demand Demand Units
    Final Final % Method % Method
    1593240 6291456 16384 20.00 17321.16 10^6bits/s 3.35 S -1.00 U 0.381 -1.000 usec/KB

    Performance counter stats for './netperf -H 7.7.7.84 -t omni -l 20 -c -i10,3':

    2,675,818 context-switches

    200.029651391 seconds time elapsed

    Signed-off-by: Eric Dumazet
    Cc: Neal Cardwell
    Cc: Yuchung Cheng
    Acked-By: Yuchung Cheng
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The SCTP mailing list address to send patches or questions
    to is linux-sctp@vger.kernel.org and not
    lksctp-developers@lists.sourceforge.net anymore. Therefore,
    update all occurences.

    Signed-off-by: Daniel Borkmann
    Acked-by: Neil Horman
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

10 Jul, 2013

2 commits

  • Pull networking updates from David Miller:
    "This is a re-do of the net-next pull request for the current merge
    window. The only difference from the one I made the other day is that
    this has Eliezer's interface renames and the timeout handling changes
    made based upon your feedback, as well as a few bug fixes that have
    trickeled in.

    Highlights:

    1) Low latency device polling, eliminating the cost of interrupt
    handling and context switches. Allows direct polling of a network
    device from socket operations, such as recvmsg() and poll().

    Currently ixgbe, mlx4, and bnx2x support this feature.

    Full high level description, performance numbers, and design in
    commit 0a4db187a999 ("Merge branch 'll_poll'")

    From Eliezer Tamir.

    2) With the routing cache removed, ip_check_mc_rcu() gets exercised
    more than ever before in the case where we have lots of multicast
    addresses. Use a hash table instead of a simple linked list, from
    Eric Dumazet.

    3) Add driver for Atheros CQA98xx 802.11ac wireless devices, from
    Bartosz Markowski, Janusz Dziedzic, Kalle Valo, Marek Kwaczynski,
    Marek Puzyniak, Michal Kazior, and Sujith Manoharan.

    4) Support reporting the TUN device persist flag to userspace, from
    Pavel Emelyanov.

    5) Allow controlling network device VF link state using netlink, from
    Rony Efraim.

    6) Support GRE tunneling in openvswitch, from Pravin B Shelar.

    7) Adjust SOCK_MIN_RCVBUF and SOCK_MIN_SNDBUF for modern times, from
    Daniel Borkmann and Eric Dumazet.

    8) Allow controlling of TCP quickack behavior on a per-route basis,
    from Cong Wang.

    9) Several bug fixes and improvements to vxlan from Stephen
    Hemminger, Pravin B Shelar, and Mike Rapoport. In particular,
    support receiving on multiple UDP ports.

    10) Major cleanups, particular in the area of debugging and cookie
    lifetime handline, to the SCTP protocol code. From Daniel
    Borkmann.

    11) Allow packets to cross network namespaces when traversing tunnel
    devices. From Nicolas Dichtel.

    12) Allow monitoring netlink traffic via AF_PACKET sockets, in a
    manner akin to how we monitor real network traffic via ptype_all.
    From Daniel Borkmann.

    13) Several bug fixes and improvements for the new alx device driver,
    from Johannes Berg.

    14) Fix scalability issues in the netem packet scheduler's time queue,
    by using an rbtree. From Eric Dumazet.

    15) Several bug fixes in TCP loss recovery handling, from Yuchung
    Cheng.

    16) Add support for GSO segmentation of MPLS packets, from Simon
    Horman.

    17) Make network notifiers have a real data type for the opaque
    pointer that's passed into them. Use this to properly handle
    network device flag changes in arp_netdev_event(). From Jiri
    Pirko and Timo Teräs.

    18) Convert several drivers over to module_pci_driver(), from Peter
    Huewe.

    19) tcp_fixup_rcvbuf() can loop 500 times over loopback, just use a
    O(1) calculation instead. From Eric Dumazet.

    20) Support setting of explicit tunnel peer addresses in ipv6, just
    like ipv4. From Nicolas Dichtel.

    21) Protect x86 BPF JIT against spraying attacks, from Eric Dumazet.

    22) Prevent a single high rate flow from overruning an individual cpu
    during RX packet processing via selective flow shedding. From
    Willem de Bruijn.

    23) Don't use spinlocks in TCP md5 signing fast paths, from Eric
    Dumazet.

    24) Don't just drop GSO packets which are above the TBF scheduler's
    burst limit, chop them up so they are in-bounds instead. Also
    from Eric Dumazet.

    25) VLAN offloads are missed when configured on top of a bridge, fix
    from Vlad Yasevich.

    26) Support IPV6 in ping sockets. From Lorenzo Colitti.

    27) Receive flow steering targets should be updated at poll() time
    too, from David Majnemer.

    28) Fix several corner case regressions in PMTU/redirect handling due
    to the routing cache removal, from Timo Teräs.

    29) We have to be mindful of ipv4 mapped ipv6 sockets in
    upd_v6_push_pending_frames(). From Hannes Frederic Sowa.

    30) Fix L2TP sequence number handling bugs, from James Chapman."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1214 commits)
    drivers/net: caif: fix wrong rtnl_is_locked() usage
    drivers/net: enic: release rtnl_lock on error-path
    vhost-net: fix use-after-free in vhost_net_flush
    net: mv643xx_eth: do not use port number as platform device id
    net: sctp: confirm route during forward progress
    virtio_net: fix race in RX VQ processing
    virtio: support unlocked queue poll
    net/cadence/macb: fix bug/typo in extracting gem_irq_read_clear bit
    Documentation: Fix references to defunct linux-net@vger.kernel.org
    net/fs: change busy poll time accounting
    net: rename low latency sockets functions to busy poll
    bridge: fix some kernel warning in multicast timer
    sfc: Fix memory leak when discarding scattered packets
    sit: fix tunnel update via netlink
    dt:net:stmmac: Add dt specific phy reset callback support.
    dt:net:stmmac: Add support to dwmac version 3.610 and 3.710
    dt:net:stmmac: Allocate platform data only if its NULL.
    net:stmmac: fix memleak in the open method
    ipv6: rt6_check_neigh should successfully verify neigh if no NUD information are available
    net: ipv6: fix wrong ping_v6_sendmsg return value
    ...

    Linus Torvalds
     
  • linux-net@vger.kernel.org was replaced by netdev@oss.sgi.com was replaced
    by netdev@vger.kernel.org.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     

05 Jul, 2013

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "The usual stuff from trivial tree"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    treewide: relase -> release
    Documentation/cgroups/memory.txt: fix stat file documentation
    sysctl/net.txt: delete reference to obsolete 2.4.x kernel
    spinlock_api_smp.h: fix preprocessor comments
    treewide: Fix typo in printk
    doc: device tree: clarify stuff in usage-model.txt.
    open firmware: "/aliasas" -> "/aliases"
    md: bcache: Fixed a typo with the word 'arithmetic'
    irq/generic-chip: fix a few kernel-doc entries
    frv: Convert use of typedef ctl_table to struct ctl_table
    sgi: xpc: Convert use of typedef ctl_table to struct ctl_table
    doc: clk: Fix incorrect wording
    Documentation/arm/IXP4xx fix a typo
    Documentation/networking/ieee802154 fix a typo
    Documentation/DocBook/media/v4l fix a typo
    Documentation/video4linux/si476x.txt fix a typo
    Documentation/virtual/kvm/api.txt fix a typo
    Documentation/early-userspace/README fix a typo
    Documentation/video4linux/soc-camera.txt fix a typo
    lguest: fix CONFIG_PAE -> CONFIG_x86_PAE in comment
    ...

    Linus Torvalds
     

04 Jul, 2013

1 commit

  • Conflicts:
    drivers/net/ethernet/freescale/fec_main.c
    drivers/net/ethernet/renesas/sh_eth.c
    net/ipv4/gre.c

    The GRE conflict is between a bug fix (kfree_skb --> kfree_skb_list)
    and the splitting of the gre.c code into seperate files.

    The FEC conflict was two sets of changes adding ethtool support code
    in an "!CONFIG_M5272" CPP protected block.

    Finally the sh_eth.c conflict was between one commit add bits set
    in the .eesr_err_check mask whilst another commit removed the
    .tx_error_check member and assignments.

    Signed-off-by: David S. Miller

    David S. Miller
     

01 Jul, 2013

1 commit

  • Pablo Neira Ayuso says:

    ====================
    The following batch contains Netfilter/IPVS updates for net-next,
    they are:

    * Enforce policy to several nfnetlink subsystem, from Daniel
    Borkmann.

    * Use xt_socket to match the third packet (to perform simplistic
    socket-based stateful filtering), from Eric Dumazet.

    * Avoid large timeout for picked up from the middle TCP flows,
    from Florian Westphal.

    * Exclude IPVS from struct net if IPVS is disabled and removal
    of unnecessary included header file, from JunweiZhang.

    * Release SCTP connection immediately under load, to mimic current
    TCP behaviour, from Julian Anastasov.

    * Replace and enhance SCTP state machine, from Julian Anastasov.

    * Add tweak to reduce sync traffic in the presence of persistence,
    also from Julian Anastasov.

    * Add tweak for the IPVS SH scheduler not to reject connections
    directed to a server, choose a new one instead, from Alexander
    Frolkin.

    * Add support for sloppy TCP and SCTP modes, that creates state
    information on any packet, not only initial handshake packets,
    from Alexander Frolkin.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

26 Jun, 2013

4 commits

  • Add sync_persist_mode flag to reduce sync traffic
    by syncing only persistent templates.

    Signed-off-by: Julian Anastasov
    Tested-by: Aleksey Chudov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Currently, we fail only when all of the ips in arp_ip_target are gone.
    However, in some situations we might need to fail if even one host from
    arp_ip_target becomes unavailable.

    All situations, obviously, rely on the idea that we need *completely*
    functional network, with all interfaces/addresses working correctly.

    One real world example might be:
    vlans on top on bond (hybrid port). If bond and vlans have ips assigned
    and we have their peers monitored via arp_ip_target - in case of switch
    misconfiguration (trunk/access port), slave driver malfunction or
    tagged/untagged traffic dropped on the way - we will be able to switch
    to another slave.

    Though any other configuration needs that if we need to have access to all
    arp_ip_targets.

    This patch adds this possibility by adding a new parameter -
    arp_all_targets (both as a module parameter and as a sysfs knob). It can be
    set to:

    0 or any (the default) - which works exactly as it's working now -
    the slave is up if any of the arp_ip_targets are up.

    1 or all - the slave is up if all of the arp_ip_targets are up.

    This parameter can be changed on the fly (via sysfs), and requires the mode
    to be active-backup and arp_validate to be enabled (it obeys the
    arp_validate config on which slaves to validate).

    Internally it's done through:

    1) Add target_last_arp_rx[BOND_MAX_ARP_TARGETS] array to slave struct. It's
    an array of jiffies, meaning that slave->target_last_arp_rx[i] is the
    last time we've received arp from bond->params.arp_targets[i] on this
    slave.

    2) If we successfully validate an arp from bond->params.arp_targets[i] in
    bond_validate_arp() - update the slave->target_last_arp_rx[i] with the
    current jiffies value.

    3) When getting slave's last_rx via slave_last_rx(), we return the oldest
    time when we've received an arp from any address in
    bond->params.arp_targets[].

    If the value of arp_all_targets == 0 - we still work the same way as
    before.

    Also, update the documentation to reflect the new parameter.

    v3->v4:
    Kill the forgotten rtnl_unlock(), rephrase the documentation part to be
    more clear, don't fail setting arp_all_targets if arp_validate is not set -
    it has no effect anyway but can be easier to set up. Also, print a warning
    if the last arp_ip_target is removed while the arp_interval is on, but not
    the arp_validate.

    v2->v3:
    Use _bh spinlock, remove useless rtnl_lock() and use jiffies for new
    arp_ip_target last arp, instead of slave_last_rx(). On bond_enslave(),
    use the same initialization value for target_last_arp_rx[] as is used
    for the default last_arp_rx, to avoid useless interface flaps.

    Also, instead of failing to remove the last arp_ip_target just print a
    warning - otherwise it might break existing scripts.

    v1->v2:
    Correctly handle adding/removing hosts in arp_ip_target - we need to
    shift/initialize all slave's target_last_arp_rx. Also, don't fail module
    loading on arp_all_targets misconfiguration, just disable it, and some
    minor style fixes.

    Signed-off-by: Veaceslav Falico
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • Add some details to bonding documentation on how backup slave arp
    validation works.

    Signed-off-by: Veaceslav Falico
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • Cc: Patrick McHardy
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Cong Wang
     

24 Jun, 2013

1 commit


13 Jun, 2013

1 commit

  • commit 6648bd7e0e62c0c8c03b (ipv4: Add sysctl knob to control
    early socket demux) introduced such sysctl, but forgot to add
    doc into Documentation/networking/ip-sysctl.txt. This patch adds it.

    Basically I grab the doc from the description of commit 41063e9dd11956f2d285
    (ipv4: Early TCP socket demux.) and the above commit.

    Cc: Eric Dumazet
    Cc: Alexander Duyck
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Cong Wang
     

08 Jun, 2013

2 commits


05 Jun, 2013

1 commit


28 May, 2013

3 commits


24 May, 2013

1 commit


25 Apr, 2013

1 commit


20 Apr, 2013

1 commit


09 Apr, 2013

1 commit