Skip to content
  1. Dec 23, 2021
    • Amit Cohen's avatar
      selftests: forwarding: Add VxLAN tests with a VLAN-unaware bridge for IPv6 · b07e9957
      Amit Cohen authored
      
      
      Add tests similar to vxlan_bridge_1d.sh and vxlan_bridge_1d_port_8472.sh.
      
      The tests set up a topology with three VxLAN endpoints: one
      "local", possibly offloaded, and two "remote", formed using veth pairs
      and likely purely software bridges. The "local" endpoint is connected to
      host systems by a VLAN-unaware bridge.
      
      Since VxLAN tunnels must be unique per namespace, each of the "remote"
      endpoints is in its own namespace. H3 forms the bridge between the three
      domains.
      
      Send IPv4 packets and IPv6 packets with IPv6 underlay.
      Use `TC_FLAG`, which is defined in `forwarding.config` file, for TC
      checks. `TC_FLAG` allows testing that on HW datapath, the traffic
      actually goes through HW.
      
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b07e9957
    • Amit Cohen's avatar
      selftests: lib.sh: Add PING_COUNT to allow sending configurable amount of packets · 0cd0b1f7
      Amit Cohen authored
      
      
      Currently `ping_do()` and `ping6_do()` send 10 packets.
      
      There are cases that it is not possible to catch only the interesting
      packets using tc rule, so then, it is possible to send many packets and
      verify that at least this amount of packets hit the rule.
      
      Add `PING_COUNT` variable, which is set to 10 by default, to allow tests
      sending more than 10 packets using the existing ping API.
      
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0cd0b1f7
    • Amit Cohen's avatar
      mlxsw: spectrum_flower: Make vlan_id limitation more specific · 70ec72d5
      Amit Cohen authored
      
      
      Spectrum ASICs do not support matching of VLAN ID at egress.
      Currently, mlxsw driver forbids matching of all VLAN related fields at
      egress, which is too strict check.
      
      For example, the following filter is not supported by the driver:
      $ tc filter add dev swpX egress protocol 802.1q pref 1 handle 101 flower
      vlan_ethtype ipv4 src_ip .. dst_ip .. skip_sw action pass
      Error: mlxsw_spectrum: vlan_id key is not supported on egress.
      We have an error talking to the kernel
      
      The filter above does not match on VLAN ID, but is bounced anyway.
      
      Make the check more specific, forbid only matching of 'vlan_id' at egress.
      
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      70ec72d5
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-updates-2021-12-21' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 5de24da1
      Jakub Kicinski authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2021-12-21
      
      1) From Shay Drory: Devlink user knobs to control device's EQ size
      
      This series provides knobs which will enable users to
      minimize memory consumption of mlx5 Functions (PF/VF/SF).
      mlx5 exposes two new generic devlink params for EQ size
      configuration and uses devlink generic param max_macs.
      
      LINK: https://lore.kernel.org/netdev/20211208141722.13646-1-shayd@nvidia.com/
      
      2) From Tariq and Lama, allocate software channel objects and statistics
        of a mlx5 netdevice private data dynamically upon first demand to save on
        memory.
      
      * tag 'mlx5-updates-2021-12-21' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5e: Take packet_merge params directly from the RX res struct
        net/mlx5e: Allocate per-channel stats dynamically at first usage
        net/mlx5e: Use dynamic per-channel allocations in stats
        net/mlx5e: Allow profile-specific limitation on max num of channels
        net/mlx5e: Save memory by using dynamic allocation in netdev priv
        net/mlx5e: Add profile indications for PTP and QOS HTB features
        net/mlx5e: Use bitmap field for profile features
        net/mlx5: Remove the repeated declaration
        net/mlx5: Let user configure max_macs generic param
        devlink: Clarifies max_macs generic devlink param
        net/mlx5: Let user configure event_eq_size param
        devlink: Add new "event_eq_size" generic device param
        net/mlx5: Let user configure io_eq_size param
        devlink: Add new "io_eq_size" generic device param
      ====================
      
      Link: https://lore.kernel.org/r/20211222031604.14540-1-saeed@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5de24da1
    • Jakub Kicinski's avatar
      codel: remove unnecessary pkt_sched.h include · e6e59044
      Jakub Kicinski authored
      
      
      Commit d068ca2a ("codel: split into multiple files") moved all
      Qdisc-related code to codel_qdisc.h, move the include of pkt_sched.h
      as well.
      
      This is similar to the previous commit, although we don't care as
      much about incremental builds after pkt_sched.h was touched itself
      it is included by net/sch_generic.h which is modified ~20 times
      a year.
      
      This decreases the incremental build size after touching pkt_sched.h
      from 1592 to 617 objects.
      
      Fix unmasked missing includes in WiFi drivers.
      
      Acked-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20211221193941.3805147-2-kuba@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e6e59044
    • Jakub Kicinski's avatar
      codel: remove unnecessary sock.h include · 15fcb103
      Jakub Kicinski authored
      
      
      Since sock.h is modified relatively often (60 times in the last
      12 months) it seems worthwhile to decrease the incremental build
      work.
      
      CoDel's header includes net/inet_ecn.h which in turn includes net/sock.h.
      codel.h is itself included by mac80211 which is included by much of
      the WiFi stack and drivers. Removing the net/inet_ecn.h include from
      CoDel breaks the dependecy between WiFi and sock.h.
      
      Commit d068ca2a ("codel: split into multiple files") moved all
      the code which actually needs ECN helpers out to net/codel_impl.h,
      the include can be moved there as well.
      
      This decreases the incremental build size after touching sock.h
      from 4999 objects to 4051 objects.
      
      Fix unmasked missing includes in WiFi drivers.
      
      Acked-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20211221193941.3805147-1-kuba@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      15fcb103
    • Colin Ian King's avatar
      net: broadcom: bcm4908enet: remove redundant variable bytes · 62a31066
      Colin Ian King authored
      
      
      The variable bytes is being used to summate slot lengths,
      however the value is never used afterwards. The summation
      is redundant so remove variable bytes.
      
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Link: https://lore.kernel.org/r/20211222003937.727325-1-colin.i.king@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      62a31066
    • Jesse Brandeburg's avatar
      ice: trivial: fix odd indenting · 0092db5f
      Jesse Brandeburg authored
      
      
      Fix an odd indent where some code was left indented, and causes smatch
      to warn:
      ice_log_pkg_init() warn: inconsistent indenting
      
      While here, for consistency, add a break after the default case.
      
      This commit has a Fixes: but we caught this while it was only in net-next.
      
      Fixes: 247dd97d ("ice: Refactor status flow for DDP load")
      Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Link: https://lore.kernel.org/r/20211221230538.2546315-1-jesse.brandeburg@intel.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0092db5f
    • Jakub Kicinski's avatar
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue · 2030eddc
      Jakub Kicinski authored
      Tony Nguyen says:
      
      ====================
      100GbE Intel Wired LAN Driver Updates 2021-12-21
      
      This series contains updates to ice driver only.
      
      Karol modifies the reset flow to correct issues with PTP reset.
      
      Jake extends PTP support for E822 based devices. This includes a few
      cleanup patches, that fix some minor issues. In addition, there are some
      slight refactors to ease the addition of E822 support, followed by adding
      the new hardware implementation ice_ptp_hw.c.
      
      There are a few major differences with E822 support compared to E810
      support:
      
      *) The E822 device has a Clock Generation Unit which must be initialized in
      order to generate proper clock frequencies on the output that drives the PTP
      hardware clock registers
      
      *) The E822 PHY is a bit different and requires a more complex
      initialization procedure which must be rerun any time the link configuration
      changes.
      
      *) The E822 devices support enhanced timestamp calibration by making use of
      a process called Vernier offset measurement. This allows the hardware to
      measure phase offset related to the PHY clocks for Serdes and FEC, reducing
      the inaccuracy of the timestamp relative to the actual packet transmission
      and receipt. Making use of this requires data gathered from the first
      transmitted and received packets, and waiting for the PHY to complete the
      calibration measurements. This is done as part of a new kthread, ov_work.
      Note that to avoid delay in enabling timestamps, we start the PHY in
      'bypass' mode which allows timestamps to be captured without the Vernier
      calibration measurement. Once the first packets have been sent and received,
      we then complete the calibration setup and exit bypass mode and begin using
      the more precise timestamps. According to the datasheet, timestamps without
      calibration data can be incorrect relative to actual receipt or transmission
      by up to 1 clock cycle (~1.25 nanoseconds), while calibrated timestamps
      should be correct to within 1/8th of a clock cycle (~0.15 nanoseconds).
      
      *) E822 devices support crosstimestamping via PCIe PTM, which we enable when
      available on the platform.
      
      There is a fair amount of logic required to perform PHY and CGU
      initialization, which is the vast majority of the new code, but it is fairly
      self contained within ice_ptp_hw.c, with the exception of monitoring for
      offset validity being handled by a kthread.
      
      * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
        ice: support crosstimestamping on E822 devices if supported
        ice: exit bypass mode once hardware finishes timestamp calibration
        ice: ensure the hardware Clock Generation Unit is configured
        ice: implement basic E822 PTP support
        ice: convert clk_freq capability into time_ref
        ice: introduce ice_ptp_init_phc function
        ice: use 'int err' instead of 'int status' in ice_ptp_hw.c
        ice: PTP: move setting of tstamp_config
        ice: introduce ice_base_incval function
        ice: Fix E810 PTP reset flow
      ====================
      
      Link: https://lore.kernel.org/r/20211221174845.3063640-1-anthony.l.nguyen@intel.com
      
      
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2030eddc
  2. Dec 22, 2021