This bug was fixed in the package linux-bluefield - 5.4.0-1035.38

---------------
linux-bluefield (5.4.0-1035.38) focal; urgency=medium

  * focal/linux-bluefield: 5.4.0-1035.38 -proposed tracker (LP:
#1969372)

  * mlxbf-gige: sync up with upstreamed version (LP: #1969233)
    - SAUCE: Revert "UBUNTU: SAUCE: Fix OOB handling RX packets in heavy 
traffic"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: update driver version to 1.25"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: clear valid_polarity upon open"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf_gige: add interrupt counts to "ethtool
      -S""
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf-gige: add ethtool
      mlxbf_gige_set_ringparam"
    - SAUCE: Revert "UBUNTU: SAUCE: mlxbf-gige: add driver version"
    - mlxbf_gige: clear valid_polarity upon open
    - net: mellanox: mlxbf_gige: Replace non-standard interrupt handling
    - SAUCE: mlxbf-gige: add driver version
    - SAUCE: mlxbf_gige: add interrupt counts to "ethtool -S"
    - SAUCE: mlxbf-gige: add ethtool mlxbf_gige_set_ringparam
    - SAUCE: Fix OOB handling RX packets in heavy traffic

  * linux-bluefield: Fix build failure in mlxbf_gige (LP: #1969374)
    - gpiolib: acpi: Allow to find GpioInt() resource by name and index

linux-bluefield (5.4.0-1034.37) focal; urgency=medium

  * focal/linux-bluefield: 5.4.0-1034.37 -proposed tracker (LP:
#1968766)

  * Devlink wasn't enabled from common config (LP: #1968751)
    - [Config] Bluefield: Enable CONFIG_NET_DEVLINK
    - [Config] Bluefield: Enable dummy config options NET_VENDOR_BROADCOM and
      PAGE_POOL

linux-bluefield (5.4.0-1033.36) focal; urgency=medium

  * focal/linux-bluefield: 5.4.0-1033.36 -proposed tracker (LP:
#1967369)

  * Fix flow table lookup failure with no originating ifindex  (LP: #1967892)
    - net/sched: act_ct: Fix flow table lookup failure with no originating 
ifindex

  * Fix OOB handling RX packets in heavy traffic (LP: #1964984)
    - SAUCE: Fix OOB handling RX packets in heavy traffic

  * Pass originating device to drivers offloading ct connection so devices will
    filter the tuples and offload them more efficiently (LP: #1960575)
    - net: openvswitch: Be liberal in tcp conntrack.
    - net/sched: act_ct: Fill offloading tuple iifidx
    - net: openvswitch: Fill act ct extension

  * Fix flow table lookup after ct clear or switching zones  (LP: #1963948)
    - net/sched: act_ct: Fix flow table lookup after ct clear or switching zones

  * CT: Offload only ASSURED connections (LP: #1961819)
    - net/sched: act_ct: Offload only ASSURED connections

  * Sync up gpio interrupt handling with upstreamed version (LP: #1965017)
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: Fix setting the gpio direction to
      output"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: remove phy interrupt"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2: Cleanup and use generic gpio_irq_chip
      struct"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: Support soft reset gpio interrupt"
    - Revert "UBUNTU: SAUCE: gpio-mlxbf2.c: fix spinlock bug and using
      uninitialized work"
    - Revert "UBUNTU: SAUCE: gpio: Add irq support for gpio-mlxbf2"
    - gpio: mlxbf2: remove unused including <linux/version.h>
    - gpio: mlxbf2: fix return value check in mlxbf2_gpio_get_lock_res()
    - gpio: mlxbf2: Fix sleeping while holding spinlock
    - gpio: gpio-mlxbf2: Tell the compiler that ACPI functions may not be use
    - gpio: gpio-mlxbf2.c: Provide __releases() annotation to stop confusing
      Sparse
    - gpio: mlxbf2: Convert to device PM ops
    - gpio: mlxbf2: Drop wrong use of ACPI_PTR()
    - gpio: mlxbf2: Use devm_platform_ioremap_resource()
    - gpio: mlxbf2: Use DEFINE_RES_MEM_NAMED() helper macro
    - gpio: mlxbf2.c: Add check for bgpio_init failure
    - gpio: mlxbf2: Introduce IRQ support
    - SAUCE: gpio-mlxbf2.c: Add version and fix SPDX-License_Identifier
    - SAUCE: i2c-mlxbf.c: remove IRQF_ONESHOT flag
    - [Config] bluefield: CONFIG_POWER_MLXBF=m
    - SAUCE: Add power driver to handle reset interrupt and low power mode
      interrupt

  * Support VF groups rate limit  (LP: #1962490)
    - [Config] Bluefield: disable inbox drivers which are not used
    - devlink: Allow large formatted message of binary output
    - devlink: add support for reporter recovery completion
    - devlink: add macro for "fw.psid"
    - devlink: move devlink documentation to subfolder
    - devlink: correct misspelling of snapshot
    - devlink: Add layer 3 generic packet traps
    - devlink: Add layer 3 generic packet exception traps
    - devlink: Add non-routable packet trap
    - devlink: Add tunnel generic packet traps
    - devlink: Add overlay source MAC is multicast trap
    - devlink: add macro for "fw.roce"
    - devlink: Force enclosing array on binary fmsg data
    - devlink: add ACL generic packet traps
    - devlink: add trap metadata type for cookie
    - devlink: extend devlink_trap_report() to accept cookie and pass
    - devlink: promote "fw.bundle_id" to a generic info version
    - devlink: Add API to register packet trap groups
    - devlink: Stop reference counting packet trap groups
    - devlink: Only pass packet trap group identifier in trap structure
    - devlink: prepare to support region operations
    - devlink: convert snapshot destructor callback to region op
    - devlink: add function to take snapshot while locked
    - devlink: use -ENOSPC to indicate no more room for snapshots
    - devlink: extract snapshot id allocation to helper function
    - devlink: report error once U32_MAX snapshot ids have been used
    - net: devlink: allow to change namespaces during reload
    - net: devlink: export devlink net getter
    - net: devlink: export devlink net setter
    - devlink: track snapshot id usage count using an xarray
    - devlink: implement DEVLINK_CMD_REGION_NEW
    - devlink: Add macro for "fw.mgmt.api" to info_get cb.
    - devlink: Implicitly set auto recover flag when registering health reporter
    - devlink: propagate extack down to health reporter ops
    - devlink: add devink notification when reporter update health state
    - devlink: Add health recover notifications on devlink flows
    - devlink: Add auto dump flag to health reporter
    - devlink: Add packet trap policers support
    - devlink: Add packet trap group parameters support
    - devlink: Allow setting of packet trap group parameters
    - devlink: Create dedicated trap group for layer 3 exceptions
    - devlink: Add layer 2 control packet traps
    - devlink: Add layer 3 control packet traps
    - devlink: Add ACL control packet traps
    - net/devlink: Support querying hardware address of port function
    - net/devlink: Support setting hardware address of port function
    - devlink: Add support for board.serial_number to info_get cb.
    - devlink: Move set attribute of devlink_port_attrs to devlink_port
    - devlink: Move switch_port attribute of devlink_port_attrs to devlink_port
    - devlink: Replace devlink_port_attrs_set parameters with a struct
    - devlink: Add a new devlink port lanes attribute and pass to netlink
    - devlink: Add a new devlink port split ability attribute and pass to 
netlink
    - devlink: Refactor devlink health reporter constructor
    - devlink: Create generic devlink health reporter search function
    - devlink: Implement devlink health reporters on per-port basis
    - devlink: Add devlink health port reporters API
    - devlink: Add comment for devlink instance lock
    - mlxsw: spectrum: Use different trap group for externally routed packets
    - devlink: Add early_drop trap
    - devlink: Pass extack when setting trap's action and group's parameters
    - devlink: Add comment block for missing port attributes
    - devlink: Move structure comments outside of structure
    - devlink: Introduce external controller flag
    - devlink: Introduce controller number
    - devlink: introduce the health reporter test command
    - devlink: add timeout information to status_notify
    - devlink: collect flash notify params into a struct
    - net: devlink: regions: Add a priv member to the regions ops struct
    - devlink: let kernel allocate region snapshot id
    - net: devlink: region: Pass the region ops to the snapshot function
    - devlink: check flash_update parameter support in net core
    - devlink: convert flash_update to use params structure
    - devlink: introduce flash update overwrite mask
    - devlink: Add a tracepoint for trap reports
    - drop_monitor: Filter control packets in drop monitor
    - devlink: add parser error drop packet traps
    - devlink: add .trap_group_action_set() callback
    - genetlink: reorg struct genl_family
    - net: genetlink: push doit/dumpit code from genl_family_rcv_msg
    - net: genetlink: introduce dump info struct to be available during dumpit 
op
    - net: genetlink: push attrbuf allocation and parsing to a separate function
    - net: genetlink: parse attrs and store in contect info struct during dumpit
    - net: genetlink: remove unused genl_family_attrbuf()
    - net: genetlink: always allocate separate attrs for dumpit ops
    - genetlink: do not parse attributes for families with zero maxattr
    - net: genetlink: return the error code when attribute parsing fails.
    - devlink: have genetlink code to parse the attrs during dumpit
    - devlink: Fix per port reporter fields initialization
    - devlink: refactor end checks in devlink_nl_cmd_region_read_dumpit
    - net: devlink: Add support for port regions
    - devlink: ignore -EOPNOTSUPP errors on dumpit
    - devlink: Add reload action option to devlink reload command
    - net: sched: Allow extending set of supported RED flags
    - net: sched: RED: Introduce an ECN nodrop mode
    - net: introduce nla_put_bitfield32() helper and use it
    - netlink: remove type-unsafe validation_data pointer
    - devlink: Change devlink_reload_supported() param type
    - devlink: Add devlink reload limit option
    - devlink: Add reload stats
    - devlink: Add remote reload stats
    - devlink: Add enable_remote_dev_reset generic parameter
    - devlink: move request_firmware out of driver
    - devlink: move flash end and begin to core devlink
    - devlink: Add blackhole_nexthop trap
    - devlink: Prepare code to fill multiple port function attributes
    - devlink: Introduce devlink port flavour virtual
    - net: devlink: Add unused port flavour
    - devlink: Introduce PCI SF port flavour and port attribute
    - devlink: Support add and delete devlink port
    - devlink: Support get and set state of port function
    - mlxsw: Register physical ports as a devlink resource
    - devlink: Add DMAC filter generic packet trap
    - devlink: Fix dmac_filter trap name, align to its documentation
    - devlink: Extend SF port attributes to have external attribute
    - devlink: Always use user_ptr[0] for devlink and simplify post_doit
    - devlink: Introduce rate object
    - devlink: Allow setting tx rate for devlink rate leaf objects
    - devlink: Introduce rate nodes
    - devlink: Allow setting parent node of rate objects
    - devlink: Remove eswitch mode check for mode set call
    - devlink: Protect rate list with lock while switching modes
    - net: core: devlink: add dropped stats traps field
    - devlink: Remove duplicated registration check
    - devlink: Break parameter notification sequence to be before/after
      unload/load driver
    - devlink: Allocate devlink directly in requested net namespace
    - devlink: factor out building a snapshot notification
    - devlink: Remove check of always valid devlink pointer
    - devlink: Add 'control' trap type
    - drop_monitor: Convert to using devlink tracepoint
    - devlink: Rework devlink health reporter destructor
    - devlink: Fix reload stats structure

  [ Ubuntu: 5.4.0-109.123 ]

  * focal/linux: 5.4.0-109.123 -proposed tracker (LP: #1968290)
  * USB devices not detected during boot on USB 3.0 hubs (LP: #1968210)
    - SAUCE: Revert "Revert "xhci: Set HCD flag to defer primary roothub
      registration""
    - SAUCE: Revert "Revert "usb: core: hcd: Add support for deferring roothub
      registration""

  [ Ubuntu: 5.4.0-108.122 ]

  * focal/linux: 5.4.0-108.122 -proposed tracker (LP: #1966740)
  * Packaging resync (LP: #1786013)
    - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5
    - debian/dkms-versions -- update from kernel-versions (main/2022.03.21)
  * Low RX performance for 40G Solarflare NICs (LP: #1964512)
    - SAUCE: sfc: The size of the RX recycle ring should be more flexible
  * [UBUNTU 20.04] KVM: Enable storage key checking for intercepted instruction
    (LP: #1962831)
    - selftests: kvm: add _vm_ioctl
    - selftests: kvm: Introduce the TEST_FAIL macro
    - KVM: selftests: Add GUEST_ASSERT variants to pass values to host
    - KVM: s390: gaccess: Refactor gpa and length calculation
    - KVM: s390: gaccess: Refactor access address range check
    - KVM: s390: gaccess: Cleanup access to guest pages
    - s390/uaccess: introduce bit field for OAC specifier
    - s390/uaccess: fix compile error
    - s390/uaccess: Add copy_from/to_user_key functions
    - KVM: s390: Honor storage keys when accessing guest memory
    - KVM: s390: handle_tprot: Honor storage keys
    - KVM: s390: selftests: Test TEST PROTECTION emulation
    - KVM: s390: Add optional storage key checking to MEMOP IOCTL
    - KVM: s390: Add vm IOCTL for key checked guest absolute memory access
    - KVM: s390: Rename existing vcpu memop functions
    - KVM: s390: Add capability for storage key extension of MEM_OP IOCTL
    - KVM: s390: Update api documentation for memop ioctl
    - KVM: s390: Clarify key argument for MEM_OP in api docs
    - KVM: s390: Add missing vm MEM_OP size check
  * 【sec-0911】 fail to reset sec module (LP: #1943301)
    - crypto: hisilicon/sec2 - Add workqueue for SEC driver.
    - crypto: hisilicon/sec2 - update SEC initialization and reset
  * Lots of hisi_qm zombie task slow down system after stress test
    (LP: #1932117)
    - crypto: hisilicon - Use one workqueue per qm instead of per qp
  * Lots of hisi_qm zombie task slow down system after stress test
    (LP: #1932117) // 【sec-0911】 fail to reset sec module (LP: #1943301)
    - crypto: hisilicon - Unify hardware error init/uninit into QM
  * [UBUNTU 20.04] Fix SIGP processing on KVM/s390 (LP: #1962578)
    - KVM: s390: Simplify SIGP Set Arch handling
    - KVM: s390: Add a routine for setting userspace CPU state
  * Move virtual graphics drivers from linux-modules-extra to linux-modules
    (LP: #1960633)
    - [Packaging] Move VM DRM drivers into modules
  * Focal update: v5.4.178 upstream stable release (LP: #1964634)
    - audit: improve audit queue handling when "audit=1" on cmdline
    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()
    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()
    - ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()
    - ALSA: usb-audio: Simplify quirk entries with a macro
    - ALSA: hda/realtek: Add quirk for ASUS GU603
    - ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220
      quirks
    - ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer
      chipset)
    - ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after
      reboot from Windows
    - btrfs: fix deadlock between quota disable and qgroup rescan worker
    - drm/nouveau: fix off by one in BIOS boundary checking
    - mm/kmemleak: avoid scanning potential huge holes
    - block: bio-integrity: Advance seed correctly for larger interval sizes
    - memcg: charge fs_context and legacy_fs_context
    - IB/rdmavt: Validate remote_addr during loopback atomic tests
    - RDMA/siw: Fix broken RDMA Read Fence/Resume logic.
    - RDMA/mlx4: Don't continue event handler after memory allocation failure
    - iommu/vt-d: Fix potential memory leak in intel_setup_irq_remapping()
    - iommu/amd: Fix loop timeout issue in iommu_ga_log_enable()
    - spi: bcm-qspi: check for valid cs before applying chip select
    - spi: mediatek: Avoid NULL pointer crash in interrupt
    - spi: meson-spicc: add IRQ check in meson_spicc_probe
    - net: ieee802154: hwsim: Ensure proper channel selection at probe time
    - net: ieee802154: mcr20a: Fix lifs/sifs periods
    - net: ieee802154: ca8210: Stop leaking skb's
    - net: ieee802154: Return meaningful error codes from the netlink helpers
    - net: macsec: Verify that send_sci is on when setting Tx sci explicitly
    - net: stmmac: dump gmac4 DMA registers correctly
    - net: stmmac: ensure PTP time register reads are consistent
    - drm/i915/overlay: Prevent divide by zero bugs in scaling
    - ASoC: fsl: Add missing error handling in pcm030_fabric_probe
    - ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period 
bytes
    - ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name
    - ASoC: max9759: fix underflow in speaker_gain_control_put()
    - pinctrl: bcm2835: Fix a few error paths
    - scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe
    - nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client.
    - selftests: futex: Use variable MAKE instead of make
    - rtc: cmos: Evaluate century appropriate
    - EDAC/altera: Fix deferred probing
    - EDAC/xgene: Fix deferred probing
    - ext4: fix error handling in ext4_restore_inline_data()
    - cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning
    - Linux 5.4.178
  * Focal update: v5.4.177 upstream stable release (LP: #1964628)
    - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
    - psi: Fix uaf issue when psi trigger is destroyed while being polled
    - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
    - net: amd-xgbe: ensure to reset the tx_timer_active flag
    - net: amd-xgbe: Fix skb data length underflow
    - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
    - cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
    - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
    - Linux 5.4.177
  * Focal update: v5.4.176 upstream stable release (LP: #1962345)
    - s390/hypfs: include z/VM guests with access control group set
    - scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP
      devices
    - udf: Restore i_lenAlloc when inode expansion fails
    - udf: Fix NULL ptr deref when converting from inline format
    - PM: wakeup: simplify the output logic of pm_show_wakelocks()
    - tracing/histogram: Fix a potential memory leak for kstrdup()
    - tracing: Don't inc err_log entry count if entry allocation fails
    - fsnotify: fix fsnotify hooks in pseudo filesystems
    - drm/etnaviv: relax submit size limits
    - arm64: errata: Fix exec handling in erratum 1418040 workaround
    - netfilter: nft_payload: do not update layer 4 checksum when mangling
      fragments
    - serial: 8250: of: Fix mapped region size when using reg-offset property
    - serial: stm32: fix software flow control transfer
    - tty: n_gsm: fix SW flow control encoding/handling
    - tty: Add support for Brainboxes UC cards.
    - usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
    - usb: common: ulpi: Fix crash in ulpi_match()
    - usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
    - USB: core: Fix hang in usb_kill_urb by adding memory barriers
    - usb: typec: tcpm: Do not disconnect while receiving VBUS off
    - ucsi_ccg: Check DEV_INT bit only when starting CCG4
    - net: sfp: ignore disabled SFP node
    - powerpc/32: Fix boot failure with GCC latent entropy plugin
    - i40e: Increase delay to 1 s after global EMP reset
    - i40e: Fix issue when maximum queues is exceeded
    - i40e: Fix queues reservation for XDP
    - i40e: fix unsigned stat widths
    - rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
    - rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
    - scsi: bnx2fc: Flush destroy_work queue before calling 
bnx2fc_interface_put()
    - ipv6_tunnel: Rate limit warning messages
    - net: fix information leakage in /proc/net/ptype
    - hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
    - hwmon: (lm90) Mark alert as broken for MAX6680
    - ping: fix the sk_bound_dev_if match in ping_lookup
    - ipv4: avoid using shared IP generator for connected sockets
    - hwmon: (lm90) Reduce maximum conversion rate for G781
    - NFSv4: Handle case where the lookup of a directory fails
    - NFSv4: nfs_atomic_open() can race when looking up a non-regular file
    - net-procfs: show net devices bound packet types
    - drm/msm: Fix wrong size calculation
    - drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
    - drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
    - ipv6: annotate accesses to fn->fn_sernum
    - NFS: Ensure the server has an up to date ctime before hardlinking
    - NFS: Ensure the server has an up to date ctime before renaming
    - netfilter: conntrack: don't increment invalid counter on NF_REPEAT
    - net: phy: broadcom: hook up soft_reset for BCM54616S
    - phylib: fix potential use-after-free
    - rxrpc: Adjust retransmission backoff
    - hwmon: (lm90) Mark alert as broken for MAX6654
    - ibmvnic: init ->running_cap_crqs early
    - ibmvnic: don't spin in tasklet
    - drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
    - yam: fix a memory leak in yam_siocdevprivate()
    - net: hns3: handle empty unknown interrupt for VF
    - ipv4: raw: lock the socket in raw_bind()
    - ipv4: tcp: send zero IPID in SYNACK messages
    - ipv4: remove sparse error in ip_neigh_gw4()
    - dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
    - fsnotify: invalidate dcache before IN_DELETE event
    - block: Fix wrong offset in bio_truncate()
    - mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
    - Linux 5.4.176
  * Focal update: v5.4.175 upstream stable release (LP: #1962330)
    - rcu: Tighten rcu_advance_cbs_nowake() checks
    - pinctrl: bcm2835: Drop unused define
    - pinctrl: bcm2835: Refactor platform data
    - pinctrl: bcm2835: Add support for all GPIOs on BCM2711
    - pinctrl: bcm2835: Match BCM7211 compatible string
    - pinctrl: bcm2835: Add support for wake-up interrupts
    - pinctrl: bcm2835: Change init order for gpio hogs
    - ARM: dts: gpio-ranges property is now required
    - mmc: sdhci-esdhc-imx: disable CMDQ support
    - select: Fix indefinitely sleeping task in poll_schedule_timeout()
    - Linux 5.4.175

 -- Zachary Tahenakos <zachary.tahena...@canonical.com>  Tue, 19 Apr
2022 14:28:12 -0400

** Changed in: linux-bluefield (Ubuntu Focal)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-bluefield in Ubuntu.
https://bugs.launchpad.net/bugs/1960575

Title:
  Pass originating device to drivers offloading ct connection so devices
  will filter the tuples and offload them more efficiently

Status in linux-bluefield package in Ubuntu:
  Invalid
Status in linux-bluefield source package in Focal:
  Fix Released

Bug description:
  * Explain the feature
   
      Currently, drivers register to a ct zone that can be shared by multiple
      devices. This can be inefficient for the driver to offload, as it
      needs to handle all the cases where the tuple can come from,
      instead of where it's most likely will arive from.

      For example, consider the following tc rules:
      tc filter add dev dev1 ... flower action ct commit zone 5 \
         action mirred egress redirect dev dev2

      tc filter add dev dev2 ... flower action ct zone 5 \
         action goto chain chain 2
      tc filter add dev dev2 ... flower ct_state +trk+est ... \
         action mirred egress redirect dev dev1

      Both dev2 and dev1 register to the zone 5 flow table (created
      by act_ct). A tuple originating on dev1, going to dev2, will
      be offloaded to both devices, and both will need to offload
      both directions, resulting in 4 total rules. The traffic
      will only hit originiating tuple on dev1, and reply tuple
      on dev2.

      By passing the originating device that created the connection
      with the tuple, dev1 can choose to offload only the originating
      tuple, and dev2 only the reply tuple. Resulting in a more
      efficient offload.

      The first patch adds an act_ct nf conntrack extension, to
      temporarily store the originiating device from the skb before
      offloading the connection once the connection is established.
      Once sent to offload, it fills the tuple originating device.

      The second patch get this information from tuples
      which pass in openvswitch.

      The third patch is Mellanox driver ct offload implementation using
      this information to provide a hint to firmware of where this
      offloaded tuple packets will arrive from (LOCAL or UPLINK port),
      and thus increase insertion rate.

   
  * How to test
   
  Create OVS bridge with 2 devices mlx5 rep devices.
  Enable HW offload and configure regular connection tracking OpenFlow rules:

  e.g:
      ovs-ofctl del-flows br-ovs
      ovs-ofctl add-flow br-ovs arp,actions=normal
      ovs-ofctl add-flow br-ovs "table=0, ip,ct_state=-trk actions=ct(table=1)"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+new 
actions=ct(commit),normal"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+est, actions=normal"

  With SW steering enabled and the above commits (and up to date ofed) tuple 
insertion rate should be about
  twice as fast. This can be seen via procfs hw offloaded count while running 
high traffic:
  while true; do res=`sudo cat /proc/net/nf_conntrack | grep -i offload` && 
echo "$res" && echo "$res" | wc -l; done

  * What it could break.
   
  NA

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-bluefield/+bug/1960575/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to