mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 06:43:53 -06:00
Add 'set_link' monitor command (Mark McLoughlin)
Add a monitor command to setting a given network device's link status to 'up' or 'down'. Allows simulation of network cable disconnect. Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6247 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
d6aa671f18
commit
436e5e53c9
3 changed files with 33 additions and 1 deletions
31
net.c
31
net.c
|
@ -387,12 +387,15 @@ void qemu_send_packet(VLANClientState *vc1, const uint8_t *buf, int size)
|
|||
VLANState *vlan = vc1->vlan;
|
||||
VLANClientState *vc;
|
||||
|
||||
if (vc1->link_down)
|
||||
return;
|
||||
|
||||
#ifdef DEBUG_NET
|
||||
printf("vlan %d send:\n", vlan->id);
|
||||
hex_dump(stdout, buf, size);
|
||||
#endif
|
||||
for(vc = vlan->first_client; vc != NULL; vc = vc->next) {
|
||||
if (vc != vc1) {
|
||||
if (vc != vc1 && !vc->link_down) {
|
||||
vc->fd_read(vc->opaque, buf, size);
|
||||
}
|
||||
}
|
||||
|
@ -1692,6 +1695,32 @@ void do_info_network(void)
|
|||
}
|
||||
}
|
||||
|
||||
int do_set_link(const char *name, const char *up_or_down)
|
||||
{
|
||||
VLANState *vlan;
|
||||
VLANClientState *vc = NULL;
|
||||
|
||||
for (vlan = first_vlan; vlan != NULL; vlan = vlan->next)
|
||||
for (vc = vlan->first_client; vc != NULL; vc = vc->next)
|
||||
if (strcmp(vc->name, name) == 0)
|
||||
break;
|
||||
|
||||
if (!vc) {
|
||||
term_printf("could not find network device '%s'", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(up_or_down, "up") == 0)
|
||||
vc->link_down = 0;
|
||||
else if (strcmp(up_or_down, "down") == 0)
|
||||
vc->link_down = 1;
|
||||
else
|
||||
term_printf("invalid link status '%s'; only 'up' or 'down' valid\n",
|
||||
up_or_down);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void net_cleanup(void)
|
||||
{
|
||||
VLANState *vlan;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue