qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Weil <weil@mail.berlios.de>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] eepro100: Add support for multiple individual addresses (multiple IA)
Date: Thu, 30 Sep 2010 18:45:18 +0200	[thread overview]
Message-ID: <4CA4BE9E.6020401@mail.berlios.de> (raw)
In-Reply-To: <20100929203010.GA7472@laped.lan>

Am 29.09.2010 22:30, schrieb Edgar E. Iglesias:
> On Wed, Sep 29, 2010 at 09:59:55PM +0200, Stefan Weil wrote:
>    
>> I reviewed the latest sources of Linux, FreeBSD and NetBSD.
>> They all reset the multiple IA bit (multi_ia in BSD) to zero,
>> but I did not find code which sets this bit to one
>> (like it is done by some routers).
>>
>> Running Windows guests also did not set this bit.
>>
>> Intel's Open Source Software Developer Manual does not
>> give much information on the semantics related to this bit,
>> so I had to guess how it works. The guess was good enough
>> to make the router emulation work.
>>
>>
>> Related changes in this patch:
>> * Update naming and documentation of the internal hash register.
>>    It is not limited to multicast, but also used for multiple IA.
>> * Dump complete configuration register when debug traces are enabled.
>> * Debug output when multiple IA bit is set during CmdConfigure.
>> * Debug output when frames are received because multiple IA bit is set,
>>    or when they are ignored although it is set.
>>
>> Cc: Michael S. Tsirkin<mst@redhat.com>
>> Signed-off-by: Stefan Weil<weil@mail.berlios.de>
>> ---
>>   hw/eepro100.c |   30 +++++++++++++++++++++---------
>>   1 files changed, 21 insertions(+), 9 deletions(-)
>>
>> diff --git a/hw/eepro100.c b/hw/eepro100.c
>> index 2b75c8f..5f6dcb6 100644
>> --- a/hw/eepro100.c
>> +++ b/hw/eepro100.c
>> @@ -219,7 +219,8 @@ typedef enum {
>>
>>   typedef struct {
>>       PCIDevice dev;
>> -    uint8_t mult[8];            /* multicast mask array */
>> +    /* Hash register (multicast mask array, multiple individual addresses). */
>> +    uint8_t mult[8];
>>      
>
> Nitpick:
> It seems to me like if mult is only used internally. If so, why not
> represent the hash filter with an uint64_t?
>
> Then you can replace the current memsets with ->mult = 0 and simplify
> the match logic.
>
>
>    
[snip]

That's correct. Is it possible to change mult in the VMStateDescription
from VMSTATE_BUFFER to VMSTATE_UINT64 without loosing
compatibility?

I doubt that there will be a large gain in runtime speed by this change.

See also hw/ne2000.c and hw/rtl8139.c - they use similar code.
So any change should be applied to those nics, too.

Regards,
Stefan

  reply	other threads:[~2010-09-30 16:45 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-25 19:11 [Qemu-devel] eepro100 multicast Dunc
2010-09-29 19:03 ` Stefan Weil
2010-09-29 19:59   ` [Qemu-devel] [PATCH] eepro100: Add support for multiple individual addresses (multiple IA) Stefan Weil
2010-09-29 20:30     ` Edgar E. Iglesias
2010-09-30 16:45       ` Stefan Weil [this message]
2010-09-30 17:04         ` Edgar E. Iglesias
2010-10-03  9:56       ` Michael S. Tsirkin
2010-10-03 10:11         ` Stefan Weil
2010-10-03 11:16           ` Michael S. Tsirkin
2010-10-03 11:47             ` Stefan Weil
2010-10-03 13:20               ` Michael S. Tsirkin
2010-10-04 12:57                 ` Stefan Weil
2010-10-04 12:53                   ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CA4BE9E.6020401@mail.berlios.de \
    --to=weil@mail.berlios.de \
    --cc=edgar.iglesias@gmail.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).