1. 16 Oct, 2017 30 commits
  2. 15 Oct, 2017 10 commits
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · e4655e4a
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-10-13
      
      This series contains updates to mqprio and i40e.
      
      Amritha introduces a new hardware offload mode in tc/mqprio where the TCs,
      the queue configurations and bandwidth rate limits are offloaded to the
      hardware. The existing mqprio framework is extended to configure the queue
      counts and layout and also added support for rate limiting. This is
      achieved through new netlink attributes for the 'mode' option which takes
      values such as 'dcb' (default) and 'channel' and a 'shaper' option for
      QoS attributes such as bandwidth rate limits in hw mode 1.  Legacy devices
      can fall back to the existing setup supporting hw mode 1 without these
      additional options where only the TCs are offloaded and then the 'mode'
      and 'shaper' options defaults to DCB support.  The i40e driver enables the
      new mqprio hardware offload mechanism factoring the TCs, queue
      configuration and bandwidth rates by creating HW channel VSIs.
      In this new mode, the priority to traffic class mapping and the user
      specified queue ranges are used to configure the traffic class when the
      'mode' option is set to 'channel'. This is achieved by creating HW
      channels(VSI). A new channel is created for each of the traffic class
      configuration offloaded via mqprio framework except for the first TC (TC0)
      which is for the main VSI. TC0 for the main VSI is also reconfigured as
      per user provided queue parameters. Finally, bandwidth rate limits are set
      on these traffic classes through the shaper attribute by sending these
      rates in addition to the number of TCs and the queue configurations.
      
      Colin Ian King makes an array of constant values "constant".
      
      Alan fixes and issue where on some firmware versions, we were failing to
      actually fill out the phy_types which caused ethtool to not report any
      link types.  Also hardened against a potentially malicious VF by not
      letting the VF to reset itself after requesting to change the number of
      queues (via ethtool), let the PF reset the VF to institute the requested
      changes.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4655e4a
    • David S. Miller's avatar
      Merge branch 'tc-testing-updates' · ae0783b1
      David S. Miller authored
      Lucas Bates says:
      
      ====================
      tc-testing: Test suite updates
      
      This patch series is a roundup of changes to the tc-testing
      suite:
      
       - Add test cases for police and mirred modules and some coverage
         in already-submitted test categories
       - Break the test case files down into more user-friendly sizes
       - Bug fix to the tdc.py script's handling of the -l argument
      
      v2: fix the lack of final newlines in two new files (thanks David)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae0783b1
    • Lucas Bates's avatar
      tc-testing: fix the -l argument bug in tdc.py · 7f6661a7
      Lucas Bates authored
      This patch fixes a bug in the tdc script, where executing tdc
      with the -l argument would cause the tests to start running
      as opposed to listing all the known test cases.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f6661a7
    • Lucas Bates's avatar
      tc-testing: Add test cases for police and skbmod · cf797ac4
      Lucas Bates authored
      Add basic unit tests for police and skbmod actions in tc.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf797ac4
    • Lucas Bates's avatar
      tc-testing: Split test case files into smaller chunks · 0923edf4
      Lucas Bates authored
      The original submission had the test cases stored in one
      monolithic file. This can be unwieldy to edit, especially as more
      test cases are added. This patch removes the original tests.json
      file in favour of individual ones broken down by category.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0923edf4
    • Lucas Bates's avatar
      tc-testing: Add test cases for flushing actions · ae3c33c1
      Lucas Bates authored
      Tests for flushing gact and mirred were missing. This patch
      adds test cases to explicitly test the flush of any installed
      gact/mirred actions.
      Signed-off-by: default avatarLucas Bates <lucasb@mojatatu.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae3c33c1
    • David S. Miller's avatar
      Merge branch 'macvlan-cleanups' · 6eda447e
      David S. Miller authored
      Alexander Duyck says:
      
      ====================
      net: Minor macvlan source mode cleanups
      
      So this patch series is just a few minor cleanups for macvlan source mode.
      The first patch addresses double receives when a packet is being routed to
      the macvlan destination address, and the other addresses the pkt_type being
      updated in cases where it most likely should not be.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6eda447e
    • Alexander Duyck's avatar
      macvlan: Only update pkt_type if destination MAC address matches · c8c41ea1
      Alexander Duyck authored
      This patch updates the pkt_type to PACKET_HOST only if the destination MAC
      address matches on the on the source based macvlan. It didn't make sense to
      be updating broadcast, multicast, and non-local destined frames with
      PACKET_HOST.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8c41ea1
    • Alexander Duyck's avatar
      macvlan: Only deliver one copy of the frame to the macvlan interface · dd6b9c2c
      Alexander Duyck authored
      This patch intoduces a slight adjustment for macvlan to address the fact
      that in source mode I was seeing two copies of any packet addressed to the
      macvlan interface being delivered where there should have been only one.
      
      The issue appears to be that one copy was delivered based on the source MAC
      address and then the second copy was being delivered based on the
      destination MAC address. To fix it I am just treating a unicast address
      match as though it is not a match since source based macvlan isn't supposed
      to be matching based on the destination MAC anyway.
      
      Fixes: 79cf79ab ("macvlan: add source mode")
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd6b9c2c
    • Cong Wang's avatar
      tcp: add a tracepoint for tcp retransmission · e086101b
      Cong Wang authored
      We need a real-time notification for tcp retransmission
      for monitoring.
      
      Of course we could use ftrace to dynamically instrument this
      kernel function too, however we can't retrieve the connection
      information at the same time, for example perf-tools [1] reads
      /proc/net/tcp for socket details, which is slow when we have
      a lots of connections.
      
      Therefore, this patch adds a tracepoint for __tcp_retransmit_skb()
      and exposes src/dst IP addresses and ports of the connection.
      This also makes it easier to integrate into perf.
      
      Note, I expose both IPv4 and IPv6 addresses at the same time:
      for a IPv4 socket, v4 mapped address is used as IPv6 addresses,
      for a IPv6 socket, LOOPBACK4_IPV6 is already filled by kernel.
      Also, add sk and skb pointers as they are useful for BPF.
      
      1. https://github.com/brendangregg/perf-tools/blob/master/net/tcpretrans
      
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
      Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Acked-by: default avatarBrendan Gregg <bgregg@netflix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e086101b