<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16588"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
id=MailContainerBody leftMargin=0 topMargin=0 CanvasTabStop="true" 
name="Compose message area">
<DIV><FONT face=Calibri>You can change the kernel buffer size with pcap_setbuff. 
The PACKET buffer and the kernel buffer do&nbsp;not need to be the same size. 
</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>Have a nice day</FONT></DIV>
<DIV><FONT face=Calibri>GV</FONT></DIV>
<DIV style="FONT: 10pt Tahoma">
<DIV><BR></DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=pushkartiwari@gmail.com 
href="mailto:pushkartiwari@gmail.com">Pushkar Tiwari</A> </DIV>
<DIV><B>Sent:</B> Thursday, July 29, 2010 1:22 PM</DIV>
<DIV><B>To:</B> <A title=winpcap-users@winpcap.org 
href="mailto:winpcap-users@winpcap.org">winpcap-users@winpcap.org</A> </DIV>
<DIV><B>Subject:</B> Re: [Winpcap-users] PacketReceivePacket error out 
onallocatingbuffergerater than 4MB</DIV></DIV></DIV>
<DIV><BR></DIV>Thanks Gianluca. 
<DIV>I will modify code to pass the value in Bytes rather in KB. You mentioned 
that we should not be using Packet API, it's subject to change. Can you please 
provide me some alternative way supported by winpcap API, so that I can allocate 
the higher buffer size.</DIV>
<DIV><BR></DIV>
<DIV>Thanks,</DIV>
<DIV>Pushkar<BR><BR>
<DIV class=gmail_quote>On Thu, Jul 29, 2010 at 1:16 PM, Gianluca Varenni <SPAN 
dir=ltr>&lt;<A 
href="mailto:gianluca.varenni@cacetech.com">gianluca.varenni@cacetech.com</A>&gt;</SPAN> 
wrote:<BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
class=gmail_quote>
  <DIV style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
  name="Compose message area">
  <DIV><FONT face=Calibri>PacketSetBuff wants a dimension in bytes, not in 
  kilobytes. The documentation in packet32.c is wrong, but in any case you 
  should not use the Packet API. It's subject to change without any 
  notice.</FONT></DIV>
  <DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
  <DIV><FONT face=Calibri>Have a nice day</FONT></DIV>
  <DIV><FONT face=Calibri>GV</FONT></DIV>
  <DIV style="FONT: 10pt Tahoma">
  <DIV><FONT size=3 face=Calibri></FONT><FONT size=3 
  face=Calibri></FONT><BR></DIV>
  <DIV style="BACKGROUND: #f5f5f5">
  <DIV><B>From:</B> <A title=pushkartiwari@gmail.com 
  href="mailto:pushkartiwari@gmail.com" target=_blank>Pushkar Tiwari</A> </DIV>
  <DIV><B>Sent:</B> Thursday, July 29, 2010 1:05 PM</DIV>
  <DIV class=im>
  <DIV><B>To:</B> <A title=winpcap-users@winpcap.org 
  href="mailto:winpcap-users@winpcap.org" 
  target=_blank>winpcap-users@winpcap.org</A> </DIV></DIV>
  <DIV><B>Subject:</B> Re: [Winpcap-users] PacketReceivePacket error out on 
  allocatingbuffergerater than 4MB</DIV></DIV></DIV>
  <DIV>
  <DIV></DIV>
  <DIV class=h5>
  <DIV><FONT face=Calibri></FONT><FONT face=Calibri></FONT><BR></DIV>Here is the 
  code snippet for initializing and reading 
  <DIV><FONT face=Calibri></FONT><FONT face=Calibri></FONT><BR></DIV>
  <DIV>
  <DIV>int DriverWPcaP::initialize()</DIV>
  <DIV>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if ((_adapter = 
  PacketOpenAdapter(const_cast&lt;PCHAR&gt;(_ifname.c_str()))) == 0)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>//Log "Failed to open adapter 
  "</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}</DIV>
  <DIV><FONT face=Calibri></FONT><FONT face=Calibri></FONT><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>unsigned int bufferSize = 
  4194304; //4MB</DIV>
  <DIV><FONT face=Calibri></FONT><FONT face=Calibri></FONT><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if ((_packet = 
  PacketAllocatePacket()) == 0)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>//Log "Failed to allocate 
  packet"</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>_buffer = new 
  uint8_t[bufferSize];</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>PacketInitPacket(_packet, 
  _buffer, bufferSize);</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if 
  (PacketSetHwFilter(_adapter, NDIS_PACKET_TYPE_PROMISCUOUS) == FALSE)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>//Log "Failed to initialize 
  promiscuous mode"</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}&nbsp;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>// Set up buffers for the 
  adapter. &nbsp;PacketSetBuff wants a dimension in 1k blocks. &nbsp;We 
  divide</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>// BUFFER SIZE 
  accordingly.</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>unsigned long bufferDimension 
  = bufferSize / 1024;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if (PacketSetBuff( _adapter, 
  bufferSize) == FALSE)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if (PacketSetReadTimeout( 
  _adapter, 1000) == FALSE)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if (PacketSetMinToCopy( 
  _adapter, 1) == 7000000)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>PacketSetSnapLen(_adapter, 
  1518);</DIV>
  <DIV><BR></DIV>
  <DIV>}</DIV>
  <DIV><BR></DIV>
  <DIV>bool DriverWPcaP::read()</DIV>
  <DIV>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>if 
  (PacketReceivePacket(_adapter, _packet, TRUE) == FALSE)</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>{</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return 0;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>}&nbsp;</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>_bytesLeft = 
  _packet-&gt;ulBytesReceived;</DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>_currentFrame = 
  reinterpret_cast&lt;bpf_hdr*&gt;(_buffer);</DIV>
  <DIV><BR></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre-wrap"></SPAN>return (_bytesLeft &gt; 
  0);</DIV>
  <DIV>}</DIV>
  <DIV><BR><BR>
  <DIV class=gmail_quote>On Thu, Jul 29, 2010 at 11:45 AM, Gianluca Varenni 
  <SPAN dir=ltr>&lt;<A href="mailto:gianluca.varenni@cacetech.com" 
  target=_blank>gianluca.varenni@cacetech.com</A>&gt;</SPAN> wrote:<BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>
    <DIV style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
    name="Compose message area">
    <DIV><FONT face=Calibri>Can you please post the code that is 
    failing?</FONT></DIV>
    <DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
    <DIV><FONT face=Calibri>Also, bigger buffers don't necessary mean better 
    performance. They just enlarg</FONT></DIV>
    <DIV><FONT face=Calibri>GV</FONT></DIV>
    <DIV style="FONT: 10pt Tahoma">
    <DIV><BR></DIV>
    <DIV style="BACKGROUND: #f5f5f5">
    <DIV><B>From:</B> <A title=pushkartiwari@gmail.com 
    href="mailto:pushkartiwari@gmail.com" target=_blank>Pushkar Tiwari</A> 
</DIV>
    <DIV><B>Sent:</B> Thursday, July 29, 2010 11:37 AM</DIV>
    <DIV><B>To:</B> <A title=winpcap-users@winpcap.org 
    href="mailto:winpcap-users@winpcap.org" 
    target=_blank>winpcap-users@winpcap.org</A> </DIV>
    <DIV><B>Subject:</B> [Winpcap-users] PacketReceivePacket error out on 
    allocating buffergerater than 4MB</DIV></DIV></DIV>
    <DIV>
    <DIV></DIV>
    <DIV>
    <DIV><BR></DIV>
    <DIV>Hi,</DIV>
    <DIV>I have written a piece of code to capture packets at very high speed. I 
    have writen my code using Packet API.</DIV>
    <DIV>To gain better performance I tried allocating large buffer using 
    &nbsp;"PacketSetBuff" API. PacketSetBuff doesn't return any error on 
    allocating buffer greater than 4MB.</DIV>
    <DIV>But when I call PacketReceivePacket &nbsp;to retrieve the packet, the 
    call fails.</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>Is there any restriction on the buffer that can be allocated? Is there 
    some other wy through which we can allocate higher buffer and get the better 
    performance.</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>Whats is the kernel buffer size that winpcap allocate by default?</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>Here are some of my environment details:</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>Winpacp Version : 4.1.1</DIV>
    <DIV>OS : Win2k3</DIV>
    <DIV>Memory : 8GB</DIV>
    <DIV>&nbsp;</DIV>
    <DIV>Thanks in advance.</DIV>
    <DIV><BR></DIV>
    <DIV>Pushkar</DIV></DIV></DIV>
    <P></P>
    <HR>

    <P></P>_______________________________________________<BR>Winpcap-users 
    mailing list<BR><A href="mailto:Winpcap-users@winpcap.org" 
    target=_blank>Winpcap-users@winpcap.org</A><BR><A 
    href="https://www.winpcap.org/mailman/listinfo/winpcap-users" 
    target=_blank>https://www.winpcap.org/mailman/listinfo/winpcap-users</A><BR>
    <P></P></DIV><BR>_______________________________________________<BR>Winpcap-users 
    mailing list<BR><A href="mailto:Winpcap-users@winpcap.org" 
    target=_blank>Winpcap-users@winpcap.org</A><BR><A 
    href="https://www.winpcap.org/mailman/listinfo/winpcap-users" 
    target=_blank>https://www.winpcap.org/mailman/listinfo/winpcap-users</A><BR><BR></BLOCKQUOTE></DIV><BR></DIV></DIV>
  <P></P>
  <HR>

  <P></P>_______________________________________________<BR>Winpcap-users 
  mailing list<BR><A href="mailto:Winpcap-users@winpcap.org" 
  target=_blank>Winpcap-users@winpcap.org</A><BR><A 
  href="https://www.winpcap.org/mailman/listinfo/winpcap-users" 
  target=_blank>https://www.winpcap.org/mailman/listinfo/winpcap-users</A><BR>
  <P></P></DIV></DIV></DIV><BR>_______________________________________________<BR>Winpcap-users 
  mailing list<BR><A 
  href="mailto:Winpcap-users@winpcap.org">Winpcap-users@winpcap.org</A><BR><A 
  href="https://www.winpcap.org/mailman/listinfo/winpcap-users" 
  target=_blank>https://www.winpcap.org/mailman/listinfo/winpcap-users</A><BR><BR></BLOCKQUOTE></DIV><BR></DIV>
<P>
<HR>

<P></P>_______________________________________________<BR>Winpcap-users mailing 
list<BR>Winpcap-users@winpcap.org<BR>https://www.winpcap.org/mailman/listinfo/winpcap-users<BR></BODY></HTML>