Commit 7cb7434b1e4aee549b55536208abe56e35159763
1 parent
676cff29
Add qemu_format_nic_info_str() (Mark McLoughlin)
Factor out a simple little function for formatting a NIC's info_str and make all NICs use it. 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@6218 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
9 changed files
with
26 additions
and
59 deletions
hw/e1000.c
@@ -1074,10 +1074,7 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn) | @@ -1074,10 +1074,7 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn) | ||
1074 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 1074 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
1075 | e1000_receive, e1000_can_receive, d); | 1075 | e1000_receive, e1000_can_receive, d); |
1076 | 1076 | ||
1077 | - snprintf(d->vc->info_str, sizeof(d->vc->info_str), | ||
1078 | - "%s macaddr=%02x:%02x:%02x:%02x:%02x:%02x", info_str, | ||
1079 | - d->nd->macaddr[0], d->nd->macaddr[1], d->nd->macaddr[2], | ||
1080 | - d->nd->macaddr[3], d->nd->macaddr[4], d->nd->macaddr[5]); | 1077 | + qemu_format_nic_info_str(d->vc, d->nd->macaddr); |
1081 | 1078 | ||
1082 | register_savevm(info_str, -1, 2, nic_save, nic_load, d); | 1079 | register_savevm(info_str, -1, 2, nic_save, nic_load, d); |
1083 | } | 1080 | } |
hw/eepro100.c
@@ -1779,11 +1779,7 @@ static void nic_init(PCIBus * bus, NICInfo * nd, | @@ -1779,11 +1779,7 @@ static void nic_init(PCIBus * bus, NICInfo * nd, | ||
1779 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 1779 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
1780 | nic_receive, nic_can_receive, s); | 1780 | nic_receive, nic_can_receive, s); |
1781 | 1781 | ||
1782 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
1783 | - "eepro100 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
1784 | - s->macaddr[0], | ||
1785 | - s->macaddr[1], | ||
1786 | - s->macaddr[2], s->macaddr[3], s->macaddr[4], s->macaddr[5]); | 1782 | + qemu_format_nic_info_str(s->vc, s->macaddr); |
1787 | 1783 | ||
1788 | qemu_register_reset(nic_reset, s); | 1784 | qemu_register_reset(nic_reset, s); |
1789 | 1785 |
hw/mipsnet.c
@@ -256,14 +256,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd) | @@ -256,14 +256,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd) | ||
256 | s->vc = NULL; | 256 | s->vc = NULL; |
257 | } | 257 | } |
258 | 258 | ||
259 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
260 | - "mipsnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
261 | - s->nd->macaddr[0], | ||
262 | - s->nd->macaddr[1], | ||
263 | - s->nd->macaddr[2], | ||
264 | - s->nd->macaddr[3], | ||
265 | - s->nd->macaddr[4], | ||
266 | - s->nd->macaddr[5]); | 259 | + qemu_format_nic_info_str(s->vc, s->nd->macaddr); |
267 | 260 | ||
268 | mipsnet_reset(s); | 261 | mipsnet_reset(s); |
269 | register_savevm("mipsnet", 0, 0, mipsnet_save, mipsnet_load, s); | 262 | register_savevm("mipsnet", 0, 0, mipsnet_save, mipsnet_load, s); |
hw/ne2000.c
@@ -744,14 +744,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd) | @@ -744,14 +744,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd) | ||
744 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 744 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
745 | ne2000_receive, ne2000_can_receive, s); | 745 | ne2000_receive, ne2000_can_receive, s); |
746 | 746 | ||
747 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
748 | - "ne2000 macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
749 | - s->macaddr[0], | ||
750 | - s->macaddr[1], | ||
751 | - s->macaddr[2], | ||
752 | - s->macaddr[3], | ||
753 | - s->macaddr[4], | ||
754 | - s->macaddr[5]); | 747 | + qemu_format_nic_info_str(s->vc, s->macaddr); |
755 | 748 | ||
756 | register_savevm("ne2000", -1, 2, ne2000_save, ne2000_load, s); | 749 | register_savevm("ne2000", -1, 2, ne2000_save, ne2000_load, s); |
757 | } | 750 | } |
@@ -814,14 +807,7 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn) | @@ -814,14 +807,7 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn) | ||
814 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 807 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
815 | ne2000_receive, ne2000_can_receive, s); | 808 | ne2000_receive, ne2000_can_receive, s); |
816 | 809 | ||
817 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
818 | - "ne2000 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
819 | - s->macaddr[0], | ||
820 | - s->macaddr[1], | ||
821 | - s->macaddr[2], | ||
822 | - s->macaddr[3], | ||
823 | - s->macaddr[4], | ||
824 | - s->macaddr[5]); | 810 | + qemu_format_nic_info_str(s->vc, s->macaddr); |
825 | 811 | ||
826 | register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s); | 812 | register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s); |
827 | } | 813 | } |
hw/pcnet.c
@@ -1939,14 +1939,7 @@ static void pcnet_common_init(PCNetState *d, NICInfo *nd, const char *info_str) | @@ -1939,14 +1939,7 @@ static void pcnet_common_init(PCNetState *d, NICInfo *nd, const char *info_str) | ||
1939 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 1939 | d->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
1940 | pcnet_receive, pcnet_can_receive, d); | 1940 | pcnet_receive, pcnet_can_receive, d); |
1941 | 1941 | ||
1942 | - snprintf(d->vc->info_str, sizeof(d->vc->info_str), | ||
1943 | - "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
1944 | - d->nd->macaddr[0], | ||
1945 | - d->nd->macaddr[1], | ||
1946 | - d->nd->macaddr[2], | ||
1947 | - d->nd->macaddr[3], | ||
1948 | - d->nd->macaddr[4], | ||
1949 | - d->nd->macaddr[5]); | 1942 | + qemu_format_nic_info_str(d->vc, d->nd->macaddr); |
1950 | } else { | 1943 | } else { |
1951 | d->vc = NULL; | 1944 | d->vc = NULL; |
1952 | } | 1945 | } |
hw/rtl8139.c
@@ -3441,14 +3441,7 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn) | @@ -3441,14 +3441,7 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn) | ||
3441 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 3441 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
3442 | rtl8139_receive, rtl8139_can_receive, s); | 3442 | rtl8139_receive, rtl8139_can_receive, s); |
3443 | 3443 | ||
3444 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
3445 | - "rtl8139 pci macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
3446 | - s->macaddr[0], | ||
3447 | - s->macaddr[1], | ||
3448 | - s->macaddr[2], | ||
3449 | - s->macaddr[3], | ||
3450 | - s->macaddr[4], | ||
3451 | - s->macaddr[5]); | 3444 | + qemu_format_nic_info_str(s->vc, s->macaddr); |
3452 | 3445 | ||
3453 | s->cplus_txbuffer = NULL; | 3446 | s->cplus_txbuffer = NULL; |
3454 | s->cplus_txbuffer_len = 0; | 3447 | s->cplus_txbuffer_len = 0; |
hw/usb-net.c
@@ -1456,14 +1456,12 @@ USBDevice *usb_net_init(NICInfo *nd) | @@ -1456,14 +1456,12 @@ USBDevice *usb_net_init(NICInfo *nd) | ||
1456 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, | 1456 | s->vc = qemu_new_vlan_client(nd->vlan, nd->model, |
1457 | usbnet_receive, usbnet_can_receive, s); | 1457 | usbnet_receive, usbnet_can_receive, s); |
1458 | 1458 | ||
1459 | + qemu_format_nic_info_str(s->vc, s->mac); | ||
1460 | + | ||
1459 | snprintf(s->usbstring_mac, sizeof(s->usbstring_mac), | 1461 | snprintf(s->usbstring_mac, sizeof(s->usbstring_mac), |
1460 | "%02x%02x%02x%02x%02x%02x", | 1462 | "%02x%02x%02x%02x%02x%02x", |
1461 | 0x40, s->mac[1], s->mac[2], | 1463 | 0x40, s->mac[1], s->mac[2], |
1462 | s->mac[3], s->mac[4], s->mac[5]); | 1464 | s->mac[3], s->mac[4], s->mac[5]); |
1463 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), | ||
1464 | - "usbnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
1465 | - s->mac[0], s->mac[1], s->mac[2], | ||
1466 | - s->mac[3], s->mac[4], s->mac[5]); | ||
1467 | fprintf(stderr, "usbnet: initialized mac %02x:%02x:%02x:%02x:%02x:%02x\n", | 1465 | fprintf(stderr, "usbnet: initialized mac %02x:%02x:%02x:%02x:%02x:%02x\n", |
1468 | s->mac[0], s->mac[1], s->mac[2], | 1466 | s->mac[0], s->mac[1], s->mac[2], |
1469 | s->mac[3], s->mac[4], s->mac[5]); | 1467 | s->mac[3], s->mac[4], s->mac[5]); |
net.c
@@ -296,6 +296,14 @@ static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) | @@ -296,6 +296,14 @@ static int parse_unix_path(struct sockaddr_un *uaddr, const char *str) | ||
296 | } | 296 | } |
297 | #endif | 297 | #endif |
298 | 298 | ||
299 | +void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]) | ||
300 | +{ | ||
301 | + snprintf(vc->info_str, sizeof(vc->info_str), | ||
302 | + "macaddr=%02x:%02x:%02x:%02x:%02x:%02x", | ||
303 | + macaddr[0], macaddr[1], macaddr[2], | ||
304 | + macaddr[3], macaddr[4], macaddr[5]); | ||
305 | +} | ||
306 | + | ||
299 | static char *assign_name(VLANClientState *vc1, const char *model) | 307 | static char *assign_name(VLANClientState *vc1, const char *model) |
300 | { | 308 | { |
301 | VLANState *vlan; | 309 | VLANState *vlan; |
@@ -474,7 +482,7 @@ static int net_slirp_init(VLANState *vlan, const char *model) | @@ -474,7 +482,7 @@ static int net_slirp_init(VLANState *vlan, const char *model) | ||
474 | } | 482 | } |
475 | slirp_vc = qemu_new_vlan_client(vlan, model, | 483 | slirp_vc = qemu_new_vlan_client(vlan, model, |
476 | slirp_receive, NULL, NULL); | 484 | slirp_receive, NULL, NULL); |
477 | - snprintf(slirp_vc->info_str, sizeof(slirp_vc->info_str), "user redirector"); | 485 | + slirp_vc->info_str[0] = '\0'; |
478 | return 0; | 486 | return 0; |
479 | } | 487 | } |
480 | 488 | ||
@@ -699,7 +707,7 @@ static TAPState *net_tap_fd_init(VLANState *vlan, const char *model, int fd) | @@ -699,7 +707,7 @@ static TAPState *net_tap_fd_init(VLANState *vlan, const char *model, int fd) | ||
699 | s->vc->fd_readv = tap_receive_iov; | 707 | s->vc->fd_readv = tap_receive_iov; |
700 | #endif | 708 | #endif |
701 | qemu_set_fd_handler(s->fd, tap_send, NULL, s); | 709 | qemu_set_fd_handler(s->fd, tap_send, NULL, s); |
702 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d", fd); | 710 | + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "fd=%d", fd); |
703 | return s; | 711 | return s; |
704 | } | 712 | } |
705 | 713 | ||
@@ -954,7 +962,8 @@ static int net_tap_init(VLANState *vlan, const char *model, const char *ifname1, | @@ -954,7 +962,8 @@ static int net_tap_init(VLANState *vlan, const char *model, const char *ifname1, | ||
954 | if (!s) | 962 | if (!s) |
955 | return -1; | 963 | return -1; |
956 | snprintf(s->vc->info_str, sizeof(s->vc->info_str), | 964 | snprintf(s->vc->info_str, sizeof(s->vc->info_str), |
957 | - "tap: ifname=%s setup_script=%s", ifname, setup_script); | 965 | + "ifname=%s,script=%s,downscript=%s", |
966 | + ifname, setup_script, down_script); | ||
958 | if (down_script && strcmp(down_script, "no")) | 967 | if (down_script && strcmp(down_script, "no")) |
959 | snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); | 968 | snprintf(s->down_script, sizeof(s->down_script), "%s", down_script); |
960 | return 0; | 969 | return 0; |
@@ -1016,7 +1025,7 @@ static int net_vde_init(VLANState *vlan, const char *model, const char *sock, | @@ -1016,7 +1025,7 @@ static int net_vde_init(VLANState *vlan, const char *model, const char *sock, | ||
1016 | } | 1025 | } |
1017 | s->vc = qemu_new_vlan_client(vlan, model, vde_from_qemu, NULL, s); | 1026 | s->vc = qemu_new_vlan_client(vlan, model, vde_from_qemu, NULL, s); |
1018 | qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); | 1027 | qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); |
1019 | - snprintf(s->vc->info_str, sizeof(s->vc->info_str), "vde: sock=%s fd=%d", | 1028 | + snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d", |
1020 | sock, vde_datafd(s->vde)); | 1029 | sock, vde_datafd(s->vde)); |
1021 | return 0; | 1030 | return 0; |
1022 | } | 1031 | } |
@@ -1639,7 +1648,7 @@ void do_info_network(void) | @@ -1639,7 +1648,7 @@ void do_info_network(void) | ||
1639 | for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { | 1648 | for(vlan = first_vlan; vlan != NULL; vlan = vlan->next) { |
1640 | term_printf("VLAN %d devices:\n", vlan->id); | 1649 | term_printf("VLAN %d devices:\n", vlan->id); |
1641 | for(vc = vlan->first_client; vc != NULL; vc = vc->next) | 1650 | for(vc = vlan->first_client; vc != NULL; vc = vc->next) |
1642 | - term_printf(" %s\n", vc->info_str); | 1651 | + term_printf(" %s: %s\n", vc->name, vc->info_str); |
1643 | } | 1652 | } |
1644 | } | 1653 | } |
1645 | 1654 | ||
@@ -1657,7 +1666,8 @@ void net_cleanup(void) | @@ -1657,7 +1666,8 @@ void net_cleanup(void) | ||
1657 | char ifname[64]; | 1666 | char ifname[64]; |
1658 | TAPState *s = vc->opaque; | 1667 | TAPState *s = vc->opaque; |
1659 | 1668 | ||
1660 | - if (sscanf(vc->info_str, "tap: ifname=%63s ", ifname) == 1 && | 1669 | + if (strcmp(vc->model, "tap") == 0 && |
1670 | + sscanf(vc->info_str, "ifname=%63s ", ifname) == 1 && | ||
1661 | s->down_script[0]) | 1671 | s->down_script[0]) |
1662 | launch_script(s->down_script, ifname, s->fd); | 1672 | launch_script(s->down_script, ifname, s->fd); |
1663 | } | 1673 | } |
net.h
@@ -41,6 +41,7 @@ int qemu_can_send_packet(VLANClientState *vc); | @@ -41,6 +41,7 @@ int qemu_can_send_packet(VLANClientState *vc); | ||
41 | ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, | 41 | ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, |
42 | int iovcnt); | 42 | int iovcnt); |
43 | void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size); | 43 | void qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size); |
44 | +void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]); | ||
44 | void qemu_handler_true(void *opaque); | 45 | void qemu_handler_true(void *opaque); |
45 | 46 | ||
46 | void do_info_network(void); | 47 | void do_info_network(void); |