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

Anton Tremsin ast at ssl.berkeley.edu
Fri Feb 11 01:35:30 PST 2011


Thanks Mark,

  Did not try with setmintocopy (0), will try it on Monday.

Anton
>
> Have you tried with setmintocopy at 0?
>
> *From:* winpcap-users-bounces at winpcap.org 
> [mailto:winpcap-users-bounces at winpcap.org] *On Behalf Of *Anton Tremsin
> *Sent:* Thursday, February 10, 2011 6:59 PM
> *To:* Gianluca Varenni
> *Cc:* winpcap-users at winpcap.org
> *Subject:* Re: [Winpcap-users] Delay receiving packets - wrong 
> functionality ofpcap_setmintocopy()
>
> 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
>    
>
>
> _______________________________________________
> Winpcap-users mailing list
> 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/20110211/62266246/attachment-0001.html>


More information about the Winpcap-users mailing list