1. 04 May, 2022 21 commits
  2. 03 May, 2022 19 commits
    • Jakub Kicinski's avatar
      Merge branch 'mptcp-userspace-path-manager-prerequisites' · 2201124d
      Jakub Kicinski authored
      Mat Martineau says:
      
      ====================
      mptcp: Userspace path manager prerequisites
      
      This series builds upon the path manager mode selection changes merged
      in 4994d4fa ("Merge branch 'mptcp-path-manager-mode-selection'") to
      further modify the path manager code in preparation for adding the new
      netlink commands to announce/remove advertised addresses and
      create/destroy subflows of an MPTCP connection. The third and final
      patch series for the userspace path manager will implement those
      commands as discussed in
      https://lore.kernel.org/netdev/23ff3b49-2563-1874-fa35-3af55d3088e7@linux.intel.com/#r
      
      Patches 1, 5, and 7 remove some internal constraints on path managers
      (in general) without changing in-kernel PM behavior.
      
      Patch 2 adds a self test to validate MPTCP address advertisement ack
      behavior.
      
      Patches 3, 4, and 6 add new attributes to existing MPTCP netlink events
      and track internal state for populating those attributes.
      ====================
      
      Link: https://lore.kernel.org/r/20220502205237.129297-1-mathew.j.martineau@linux.intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2201124d
    • Kishen Maloor's avatar
      mptcp: allow ADD_ADDR reissuance by userspace PMs · 304ab97f
      Kishen Maloor authored
      This change allows userspace PM implementations to reissue ADD_ADDR
      announcements (if necessary) based on their chosen policy.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      304ab97f
    • Kishen Maloor's avatar
      mptcp: expose server_side attribute in MPTCP netlink events · 41b3c69b
      Kishen Maloor authored
      This change records the 'server_side' attribute of MPTCP_EVENT_CREATED
      and MPTCP_EVENT_ESTABLISHED events to inform their recipient about the
      Client/Server role of the running MPTCP application.
      
      Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/246Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      41b3c69b
    • Kishen Maloor's avatar
      mptcp: establish subflows from either end of connection · 70c708e8
      Kishen Maloor authored
      This change updates internal logic to permit subflows to be
      established from either the client or server ends of MPTCP
      connections. This symmetry and added flexibility may be
      harnessed by PM implementations running on either end in
      creating new subflows.
      
      The essence of this change lies in not relying on the
      "server_side" flag (which continues to be available if needed).
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      70c708e8
    • Kishen Maloor's avatar
      mptcp: reflect remote port (not 0) in ANNOUNCED events · d1ace2d9
      Kishen Maloor authored
      Per RFC 8684, if no port is specified in an ADD_ADDR message, MPTCP
      SHOULD attempt to connect to the specified address on the same port
      as the port that is already in use by the subflow on which the
      ADD_ADDR signal was sent.
      
      To facilitate that, this change reflects the specific remote port in
      use by that subflow in MPTCP_EVENT_ANNOUNCED events.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d1ace2d9
    • Kishen Maloor's avatar
      mptcp: store remote id from MP_JOIN SYN/ACK in local ctx · 8a348392
      Kishen Maloor authored
      This change reads the addr id assigned to the remote endpoint
      of a subflow from the MP_JOIN SYN/ACK message and stores it
      in the related subflow context. The remote id was not being
      captured prior to this change, and will now provide a consistent
      view of remote endpoints and their ids as seen through netlink
      events.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      8a348392
    • Mat Martineau's avatar
      selftests: mptcp: ADD_ADDR echo test with missing userspace daemon · b3b71bf9
      Mat Martineau authored
      Check userspace PM behavior to ensure ADD_ADDR echoes are only sent when
      there is an active userspace daemon. If the daemon is restarting or
      hasn't loaded yet, the missing echo will cause the peer to retransmit
      the ADD_ADDR - and hopefully the daemon will be ready to receive it at
      that later time.
      Reviewed-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b3b71bf9
    • Kishen Maloor's avatar
      mptcp: bypass in-kernel PM restrictions for non-kernel PMs · 4d25247d
      Kishen Maloor authored
      Current limits on the # of addresses/subflows must apply only to
      in-kernel PM managed sockets. Thus this change removes such
      restrictions on connections overseen by non-kernel (e.g. userspace)
      PMs. This change also ensures that the kernel does not record stats
      inside struct mptcp_pm_data updated along kernel code paths when exercised
      via non-kernel PMs.
      
      Additionally, address announcements are acknolwedged and subflow
      requests are honored only when it's deemed that	a userspace path
      manager	is active at the time.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4d25247d
    • Paolo Abeni's avatar
      Merge tag 'mlx5-updates-2022-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 2b68abf9
      Paolo Abeni authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2022-05-02
      
      1) Trivial Misc updates to mlx5 driver
      
      2) From Mark Bloch: Flow steering, general steering refactoring/cleaning
      
      An issue with flow steering deletion flow (when creating a rule without
      dests) turned out to be easy to fix but during the fix some issue
      with the flow steering creation/deletion flows have been found.
      
      The following patch series tries to fix long standing issues with flow
      steering code and hopefully preventing silly future bugs.
      
        A) Fix an issue where a proper dest type wasn't assigned.
        B) Refactor and fix dests enums values, refactor deletion
           function and do proper bookkeeping of dests.
        C) Change mlx5_del_flow_rules() to delete rules when there are no
           no more rules attached associated with an FTE.
        D) Don't call hard coded deletion function but use the node's
           defined one.
        E) Add a WARN_ON() to catch future bugs when an FTE with dests
           is deleted.
      
      * tag 'mlx5-updates-2022-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5: fs, an FTE should have no dests when deleted
        net/mlx5: fs, call the deletion function of the node
        net/mlx5: fs, delete the FTE when there are no rules attached to it
        net/mlx5: fs, do proper bookkeeping for forward destinations
        net/mlx5: fs, add unused destination type
        net/mlx5: fs, jump to exit point and don't fall through
        net/mlx5: fs, refactor software deletion rule
        net/mlx5: fs, split software and IFC flow destination definitions
        net/mlx5e: TC, set proper dest type
        net/mlx5e: Remove unused mlx5e_dcbnl_build_rep_netdev function
        net/mlx5e: Drop error CQE handling from the XSK RX handler
        net/mlx5: Print initializing field in case of timeout
        net/mlx5: Delete redundant default assignment of runtime devlink params
        net/mlx5: Remove useless kfree
        net/mlx5: use kvfree() for kvzalloc() in mlx5_ct_fs_smfs_matcher_create
      ====================
      
      Link: https://lore.kernel.org/r/Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      2b68abf9
    • Paolo Abeni's avatar
      Merge branch 'mlxsw-remove-size-limitations-on-egress-descriptor-buffer' · f4f1fd76
      Paolo Abeni authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Remove size limitations on egress descriptor buffer
      
      Petr says:
      
      Spectrum machines have two resources related to keeping packets in an
      internal buffer: bytes (allocated in cell-sized units) for packet payload,
      and descriptors, for keeping headers. Currently, mlxsw only configures the
      bytes part of the resource management.
      
      Spectrum switches permit a full parallel configuration for the descriptor
      resources, including port-pool and port-TC-pool quotas. By default, these
      are all configured to use pool 14, with an infinite quota. The ingress pool
      14 is then infinite in size.
      
      However, egress pool 14 has finite size by default. The size is chip
      dependent, but always much lower than what the chip actually permits. As a
      result, we can easily construct workloads that exhaust the configured
      descriptor limit.
      
      Going forward, mlxsw will have to fix this issue properly by maintaining
      descriptor buffer sizes, TC bindings, and quotas that match the
      architecture recommendation. Short term, fix the issue by configuring the
      egress descriptor pool to be infinite in size as well. This will maintain
      the same configuration philosophy, but will unlock all chip resources to be
      usable.
      
      In this patchset, patch #1 first adds the "desc" field into the pool
      configuration register. Then in patch #2, the new field is used to
      configure both ingress and egress pool 14 as infinite.
      
      In patches #3 and #4, add a selftest that verifies that a large burst
      can be absorbed by the shared buffer. This test specifically exercises a
      scenario where descriptor buffer is the limiting factor and the test
      fails without the above patches.
      ====================
      
      Link: https://lore.kernel.org/r/20220502084926.365268-1-idosch@nvidia.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      f4f1fd76
    • Petr Machata's avatar
      selftests: mlxsw: Add a test for soaking up a burst of traffic · 1d267aa8
      Petr Machata authored
      Add a test that sends 1Gbps of traffic through the switch, into which it
      then injects a burst of traffic and tests that there are no drops.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1d267aa8
    • Petr Machata's avatar
      selftests: forwarding: lib: Add start_traffic_pktsize() helpers · 1531cc63
      Petr Machata authored
      Add two helpers, start_traffic_pktsize() and start_tcp_traffic_pktsize(),
      that allow explicit overriding of packet size. Change start_traffic() and
      start_tcp_traffic() to dispatch through these helpers with the default
      packet size.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1531cc63
    • Petr Machata's avatar
      mlxsw: Configure descriptor buffers · c864769a
      Petr Machata authored
      Spectrum machines have two resources related to keeping packets in an
      internal buffer: bytes (allocated in cell-sized units) for packet payload,
      and descriptors, for keeping metadata. Currently, mlxsw only configures the
      bytes part of the resource management.
      
      Spectrum switches permit a full parallel configuration for the descriptor
      resources, including port-pool and port-TC-pool quotas. By default, these
      are all configured to use pool 14, with an infinite quota. The ingress pool
      14 is then infinite in size.
      
      However, egress pool 14 has finite size by default. The size is chip
      dependent, but always much lower than what the chip actually permits. As a
      result, we can easily construct workloads that exhaust the configured
      descriptor limit.
      
      Fix the issue by configuring the egress descriptor pool to be infinite in
      size as well. This will maintain the configuration philosophy of the
      default configuration, but will unlock all chip resources to be usable.
      
      In the code, include both the configuration of ingress and ingress, mostly
      for clarity.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c864769a
    • Petr Machata's avatar
      mlxsw: reg: Add "desc" field to SBPR · 135433b3
      Petr Machata authored
      SBPR, or Shared Buffer Pools Register, configures and retrieves the shared
      buffer pools and configuration. The desc field determines whether the
      configuration relates to the byte pool or the descriptor pool.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      135433b3
    • Paolo Abeni's avatar
      Merge branch 'use-standard-sysctl-macro' · cb636b3e
      Paolo Abeni authored
      Tonghao Zhang says:
      
      ====================
      use standard sysctl macro
      
      From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
      
      This patchset introduce sysctl macro or replace var
      with macro.
      ====================
      
      Link: https://lore.kernel.org/r/20220501035524.91205-1-xiangxia.m.yue@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      cb636b3e
    • Tonghao Zhang's avatar
      selftests/sysctl: add sysctl macro test · 57b19468
      Tonghao Zhang authored
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      57b19468
    • Tonghao Zhang's avatar
      net: sysctl: introduce sysctl SYSCTL_THREE · 4c7f24f8
      Tonghao Zhang authored
      This patch introdues the SYSCTL_THREE.
      
      KUnit:
      [00:10:14] ================ sysctl_test (10 subtests) =================
      [00:10:14] [PASSED] sysctl_test_api_dointvec_null_tbl_data
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_maxlen_unset
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_len_is_zero
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_read_but_position_set
      [00:10:14] [PASSED] sysctl_test_dointvec_read_happy_single_positive
      [00:10:14] [PASSED] sysctl_test_dointvec_read_happy_single_negative
      [00:10:14] [PASSED] sysctl_test_dointvec_write_happy_single_positive
      [00:10:14] [PASSED] sysctl_test_dointvec_write_happy_single_negative
      [00:10:14] [PASSED] sysctl_test_api_dointvec_write_single_less_int_min
      [00:10:14] [PASSED] sysctl_test_api_dointvec_write_single_greater_int_max
      [00:10:14] =================== [PASSED] sysctl_test ===================
      
      ./run_kselftest.sh -c sysctl
      ...
      ok 1 selftests: sysctl: sysctl.sh
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Reviewed-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      4c7f24f8
    • Tonghao Zhang's avatar
      net: sysctl: use shared sysctl macro · bd8a5367
      Tonghao Zhang authored
      This patch replace two, four and long_one to SYSCTL_XXX.
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      bd8a5367
    • Kalle Valo's avatar
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git · f39af96d
      Kalle Valo authored
      ath.git patches for v5.19. Major changes:
      
      ath11k
      
      * support setting Specific Absorption Rate (SAR) for WCN6855
      
      * read country code from SMBIOS for WCN6855/QCA6390
      
      * support for WCN6750
      f39af96d