mirror of https://github.com/xqemu/xqemu.git
net: Remove vlan code from net.c
The vlan implementation in net.c has been replaced by hubs so we can remove the code. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
606c10e2bd
commit
ec8b1f6cc8
|
@ -325,7 +325,6 @@ static int net_init(struct XenDevice *xendev)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
netdev->conf.vlan = qemu_find_vlan(netdev->xendev.dev, 1);
|
|
||||||
netdev->conf.peer = NULL;
|
netdev->conf.peer = NULL;
|
||||||
|
|
||||||
netdev->nic = qemu_new_nic(&net_xen_info, &netdev->conf,
|
netdev->nic = qemu_new_nic(&net_xen_info, &netdev->conf,
|
||||||
|
|
108
net.c
108
net.c
|
@ -391,50 +391,6 @@ static ssize_t qemu_deliver_packet(VLANClientState *sender,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t qemu_vlan_deliver_packet(VLANClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const uint8_t *buf,
|
|
||||||
size_t size,
|
|
||||||
void *opaque)
|
|
||||||
{
|
|
||||||
VLANState *vlan = opaque;
|
|
||||||
VLANClientState *vc;
|
|
||||||
ssize_t ret = -1;
|
|
||||||
|
|
||||||
QTAILQ_FOREACH(vc, &vlan->clients, next) {
|
|
||||||
ssize_t len;
|
|
||||||
|
|
||||||
if (vc == sender) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vc->link_down) {
|
|
||||||
ret = size;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vc->receive_disabled) {
|
|
||||||
ret = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flags & QEMU_NET_PACKET_FLAG_RAW && vc->info->receive_raw) {
|
|
||||||
len = vc->info->receive_raw(vc, buf, size);
|
|
||||||
} else {
|
|
||||||
len = vc->info->receive(vc, buf, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (len == 0) {
|
|
||||||
vc->receive_disabled = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = (ret >= 0) ? ret : len;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void qemu_purge_queued_packets(VLANClientState *vc)
|
void qemu_purge_queued_packets(VLANClientState *vc)
|
||||||
{
|
{
|
||||||
NetQueue *queue;
|
NetQueue *queue;
|
||||||
|
@ -541,42 +497,6 @@ static ssize_t qemu_deliver_packet_iov(VLANClientState *sender,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t qemu_vlan_deliver_packet_iov(VLANClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const struct iovec *iov,
|
|
||||||
int iovcnt,
|
|
||||||
void *opaque)
|
|
||||||
{
|
|
||||||
VLANState *vlan = opaque;
|
|
||||||
VLANClientState *vc;
|
|
||||||
ssize_t ret = -1;
|
|
||||||
|
|
||||||
QTAILQ_FOREACH(vc, &vlan->clients, next) {
|
|
||||||
ssize_t len;
|
|
||||||
|
|
||||||
if (vc == sender) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vc->link_down) {
|
|
||||||
ret = iov_size(iov, iovcnt);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(!(flags & QEMU_NET_PACKET_FLAG_RAW));
|
|
||||||
|
|
||||||
if (vc->info->receive_iov) {
|
|
||||||
len = vc->info->receive_iov(vc, iov, iovcnt);
|
|
||||||
} else {
|
|
||||||
len = vc_sendv_compat(vc, iov, iovcnt);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = (ret >= 0) ? ret : len;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
ssize_t qemu_sendv_packet_async(VLANClientState *sender,
|
ssize_t qemu_sendv_packet_async(VLANClientState *sender,
|
||||||
const struct iovec *iov, int iovcnt,
|
const struct iovec *iov, int iovcnt,
|
||||||
NetPacketSent *sent_cb)
|
NetPacketSent *sent_cb)
|
||||||
|
@ -604,34 +524,6 @@ qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, int iovcnt)
|
||||||
return qemu_sendv_packet_async(vc, iov, iovcnt, NULL);
|
return qemu_sendv_packet_async(vc, iov, iovcnt, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find or alloc a new VLAN */
|
|
||||||
VLANState *qemu_find_vlan(int id, int allocate)
|
|
||||||
{
|
|
||||||
VLANState *vlan;
|
|
||||||
|
|
||||||
QTAILQ_FOREACH(vlan, &vlans, next) {
|
|
||||||
if (vlan->id == id) {
|
|
||||||
return vlan;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!allocate) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
vlan = g_malloc0(sizeof(VLANState));
|
|
||||||
vlan->id = id;
|
|
||||||
QTAILQ_INIT(&vlan->clients);
|
|
||||||
|
|
||||||
vlan->send_queue = qemu_new_net_queue(qemu_vlan_deliver_packet,
|
|
||||||
qemu_vlan_deliver_packet_iov,
|
|
||||||
vlan);
|
|
||||||
|
|
||||||
QTAILQ_INSERT_TAIL(&vlans, vlan, next);
|
|
||||||
|
|
||||||
return vlan;
|
|
||||||
}
|
|
||||||
|
|
||||||
VLANClientState *qemu_find_netdev(const char *id)
|
VLANClientState *qemu_find_netdev(const char *id)
|
||||||
{
|
{
|
||||||
VLANClientState *vc;
|
VLANClientState *vc;
|
||||||
|
|
1
net.h
1
net.h
|
@ -76,7 +76,6 @@ struct VLANState {
|
||||||
NetQueue *send_queue;
|
NetQueue *send_queue;
|
||||||
};
|
};
|
||||||
|
|
||||||
VLANState *qemu_find_vlan(int id, int allocate);
|
|
||||||
VLANClientState *qemu_find_netdev(const char *id);
|
VLANClientState *qemu_find_netdev(const char *id);
|
||||||
VLANClientState *qemu_new_net_client(NetClientInfo *info,
|
VLANClientState *qemu_new_net_client(NetClientInfo *info,
|
||||||
VLANClientState *peer,
|
VLANClientState *peer,
|
||||||
|
|
Loading…
Reference in New Issue