All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, idosch@mellanox.com, eladr@mellanox.com,
	yotamg@mellanox.com, ogerlitz@mellanox.com, yishaih@mellanox.com,
	dledford@redhat.com, sean.hefty@intel.com,
	hal.rosenstock@gmail.com, eugenia@mellanox.com,
	roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
	hadarh@mellanox.com, jhs@mojatatu.com, john.fastabend@gmail.com,
	jeffrey.t.kirsher@intel.com, jbenc@redhat.com
Subject: [patch net-next RFC 0/6] Introduce devlink interface and first drivers to use it
Date: Wed,  3 Feb 2016 11:47:56 +0100	[thread overview]
Message-ID: <1454496482-13961-1-git-send-email-jiri@resnulli.us> (raw)

From: Jiri Pirko <jiri@mellanox.com>

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:
https://github.com/jpirko/devlink

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

-- 
1.9.3

             reply	other threads:[~2016-02-03 10:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 10:47 Jiri Pirko [this message]
2016-02-03 10:47 ` [patch net-next RFC 1/6] Introduce devlink infrastructure Jiri Pirko
2016-02-11 14:31   ` Ivan Vecera
2016-02-11 16:54     ` Jiri Pirko
2016-02-03 10:47 ` [patch net-next RFC 2/6] mlxsw: Implement devlink interface Jiri Pirko
2016-02-03 10:47 ` [patch net-next RFC 3/6] mlxsw: Implement hardware messages notification using devlink Jiri Pirko
2016-02-03 10:48 ` [patch net-next RFC 4/6] mlx4: Implement devlink interface Jiri Pirko
2016-02-16 16:43   ` Or Gerlitz
2016-02-16 16:51     ` Jiri Pirko
2016-02-03 10:48 ` [patch net-next RFC 5/6] mlx4: Implement hardware messages notification using devlink Jiri Pirko
2016-02-03 10:48 ` [patch net-next RFC 6/6] mlx4: Implement port type setting via devlink interface Jiri Pirko
2016-02-03 13:31 ` [patch net-next RFC 0/6] Introduce devlink interface and first drivers to use it Jesper Dangaard Brouer
2016-02-03 13:33   ` Jiri Pirko
2016-02-03 15:17     ` Daniel Borkmann
2016-02-04 13:22       ` Hannes Frederic Sowa
2016-02-04 13:26         ` Jiri Pirko
2016-02-05 10:01           ` Hannes Frederic Sowa
2016-02-05 17:38             ` Alexei Starovoitov
2016-02-06 19:40               ` Jiri Pirko
2016-02-08 10:15                 ` Hannes Frederic Sowa
2016-02-08 10:55                   ` Jiri Pirko
2016-02-08 12:11                     ` Hannes Frederic Sowa
2016-02-04 19:01       ` Rosen, Rami
2016-02-05 14:29         ` Jesper Dangaard Brouer
2016-02-07 20:18 ` roopa
2016-02-08 19:00   ` Doug Ledford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1454496482-13961-1-git-send-email-jiri@resnulli.us \
    --to=jiri@resnulli.us \
    --cc=davem@davemloft.net \
    --cc=dledford@redhat.com \
    --cc=eladr@mellanox.com \
    --cc=eugenia@mellanox.com \
    --cc=hadarh@mellanox.com \
    --cc=hal.rosenstock@gmail.com \
    --cc=idosch@mellanox.com \
    --cc=jbenc@redhat.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=jhs@mojatatu.com \
    --cc=john.fastabend@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@cumulusnetworks.com \
    --cc=ogerlitz@mellanox.com \
    --cc=roopa@cumulusnetworks.com \
    --cc=sean.hefty@intel.com \
    --cc=yishaih@mellanox.com \
    --cc=yotamg@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.