From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MsOvK-0002ar-T5 for qemu-devel@nongnu.org; Mon, 28 Sep 2009 18:42:26 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MsOvF-0002a0-Tb for qemu-devel@nongnu.org; Mon, 28 Sep 2009 18:42:26 -0400 Received: from [199.232.76.173] (port=45555 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MsOvF-0002Zx-Oj for qemu-devel@nongnu.org; Mon, 28 Sep 2009 18:42:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36041) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MsOvF-00084d-Av for qemu-devel@nongnu.org; Mon, 28 Sep 2009 18:42:21 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n8SMgKxq021434 for ; Mon, 28 Sep 2009 18:42:20 -0400 Subject: Re: [Qemu-devel] [RfC PATCH 1/3] net: macaddr tweaks. References: <1253907783-1231-1-git-send-email-kraxel@redhat.com> <1253907783-1231-2-git-send-email-kraxel@redhat.com> From: Markus Armbruster Date: Tue, 29 Sep 2009 00:42:18 +0200 In-Reply-To: <1253907783-1231-2-git-send-email-kraxel@redhat.com> (Gerd Hoffmann's message of "Fri\, 25 Sep 2009 21\:43\:01 +0200") Message-ID: <87my4ebsj9.fsf@pike.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org Gerd Hoffmann writes: > Add new type for mac addresses. > > Add function which sets the qemu default mac address if it finds the mac > address uninitialized (i.e. all zeros). > --- > net.c | 14 ++++++++++++++ > net.h | 2 ++ > 2 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/net.c b/net.c > index 3fdf1e6..c6eb93c 100644 > --- a/net.c > +++ b/net.c > @@ -280,6 +280,20 @@ void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]) > macaddr[3], macaddr[4], macaddr[5]); > } > > +void qemu_macaddr_default_if_unset(macaddr_t macaddr) > +{ > + macaddr_t zero = { 0,0,0,0,0,0 }; > + > + if (memcmp(macaddr, zero, sizeof(zero)) != 0) > + return; > + macaddr[0] = 0x52; > + macaddr[1] = 0x54; > + macaddr[2] = 0x00; > + macaddr[3] = 0x12; > + macaddr[4] = 0x34; > + macaddr[5] = 0x56; > +} > + This will get us the same default MAC address for all NICs, won't it? The old code provides a different default for each NIC. Simply increment the default whenever it is used? > static char *assign_name(VLANClientState *vc1, const char *model) > { > VLANState *vlan; > diff --git a/net.h b/net.h > index 1479826..50630a1 100644 > --- a/net.h > +++ b/net.h > @@ -7,6 +7,7 @@ > > /* VLANs support */ > > +typedef uint8_t macaddr_t[6]; Reserved identifier (any POSIX header). Do we care? > typedef struct VLANClientState VLANClientState; > > typedef int (NetCanReceive)(VLANClientState *); > @@ -75,6 +76,7 @@ ssize_t qemu_send_packet_async(VLANClientState *vc, const uint8_t *buf, > void qemu_purge_queued_packets(VLANClientState *vc); > void qemu_flush_queued_packets(VLANClientState *vc); > void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]); > +void qemu_macaddr_default_if_unset(macaddr_t macaddr); > void qemu_check_nic_model(NICInfo *nd, const char *model); > void qemu_check_nic_model_list(NICInfo *nd, const char * const *models, > const char *default_model);