Thank you very much, Dmitriy!  The actual fix is now checked in.

Eddie


On 11/22/2010 04:15 PM, Bubnov Dmitriy wrote:
> Hi all,
>
> I am using Click on Mac OS X in userlevel mode, and have found a poor 
> prfomance in FromDevice element for that mode.
>
> The problem is in missing actual call to ioctl with BIOCIMMEDIATE on pcap 
> file descriptor at runtime, and without that ioctl pcap_fd left in buffered 
> mode.
>
> Here is a patched section of elements/userlevel/fromdevice.cc. First line is 
> line 260 in original file:
>
>
>
> //# if defined(BIOCIMMEDIATE)&&  !defined(__sun) // pcap/bpf ioctl, not in 
> DLPI/bufmod
>       {
>           int r, yes = 1;
>           if ((r = ioctl(pcap_fd, /*BIOCIMMEDIATE*/_IOW('B',112, 
> u_int),&yes)) == -1)
>               return errh->error("%s: BIOCIMMEDIATE: %s", ifname, 
> strerror(errno));
>           /*else if (r != 0)
>                 errh->warning("%s: BIOCIMMEDIATE returns %d", ifname, r);*/
>           errh->warning("%s: BIOCIMMEDIATE returns %d", ifname, r);
>       }
> //# endif
>
>
>
> To force put pcap_fd in unbuffered mode, I commented out "#if defined" 
> directives and insert a "_IOW('B',112, u_int)" instead of "BIOCIMMEDIATE" in 
> "ioctl" to avoid include files conflicts.
>
> It is just quick hack, not a solution!
> Hope that will be helpful for somebody.
>
> --
> Regards,
> Dmitriy Bubnov
> _______________________________________________
> click mailing list
> [email protected]
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click

Reply via email to