lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 12 Dec 2018 11:52:06 +0000
From:   Petr Machata <petrm@...lanox.com>
To:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC:     Jiri Pirko <jiri@...lanox.com>, Ido Schimmel <idosch@...lanox.com>,
        "davem@...emloft.net" <davem@...emloft.net>,
        "ivecera@...hat.com" <ivecera@...hat.com>
Subject: [PATCH net-next 0/9] Pass extack to SWITCHDEV_PORT_OBJ_ADD

Drivers may need to do validation as a result of port object addition.
An example is mlxsw, which needs to check the configuration of a VXLAN
device attached to an offloaded bridge. Without a mapped VLAN, the
invalidity of the device is not important, but as soon as a pvid,
untagged VLAN is configured for the device, it has to be validated and
offloaded. Should the validation fail, there's currently no way to
communicate details of the failure to the user, beyond an error number.

Because currently, extack is not available at all in that area of code,
this patch starts down at the RTNL level and progresses up towards the
driver(s).

In patch #1, ndo_bridge_setlink is updated to include extack, and
callbacks of all clients are updated as well (ignoring the argument).

In patch #2, the bridge driver is updated to propagate the extack
through to the switchdev border, br_switchdev_port_vlan_add().

Patches #3, #4 and #5 then gradually extend switchdev to pass the extack
argument through to the switchdev blocking notifier chain.

Patches #6 and #7 then update mlxsw to pass the extack argument from
VXLAN events resp. port events on to mlxsw_sp_bridge_8021q_vxlan_join().

Finally in patches #8 and #9, the code paths from the previous two
patches are verified to yield an error message.

Petr Machata (9):
  net: ndo_bridge_setlink: Add extack
  net: bridge: Propagate extack to switchdev
  net: switchdev: Add extack argument to switchdev_port_obj_add()
  net: switchdev: Add extack to struct switchdev_notifier_info
  net: switchdev: Add extack to switchdev_handle_port_obj_add() callback
  mlxsw: spectrum_switchdev: Propagate extack on VXLAN VLAN events
  mlxsw: spectrum_switchdev: Propagate extack on port VLAN events
  selftests: mlxsw: extack: Test VLAN add on a VXLAN device
  selftests: mlxsw: extack: Test VLAN add on a port device

 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  2 +-
 drivers/net/ethernet/emulex/benet/be_main.c        |  2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |  4 +-
 drivers/net/ethernet/intel/ice/ice_main.c          |  3 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |  3 +-
 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c   | 53 ++++++++++++-------
 drivers/net/ethernet/mscc/ocelot.c                 |  3 +-
 drivers/net/vxlan.c                                |  1 +
 include/linux/netdevice.h                          |  6 ++-
 include/net/switchdev.h                            | 25 ++++++---
 net/bridge/br_if.c                                 |  2 +-
 net/bridge/br_mdb.c                                |  4 +-
 net/bridge/br_netlink.c                            | 30 ++++++-----
 net/bridge/br_private.h                            | 25 +++++----
 net/bridge/br_switchdev.c                          |  5 +-
 net/bridge/br_vlan.c                               | 59 ++++++++++++---------
 net/core/rtnetlink.c                               |  6 ++-
 net/switchdev/switchdev.c                          | 38 +++++++++-----
 .../testing/selftests/drivers/net/mlxsw/extack.sh  | 61 ++++++++++++++++++++++
 19 files changed, 230 insertions(+), 102 deletions(-)

-- 
2.4.11

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ