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  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,  3 Feb 2016 11:47:56 +0100
From:	Jiri Pirko <>
Subject: [patch net-next RFC 0/6] Introduce devlink interface and first drivers to use it

From: Jiri Pirko <>

There a is need for some userspace API that would allow to expose things
that are not directly related to any device class like net_device of
ib_device, but rather chip-wide/switch-ASIC-wide stuff.

Use cases:
1) get/set of port type (Ethernet/InfiniBand)
2) monitoring of hardware messages to and from chip
3) setting up port splitters - split port into multiple ones and squash again,
   enables usage of splitter cable
4) setting up shared buffers - shared among multiple ports within one chip

First patch of this set introduces a new generic Netlink based interface,
called "devlink". It is similar to nl80211 model and it is heavily
influenced by it, including the API definition. The devlink introduction patch
implements use cases 1) and 2). Other 2 are in development atm and will
be addressed by follow-ups.

It is very convenient for drivers to use devlink, as you can see in other
patches in this set.

Counterpart for devlink is userspace tool called "dl". Command line interface
and outputs are derived from "ip" tool so it should be easy for users to get
used to it.

It is available here:

Example usage:
butter:~$ dl help
Usage: dl [ OPTIONS ] OBJECT { COMMAND | help }
where  OBJECT := { dev | port | monitor }
       OPTIONS := { -v/--verbose }

butter:~$ dl dev show
0: devlink0: bus pci dev 0000:01:00.0

butter:~$ dl port help
Usage: dl port show [DEV/PORT_INDEX]
Usage: dl port set DEV/PORT_INDEX [ type { eth | ib | auto} ]

butter:~$ dl port show
devlink0/1: type ib ibdev mlx4_0
devlink0/2: type ib ibdev mlx4_0

butter:~$ sudo dl port set devlink0/1 type eth

butter:~$ dl port show
devlink0/1: type eth netdev ens4
devlink0/2: type ib ibdev mlx4_0

butter:~$ sudo dl port set devlink0/1 type auto

butter:~$ dl port show
devlink0/1: type eth(auto) netdev ens4
devlink0/2: type ib ibdev mlx4_0

Jiri Pirko (6):
  Introduce devlink infrastructure
  mlxsw: Implement devlink interface
  mlxsw: Implement hardware messages notification using devlink
  mlx4: Implement devlink interface
  mlx4: Implement hardware messages notification using devlink
  mlx4: Implement port type setting via devlink interface

 MAINTAINERS                                    |   8 +
 drivers/infiniband/hw/mlx4/main.c              |   7 +
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c |   8 +-
 drivers/net/ethernet/mellanox/mlx4/fw.c        |   9 +
 drivers/net/ethernet/mellanox/mlx4/intf.c      |   9 +
 drivers/net/ethernet/mellanox/mlx4/main.c      | 129 +++-
 drivers/net/ethernet/mellanox/mlx4/mlx4.h      |   2 +
 drivers/net/ethernet/mellanox/mlxsw/core.c     |  39 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c |  20 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h |   2 +
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c |  20 +
 include/linux/mlx4/driver.h                    |   3 +
 include/net/devlink.h                          | 152 +++++
 include/uapi/linux/devlink.h                   |  84 +++
 net/Kconfig                                    |   7 +
 net/core/Makefile                              |   1 +
 net/core/devlink.c                             | 856 +++++++++++++++++++++++++
 17 files changed, 1313 insertions(+), 43 deletions(-)
 create mode 100644 include/net/devlink.h
 create mode 100644 include/uapi/linux/devlink.h
 create mode 100644 net/core/devlink.c


Powered by blists - more mailing lists