On Thu, 2011-12-01, wzab wrote:
> On Dec 1, 11:47*am, wzab <wza...@gmail.com> wrote:
>> On Nov 30, 7:55*pm, Rick Jones <rick.jon...@hp.com> wrote:
>>
>> > wzab <wza...@gmail.com> wrote:
>> > > I have succeeded with implementation of my own layer 3 protocol in
>> > > user space, however the acknowledge was generated in user space
>> > > (using the libpcap), which significantly increased latency and
>> > > limited the throughput (as I have to buffer not acknowledged packets
>> > > in the FPGA's internal memory for possible retransmission)
>>
>> > Um, just how much latency are we talking about, and is your protocol
>> > streaming or request/response?
>>
>> I need to achieve at least 100Mb/s, while I have ca 40kB of memory in
>> my FPGA.
>> Assuming some protocol overhead and latency jitter it means, that the
>> buffered data
>> should occupy not more, than 30kB.
>> Finally it gives us the latency of 2.4ms
>> However I'd like to use smaller FPGA , so smaller latencies are
>> desired...
>>
>
> Of course what I was talking about is streaming.
> The control protocol is much more latency-tolerant, so streaming
> of measurement data is my main problem.
>
> I was thinking about different UDP or IP based solutions (RDS?),
> but as routing is anyway not necessary, I decided to get rid of the
> whole IP layer and use raw Ethernet frames...
That reminds me: what about the "fake IP stack" suggestion I made
elsewhere in the thread? It seems to me that if you *don't* have to
write a brand new L3 layer at the Linux end you'll save a lot of work,
and you'll benefit from all the work that has been done to make the
Linux IP stack as efficient as possible.
/Jorgen
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
|