All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: sfeldma@gmail.com, qemu-devel@nongnu.org, jiri@resnulli.us,
	roopa@cumulusnetworks.com, john.fastabend@gmail.com,
	eblake@redhat.com, pbonzini@redhat.com, stefanha@gmail.com
Subject: Re: [Qemu-devel] [PATCH v3 7/9] qmp: add rocker device support
Date: Fri, 16 Jan 2015 17:26:17 +0800	[thread overview]
Message-ID: <54B8D939.2020603@redhat.com> (raw)
In-Reply-To: <1420948672-50103-8-git-send-email-sfeldma@gmail.com>


On 01/11/2015 11:57 AM, sfeldma@gmail.com wrote:
> From: Scott Feldman <sfeldma@gmail.com>
>
> Add QMP/HMP support for rocker devices.  This is mostly for debugging purposes
> to see inside the device's tables and port configurations.  Some examples:
>
> (qemu) info rocker sw1
> name: sw1
> id: 0x0000013512005452
> ports: 4
>
> (qemu) info rocker-ports sw1
>             ena/    speed/ auto
>       port  link    duplex neg?
>      sw1.1  up     10G  FD  No
>      sw1.2  up     10G  FD  No
>      sw1.3  !ena   10G  FD  No
>      sw1.4  !ena   10G  FD  No
>
> (qemu) info rocker-of-dpa-flows sw1
> prio tbl hits key(mask) --> actions
> 2    60       lport 1 vlan 1 LLDP src 00:02:00:00:02:00 dst 01:80:c2:00:00:0e
> 2    60       lport 1 vlan 1 ARP src 00:02:00:00:02:00 dst 00:02:00:00:03:00
> 2    60       lport 2 vlan 2 IPv6 src 00:02:00:00:03:00 dst 33:33:ff:00:00:02 proto 58
> 3    50       vlan 2 dst 33:33:ff:00:00:02 --> write group 0x32000001 goto tbl 60
> 2    60       lport 2 vlan 2 IPv6 src 00:02:00:00:03:00 dst 33:33:ff:00:03:00 proto 58
> 3    50  1    vlan 2 dst 33:33:ff:00:03:00 --> write group 0x32000001 goto tbl 60
> 2    60       lport 2 vlan 2 ARP src 00:02:00:00:03:00 dst 00:02:00:00:02:00
> 3    50  2    vlan 2 dst 00:02:00:00:02:00 --> write group 0x02000001 goto tbl 60
> 2    60  1    lport 2 vlan 2 IP src 00:02:00:00:03:00 dst 00:02:00:00:02:00 proto 1
> 3    50  2    vlan 1 dst 00:02:00:00:03:00 --> write group 0x01000002 goto tbl 60
> 2    60  1    lport 1 vlan 1 IP src 00:02:00:00:02:00 dst 00:02:00:00:03:00 proto 1
> 2    60       lport 1 vlan 1 IPv6 src 00:02:00:00:02:00 dst 33:33:ff:00:00:01 proto 58
> 3    50       vlan 1 dst 33:33:ff:00:00:01 --> write group 0x31000000 goto tbl 60
> 2    60       lport 1 vlan 1 IPv6 src 00:02:00:00:02:00 dst 33:33:ff:00:02:00 proto 58
> 3    50  1    vlan 1 dst 33:33:ff:00:02:00 --> write group 0x31000000 goto tbl 60
> 1    60  173  lport 2 vlan 2 LLDP src <any> dst 01:80:c2:00:00:0e --> write group 0x02000000
> 1    60  6    lport 2 vlan 2 IPv6 src <any> dst <any> --> write group 0x02000000
> 1    60  174  lport 1 vlan 1 LLDP src <any> dst 01:80:c2:00:00:0e --> write group 0x01000000
> 1    60  174  lport 2 vlan 2 IP src <any> dst <any> --> write group 0x02000000
> 1    60  6    lport 1 vlan 1 IPv6 src <any> dst <any> --> write group 0x01000000
> 1    60  181  lport 2 vlan 2 ARP src <any> dst <any> --> write group 0x02000000
> 1    10  715  lport 2 --> apply new vlan 2 goto tbl 20
> 1    60  177  lport 1 vlan 1 ARP src <any> dst <any> --> write group 0x01000000
> 1    60  174  lport 1 vlan 1 IP src <any> dst <any> --> write group 0x01000000
> 1    10  717  lport 1 --> apply new vlan 1 goto tbl 20
> 1    0   1432 lport 0(0xffff) --> goto tbl 10
>
> (qemu) info rocker-of-dpa-groups sw1
> id (decode) --> buckets
> 0x32000001 (type L2 multicast vlan 2 index 1) --> groups [0x02000001,0x02000000]
> 0x02000001 (type L2 interface vlan 2 lport 1) --> pop vlan out lport 1
> 0x01000002 (type L2 interface vlan 1 lport 2) --> pop vlan out lport 2
> 0x02000000 (type L2 interface vlan 2 lport 0) --> pop vlan out lport 0
> 0x01000000 (type L2 interface vlan 1 lport 0) --> pop vlan out lport 0
> 0x31000000 (type L2 multicast vlan 1 index 0) --> groups [0x01000002,0x01000000]
>
> Signed-off-by: Scott Feldman <sfeldma@gmail.com>
> Signed-off-by: Jiri Pirko <jiri@resnulli.us>
> ---
>  hmp-commands.hx               |   24 ++++
>  hmp.c                         |  303 ++++++++++++++++++++++++++++++++++++++++
>  hmp.h                         |    4 +
>  hw/net/rocker/rocker.c        |   45 ++++++
>  hw/net/rocker/rocker_fp.c     |   10 ++
>  hw/net/rocker/rocker_fp.h     |    1 +
>  hw/net/rocker/rocker_of_dpa.c |  308 +++++++++++++++++++++++++++++++++++++++++
>  monitor.c                     |   28 ++++
>  qapi-schema.json              |    3 +
>  qapi/rocker.json              |  259 ++++++++++++++++++++++++++++++++++
>  qmp-commands.hx               |   97 +++++++++++++
>  11 files changed, 1082 insertions(+)
>  create mode 100644 qapi/rocker.json

I don't object this method but not sure it was worth (especially
consider it needs nearly a thousand lines of codes).

Could we just do this through remote controller or agent?

Thanks

  reply	other threads:[~2015-01-16  9:26 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-11  3:57 [Qemu-devel] [PATCH v3 0/9] rocker: add new rocker ethernet switch device sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 1/9] net: add MAC address string printer sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 2/9] virtio-net: use qemu_mac_strdup_printf sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 3/9] rocker: add register programming guide sfeldma
2015-01-12 11:40   ` Paolo Bonzini
2015-01-16  8:14     ` Scott Feldman
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 4/9] pci: add rocker device ID sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 5/9] pci: add network device class 'other' for network switches sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 6/9] rocker: add new rocker switch device sfeldma
2015-01-12 12:57   ` Paolo Bonzini
2015-01-14 23:20     ` Scott Feldman
2015-01-15  9:08       ` Paolo Bonzini
2015-01-16  9:15   ` Jason Wang
2015-01-16  9:48     ` Scott Feldman
2015-01-21  3:36       ` Jason Wang
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 7/9] qmp: add rocker device support sfeldma
2015-01-16  9:26   ` Jason Wang [this message]
2015-01-16  9:59     ` Scott Feldman
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 8/9] rocker: add tests sfeldma
2015-01-11  3:57 ` [Qemu-devel] [PATCH v3 9/9] MAINTAINERS: add rocker sfeldma

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=54B8D939.2020603@redhat.com \
    --to=jasowang@redhat.com \
    --cc=eblake@redhat.com \
    --cc=jiri@resnulli.us \
    --cc=john.fastabend@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=roopa@cumulusnetworks.com \
    --cc=sfeldma@gmail.com \
    --cc=stefanha@gmail.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.