Stefan Berger
IBM T. J. Watson Research Center,
Hawthorne, NY, USA
tel#: +1 914 784 7767 ,
fax#: +1 914 784 6225
e-mail: stefanb@us.ibm.com


libvir-list-bounces@redhat.com wrote on 08/13/2010 04:21:45 PM:

> [image removed]

>
> Re: [libvirt] [PATCH v2] nwfilter: Discard class D and E IP
> addresses when sniffing packets

>
> Eric Blake

>
> to:

>
> Stefan Berger

>
> 08/13/2010 04:36 PM

>
> Sent by:

>
> libvir-list-bounces@redhat.com

>
> Cc:

>
> libvir-list

>
> On 08/13/2010 02:15 PM, Stefan Berger wrote:
> >  V2: Corrected comment and simplified mask to check for class D and E IP
> > addresses
> >
> > When sniffing the network traffic, discard class D and E IP addresses
> > when sniffing traffic. This was a reason why filters were not correctly
> > rebuilt on VMs on the local 192.* network when libvirt was restarted and
> > those VMs did not use a DHCP request to get its IP address.
> >
>
> > -                    // skip eth. bcast and mcast addresses,
> > -                    // and zero address in DHCP Requests
> > -                    if ((ntohl(vmaddr)&  0xc0000000) || vmaddr == 0) {
> > +                    // skip mcast addresses (224.0.0.0 - 239.255.255.255),
> > +                    // class E (240.0.0.0 - 255.255.255.255, includes eth.
> > +                    // bcast) and zero address in DHCP Requests
> > +                    if ( (ntohl(vmaddr)&  0xe0000000) == 0xe0000000 ||
>                                           ^^
> [stupid thunderbird bug - why does it reformat quoted text for no reason?]


Wow, yes, that's not how I posted it.

Could have also done something like (ntohl(vmaddr) >> 29) == 7, but what we have is easier to understand...

>
> > +                         vmaddr == 0) {
>
> ACK; looks better.


Pushed.

  Stefan