From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ycb39-0004Yi-Cj for qemu-devel@nongnu.org; Mon, 30 Mar 2015 10:52:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ycb36-0006Xu-Kt for qemu-devel@nongnu.org; Mon, 30 Mar 2015 10:52:23 -0400 Received: from mail-wg0-x232.google.com ([2a00:1450:400c:c00::232]:36072) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ycb36-0006Xm-9v for qemu-devel@nongnu.org; Mon, 30 Mar 2015 10:52:20 -0400 Received: by wgra20 with SMTP id a20so177246053wgr.3 for ; Mon, 30 Mar 2015 07:52:19 -0700 (PDT) Date: Mon, 30 Mar 2015 15:52:13 +0100 From: Stefan Hajnoczi Message-ID: <20150330145213.GL25181@stefanha-thinkpad.redhat.com> References: <1426306173-24884-1-git-send-email-sfeldma@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="0qVF/w3MHQqLSynd" Content-Disposition: inline In-Reply-To: <1426306173-24884-1-git-send-email-sfeldma@gmail.com> Subject: Re: [Qemu-devel] [PATCH v8 0/9] rocker: add new rocker ethernet switch device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: sfeldma@gmail.com Cc: jiri@resnulli.us, roopa@cumulusnetworks.com, john.fastabend@gmail.com, qemu-devel@nongnu.org, dsahern@gmail.com, pbonzini@redhat.com, jasowang@redhat.com --0qVF/w3MHQqLSynd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Mar 13, 2015 at 09:09:24PM -0700, sfeldma@gmail.com wrote: > From: Scott Feldman >=20 > v8: >=20 > - 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] >=20 > - 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 >=20 > v7: >=20 > - Per Stefan Hajnoczi comments: > - #ifdef CONFIG_ROCKER wrapper around qmp/hmp to fix compile when PC= I is > disabled or rocker is disabled. >=20 > v6: >=20 > - 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 >=20 > v5: >=20 > - Per Jason Wang review: > - Fix some missing/wrong references in the rocker.txt spec > - mark rocker as unmigratable. >=20 > v4: >=20 > - 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 >=20 > v3: >=20 > - 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. >=20 > v2: >=20 > - Address reg_guide.txt review comments from Eric Blake > - Address QMP review comments from Eric Blake >=20 > v1: >=20 > [This is a collaboration between myself and Jiri Pirko]. >=20 > 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 i= n 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 offlo= ading > of L3 routing functions and ACLs, as well as support for a flow-based mod= es, > such as OpenVSwitch with OpenFlow. Future support for terminating L2-ove= r-L3 > tunnels is also planned. >=20 > The core network processing functions are based on the spec of a real dev= ice: > Broadcom's OF-DPA. Specifically, rocker borrows OF-DPA's network process= ing > 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. >=20 > 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 thems= elves > 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 forwa= rding > 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). T= he > slow path for control packets will forward packets to the CPU via the dev= ice > driver for host OS processing. >=20 > A QMP/HMP interface is added to give inside into the device's internal po= rt > configuration and flow/group tables. >=20 > A test directory is included with some basic sanity tests to verify the d= evice > and driver. >=20 > David Ahern (1): > rocker: timestamp on the debug logs helps correlate with events in > the VM >=20 > 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 >=20 > 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 + > hw/net/rocker/rocker_fp.c | 234 +++++ > hw/net/rocker/rocker_fp.h | 51 + > hw/net/rocker/rocker_hw.h | 491 +++++++++ > hw/net/rocker/rocker_of_dpa.c | 2315 +++++++++++++++++++++++++++++++++++= ++++++ > hw/net/rocker/rocker_of_dpa.h | 22 + > hw/net/rocker/rocker_tlv.h | 244 +++++ > hw/net/rocker/rocker_world.c | 106 ++ > hw/net/rocker/rocker_world.h | 60 ++ > hw/net/virtio-net.c | 12 +- > include/hw/pci/pci.h | 1 + > include/hw/pci/pci_ids.h | 1 + > include/net/net.h | 1 + > net/net.c | 7 + > tests/rocker/README | 5 + > tests/rocker/all | 19 + > tests/rocker/bridge | 48 + > tests/rocker/bridge-stp | 57 + > tests/rocker/bridge-vlan | 57 + > tests/rocker/bridge-vlan-stp | 69 ++ > tests/rocker/port | 22 + > tests/rocker/tut.dot | 8 + > 30 files changed, 6836 insertions(+), 9 deletions(-) > create mode 100644 docs/specs/rocker.txt > create mode 100644 hw/net/rocker/rocker.c > create mode 100644 hw/net/rocker/rocker.h > create mode 100644 hw/net/rocker/rocker_desc.c > create mode 100644 hw/net/rocker/rocker_desc.h > create mode 100644 hw/net/rocker/rocker_fp.c > create mode 100644 hw/net/rocker/rocker_fp.h > create mode 100644 hw/net/rocker/rocker_hw.h > create mode 100644 hw/net/rocker/rocker_of_dpa.c > create mode 100644 hw/net/rocker/rocker_of_dpa.h > create mode 100644 hw/net/rocker/rocker_tlv.h > create mode 100644 hw/net/rocker/rocker_world.c > create mode 100644 hw/net/rocker/rocker_world.h > create mode 100644 tests/rocker/README > create mode 100755 tests/rocker/all > create mode 100755 tests/rocker/bridge > create mode 100755 tests/rocker/bridge-stp > create mode 100755 tests/rocker/bridge-vlan > create mode 100755 tests/rocker/bridge-vlan-stp > create mode 100755 tests/rocker/port > create mode 100644 tests/rocker/tut.dot >=20 > --=20 > 1.7.10.4 >=20 Applied to net-next for QEMU 2.4. Due to the build issues that have been experienced, I'm less confident about pushing this into QEMU 2.3 right before release. If there is a strong reason to get it into QEMU 2.3, please let me know. Thanks, applied to my net-next tree: https://github.com/stefanha/qemu/commits/net-next Stefan --0qVF/w3MHQqLSynd Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVGWMdAAoJEJykq7OBq3PIrhYIAMP6b7N0C9mMlfb62bdL7LSy dBHB9xJuXErj1jgbRt0P3iQAj60Mhbcg8GS+y+OQrQwwbfZdGzrF53N1884nhoHZ PgoEyNv/pNh9vy0OoQlTAjy9dJlwbTudF/cGRBsmzbodX0ik74cVrYIndqbjKL9Z Qat4mXftoU784O++8yvxzRCAqWqyK7Onzyf+u0j1P25+9wV+uaYrgYP/nwpsknuQ NBc1mQx0EGeralEBtT/wfghEHuR0WVACecmUA2Gs4wb4G1fUjFcjsQIJgx/Sgqfu 4pUdDldFO44j54njUwKewSXTXT2KC9p0V9W2KzccKLMG+WwRODzD8uWjNFDuBqg= =f+zI -----END PGP SIGNATURE----- --0qVF/w3MHQqLSynd--