diff options
-rw-r--r-- | hw/dp8393x.c | 1 | ||||
-rw-r--r-- | hw/exynos4_boards.c | 2 | ||||
-rw-r--r-- | hw/highbank.c | 2 | ||||
-rw-r--r-- | hw/integratorcp.c | 2 | ||||
-rw-r--r-- | hw/kzm.c | 2 | ||||
-rw-r--r-- | hw/mcf5208.c | 2 | ||||
-rw-r--r-- | hw/mcf_fec.c | 1 | ||||
-rw-r--r-- | hw/mips_mipssim.c | 2 | ||||
-rw-r--r-- | hw/mips_r4k.c | 2 | ||||
-rw-r--r-- | hw/openrisc_sim.c | 2 | ||||
-rw-r--r-- | hw/qdev-properties.c | 7 | ||||
-rw-r--r-- | hw/qdev.c | 2 | ||||
-rw-r--r-- | hw/qdev.h | 1 | ||||
-rw-r--r-- | hw/vexpress.c | 2 | ||||
-rw-r--r-- | hw/xtensa_lx60.c | 2 | ||||
-rw-r--r-- | net.c | 125 | ||||
-rw-r--r-- | net.h | 10 | ||||
-rw-r--r-- | qemu-common.h | 1 |
18 files changed, 31 insertions, 137 deletions
diff --git a/hw/dp8393x.c b/hw/dp8393x.c index 756d6301b0..ee1a4810f1 100644 --- a/hw/dp8393x.c +++ b/hw/dp8393x.c @@ -899,7 +899,6 @@ void dp83932_init(NICInfo *nd, target_phys_addr_t base, int it_shift, s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux */ s->conf.macaddr = nd->macaddr; - s->conf.vlan = nd->vlan; s->conf.peer = nd->netdev; s->nic = qemu_new_nic(&net_dp83932_info, &s->conf, nd->model, nd->name, s); diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c index e5c2a5f388..4bb0a60cb1 100644 --- a/hw/exynos4_boards.c +++ b/hw/exynos4_boards.c @@ -81,7 +81,7 @@ static void lan9215_init(uint32_t base, qemu_irq irq) SysBusDevice *s; /* This should be a 9215 but the 9118 is close enough */ - if (nd_table[0].vlan) { + if (nd_table[0].used) { qemu_check_nic_model(&nd_table[0], "lan9118"); dev = qdev_create(NULL, "lan9118"); qdev_set_nic_properties(dev, &nd_table[0]); diff --git a/hw/highbank.c b/hw/highbank.c index 4bdea5df7d..11aa1312c0 100644 --- a/hw/highbank.c +++ b/hw/highbank.c @@ -284,7 +284,7 @@ static void highbank_init(ram_addr_t ram_size, sysbus_create_simple("sysbus-ahci", 0xffe08000, pic[83]); - if (nd_table[0].vlan) { + if (nd_table[0].used) { qemu_check_nic_model(&nd_table[0], "xgmac"); dev = qdev_create(NULL, "xgmac"); qdev_set_nic_properties(dev, &nd_table[0]); diff --git a/hw/integratorcp.c b/hw/integratorcp.c index deacbf4d0d..d0e2e9068e 100644 --- a/hw/integratorcp.c +++ b/hw/integratorcp.c @@ -493,7 +493,7 @@ static void integratorcp_init(ram_addr_t ram_size, sysbus_create_simple("pl050_keyboard", 0x18000000, pic[3]); sysbus_create_simple("pl050_mouse", 0x19000000, pic[4]); sysbus_create_varargs("pl181", 0x1c000000, pic[23], pic[24], NULL); - if (nd_table[0].vlan) + if (nd_table[0].used) smc91c111_init(&nd_table[0], 0xc8000000, pic[27]); sysbus_create_simple("pl110", 0xc0000000, pic[22]); @@ -121,7 +121,7 @@ static void kzm_init(ram_addr_t ram_size, imx_timerp_create(0x53f98000, qdev_get_gpio_in(dev, 27), ccm); imx_timerg_create(0x53f90000, qdev_get_gpio_in(dev, 29), ccm); - if (nd_table[0].vlan) { + if (nd_table[0].used) { lan9118_init(&nd_table[0], 0xb6000000, qdev_get_gpio_in(dev, 52)); } diff --git a/hw/mcf5208.c b/hw/mcf5208.c index d3ebe8d9ad..ee25b1b387 100644 --- a/hw/mcf5208.c +++ b/hw/mcf5208.c @@ -236,7 +236,7 @@ static void mcf5208evb_init(ram_addr_t ram_size, fprintf(stderr, "Too many NICs\n"); exit(1); } - if (nd_table[0].vlan) + if (nd_table[0].used) mcf_fec_init(address_space_mem, &nd_table[0], 0xfc030000, pic + 36); diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c index 4ab4ff583d..308a1b6cce 100644 --- a/hw/mcf_fec.c +++ b/hw/mcf_fec.c @@ -472,7 +472,6 @@ void mcf_fec_init(MemoryRegion *sysmem, NICInfo *nd, memory_region_add_subregion(sysmem, base, &s->iomem); s->conf.macaddr = nd->macaddr; - s->conf.vlan = nd->vlan; s->conf.peer = nd->netdev; s->nic = qemu_new_nic(&net_mcf_fec_info, &s->conf, nd->model, nd->name, s); diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c index eb03047433..830f635597 100644 --- a/hw/mips_mipssim.c +++ b/hw/mips_mipssim.c @@ -217,7 +217,7 @@ mips_mipssim_init (ram_addr_t ram_size, if (serial_hds[0]) serial_init(0x3f8, env->irq[4], 115200, serial_hds[0]); - if (nd_table[0].vlan) + if (nd_table[0].used) /* MIPSnet uses the MIPS CPU INT0, which is interrupt 2. */ mipsnet_init(0x4200, env->irq[2], &nd_table[0]); } diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index d68599965a..967a76e533 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -283,7 +283,7 @@ void mips_r4k_init (ram_addr_t ram_size, isa_vga_init(isa_bus); - if (nd_table[0].vlan) + if (nd_table[0].used) isa_ne2000_init(isa_bus, 0x300, 9, &nd_table[0]); ide_drive_get(hd, MAX_IDE_BUS); diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c index f07f7fc517..55e97f0959 100644 --- a/hw/openrisc_sim.c +++ b/hw/openrisc_sim.c @@ -126,7 +126,7 @@ static void openrisc_sim_init(ram_addr_t ram_size, serial_mm_init(get_system_memory(), 0x90000000, 0, cpu->env.irq[2], 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN); - if (nd_table[0].vlan) { + if (nd_table[0].used) { openrisc_sim_net_init(get_system_memory(), 0x92000000, 0x92000400, cpu->env.irq[4], nd_table); } diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c index 7cc3eb759c..726f6d7e0d 100644 --- a/hw/qdev-properties.c +++ b/hw/qdev-properties.c @@ -1195,13 +1195,6 @@ void qdev_prop_set_netdev(DeviceState *dev, const char *name, VLANClientState *v assert_no_error(errp); } -void qdev_prop_set_vlan(DeviceState *dev, const char *name, VLANState *value) -{ - Error *errp = NULL; - object_property_set_int(OBJECT(dev), value ? value->id : -1, name, &errp); - assert_no_error(errp); -} - void qdev_prop_set_macaddr(DeviceState *dev, const char *name, uint8_t *value) { Error *errp = NULL; @@ -320,8 +320,6 @@ void qdev_connect_gpio_out(DeviceState * dev, int n, qemu_irq pin) void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd) { qdev_prop_set_macaddr(dev, "mac", nd->macaddr.a); - if (nd->vlan) - qdev_prop_set_vlan(dev, "vlan", nd->vlan); if (nd->netdev) qdev_prop_set_netdev(dev, "netdev", nd->netdev); if (nd->nvectors != DEV_NVECTORS_UNSPECIFIED && @@ -321,7 +321,6 @@ void qdev_prop_set_uint64(DeviceState *dev, const char *name, uint64_t value); void qdev_prop_set_string(DeviceState *dev, const char *name, const char *value); void qdev_prop_set_chr(DeviceState *dev, const char *name, CharDriverState *value); void qdev_prop_set_netdev(DeviceState *dev, const char *name, VLANClientState *value); -void qdev_prop_set_vlan(DeviceState *dev, const char *name, VLANState *value); int qdev_prop_set_drive(DeviceState *dev, const char *name, BlockDriverState *value) QEMU_WARN_UNUSED_RESULT; void qdev_prop_set_drive_nofail(DeviceState *dev, const char *name, BlockDriverState *value); void qdev_prop_set_macaddr(DeviceState *dev, const char *name, uint8_t *value); diff --git a/hw/vexpress.c b/hw/vexpress.c index b2dc8a5ab3..b6158447d7 100644 --- a/hw/vexpress.c +++ b/hw/vexpress.c @@ -427,7 +427,7 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard, memory_region_add_subregion(sysmem, map[VE_VIDEORAM], vram); /* 0x4e000000 LAN9118 Ethernet */ - if (nd_table[0].vlan) { + if (nd_table[0].used) { lan9118_init(&nd_table[0], map[VE_ETHERNET], pic[15]); } diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c index 152eed95d8..c4f616f4fb 100644 --- a/hw/xtensa_lx60.c +++ b/hw/xtensa_lx60.c @@ -201,7 +201,7 @@ static void lx_init(const LxBoardDesc *board, memory_region_init(system_io, "lx60.io", 224 * 1024 * 1024); memory_region_add_subregion(system_memory, 0xf0000000, system_io); lx60_fpga_init(system_io, 0x0d020000); - if (nd_table[0].vlan) { + if (nd_table[0].used) { lx60_net_init(system_io, 0x0d030000, 0x0d030400, 0x0d800000, xtensa_get_extint(env, 1), nd_table); } @@ -47,7 +47,6 @@ # define CONFIG_NET_BRIDGE #endif -static QTAILQ_HEAD(, VLANState) vlans; static QTAILQ_HEAD(, VLANClientState) non_vlan_clients; int default_net = 1; @@ -252,11 +251,7 @@ NICState *qemu_new_nic(NetClientInfo *info, static void qemu_cleanup_vlan_client(VLANClientState *vc) { - if (vc->vlan) { - QTAILQ_REMOVE(&vc->vlan->clients, vc, next); - } else { - QTAILQ_REMOVE(&non_vlan_clients, vc, next); - } + QTAILQ_REMOVE(&non_vlan_clients, vc, next); if (vc->info->cleanup) { vc->info->cleanup(vc); @@ -265,13 +260,11 @@ static void qemu_cleanup_vlan_client(VLANClientState *vc) static void qemu_free_vlan_client(VLANClientState *vc) { - if (!vc->vlan) { - if (vc->send_queue) { - qemu_del_net_queue(vc->send_queue); - } - if (vc->peer) { - vc->peer->peer = NULL; - } + if (vc->send_queue) { + qemu_del_net_queue(vc->send_queue); + } + if (vc->peer) { + vc->peer->peer = NULL; } g_free(vc->name); g_free(vc->model); @@ -281,7 +274,7 @@ static void qemu_free_vlan_client(VLANClientState *vc) void qemu_del_vlan_client(VLANClientState *vc) { /* If there is a peer NIC, delete and cleanup client, but do not free. */ - if (!vc->vlan && vc->peer && vc->peer->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { + if (vc->peer && vc->peer->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { NICState *nic = DO_UPCAST(NICState, nc, vc->peer); if (nic->peer_deleted) { return; @@ -297,7 +290,7 @@ void qemu_del_vlan_client(VLANClientState *vc) } /* If this is a peer NIC and peer has already been deleted, free it now. */ - if (!vc->vlan && vc->peer && vc->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { + if (vc->peer && vc->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { NICState *nic = DO_UPCAST(NICState, nc, vc); if (nic->peer_deleted) { qemu_free_vlan_client(vc->peer); @@ -311,52 +304,25 @@ void qemu_del_vlan_client(VLANClientState *vc) void qemu_foreach_nic(qemu_nic_foreach func, void *opaque) { VLANClientState *nc; - VLANState *vlan; QTAILQ_FOREACH(nc, &non_vlan_clients, next) { if (nc->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { func(DO_UPCAST(NICState, nc, nc), opaque); } } - - QTAILQ_FOREACH(vlan, &vlans, next) { - QTAILQ_FOREACH(nc, &vlan->clients, next) { - if (nc->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { - func(DO_UPCAST(NICState, nc, nc), opaque); - } - } - } } int qemu_can_send_packet(VLANClientState *sender) { - VLANState *vlan = sender->vlan; - VLANClientState *vc; - - if (sender->peer) { - if (sender->peer->receive_disabled) { - return 0; - } else if (sender->peer->info->can_receive && - !sender->peer->info->can_receive(sender->peer)) { - return 0; - } else { - return 1; - } - } - - if (!sender->vlan) { + if (!sender->peer) { return 1; } - QTAILQ_FOREACH(vc, &vlan->clients, next) { - if (vc == sender) { - continue; - } - - /* no can_receive() handler, they can always receive */ - if (vc->info->can_receive && !vc->info->can_receive(vc)) { - return 0; - } + if (sender->peer->receive_disabled) { + return 0; + } else if (sender->peer->info->can_receive && + !sender->peer->info->can_receive(sender->peer)) { + return 0; } return 1; } @@ -393,34 +359,18 @@ static ssize_t qemu_deliver_packet(VLANClientState *sender, void qemu_purge_queued_packets(VLANClientState *vc) { - NetQueue *queue; - - if (!vc->peer && !vc->vlan) { + if (!vc->peer) { return; } - if (vc->peer) { - queue = vc->peer->send_queue; - } else { - queue = vc->vlan->send_queue; - } - - qemu_net_queue_purge(queue, vc); + qemu_net_queue_purge(vc->peer->send_queue, vc); } void qemu_flush_queued_packets(VLANClientState *vc) { - NetQueue *queue; - vc->receive_disabled = 0; - if (vc->vlan) { - queue = vc->vlan->send_queue; - } else { - queue = vc->send_queue; - } - - qemu_net_queue_flush(queue); + qemu_net_queue_flush(vc->send_queue); } static ssize_t qemu_send_packet_async_with_flags(VLANClientState *sender, @@ -435,15 +385,11 @@ static ssize_t qemu_send_packet_async_with_flags(VLANClientState *sender, hex_dump(stdout, buf, size); #endif - if (sender->link_down || (!sender->peer && !sender->vlan)) { + if (sender->link_down || !sender->peer) { return size; } - if (sender->peer) { - queue = sender->peer->send_queue; - } else { - queue = sender->vlan->send_queue; - } + queue = sender->peer->send_queue; return qemu_net_queue_send(queue, sender, flags, buf, size, sent_cb); } @@ -503,15 +449,11 @@ ssize_t qemu_sendv_packet_async(VLANClientState *sender, { NetQueue *queue; - if (sender->link_down || (!sender->peer && !sender->vlan)) { + if (sender->link_down || !sender->peer) { return iov_size(iov, iovcnt); } - if (sender->peer) { - queue = sender->peer->send_queue; - } else { - queue = sender->vlan->send_queue; - } + queue = sender->peer->send_queue; return qemu_net_queue_send_iov(queue, sender, QEMU_NET_PACKET_FLAG_NONE, @@ -921,18 +863,9 @@ static void print_net_client(Monitor *mon, VLANClientState *vc) void do_info_network(Monitor *mon) { - VLANState *vlan; VLANClientState *vc, *peer; NetClientOptionsKind type; - QTAILQ_FOREACH(vlan, &vlans, next) { - monitor_printf(mon, "VLAN %d devices:\n", vlan->id); - - QTAILQ_FOREACH(vc, &vlan->clients, next) { - monitor_printf(mon, " "); - print_net_client(mon, vc); - } - } monitor_printf(mon, "Devices not on any VLAN:\n"); QTAILQ_FOREACH(vc, &non_vlan_clients, next) { peer = vc->peer; @@ -951,16 +884,8 @@ void do_info_network(Monitor *mon) void qmp_set_link(const char *name, bool up, Error **errp) { - VLANState *vlan; VLANClientState *vc = NULL; - QTAILQ_FOREACH(vlan, &vlans, next) { - QTAILQ_FOREACH(vc, &vlan->clients, next) { - if (strcmp(vc->name, name) == 0) { - goto done; - } - } - } QTAILQ_FOREACH(vc, &non_vlan_clients, next) { if (!strcmp(vc->name, name)) { goto done; @@ -993,15 +918,8 @@ done: void net_cleanup(void) { - VLANState *vlan; VLANClientState *vc, *next_vc; - QTAILQ_FOREACH(vlan, &vlans, next) { - QTAILQ_FOREACH_SAFE(vc, &vlan->clients, next, next_vc) { - qemu_del_vlan_client(vc); - } - } - QTAILQ_FOREACH_SAFE(vc, &non_vlan_clients, next, next_vc) { qemu_del_vlan_client(vc); } @@ -1090,7 +1008,6 @@ int net_init_clients(void) #endif } - QTAILQ_INIT(&vlans); QTAILQ_INIT(&non_vlan_clients); if (qemu_opts_foreach(qemu_find_opts("netdev"), net_init_netdev, NULL, 1) == -1) @@ -17,7 +17,6 @@ struct MACAddr { typedef struct NICConf { MACAddr macaddr; - VLANState *vlan; VLANClientState *peer; int32_t bootindex; } NICConf; @@ -53,7 +52,6 @@ struct VLANClientState { NetClientInfo *info; int link_down; QTAILQ_ENTRY(VLANClientState) next; - struct VLANState *vlan; VLANClientState *peer; NetQueue *send_queue; char *model; @@ -69,13 +67,6 @@ typedef struct NICState { bool peer_deleted; } NICState; -struct VLANState { - int id; - QTAILQ_HEAD(, VLANClientState) clients; - QTAILQ_ENTRY(VLANState) next; - NetQueue *send_queue; -}; - VLANClientState *qemu_find_netdev(const char *id); VLANClientState *qemu_new_net_client(NetClientInfo *info, VLANClientState *peer, @@ -120,7 +111,6 @@ struct NICInfo { char *model; char *name; char *devaddr; - VLANState *vlan; VLANClientState *netdev; int used; /* is this slot in nd_table[] being used? */ int instantiated; /* does this NICInfo correspond to an instantiated NIC? */ diff --git a/qemu-common.h b/qemu-common.h index d26ff39e87..7d7fbec5dc 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -234,7 +234,6 @@ typedef struct TextConsole TextConsole; typedef TextConsole QEMUConsole; typedef struct CharDriverState CharDriverState; typedef struct MACAddr MACAddr; -typedef struct VLANState VLANState; typedef struct VLANClientState VLANClientState; typedef struct i2c_bus i2c_bus; typedef struct ISABus ISABus; |