1. 29 Sep, 2022 23 commits
  2. 28 Sep, 2022 17 commits
    • Jakub Kicinski's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next · 929a6cdf
      Jakub Kicinski authored
      Florian Westphal says:
      
      ====================
      netfilter fix for net-next
      
      This is a late bug fix for the *net-next* tree to make nftables
      "fib" expression play nice with VRF devices.
      
      This was broken since day 1 (v4.10) so I don't see a compelling reason
      to push this via net at the last minute.
      
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next:
        netfilter: nft_fib: Fix for rpath check with VRF devices
      ====================
      
      Link: https://lore.kernel.org/r/20220928113908.4525-1-fw@strlen.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      929a6cdf
    • Phil Sutter's avatar
      netfilter: nft_fib: Fix for rpath check with VRF devices · 2a8a7c0e
      Phil Sutter authored
      Analogous to commit b575b24b ("netfilter: Fix rpfilter
      dropping vrf packets by mistake") but for nftables fib expression:
      Add special treatment of VRF devices so that typical reverse path
      filtering via 'fib saddr . iif oif' expression works as expected.
      
      Fixes: f6d0cbcf ("netfilter: nf_tables: add fib expression")
      Signed-off-by: default avatarPhil Sutter <phil@nwl.cc>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      2a8a7c0e
    • David S. Miller's avatar
      Merge branch 'sfc-tc-offload' · b9a5cbf8
      David S. Miller authored
      Edward Cree says:
      
      ====================
      sfc: bare bones TC offload
      
      This series begins the work of supporting TC flower offload on EF100 NICs.
      This is the absolute minimum viable TC implementation to get traffic to
       VFs and allow them to be tested; it supports no match fields besides
       ingress port, no actions besides mirred and drop, and no stats.
      More matches, actions, and counters will be added in subsequent patches.
      
      Changed in v2:
       - Add missing 'static' on declarations (kernel test robot, sparse)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b9a5cbf8
    • Edward Cree's avatar
      sfc: bare bones TC offload on EF100 · d902e1a7
      Edward Cree authored
      This is the absolute minimum viable TC implementation to get traffic to
       VFs and allow them to be tested; it supports no match fields besides
       ingress port, no actions besides mirred and drop, and no stats.
      Example usage:
          tc filter add dev $PF parent ffff: flower skip_sw \
              action mirred egress mirror dev $VFREP
          tc filter add dev $VFREP parent ffff: flower skip_sw \
              action mirred egress redirect dev $PF
       gives a VF unfiltered access to the network out the physical port ($PF
       acts here as a physical port representor).
      More matches, actions, and counters will be added in subsequent patches.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d902e1a7
    • Edward Cree's avatar
      sfc: interrogate MAE capabilities at probe time · 7ce3e235
      Edward Cree authored
      Different versions of EF100 firmware and FPGA bitstreams support different
       matching capabilities in the Match-Action Engine.  Probe for these at
       start of day; subsequent patches will validate TC offload requests
       against the reported capabilities.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ce3e235
    • Edward Cree's avatar
      sfc: add a hashtable for offloaded TC rules · f54a28a2
      Edward Cree authored
      Nothing inserts into this table yet, but we have code to remove rules
       on FLOW_CLS_DESTROY or at driver teardown time, in both cases also
       attempting to remove the corresponding hardware rules.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f54a28a2
    • Edward Cree's avatar
      sfc: optional logging of TC offload errors · 7c9d266d
      Edward Cree authored
      TC offload support will involve complex limitations on what matches and
       actions a rule can do, in some cases potentially depending on rules
       already offloaded.  So add an ethtool private flag "log-tc-errors" which
       controls reporting the reasons for un-offloadable TC rules at NETIF_INFO.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c9d266d
    • Edward Cree's avatar
      sfc: bind indirect blocks for TC offload on EF100 · 5b2e12d5
      Edward Cree authored
      Bind indirect blocks for recognised tunnel netdevices.
      Currently these connect to a stub efx_tc_flower() that only returns
       -EOPNOTSUPP; subsequent patches will implement flower offloads to the
       Match-Action Engine.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b2e12d5
    • Edward Cree's avatar
      sfc: bind blocks for TC offload on EF100 · 9dc0cad2
      Edward Cree authored
      Bind direct blocks for the MAE-admin PF and each VF representor.
      Currently these connect to a stub efx_tc_flower() that only returns
       -EOPNOTSUPP; subsequent patches will implement flower offloads to the
       Match-Action Engine.
      Signed-off-by: default avatarEdward Cree <ecree.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9dc0cad2
    • Gustavo A. R. Silva's avatar
      net: ethernet: rmnet: Replace zero-length array with DECLARE_FLEX_ARRAY() helper · c87e4ad1
      Gustavo A. R. Silva authored
      Zero-length arrays are deprecated and we are moving towards adopting
      C99 flexible-array members, instead. So, replace zero-length arrays
      declarations in anonymous union with the new DECLARE_FLEX_ARRAY()
      helper macro.
      
      This helper allows for flexible-array members in unions.
      
      Link: https://github.com/KSPP/linux/issues/193
      Link: https://github.com/KSPP/linux/issues/221
      Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.htmlSigned-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c87e4ad1
    • Zhengchao Shao's avatar
      net: sched: act_bpf: simplify code logic in tcf_bpf_init() · 8fff09ef
      Zhengchao Shao authored
      Both is_bpf and is_ebpf are boolean types, so
      (!is_bpf && !is_ebpf) || (is_bpf && is_ebpf) can be reduced to
      is_bpf == is_ebpf in tcf_bpf_init().
      Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8fff09ef
    • David S. Miller's avatar
      Merge branch 'lan966x-qos' · 6a1dc68e
      David S. Miller authored
      Horatiu Vultur says:
      
      ====================
      net: lan966x: Add tbf, cbs, ets support
      
      Add support for offloading QoS features with tc command to lan966x.
      The offloaded Qos features are tbf, cbs and ets.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6a1dc68e
    • Horatiu Vultur's avatar
      net: lan966x: Add offload support for ets · 29aaf3d4
      Horatiu Vultur authored
      Add ets qdisc which allows to mix strict priority with bandwidth-sharing
      bands. The ets qdisc needs to be attached as root qdisc.
      Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29aaf3d4
    • Horatiu Vultur's avatar
      net: lan966x: Add offload support for cbs · 21ce14a8
      Horatiu Vultur authored
      Lan966x switch supports credit based shaper in hardware according to
      IEEE Std 802.1Q-2018 Section 8.6.8.2. Add support for cbs configuration
      on egress port of lan966x switch.
      Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      21ce14a8
    • Horatiu Vultur's avatar
      net: lan966x: Add offload support for tbf · 94644b6d
      Horatiu Vultur authored
      The tbf qdisc allows to attach a shaper on traffic egress on a port or
      on a queue. On port they are attached directly to the root and on queue
      they are attached on one of the classes of the parent qdisc.
      Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      94644b6d
    • David S. Miller's avatar
      Merge branch 'tc-testing-qdisc' · 2ae3cb58
      David S. Miller authored
      Zhengchao Shao says:
      
      ====================
      net: add tc-testing qdisc test cases
      
      For this patchset, test cases of the qdisc modules are added to the
      tc-testing test suite.
      
      Last, thanks to Victor for testing and suggestion.
      
      After a test case is added locally, the test result is as follows:
      
      ./tdc.py -c atm
      ok 1 7628 - Create ATM with default setting
      ok 2 390a - Delete ATM with valid handle
      ok 3 32a0 - Show ATM class
      ok 4 6310 - Dump ATM stats
      
      ./tdc.py -c choke
      ok 1 8937 - Create CHOKE with default setting
      ok 2 48c0 - Create CHOKE with min packet setting
      ok 3 38c1 - Create CHOKE with max packet setting
      ok 4 234a - Create CHOKE with ecn setting
      ok 5 4380 - Create CHOKE with burst setting
      ok 6 48c7 - Delete CHOKE with valid handle
      ok 7 4398 - Replace CHOKE with min setting
      ok 8 0301 - Change CHOKE with limit setting
      
      ./tdc.py -c codel
      ok 1 983a - Create CODEL with default setting
      ok 2 38aa - Create CODEL with limit packet setting
      ok 3 9178 - Create CODEL with target setting
      ok 4 78d1 - Create CODEL with interval setting
      ok 5 238a - Create CODEL with ecn setting
      ok 6 939c - Create CODEL with ce_threshold setting
      ok 7 8380 - Delete CODEL with valid handle
      ok 8 289c - Replace CODEL with limit setting
      ok 9 0648 - Change CODEL with limit setting
      
      ./tdc.py -c etf
      ok 1 34ba - Create ETF with default setting
      ok 2 438f - Create ETF with delta nanos setting
      ok 3 9041 - Create ETF with deadline_mode setting
      ok 4 9a0c - Create ETF with skip_sock_check setting
      ok 5 2093 - Delete ETF with valid handle
      
      ./tdc.py -c fq
      ok 1 983b - Create FQ with default setting
      ok 2 38a1 - Create FQ with limit packet setting
      ok 3 0a18 - Create FQ with flow_limit setting
      ok 4 2390 - Create FQ with quantum setting
      ok 5 845b - Create FQ with initial_quantum setting
      ok 6 9398 - Create FQ with maxrate setting
      ok 7 342c - Create FQ with nopacing setting
      ok 8 6391 - Create FQ with refill_delay setting
      ok 9 238b - Create FQ with low_rate_threshold setting
      ok 10 7582 - Create FQ with orphan_mask setting
      ok 11 4894 - Create FQ with timer_slack setting
      ok 12 324c - Create FQ with ce_threshold setting
      ok 13 424a - Create FQ with horizon time setting
      ok 14 89e1 - Create FQ with horizon_cap setting
      ok 15 32e1 - Delete FQ with valid handle
      ok 16 49b0 - Replace FQ with limit setting
      ok 17 9478 - Change FQ with limit setting
      
      ./tdc.py -c gred
      ok 1 8942 - Create GRED with default setting
      ok 2 5783 - Create GRED with grio setting
      ok 3 8a09 - Create GRED with limit setting
      ok 4 48cb - Create GRED with ecn setting
      ok 5 763a - Change GRED setting
      ok 6 8309 - Show GRED class
      
      ./tdc.py -c hhf
      ok 1 4812 - Create HHF with default setting
      ok 2 8a92 - Create HHF with limit setting
      ok 3 3491 - Create HHF with quantum setting
      ok 4 ba04 - Create HHF with reset_timeout setting
      ok 5 4238 - Create HHF with admit_bytes setting
      ok 6 839f - Create HHF with evict_timeout setting
      ok 7 a044 - Create HHF with non_hh_weight setting
      ok 8 32f9 - Change HHF with limit setting
      ok 9 385e - Show HHF class
      
      ./tdc.py -c pfifo_fast
      ok 1 900c - Create pfifo_fast with default setting
      ok 2 7470 - Dump pfifo_fast stats
      ok 3 b974 - Replace pfifo_fast with different handle
      ok 4 3240 - Delete pfifo_fast with valid handle
      ok 5 4385 - Delete pfifo_fast with invalid handle
      
      ./tdc.py -c plug
      ok 1 3289 - Create PLUG with default setting
      ok 2 0917 - Create PLUG with block setting
      ok 3 483b - Create PLUG with release setting
      ok 4 4995 - Create PLUG with release_indefinite setting
      ok 5 389c - Create PLUG with limit setting
      ok 6 384a - Delete PLUG with valid handle
      ok 7 439a - Replace PLUG with limit setting
      ok 8 9831 - Change PLUG with limit setting
      
      ./tdc.py -c sfb
      ok 1 3294 - Create SFB with default setting
      ok 2 430a - Create SFB with rehash setting
      ok 3 3410 - Create SFB with db setting
      ok 4 49a0 - Create SFB with limit setting
      ok 5 1241 - Create SFB with max setting
      ok 6 3249 - Create SFB with target setting
      ok 7 30a9 - Create SFB with increment setting
      ok 8 239a - Create SFB with decrement setting
      ok 9 9301 - Create SFB with penalty_rate setting
      ok 10 2a01 - Create SFB with penalty_burst setting
      ok 11 3209 - Change SFB with rehash setting
      ok 12 5447 - Show SFB class
      
      ./tdc.py -c sfq
      ok 1 7482 - Create SFQ with default setting
      ok 2 c186 - Create SFQ with limit setting
      ok 3 ae23 - Create SFQ with perturb setting
      ok 4 a430 - Create SFQ with quantum setting
      ok 5 4539 - Create SFQ with divisor setting
      ok 6 b089 - Create SFQ with flows setting
      ok 7 99a0 - Create SFQ with depth setting
      ok 8 7389 - Create SFQ with headdrop setting
      ok 9 6472 - Create SFQ with redflowlimit setting
      ok 10 8929 - Show SFQ class
      
      ./tdc.py -c skbprio
      ok 1 283e - Create skbprio with default setting
      ok 2 c086 - Create skbprio with limit setting
      ok 3 6733 - Change skbprio with limit setting
      ok 4 2958 - Show skbprio class
      
      ./tdc.py -c taprio
      ok 1 ba39 - Add taprio Qdisc to multi-queue device (8 queues)
      ok 2 9462 - Add taprio Qdisc with multiple sched-entry
      ok 3 8d92 - Add taprio Qdisc with txtime-delay
      ok 4 d092 - Delete taprio Qdisc with valid handle
      ok 5 8471 - Show taprio class
      ok 6 0a85 - Add taprio Qdisc to single-queue device
      
      ./tdc.py -c tbf
      ok 1 6430 - Create TBF with default setting
      ok 2 0518 - Create TBF with mtu setting
      ok 3 320a - Create TBF with peakrate setting
      ok 4 239b - Create TBF with latency setting
      ok 5 c975 - Create TBF with overhead setting
      ok 6 948c - Create TBF with linklayer setting
      ok 7 3549 - Replace TBF with mtu
      ok 8 f948 - Change TBF with latency time
      ok 9 2348 - Show TBF class
      
      ./tdc.py -c teql
      ok 1 84a0 - Create TEQL with default setting
      ok 2 7734 - Create TEQL with multiple device
      ok 3 34a9 - Delete TEQL with valid handle
      ok 4 6289 - Show TEQL stats
      
      ---
      v3: add config
      v2: modify subject prefix
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ae3cb58
    • Zhengchao Shao's avatar
      selftests/tc-testing: add selftests for teql qdisc · cc62fbe1
      Zhengchao Shao authored
      Test 84a0: Create TEQL with default setting
      Test 7734: Create TEQL with multiple device
      Test 34a9: Delete TEQL with valid handle
      Test 6289: Show TEQL stats
      Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cc62fbe1