1. 04 Apr, 2022 6 commits
  2. 31 Mar, 2022 1 commit
  3. 30 Mar, 2022 3 commits
    • Luca Boccassi's avatar
      pmdinfogen: fix compilation with Clang 3.4.2 on CentOS 7 · 65265826
      Luca Boccassi authored
      $ meson --werror --buildtype=debugoptimized build && ninja-build -C build
      [..]
      [5/2516] Compiling C object buildtools/pmdinfogen/pmdinfogen.p/pmdinfogen.c.o
      FAILED: buildtools/pmdinfogen/pmdinfogen.p/pmdinfogen.c.o
      clang -Ibuildtools/pmdinfogen/pmdinfogen.p -Ibuildtools/pmdinfogen -I../../root/dpdk/buildtools/pmdinfogen -I. -I../../root/dpdk -Iconfig -I../../root/dpdk/config -Ilib/librte_eal/include -I../../root/dpdk/lib/librte_eal/include -Ilib/librte_eal/linux/include -I../../root/dpdk/lib/librte_eal/linux/include -Ilib/librte_eal/x86/include -I../../root/dpdk/lib/librte_eal/x86/include -Ilib/librte_pci -I../../root/dpdk/lib/librte_pci -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -MD -MQ buildtools/pmdinfogen/pmdinfogen.p/pmdinfogen.c.o -MF buildtools/pmdinfogen/pmdinfogen.p/pmdinfogen.c.o.d -o buildtools/pmdinfogen/pmdinfogen.p/pmdinfogen.c.o -c ../../root/dpdk/buildtools/pmdinfogen/pmdinfoge...
      65265826
    • Luca Boccassi's avatar
      Revert "regexdev: fix section attribute of symbols" · 9b390c48
      Luca Boccassi authored
      Causes symbols changes, so it's not appropriate for 20.11.
      
      This reverts commit 64452c87
      
      .
      
      Signed-off-by: Luca Boccassi's avatarLuca Boccassi <bluca@debian.org>
      Reviewed-by: Christian Ehrhardt's avatarChristian Ehrhardt <christian.ehrhardt@canonical.com>
      9b390c48
    • Ferruh Yigit's avatar
      net/cxgbe: remove useless address check · e0c907be
      Ferruh Yigit authored and Luca Boccassi's avatar Luca Boccassi committed
      [ backported from upstream commit a99bf951
      
       ]
      
      reported by "gcc (GCC) 12.0.0 20211003 (experimental)":
      
      ../drivers/net/cxgbe/cxgbe_ethdev.c:
      	In function ‘cxgbe_dev_rx_queue_setup’:
      ../drivers/net/cxgbe/cxgbe_ethdev.c:682:24:
      	error: the comparison will always evaluate as ‘true’ for the
      	address of ‘fl’ will never be NULL [-Werror=address]
        682 |         if ((&rxq->fl) != NULL)
            |                        ^~
      
      Fixing it by removing useless check.
      
      Signed-off-by: default avatarFerruh Yigit <ferruh.yigit@intel.com>
      Reviewed-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      e0c907be
  4. 18 Mar, 2022 1 commit
  5. 17 Mar, 2022 5 commits
  6. 16 Mar, 2022 2 commits
    • Devendra Singh Rawat's avatar
      net/qede: fix Rx bulk mbuf allocation · 6b92223d
      Devendra Singh Rawat authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit f65c7fbceca91b54200ca3dc5d27f2292e5d829f ]
      
      qede_alloc_rx_bulk_mbufs() was trimming the number of requested
      mbufs count to QEDE_MAX_BULK_ALLOC_COUNT.
      The Rx callback was ignorant of this trimming and it was always
      resetting the number of empty RX BD ring slots to 0.
      This resulted in Rx BD ring getting into an inconsistent
      state and ultimately the application fails to receive any traffic.
      
      The fix trims the number of requested mbufs count before
      making call to qede_alloc_rx_bulk_mbufs().
      After qede_alloc_rx_bulk_mbufs() returns successfully, the
      number of empty Rx BD ring slots are decremented by the
      correct count.
      
      Fixes: 8f231247
      
       ("net/qede: fix performance bottleneck in Rx path")
      
      Signed-off-by: default avatarDevendra Singh Rawat <dsinghrawat@marvell.com>
      Signed-off-by: default avatarRasesh Mody <rmody@marvell.com>
      6b92223d
    • Satheesh Paul's avatar
      net/octeontx2: fix flow MCAM priority management · 54040172
      Satheesh Paul authored and Luca Boccassi's avatar Luca Boccassi committed
      This patch fixes issues in rearranging the MCAM entries
      when user is creating flows with priority levels.
      The MCAM preallocation scheme and the free entry cache are
      removed. For every flow created, an MCAM allocation request
      is made to the kernel. Each priority level has a list of
      MCAM entries. For every flow rule added, the MCAM entry
      obtained from kernel is checked if it is at the correct user
      specified priority. If not, the existing rules are moved
      across MCAM entries so that the user specified priority is
      maintained.
      
      Fixes: 29a2017c
      
       ("net/octeontx2: add flow mbox utility functions")
      
      Signed-off-by: default avatarSatheesh Paul <psatheesh@marvell.com>
      Acked-by: default avatarKiran Kumar Kokkilagadda <kirankumark@marvell.com>
      54040172
  7. 15 Mar, 2022 9 commits
  8. 11 Mar, 2022 13 commits
    • Dmitry Kozlyuk's avatar
      net/mlx5: fix initial link status detection · cc761b30
      Dmitry Kozlyuk authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit 655c3c26c11e7a6f1b5421afe40b06d580b8f2dd ]
      
      Link status change takes time that depends on the HW and the kernel.
      It was checked immediately after the change was issued at probing.
      If the port had beed down before probing, a "down" state may be read,
      while the port would be "up" imminently.
      After that, DPDK reported the port as "down" mistakenly
      and "ifconfig $DEV up" did not trigger an LSC event,
      because from the system's perspective the port was "up" already.
      
      Install Netlink event handler at port probe before requesting the port
      to come up in order to receive LSC event even if it comes up
      between probe and start.
      
      Fixes: b6499434b83e ("net/mlx5: fix link status initialization")
      
      Signed-off-by: default avatarDmitry Kozlyuk <dkozlyuk@nvidia.com>
      cc761b30
    • Dmitry Kozlyuk's avatar
      net/mlx5: fix link status change detection · 76cfc69e
      Dmitry Kozlyuk authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit 17f95513adca1f4ee5bba305b154ac984ee50cee ]
      
      Sometimes net/mlx5 devices did not detect link status change to "up".
      
      Each shared device was monitoring IBV_EVENT_PORT_{ACTIVE,ERR}
      and queried the link status upon receiving the event.
      IBV_EVENT_PORT_ACTIVE is delivered when the logical link status
      (UP flag) is set, but the physical link status (RUNNING flag)
      may be down at that time, in which case the new link status
      would be errornously considered down.
      
      IBV interface is insufficient for the task.
      Monitor interface events using Netlink.
      
      Fixes: 198a3c33
      
       ("mlx5: handle link status interrupts")
      
      Signed-off-by: default avatarDmitry Kozlyuk <dkozlyuk@nvidia.com>
      76cfc69e
    • Dmitry Kozlyuk's avatar
      common/mlx5: add Netlink event helpers · c885a487
      Dmitry Kozlyuk authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit be66461cba371c3138ce942eb9fe5657f9e9a446 ]
      
      Introduce mlx5_nl_read_events() to read Netlink events
      (technically, messages) from a socket that was configured
      to listen for them via a new mlx5_nl_init() parameter.
      Add mlx5_nl_parse_link_status_update() helper
      to extract information from link-related events.
      This patch is a shared base for later fixes.
      
      Signed-off-by: default avatarDmitry Kozlyuk <dkozlyuk@nvidia.com>
      c885a487
    • Wei Huang's avatar
      raw/ifpga: fix interrupt handle allocation · 67cb024a
      Wei Huang authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit 20659eb38099033b9aa4f7476a7ba7b5d3258569 ]
      
      Allocate FPGA interrupt handle instance for each card.
      
      Fixes: e0a1aafe
      
       ("raw/ifpga: introduce IRQ functions")
      Cc: stable@dpdk.org
      
      Signed-off-by: default avatarWei Huang <wei.huang@intel.com>
      Acked-by: default avatarTianfei Zhang <tianfei.zhang@intel.com>
      67cb024a
    • Honnappa Nagarahalli's avatar
      examples/l3fwd: make Rx and Tx queue size configurable · 5500586d
      Honnappa Nagarahalli authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ backported from upstream commit 8efffaec56e30ed92c2c3f6b2a8e2e77d78ebd07 ]
      
      Make Rx and Tx queue sizes configurable from the command line.
      This helps DTS write better test cases.
      
      Signed-off-by: default avatarHonnappa Nagarahalli <honnappa.nagarahalli@arm.com>
      Reviewed-by: default avatarKathleen Capella <kathleen.capella@arm.com>
      Reviewed-by: default avatarRuifeng Wang <ruifeng.wang@arm.com>
      Acked-by: default avatarBruce Richardson <bruce.richardson@intel.com>
      5500586d
    • Honnappa Nagarahalli's avatar
      examples/l3fwd: share queue size variables · 920e8587
      Honnappa Nagarahalli authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ backported from upstream commit e7a7add13a0cd2eb64f62502cad005a97d8e3ee2 ]
      
      nb_rxd and nb_txd are used in polling mode and event mode of
      operation. nb_rxd and nb_txd are already global in polling mode
      but are not visible to event mode code. Make them visible to all
      parts of the application.
      
      Signed-off-by: default avatarHonnappa Nagarahalli <honnappa.nagarahalli@arm.com>
      Reviewed-by: default avatarKathleen Capella <kathleen.capella@arm.com>
      Reviewed-by: default avatarRuifeng Wang <ruifeng.wang@arm.com>
      Acked-by: default avatarBruce Richardson <bruce.richardson@intel.com>
      Tested-by: default avatarYingya Han &lt; <yingyax.han@intel.com>
      920e8587
    • Leyi Rong's avatar
      net/iavf: fix potential out-of-bounds access · d4b61e1b
      Leyi Rong authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit d78d21b983f215d1425422f955cbd934e48360d3 ]
      
      Fix potential out-of-bounds access as overrunning callee's array of
      size 26 by passing argument rxq->rxdid(which evaluates to 63) in call
      to iavf_rx_scan_hw_ring_flex_rxd.
      
      Coverity issue: 376616
      Fixes: 0ed16e01313e ("net/iavf: fix function pointer in multi-process")
      
      Signed-off-by: default avatarLeyi Rong <leyi.rong@intel.com>
      Reviewed-by: default avatarFerruh Yigit <ferruh.yigit@intel.com>
      d4b61e1b
    • Dariusz Sosnowski's avatar
      net/mlx5: fix MPLS/GRE Verbs spec ordering · 4c3ee244
      Dariusz Sosnowski authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit 98008ce6ec2f31c2e94c0eb39740c8178aeb8392 ]
      
      When using Verbs flow engine to create flows, GRE Verbs spec was put at
      the end of specs list. This created problems for flows matching MPLSoGRE
      packets. In generated specs list MPLS spec was put before GRE spec, but
      Verbs API requires that MPLS spec must be put in its exact location in
      protocol stack.
      
      This patch fixes this behavior. Space for GRE Verbs spec is reserved at
      its exact location. MPLS Verbs is inserted at its exact location as
      well. GRE spec is filled after all flow items are parsed.
      
      Fixes: 985b479267aa ("net/mlx5: fix GRE protocol type translation for Verbs")
      
      Signed-off-by: default avatarDariusz Sosnowski <dsosnowski@nvidia.com>
      Acked-by: default avatarViacheslav Ovsiienko <viacheslavo@nvidia.com>
      4c3ee244
    • Bing Zhao's avatar
      net/mlx5: remove unused reference counter · 5beedd08
      Bing Zhao authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit cff6aad7af61da8d31e146610f9b4a4875301ef4 ]
      
      In the previous implementation, a count was used to record the number
      of the references to a table resource, including the creation of the
      table, the jumping to the table and the matchers created on the
      table. Before releasing the table resource via the driver, it needed
      to ensure that there is no reference to this table.
      
      After the optimization of the resources management, the reference
      count now is in the hash list entry as a unified solution for all the
      resources management.
      
      There is no need to keep the "refcnt" in the table resource
      structure. It is removed in case that there is some unnecessary
      memory overhead.
      
      Fixes: afd7a625
      
       ("net/mlx5: make flow table cache thread safe")
      
      Signed-off-by: default avatarBing Zhao <bingz@nvidia.com>
      Acked-by: default avatarMatan Azrad <matan@nvidia.com>
      5beedd08
    • Dmitry Kozlyuk's avatar
      net/mlx5: fix modify port action validation · 6979a661
      Dmitry Kozlyuk authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit ea7cc15ab97a3f73ae4f6c0a9d9c89f5ca0374f3 ]
      
      Certain flow rules containing a modify header action for an L4 port
      could be erroneously rejected as invalid, because this action
      was counted as consuming two HW actions, while it only requires one.
      
      Fixes: 72a944db
      
       ("net/mlx5: fix header modify action validation")
      
      Signed-off-by: default avatarDmitry Kozlyuk <dkozlyuk@nvidia.com>
      Acked-by: default avatarMatan Azrad <matan@nvidia.com>
      6979a661
    • Jiawei Wang's avatar
      net/mlx5: fix NIC egress flow mismatch in switchdev mode · 093fbd47
      Jiawei Wang authored and Luca Boccassi's avatar Luca Boccassi committed
      [ upstream commit 6d4f1066be6cd60a95f21ef07a16a3c3676c5cd9 ]
      
      When E-Switch mode was enabled, the NIC egress flows was implicitly
      appended with source vport to match on. If the metadata register C0
      was used to maintain the source vport, it was initialized to zero
      on packet steering engine entry, the flow could be hit only
      if source vport was zero, the register C0 of the packet was not correct
      to match in the TX side, this caused egress flow misses.
      
      This patch:
       - removes the implicit source vport match for NIC egress flow.
       - rejects the NIC egress flows on the representor ports at validation.
       - allows the internal NIC egress flows containing the TX_QUEUE items in
         order to not impact hairpins.
      
      Fixes: ce777b14
      
       ("net/mlx5: fix E-Switch flow without port item")
      
      Signed-off-by: default avatarJiawei Wang <jiaweiw@nvidia.com>
      Acked-by: default avatarViacheslav Ovsiienko <viacheslavo@nvidia.com>
      Acked-by: default avatarOri Kam <orika@nvidia.com>
      093fbd47
    • Rongwei Liu's avatar
      net/mlx5: fix shared RSS destroy · 42e5440e
      Rongwei Liu authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit e1786fd53d7e5631c9ffb9b2fba0fd402bc8cf74 ]
      
      When both shared and non-shared RSS actions are present in single
      flow rule shared RSS index is unset by mistake.
      
      For example:
      1. flow indirect_action 0 create action_id 3 ingress action RSS ...
      2. set sample_actions 0 mark id 43690 / queue index 0 / end
      3. flow create 0 ingress group 107 pattern eth / sample ratio 2
         index 0  / indirect 3 / end
      
      PMD translates the indirect action to a shared RSS description at first.
      In the split prefix flow, RSS->shared_RSS is unset when translating
      sample queue action, the subfix flow will treat the RSS as non-shared.
      
      Fixes: 8e61555657b2 ("net/mlx5: fix shared RSS and mark actions combination")
      
      Signed-off-by: default avatarRongwei Liu <rongweil@nvidia.com>
      Acked-by: default avatarViacheslav Ovsiienko <viacheslavo@nvidia.com>
      42e5440e
    • Gregory Etelson's avatar
      net/mlx5: fix next protocol RSS expansion · cfcd6754
      Gregory Etelson authored and Luca Boccassi's avatar Luca Boccassi committed
      
      
      [ upstream commit 6ae5c238371aeb86359c5a6c1eb1330e1cc25fca ]
      
      RSS expansion scheme has 2 operational modes: default and specific.
      The default mode expands into all valid options for a given network
      layer. For example, Ethernet expands by default into VLAN, IPv4 and
      IPv6, L3 expands into TCP and UDP, etc.
      The specific mode expands according to flow item next protocol
      configuration provided by the item spec and mask parameters.
      There are 3 outcomes for the specific expansion:
      1. Back to default – that is the case when result of (spec & mask)
         allows all possibilities.
         For example: eth type mask 0 type spec 0
      2. No results – in that case item configuration has no valid expansion.
         For example: eth type mask 0xffff type spec 101
      3. Direct - In that case flow item mask and spec configuration return
         valid expansion  option.
         Example: eth type mask 0x0fff type spec 0x0800.
      
      Current PMD expands flow items with explicit spec and mask
      configuration into the Direct(3) or No results (2). Default expansions
      were handled as No results.
      
      Fixes: f3f1f576f438 ("net/mlx5: fix RSS expansion with explicit next protocol")
      
      Signed-off-by: default avatarGregory Etelson <getelson@nvidia.com>
      Acked-by: default avatarMatan Azrad <matan@nvidia.com>
      cfcd6754