1. 15 12月, 2020 15 次提交
  2. 09 12月, 2020 11 次提交
  3. 07 12月, 2020 6 次提交
  4. 02 12月, 2020 7 次提交
  5. 28 11月, 2020 1 次提交
    • I
      mlxsw: spectrum_router: Update adjacency index more efficiently · ff47fa13
      Ido Schimmel 提交于
      The device supports an operation that allows the driver to issue one
      request to update the adjacency index for all the routes in a given
      virtual router (VR) from old index and size to new ones. This is useful
      in case the configuration of a certain nexthop group is updated and its
      adjacency index changes.
      
      Currently, the driver does not use this operation in an efficient
      manner. It iterates over all the routes using the nexthop group and
      issues an update request for the VR if it is not the same as the
      previous VR.
      
      Instead, use the VR tracking added in the previous patch to update the
      adjacency index once for each VR currently using the nexthop group.
      
      Example:
      
      8k IPv6 routes were added in an alternating manner to two VRFs. All the
      routes are using the same nexthop object ('nhid 1').
      
      Before:
      
      # perf stat -e devlink:devlink_hwmsg --filter='incoming==0' -- ip nexthop replace id 1 via 2001:db8:1::2 dev swp3
      
       Performance counter stats for 'ip nexthop replace id 1 via 2001:db8:1::2 dev swp3':
      
                  16,385      devlink:devlink_hwmsg
      
             4.255933213 seconds time elapsed
      
             0.000000000 seconds user
             0.666923000 seconds sys
      
      Number of EMAD transactions corresponds to number of routes using the
      nexthop group.
      
      After:
      
      # perf stat -e devlink:devlink_hwmsg --filter='incoming==0' -- ip nexthop replace id 1 via 2001:db8:1::2 dev swp3
      
       Performance counter stats for 'ip nexthop replace id 1 via 2001:db8:1::2 dev swp3':
      
                       3      devlink:devlink_hwmsg
      
             0.077655094 seconds time elapsed
      
             0.000000000 seconds user
             0.076698000 seconds sys
      
      Number of EMAD transactions corresponds to number of VRFs / VRs.
      Signed-off-by: NIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: NJiri Pirko <jiri@nvidia.com>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      ff47fa13