[Winpcap-users] Delay receiving packets - wrong functionality ofpcap_setmintocopy()

Anton Tremsin ast at ssl.berkeley.edu
Thu Feb 10 18:58:38 PST 2011


Exactly, I almost always see the timeout, even with setmintocopy set to 1.

I can send multiple bunches of my packets (my each "frame" consists of 
64 packets) in very short time from my detector. Then the winpcap 
receives then in small chunks, not a fixed number of packets. Then waits 
till timeout, then sends another batch of those packets sent into 
Winpicol long time ago, then waits for timeout again, etc. That means 
the data is not lost, but for some reason is being sent in small chunks 
rather than in packs of 64 packets, the size of these chunks does not 
change with value set in setmintocopy. However, it is not as simple as 
setmintocopy fails: I know there is data in the PC already, I read part 
of it after each timeout and that can continue for a long time if I make 
large buffer and fill it with packets from the detector.

I also tested it on another computer , which is Windows XP, not Windows 
7. So that is not Windows 7 problem. Must be something else. Asked 
Chelsio support - they do not know any reason why it could be caused by 
the driver of the card.

Thanks a lot for your help.

Anton
>
> So, if you put a mintocopy of 1, you still experience a timeout in 
> some cases?
>
> GV
>
> PS: please do not remove winpcap-users at winpcap.org 
> <mailto:winpcap-users at winpcap.org> from the recipients.
>
> *From:* Anton Tremsin [mailto:ast at ssl.berkeley.edu]
> *Sent:* Friday, February 04, 2011 10:07 PM
> *To:* Gianluca Varenni
> *Subject:* Re: [Winpcap-users] Delay receiving packets - wrong 
> functionality ofpcap_setmintocopy()
>
> I do use pcap_setmintocopy() functon.
>
> That is exactly the problem: I use value equal to 64 packets 
> (8234*64=526976), value equal to 1 byte only - behavior seems to be 
> very similar, packets are delayed till timeout.
>
> Thanks,
>
> Anton
>
> What value do you use for mintocopy? Do you call pcap_setmintocopy?
>
> Have a nice day
>
> GV
>
> *From:* Anton Tremsin [mailto:ast at ssl.berkeley.edu]
> *Sent:* Friday, February 04, 2011 9:39 PM
> *To:* winpcap-users at winpcap.org <mailto:winpcap-users at winpcap.org>
> *Cc:* Gianluca Varenni
> *Subject:* Re: [Winpcap-users] Delay receiving packets - wrong 
> functionality ofpcap_setmintocopy()
>
> Gianluca,
>
> Thanks a lot for helping me. I am in a dire situation since my 
> detector really needs that problem to be solved before our experiments 
> in couple of months time (need to do a lot of debugging and code 
> writing after Winpcap issue is solved).
>
> I am not loosing packets. Sorry if I made it confusing.
>
> The packets always arrive into my C code (although Wireshark may loose 
> them, maybe that was a confusion with packets being lost). I only need 
> my C code to work right.  The rest of packets come only after the 
> timeout.
>
> I varied timeout from 1 ms to 20 sec and the effect is the same. With 
> timeout 0 - the packets do not arrive until I push more packets into 
> Chelsio card and these, in turn, push the once which were already in 
> some buffer.
>
> I am using Chelsio card, but Winpcap I downloaded from the official 
> website (version 4.1.2).
>
> The problem seems to be as if the function setmintocopy() does not 
> work right and the driver decides by itself how much to buffer before 
> sending it to me. One strange thing - the number of packets being 
> delivered to me changes from time to time, however very often number 
> 31 (31 packets, 8234 bytes each) arrive in a single chunk. Sometimes 
> it is 62 packets, sometimes other numbers, e.g. 57. etc.
>
> I will be very glad if someone ca advise something I can try to 
> resolve that issue.
>
> Thanks again,
>
> Anton
>
>
> Anton,
>
> You say that you are using a Chelsio board. Are you using the official 
> version of WinPcap or Chelsio provided you with a custom one? What do 
> you set as timeout and mintocopy?
>
> Have a nice day
>
> GV
>
> *From:* winpcap-users-bounces at winpcap.org 
> <mailto:winpcap-users-bounces at winpcap.org> 
> [mailto:winpcap-users-bounces at winpcap.org] *On Behalf Of *Mark 
> Pizzolato - WinPCap-Users
> *Sent:* Friday, January 28, 2011 11:57 AM
> *To:* winpcap-users at winpcap.org <mailto:winpcap-users at winpcap.org>
> *Subject:* Re: [Winpcap-users] Delay receiving packets - wrong 
> functionality ofpcap_setmintocopy()
>
> Ho Anton,
>
> My first question to you would be:
>
> WHY are you using WinPcap to receive UDP packets?
>
> This sounds like a job for a winsock application....
>
> Mark Pizzolato
>
> *From:* winpcap-users-bounces at winpcap.org 
> <mailto:winpcap-users-bounces at winpcap.org> 
> [mailto:winpcap-users-bounces at winpcap.org] *On Behalf Of *Anton Tremsin
> *Sent:* Friday, January 28, 2011 11:50 AM
> *To:* winpcap-users at winpcap.org <mailto:winpcap-users at winpcap.org>
> *Subject:* [Winpcap-users] Delay receiving packets - wrong 
> functionality ofpcap_setmintocopy()
>
> I hope someone can help my problem receiving packets in Windows7
>
> I am sending data by UDP packets from an FPGA through 10GB card 
> (Chelsio). Using VC++ 2010 to compile code to receive them.
>
> All packets arrive, no losses seen, but the problem is with the proper 
> *operation of pcap_setmintocopy() function.*
>
> *I send 64 packets with 8234 bytes each. Receiving them through 
> pcp_next_ex() and I only get 31 packets (sometimes 62, sometimes 47, 
> 50 packets) before the timeout occurs. After timeout the rest of the 
> packets arrives.
> *
> I set the minimum amount of data in the kernel buffer that causes a 
> read from the application to return (unless the timeout expires) to be 
> 1 byte or it to be all 8234x64 bytes, no difference. Looks like the 
> setmintocpy function has no effect on my kernel buffer to be copied to 
> my application. If I send another set of 64 packets - data arrives 
> into pcp_next_ex(), still only in lamp of 31 (62, 47,50) packets
>
> That is a big problem for my application.
>
> *Is there anything I am doing wrong or need to change something in the 
> system/driver to make setmintocopy function to operate properly?
> *
> Thanks a lot for your help,
>
> Anton Tremsin
>
>
>
> -- 
>   
> Anton S. Tremsin, Ph.D.
> Space Sciences Laboratory
> University of California at Berkeley
> Berkeley, CA 94720
> Tel: (510) 642 4554
>   
>   
> _______________________________________________
> Winpcap-users mailing list
> Winpcap-users at winpcap.org  <mailto:Winpcap-users at winpcap.org>
> https://www.winpcap.org/mailman/listinfo/winpcap-users
>    
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winpcap.org/pipermail/winpcap-users/attachments/20110210/ca022ca3/attachment-0001.html>


More information about the Winpcap-users mailing list