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]
Message-Id: <1397736876-11771-1-git-send-email-jiri@resnulli.us>
Date:	Thu, 17 Apr 2014 14:14:27 +0200
From:	Jiri Pirko <jiri@...nulli.us>
To:	netdev@...r.kernel.org
Cc:	davem@...emloft.net, nhorman@...driver.com, andy@...yhouse.net,
	tgraf@...g.ch, dborkman@...hat.com, ogerlitz@...lanox.com,
	jesse@...ira.com, pshelar@...ira.com, azhou@...ira.com,
	ben@...adent.org.uk, stephen@...workplumber.org,
	jeffrey.t.kirsher@...el.com, vyasevic@...hat.com,
	xiyou.wangcong@...il.com, john.r.fastabend@...el.com,
	edumazet@...gle.com, jhs@...atatu.com, sfeldma@...ulusnetworks.com,
	f.fainelli@...il.com, roopa@...ulusnetworks.com,
	linville@...driver.com, dev@...nvswitch.org, jasowang@...hat.com,
	ebiederm@...ssion.com, nicolas.dichtel@...nd.com,
	ryazanov.s.a@...il.com, buytenh@...tstofly.org,
	aviadr@...lanox.com, nbd@...nwrt.org, alexei.starovoitov@...il.com,
	Neil.Jerram@...aswitch.com
Subject: [patch net-next RFC v3 00/10] introduce infrastructure for support of switch chip datapath

The basic idea is to introduce a generic infractructure to support various
switch chips in kernel.

The current patchset RFC is a heavy rework of the previous ones. The goal is to
be low-intrusive and to use as much as possible from the existing
infrastructure.

Also the idea is to benefit from currently existing Open vSwitch userspace
infrastructure prividing a HW offload for it. Note that this is just one
usecase. Other sw*dev_ndos can be easily added to support many more usecases,

Please see Documentation/networking/switchdev.txt for more details about
the model.

Next step would be to introduce a flag via which OVS userspace could tell if the
flow should be inserted in HW or just in the SW datapath. That would extend current
2 level cashing (kernel, userspace) to 3 level (hw, kernel, userspace).

Next step would be to improve internal kernel notifiers and introduce a listener
which would call sw*dev_ndos to setup the switch according to what the user
wants. This would allow a usecase then a user configures bridges, bonds, etc and
the switch chip underneath gets configured by that.

Any suggestions, feedbacks welcome.

Jiri Pirko (10):
  openvswitch: split flow structures into ovs specific and generic ones
  net: rename netdev_phys_port_id to more generic name
  net: introduce generic switch devices support
  rtnl: expose physical switch id for particular device
  switchdev: introduce basic support for flows
  net: introduce dummy switch
  dsa: implement ndo_swdev_get_id
  net: add netdev_for_each_all_lower_dev_rcu helper
  openvswitch: introduce vport_op get_netdev
  openvswitch: add support for datapath hardware offload

 Documentation/networking/switchdev.txt           |  53 +++++++
 drivers/net/Kconfig                              |   7 +
 drivers/net/Makefile                             |   1 +
 drivers/net/dummyswitch.c                        | 126 +++++++++++++++++
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   2 +-
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c   |   2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |   2 +-
 include/linux/netdevice.h                        |  74 ++++++++--
 include/linux/sw_flow.h                          | 122 ++++++++++++++++
 include/linux/switchdev.h                        |  55 ++++++++
 include/uapi/linux/if_link.h                     |  10 ++
 net/Kconfig                                      |   6 +
 net/core/Makefile                                |   1 +
 net/core/dev.c                                   |  28 ++--
 net/core/net-sysfs.c                             |   2 +-
 net/core/rtnetlink.c                             |  30 +++-
 net/core/switchdev.c                             |  90 ++++++++++++
 net/dsa/slave.c                                  |  16 +++
 net/openvswitch/Makefile                         |   3 +-
 net/openvswitch/datapath.c                       |  63 +++++----
 net/openvswitch/datapath.h                       |   4 +-
 net/openvswitch/dp_notify.c                      |   7 +-
 net/openvswitch/flow.c                           |  14 +-
 net/openvswitch/flow.h                           | 123 ++++------------
 net/openvswitch/flow_netlink.c                   |  24 ++--
 net/openvswitch/flow_netlink.h                   |   4 +-
 net/openvswitch/flow_table.c                     | 100 ++++++-------
 net/openvswitch/flow_table.h                     |  18 +--
 net/openvswitch/hw_offload.c                     | 170 +++++++++++++++++++++++
 net/openvswitch/hw_offload.h                     |  31 +++++
 net/openvswitch/vport-gre.c                      |   4 +-
 net/openvswitch/vport-internal_dev.c             |  53 ++++---
 net/openvswitch/vport-netdev.c                   |  16 +++
 net/openvswitch/vport-netdev.h                   |  12 --
 net/openvswitch/vport-vxlan.c                    |   2 +-
 net/openvswitch/vport.c                          |   2 +-
 net/openvswitch/vport.h                          |   4 +-
 37 files changed, 1004 insertions(+), 277 deletions(-)
 create mode 100644 Documentation/networking/switchdev.txt
 create mode 100644 drivers/net/dummyswitch.c
 create mode 100644 include/linux/sw_flow.h
 create mode 100644 include/linux/switchdev.h
 create mode 100644 net/core/switchdev.c
 create mode 100644 net/openvswitch/hw_offload.c
 create mode 100644 net/openvswitch/hw_offload.h

-- 
1.9.0

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ