qemu/hw/net
Scott Feldman dc488f8880 rocker: add new rocker switch device
Rocker is a simulated ethernet switch device.  The device supports up to 62
front-panel ports and supports L2 switching and L3 routing functions, as well
as L2/L3/L4 ACLs.  The device presents a single PCI device for each switch,
with a memory-mapped register space for device driver access.

Rocker device is invoked with -device, for example a 4-port switch:

  -device rocker,name=sw1,len-ports=4,ports[0]=dev0,ports[1]=dev1, \
         ports[2]=dev2,ports[3]=dev3

Each port is a netdev and can be paired with using -netdev id=<port name>.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David Ahern <dsahern@gmail.com>
Message-id: 1426306173-24884-7-git-send-email-sfeldma@gmail.com

rocker: fix clang compiler errors

Consolidate all forward typedef declarations to rocker.h.

Signed-off-by: David Ahern <dsahern@gmail.com>
Acked-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>

rocker: add support for flow modification

We had support for flow add/del.  This adds support for flow mod.  I needed
this for L3 support where an existing route is modified using NLM_F_REPLACE.
For example:

  ip route add 12.0.0.0/30 nexthop via 11.0.0.1 dev swp1
  ip route change 12.0.0.0/30 nexthop via 11.0.0.9 dev swp2

The first cmd adds the route.  The second cmd changes the existing route by
changing its nexthop info.

In the device, a mod operation results in the matching flow enty being modified
with the new settings.  This is atomic to the device.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2015-05-11 14:49:04 +01:00
..
fsl_etsec etsec: Replace qdev_init() by qdev_init_nofail() 2015-02-24 00:19:05 +01:00
rocker rocker: add new rocker switch device 2015-05-11 14:49:04 +01:00
allwinner_emac.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
cadence_gem.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
dp8393x.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
e1000.c hw/net/e1000: fix integer endianness 2015-03-27 10:23:50 +00:00
e1000_regs.h e1000: improve auto-negotiation reporting via mii-tool 2014-06-23 17:38:00 +03:00
eepro100.c pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
etraxfs_eth.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
lan9118.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
lance.c pcnet: pcnet_common_init() always returns 0, change to void 2015-02-26 12:42:16 +01:00
Makefile.objs rocker: add new rocker switch device 2015-05-11 14:49:04 +01:00
mcf_fec.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
milkymist-minimac2.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
mipsnet.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
ne2000-isa.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
ne2000.c pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
ne2000.h ne2000: pass device to ne2000_setup_io, use it as owner 2013-07-04 17:42:46 +02:00
opencores_eth.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
pcnet-pci.c pcnet: Convert to realize 2015-02-26 12:42:17 +01:00
pcnet.c pcnet: pcnet_common_init() always returns 0, change to void 2015-02-26 12:42:16 +01:00
pcnet.h pcnet: pcnet_common_init() always returns 0, change to void 2015-02-26 12:42:16 +01:00
rtl8139.c pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
smc91c111.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
spapr_llan.c spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
stellaris_enet.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
vhost_net.c vhost_net: Add missing 'static' attribute 2015-03-10 08:15:34 +03:00
virtio-net.c virtio-net: use qemu_mac_strdup_printf 2015-05-11 14:49:03 +01:00
vmware_utils.h exec: Make stb_phys input an AddressSpace 2014-02-11 22:57:38 +10:00
vmxnet3.c pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
vmxnet3.h vmxnet3: Eliminate __packed redefined warning 2013-09-06 17:25:55 +02:00
vmxnet_debug.h hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
vmxnet_rx_pkt.c vmxnet: Remove unused function vmxnet_rx_pkt_get_num_frags() 2015-04-30 16:05:48 +03:00
vmxnet_rx_pkt.h vmxnet: Remove unused function vmxnet_rx_pkt_get_num_frags() 2015-04-30 16:05:48 +03:00
vmxnet_tx_pkt.c misc: Use g_assert_not_reached for code which is expected to be unreachable 2013-07-27 11:22:54 +04:00
vmxnet_tx_pkt.h hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
xen_nic.c hw/net/xen_nic.c: Set 'netdev->mac' to NULL after free it 2015-01-12 10:16:23 +00:00
xgmac.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
xilinx_axienet.c net: remove all cleanup methods from NIC NetClientInfos 2015-01-12 10:16:23 +00:00
xilinx_ethlite.c xilinx_ethlite: Clean up after commit 2f991ad 2015-03-10 08:15:33 +03:00