Re: [Qemu-devel] [PATCH v8 0/9] rocker: add new rocker ethernet switch device

2015-03-30 Thread Stefan Hajnoczi
On Fri, Mar 13, 2015 at 09:09:24PM -0700, sfel...@gmail.com wrote:
 From: Scott Feldman sfel...@gmail.com
 
 v8:
 
  - From Stefan Hajnoczi's net-pull-request v3, merge in these changes:
  - Squash David Ahern's clang struct definition warnings fix
  - Squash in Jiri's fix for rocker format string specifiers [Peter]
  - Squash in Windows build fix [Peter]
 
  - In addition, fix 2 compile warnings from net-pull-request v4:
  - Fix compile issue for min glibc 2.12
  - w32: fix 64 bit constant without ULL suffix
 
 v7:
 
  - Per Stefan Hajnoczi comments:
  - #ifdef CONFIG_ROCKER wrapper around qmp/hmp to fix compile when PCI is
disabled or rocker is disabled.
 
 v6:
 
  - Per Stefan Hajnoczi review:
  - Move tests to tests/rocker
  - Fix some mem leaks
  - Fix doc grammer/spelling
  - Per Eric Blake review:
  - Add #optional to optional args comments in qmp interface
  - Add query- prefix to qmp cmds
  - Fix doc grammer/spelling
 
 v5:
 
  - Per Jason Wang review:
  - Fix some missing/wrong references in the rocker.txt spec
  - mark rocker as unmigratable.
 
 v4:
 
  - Per Paolo Bonzini review:
  - move reg_guide.txt to docs/specs/rocker.txt
  - fix some spelling/grammer mistakes in the rocker.txt doc
  - fix some misleading/wrong statements in rocker.txt
  - add double 4-byte access for 64-bit registers
  - define new ROCKER_Exxx to replace usage of errno.h return codes
  - Add patch from David Ahern to timestamp debug output
 
 v3:
 
  - Per Stefan Hajnoczi review:
  - move HMP rocker cmds to info rocker
  - prefix QMP rocker cmds with query-
  - tag QMP cmds as Since 2.3
  - convert structs to typedef with CamelCase naming
  - Remove SDHCI device ID move patch...Paolo Bonzini is addressing
SDHCI move is separate patch.
 
 v2:
 
  - Address reg_guide.txt review comments from Eric Blake
  - Address QMP review comments from Eric Blake
 
 v1:
 
 [This is a collaboration between myself and Jiri Pirko].
 
 This patch set adds a new ethernet switch device, called rocker.  Rocker is
 intended to emulate HW features of switch ASICs found in today's
 data-center-class switch/routers.  The original motivation in creating a new
 device is to accelerate device driver development for ethernet switches in the
 Linux kernel.  A device driver for rocker already exists in the Linux 3.18
 kernel and loads against this device.  Basic L2 switching (bridging)
 functionality is offloaded to the device.  Work continues to enable offloading
 of L3 routing functions and ACLs, as well as support for a flow-based modes,
 such as OpenVSwitch with OpenFlow.  Future support for terminating L2-over-L3
 tunnels is also planned.
 
 The core network processing functions are based on the spec of a real device:
 Broadcom's OF-DPA.  Specifically, rocker borrows OF-DPA's network processing
 pipeline comprised of flow match and action tables.  Only the OF-DPA spec was
 used in constructing rocker.  The rocker developers do not have access to the
 real OF-DPA's software source code, so this is a clean-room, ground-up
 development.
 
 Each rocker device is a PCI device with a memory-mapped register space and
 MSI-X interrupts for command and event processing, as well as CPU-bound I/O.
 Each device can support up to 62 front-panel ports, which present themselves
 as -netdev attachment points.  The device is programmed using OF-DPA flow and
 group tables to setup the flow pipeline.  The programming defines the
 forwarding path for packets ingressing on 'front-panel' ports.  The forwarding
 path can look at L2/L3/L4 packet header to forward the packet to its
 destination.  For the performance path, packets would ingress and egress only
 on the device, and not be passed up to the device driver (or host OS).  The
 slow path for control packets will forward packets to the CPU via the device
 driver for host OS processing.
 
 A QMP/HMP interface is added to give inside into the device's internal port
 configuration and flow/group tables.
 
 A test directory is included with some basic sanity tests to verify the device
 and driver.
 
 David Ahern (1):
   rocker: timestamp on the debug logs helps correlate with events in
 the VM
 
 Scott Feldman (8):
   net: add MAC address string printer
   virtio-net: use qemu_mac_strdup_printf
   rocker: add register programming guide
   pci: add rocker device ID
   pci: add network device class 'other' for network switches
   rocker: add new rocker switch device
   rocker: add tests
   MAINTAINERS: add rocker
 
  MAINTAINERS   |6 +
  default-configs/pci.mak   |1 +
  docs/specs/pci-ids.txt|1 +
  docs/specs/rocker.txt | 1009 ++
  hw/net/Makefile.objs  |4 +
  hw/net/rocker/rocker.c| 1480 ++
  hw/net/rocker/rocker.h|   84 ++
  hw/net/rocker/rocker_desc.c   |  377 +++
  hw/net/rocker/rocker_desc.h   

Re: [Qemu-devel] [PATCH v8 0/9] rocker: add new rocker ethernet switch device

2015-03-30 Thread Scott Feldman
2.4 is fine, thanks
On Mar 30, 2015 7:52 AM, Stefan Hajnoczi stefa...@gmail.com wrote:

 On Fri, Mar 13, 2015 at 09:09:24PM -0700, sfel...@gmail.com wrote:
  From: Scott Feldman sfel...@gmail.com
 
  v8:
 
   - From Stefan Hajnoczi's net-pull-request v3, merge in these changes:
   - Squash David Ahern's clang struct definition warnings fix
   - Squash in Jiri's fix for rocker format string specifiers [Peter]
   - Squash in Windows build fix [Peter]
 
   - In addition, fix 2 compile warnings from net-pull-request v4:
   - Fix compile issue for min glibc 2.12
   - w32: fix 64 bit constant without ULL suffix
 
  v7:
 
   - Per Stefan Hajnoczi comments:
   - #ifdef CONFIG_ROCKER wrapper around qmp/hmp to fix compile when
 PCI is
 disabled or rocker is disabled.
 
  v6:
 
   - Per Stefan Hajnoczi review:
   - Move tests to tests/rocker
   - Fix some mem leaks
   - Fix doc grammer/spelling
   - Per Eric Blake review:
   - Add #optional to optional args comments in qmp interface
   - Add query- prefix to qmp cmds
   - Fix doc grammer/spelling
 
  v5:
 
   - Per Jason Wang review:
   - Fix some missing/wrong references in the rocker.txt spec
   - mark rocker as unmigratable.
 
  v4:
 
   - Per Paolo Bonzini review:
   - move reg_guide.txt to docs/specs/rocker.txt
   - fix some spelling/grammer mistakes in the rocker.txt doc
   - fix some misleading/wrong statements in rocker.txt
   - add double 4-byte access for 64-bit registers
   - define new ROCKER_Exxx to replace usage of errno.h return codes
   - Add patch from David Ahern to timestamp debug output
 
  v3:
 
   - Per Stefan Hajnoczi review:
   - move HMP rocker cmds to info rocker
   - prefix QMP rocker cmds with query-
   - tag QMP cmds as Since 2.3
   - convert structs to typedef with CamelCase naming
   - Remove SDHCI device ID move patch...Paolo Bonzini is addressing
 SDHCI move is separate patch.
 
  v2:
 
   - Address reg_guide.txt review comments from Eric Blake
   - Address QMP review comments from Eric Blake
 
  v1:
 
  [This is a collaboration between myself and Jiri Pirko].
 
  This patch set adds a new ethernet switch device, called rocker.  Rocker
 is
  intended to emulate HW features of switch ASICs found in today's
  data-center-class switch/routers.  The original motivation in creating a
 new
  device is to accelerate device driver development for ethernet switches
 in the
  Linux kernel.  A device driver for rocker already exists in the Linux
 3.18
  kernel and loads against this device.  Basic L2 switching (bridging)
  functionality is offloaded to the device.  Work continues to enable
 offloading
  of L3 routing functions and ACLs, as well as support for a flow-based
 modes,
  such as OpenVSwitch with OpenFlow.  Future support for terminating
 L2-over-L3
  tunnels is also planned.
 
  The core network processing functions are based on the spec of a real
 device:
  Broadcom's OF-DPA.  Specifically, rocker borrows OF-DPA's network
 processing
  pipeline comprised of flow match and action tables.  Only the OF-DPA
 spec was
  used in constructing rocker.  The rocker developers do not have access
 to the
  real OF-DPA's software source code, so this is a clean-room, ground-up
  development.
 
  Each rocker device is a PCI device with a memory-mapped register space
 and
  MSI-X interrupts for command and event processing, as well as CPU-bound
 I/O.
  Each device can support up to 62 front-panel ports, which present
 themselves
  as -netdev attachment points.  The device is programmed using OF-DPA
 flow and
  group tables to setup the flow pipeline.  The programming defines the
  forwarding path for packets ingressing on 'front-panel' ports.  The
 forwarding
  path can look at L2/L3/L4 packet header to forward the packet to its
  destination.  For the performance path, packets would ingress and egress
 only
  on the device, and not be passed up to the device driver (or host OS).
 The
  slow path for control packets will forward packets to the CPU via the
 device
  driver for host OS processing.
 
  A QMP/HMP interface is added to give inside into the device's internal
 port
  configuration and flow/group tables.
 
  A test directory is included with some basic sanity tests to verify the
 device
  and driver.
 
  David Ahern (1):
rocker: timestamp on the debug logs helps correlate with events in
  the VM
 
  Scott Feldman (8):
net: add MAC address string printer
virtio-net: use qemu_mac_strdup_printf
rocker: add register programming guide
pci: add rocker device ID
pci: add network device class 'other' for network switches
rocker: add new rocker switch device
rocker: add tests
MAINTAINERS: add rocker
 
   MAINTAINERS   |6 +
   default-configs/pci.mak   |1 +
   docs/specs/pci-ids.txt|1 +
   docs/specs/rocker.txt | 1009 ++
   hw/net/Makefile.objs 

Re: [Qemu-devel] [PATCH v8 0/9] rocker: add new rocker ethernet switch device

2015-03-26 Thread Scott Feldman
Ping

On Fri, Mar 13, 2015 at 9:09 PM,  sfel...@gmail.com wrote:
 From: Scott Feldman sfel...@gmail.com

 v8:

  - From Stefan Hajnoczi's net-pull-request v3, merge in these changes:
  - Squash David Ahern's clang struct definition warnings fix
  - Squash in Jiri's fix for rocker format string specifiers [Peter]
  - Squash in Windows build fix [Peter]

  - In addition, fix 2 compile warnings from net-pull-request v4:
  - Fix compile issue for min glibc 2.12
  - w32: fix 64 bit constant without ULL suffix

 v7:

  - Per Stefan Hajnoczi comments:
  - #ifdef CONFIG_ROCKER wrapper around qmp/hmp to fix compile when PCI is
disabled or rocker is disabled.

 v6:

  - Per Stefan Hajnoczi review:
  - Move tests to tests/rocker
  - Fix some mem leaks
  - Fix doc grammer/spelling
  - Per Eric Blake review:
  - Add #optional to optional args comments in qmp interface
  - Add query- prefix to qmp cmds
  - Fix doc grammer/spelling

 v5:

  - Per Jason Wang review:
  - Fix some missing/wrong references in the rocker.txt spec
  - mark rocker as unmigratable.

 v4:

  - Per Paolo Bonzini review:
  - move reg_guide.txt to docs/specs/rocker.txt
  - fix some spelling/grammer mistakes in the rocker.txt doc
  - fix some misleading/wrong statements in rocker.txt
  - add double 4-byte access for 64-bit registers
  - define new ROCKER_Exxx to replace usage of errno.h return codes
  - Add patch from David Ahern to timestamp debug output

 v3:

  - Per Stefan Hajnoczi review:
  - move HMP rocker cmds to info rocker
  - prefix QMP rocker cmds with query-
  - tag QMP cmds as Since 2.3
  - convert structs to typedef with CamelCase naming
  - Remove SDHCI device ID move patch...Paolo Bonzini is addressing
SDHCI move is separate patch.

 v2:

  - Address reg_guide.txt review comments from Eric Blake
  - Address QMP review comments from Eric Blake

 v1:

 [This is a collaboration between myself and Jiri Pirko].

 This patch set adds a new ethernet switch device, called rocker.  Rocker is
 intended to emulate HW features of switch ASICs found in today's
 data-center-class switch/routers.  The original motivation in creating a new
 device is to accelerate device driver development for ethernet switches in the
 Linux kernel.  A device driver for rocker already exists in the Linux 3.18
 kernel and loads against this device.  Basic L2 switching (bridging)
 functionality is offloaded to the device.  Work continues to enable offloading
 of L3 routing functions and ACLs, as well as support for a flow-based modes,
 such as OpenVSwitch with OpenFlow.  Future support for terminating L2-over-L3
 tunnels is also planned.

 The core network processing functions are based on the spec of a real device:
 Broadcom's OF-DPA.  Specifically, rocker borrows OF-DPA's network processing
 pipeline comprised of flow match and action tables.  Only the OF-DPA spec was
 used in constructing rocker.  The rocker developers do not have access to the
 real OF-DPA's software source code, so this is a clean-room, ground-up
 development.

 Each rocker device is a PCI device with a memory-mapped register space and
 MSI-X interrupts for command and event processing, as well as CPU-bound I/O.
 Each device can support up to 62 front-panel ports, which present themselves
 as -netdev attachment points.  The device is programmed using OF-DPA flow and
 group tables to setup the flow pipeline.  The programming defines the
 forwarding path for packets ingressing on 'front-panel' ports.  The forwarding
 path can look at L2/L3/L4 packet header to forward the packet to its
 destination.  For the performance path, packets would ingress and egress only
 on the device, and not be passed up to the device driver (or host OS).  The
 slow path for control packets will forward packets to the CPU via the device
 driver for host OS processing.

 A QMP/HMP interface is added to give inside into the device's internal port
 configuration and flow/group tables.

 A test directory is included with some basic sanity tests to verify the device
 and driver.

 David Ahern (1):
   rocker: timestamp on the debug logs helps correlate with events in
 the VM

 Scott Feldman (8):
   net: add MAC address string printer
   virtio-net: use qemu_mac_strdup_printf
   rocker: add register programming guide
   pci: add rocker device ID
   pci: add network device class 'other' for network switches
   rocker: add new rocker switch device
   rocker: add tests
   MAINTAINERS: add rocker

  MAINTAINERS   |6 +
  default-configs/pci.mak   |1 +
  docs/specs/pci-ids.txt|1 +
  docs/specs/rocker.txt | 1009 ++
  hw/net/Makefile.objs  |4 +
  hw/net/rocker/rocker.c| 1480 ++
  hw/net/rocker/rocker.h|   84 ++
  hw/net/rocker/rocker_desc.c   |  377 +++
  hw/net/rocker/rocker_desc.h   |   53 +