mbox series

[net-next,0/9] ionic: add vlanid overflow management

Message ID 20211009184523.73154-1-snelson@pensando.io (mailing list archive)
Headers show
Series ionic: add vlanid overflow management | expand

Message

Shannon Nelson Oct. 9, 2021, 6:45 p.m. UTC
Add vlans to the existing rx_filter_sync mechanics currently
used for managing mac filters.

Older versions of our firmware had no enforced limits on the
number of vlans that the driver could request, but requesting
large numbers of vlans caused issues in FW memory management,
so an arbitrary limit was added in the FW.  The FW now
returns -ENOSPC when it hits that limit, which the driver
needs to handle.

Unfortunately, the FW doesn't advertise the vlan id limit,
as it does with mac filters, so the driver won't know the
limit until it bumps into it.  We'll grab the current vlan id
count and use that as the limit from there on and thus prevent
getting any more -ENOSPC errors.

Just as is done for the mac filters, the device puts the device
into promiscuous mode when -ENOSPC is seen for vlan ids, and
the driver will track the vlans that aren't synced to the FW.
When vlans are removed, the driver will retry the un-synced
vlans.  If all outstanding vlans are synced, the promiscuous
mode will be disabled.

The first 6 patches rework the existing filter management to
make it flexible enough for additional filter types.  Next
we add the vlan ids into the management.  The last 2 patches
allow us to catch the max vlan -ENOSPC error without adding
an unnecessary error message to the kernel log.

Shannon Nelson (9):
  ionic: add filterlist to debugfs
  ionic: move lif mac address functions
  ionic: remove mac overflow flags
  ionic: add generic filter search
  ionic: generic filter add
  ionic: generic filter delete
  ionic: handle vlan id overflow
  ionic: allow adminq requests to override default error message
  ionic: tame the filter no space message

 drivers/net/ethernet/pensando/ionic/ionic.h   |   7 +-
 .../ethernet/pensando/ionic/ionic_debugfs.c   |  46 ++++
 .../net/ethernet/pensando/ionic/ionic_lif.c   | 190 +-------------
 .../net/ethernet/pensando/ionic/ionic_lif.h   |   4 +-
 .../net/ethernet/pensando/ionic/ionic_main.c  |  47 ++--
 .../net/ethernet/pensando/ionic/ionic_phc.c   |   8 +-
 .../ethernet/pensando/ionic/ionic_rx_filter.c | 241 +++++++++++++++++-
 .../ethernet/pensando/ionic/ionic_rx_filter.h |   2 +
 8 files changed, 345 insertions(+), 200 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Oct. 10, 2021, 9:50 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Sat,  9 Oct 2021 11:45:14 -0700 you wrote:
> Add vlans to the existing rx_filter_sync mechanics currently
> used for managing mac filters.
> 
> Older versions of our firmware had no enforced limits on the
> number of vlans that the driver could request, but requesting
> large numbers of vlans caused issues in FW memory management,
> so an arbitrary limit was added in the FW.  The FW now
> returns -ENOSPC when it hits that limit, which the driver
> needs to handle.
> 
> [...]

Here is the summary with links:
  - [net-next,1/9] ionic: add filterlist to debugfs
    https://git.kernel.org/netdev/net-next/c/c1634b118e84
  - [net-next,2/9] ionic: move lif mac address functions
    https://git.kernel.org/netdev/net-next/c/1d4ddc4a5370
  - [net-next,3/9] ionic: remove mac overflow flags
    https://git.kernel.org/netdev/net-next/c/4ed642cc6538
  - [net-next,4/9] ionic: add generic filter search
    https://git.kernel.org/netdev/net-next/c/ff542fbe5d55
  - [net-next,5/9] ionic: generic filter add
    https://git.kernel.org/netdev/net-next/c/eba688b15d34
  - [net-next,6/9] ionic: generic filter delete
    https://git.kernel.org/netdev/net-next/c/c2b63d3449d3
  - [net-next,7/9] ionic: handle vlan id overflow
    https://git.kernel.org/netdev/net-next/c/9b0b6ba6226e
  - [net-next,8/9] ionic: allow adminq requests to override default error message
    https://git.kernel.org/netdev/net-next/c/8c9d956ab6fb
  - [net-next,9/9] ionic: tame the filter no space message
    https://git.kernel.org/netdev/net-next/c/f91958cc9622

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html