1. 01 May, 2020 33 commits
  2. 30 Apr, 2020 7 commits
    • Taehee Yoo's avatar
      hsr: remove hsr interface if all slaves are removed · 34a9c361
      Taehee Yoo authored
      When all hsr slave interfaces are removed, hsr interface doesn't work.
      At that moment, it's fine to remove an unused hsr interface automatically
      for saving resources.
      That's a common behavior of virtual interfaces.
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34a9c361
    • David S. Miller's avatar
      Merge branch 'tcp-sack-compression-changes' · 1b2e7884
      David S. Miller authored
      Eric Dumazet says:
      
      ====================
      tcp: sack compression changes
      
      Patch series refines SACK compression.
      
      We had issues with missing SACK when TCP option space is tight.
      
      Uses hrtimer slack to improve performance.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1b2e7884
    • Eric Dumazet's avatar
      tcp: add hrtimer slack to sack compression · a70437cc
      Eric Dumazet authored
      Add a sysctl to control hrtimer slack, default of 100 usec.
      
      This gives the opportunity to reduce system overhead,
      and help very short RTT flows.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a70437cc
    • Eric Dumazet's avatar
      tcp: tcp_sack_new_ofo_skb() should be more conservative · ccd0628f
      Eric Dumazet authored
      Currently, tcp_sack_new_ofo_skb() sends an ack if prior
      acks were 'compressed', if room has to be made in tp->selective_acks[]
      
      But there is no guarantee all four sack ranges can be included
      in SACK option. As a matter of fact, when TCP timestamps option
      is used, only three SACK ranges can be included.
      
      Lets assume only two ranges can be included, and force the ack:
      
      - When we touch more than 2 ranges in the reordering
        done if tcp_sack_extend() could be done.
      
      - If we have at least 2 ranges when adding a new one.
      
      This enforces that before a range is in third or fourth
      position, at least one ACK packet included it in first/second
      position.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccd0628f
    • Eric Dumazet's avatar
      tcp: add tp->dup_ack_counter · 2b195850
      Eric Dumazet authored
      In commit 86de5921 ("tcp: defer SACK compression after DupThresh")
      I added a TCP_FASTRETRANS_THRESH bias to tp->compressed_ack in order
      to enable sack compression only after 3 dupacks.
      
      Since we plan to relax this rule for flows that involve
      stacks not requiring this old rule, this patch adds
      a distinct tp->dup_ack_counter.
      
      This means the TCP_FASTRETRANS_THRESH value is now used
      in a single location that a future patch can adjust:
      
      	if (tp->dup_ack_counter < TCP_FASTRETRANS_THRESH) {
      		tp->dup_ack_counter++;
      		goto send_now;
      	}
      
      This patch also introduces tcp_sack_compress_send_ack()
      helper to ease following patch comprehension.
      
      This patch refines LINUX_MIB_TCPACKCOMPRESSED to not
      count the acks that we had to send if the timer expires
      or tcp_sack_compress_send_ack() is sending an ack.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b195850
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2020-04-30' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 3857c776
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2020-04-30
      
      1) Add release all pages support, From Eran.
         to release all FW pages at once on driver unload, when supported by FW.
      
      2) From Maxim and Tariq, Trivial Data path cleanup and code improvements
         in preparation for their next features, TLS offload and TX performance
          improvements
      
      3) Multiple cleanups.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3857c776
    • David S. Miller's avatar
      Merge branch 'mlxsw-Prepare-SPAN-API-for-upcoming-changes' · b8afaedd
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Prepare SPAN API for upcoming changes
      
      Switched port analyzer (SPAN) is used for packet mirroring. Over mlxsw
      this is achieved by attaching tc-mirred action to either matchall or
      flower classifier.
      
      The current API used to configure SPAN consists of two functions:
      mlxsw_sp_span_mirror_add() and mlxsw_sp_span_mirror_del().
      
      These two functions pack a lot of different operations:
      
      * SPAN agent configuration: Determining the egress port and optional
        headers that need to encapsulate the mirrored packet (when mirroring
        to a gretap, for example)
      
      * Egress mirror buffer configuration: Allocating / freeing a buffer when
        port is analyzed (inspected) at egress
      
      * SPAN agent binding: Binding the SPAN agent to a trigger, if any. The
        current triggers are incoming / outgoing packet and they are only used
        for matchall-based mirroring
      
      This non-modular design makes it difficult to extend the API for future
      changes, such as new mirror targets (CPU) and new global triggers (early
      dropped packets, for example).
      
      Therefore, this patch set gradually adds APIs for above mentioned
      operations and then converts the two existing users to use it instead of
      the old API. No functional changes intended. Tested with existing
      mirroring selftests.
      
      Patch set overview:
      
      Patches #1-#5 gradually add the new API
      Patches #6-#8 convert existing users to use the new API
      Patch #9 removes the old API
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8afaedd