1. 27 May, 2019 3 commits
    • David Ahern's avatar
      selftest: Fixes for icmp_redirect test · 99513cfa
      David Ahern authored
      I was really surprised that the IPv6 mtu exception followed by redirect
      test was passing as nothing about the code suggests it should. The problem
      is actually with the logic in the test script.
      
      Fix the test cases as follows:
      1. add debug function to dump the initial and redirect gateway addresses
         for ipv6. This is shown only in verbose mode. It helps verify the
         output of 'route get'.
      
      2. fix the check_exception logic for the reset case to make sure that
         for IPv4 neither mtu nor redirect appears in the 'route get' output.
         For IPv6, make sure mtu is not present and the gateway is the initial
         R1 lladdr.
      
      3. fix the reset logic by using a function to delete the routes added by
         initial_route_*. This format works better for the nexthop version of
         the tests.
      
      While improving the test cases, go ahead and ensure that forwarding is
      disabled since IPv6 redirect requires it.
      
      Also, runs with kernel debugging enabled sometimes show a failure with
      one of the ipv4 tests, so spread the pings over longer time interval.
      
      The end result is that 2 tests now show failures:
      
      TEST: IPv6: mtu exception plus redirect                    [FAIL]
      
      and the VRF version.
      
      This is a bug in the IPv6 logic that will need to be fixed
      separately. Redirect followed by MTU works because __ip6_rt_update_pmtu
      hits the 'if (!rt6_cache_allowed_for_pmtu(rt6))' path and updates the
      mtu on the exception rt6_info.
      
      MTU followed by redirect does not have this logic. rt6_do_redirect
      creates a new exception and then rt6_insert_exception removes the old
      one which has the MTU exception.
      
      Fixes: ec810535 ("selftests: Add redirect tests")
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      99513cfa
    • Colin Ian King's avatar
      ipv4: remove redundant assignment to n · df801522
      Colin Ian King authored
      The pointer n is being assigned a value however this value is
      never read in the code block and the end of the code block
      continues to the next loop iteration. Clean up the code by
      removing the redundant assignment.
      
      Fixes: 1bff1a0c ("ipv4: Add function to send route updates")
      Addresses-Coverity: ("Unused value")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df801522
    • Heiner Kallweit's avatar
      net: phy: bcm87xx: improve bcm87xx_config_init and feature detection · 476cc6c9
      Heiner Kallweit authored
      PHY drivers don't have to and shouldn't fiddle with phylib internals.
      Most of the code in bcm87xx_config_init() can be removed because
      phylib takes care.
      
      In addition I replaced usage of PHY_10GBIT_FEC_FEATURES with an
      implementation of the get_features callback. PHY_10GBIT_FEC_FEATURES
      is used by this driver only and it's questionable whether there
      will be any other PHY supporting this mode only. Having said that
      in one of the next kernel versions we may decide to remove it.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      476cc6c9
  2. 26 May, 2019 34 commits
  3. 25 May, 2019 3 commits
    • David S. Miller's avatar
      Merge branch 'net-mvpp2-Classifier-updates-RSS' · cecd7582
      David S. Miller authored
      Maxime Chevallier says:
      
      ====================
      net: mvpp2: Classifier updates, RSS
      
      Here is a set of updates for the PPv2 classifier, the main feature being
      the support for steering to RSS contexts, to leverage all the available
      RSS tables in the controller.
      
      The first two patches are non-critical fixes for the classifier, the
      first one prevents us from allocating too much room to store the
      classification rules, the second one configuring the C2 engine as
      suggested by the PPv2 functionnal specs.
      
      Patches 3 to 5 introduce support for RSS contexts in mvpp2, allowing us
      to steer traffic to dedicated RSS tables.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cecd7582
    • Maxime Chevallier's avatar
      net: mvpp2: cls: Support steering to RSS contexts · 14134773
      Maxime Chevallier authored
      When steering to an RXQ, we can perform an extra RSS step to assign a
      queue from an RSS table.
      
      This is done by setting the RSS_EN attribute in the C2 engine. In that
      case, the RXQ that is assigned is the global RSS context id, that is
      then translated to an RSS table using the RXQ2RSS table.
      
      An example using ethtool to steer to RXQ 2 and 3 would be :
      
      ethtool -X eth0 weight 0 0 1 1 context new
      
      (This would print the allocated context id, let's say it's 1)
      
      ethtool -N eth0 flow-type udp4 dst-port 1234 context 1 loc 0
      
      The hash parameters are the ones that are globally configured for RSS :
      
      ethtool -N eth0 rx-flow-hash udp4 sdfn
      
      When an RSS context is removed while there are active classification
      rules using this context, these rules are removed.
      Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      14134773
    • Maxime Chevallier's avatar
      net: mvpp2: cls: Extract the RSS context when parsing the ethtool rule · c561da68
      Maxime Chevallier authored
      ethtool_rx_flow_rule_create takes into parameter the ethtool flow spec,
      which doesn't contain the rss context id. We therefore need to extract
      it ourself before parsing the ethtool rule.
      
      The FLOW_RSS flag is only set in info->fs.flow_type, and not
      info->flow_type.
      Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c561da68