In the patch in attachment you can find a "proof of concept" about the
improvements for vde_switch packets queue management I did (the
interesting part is in packetq.c).
Sincerely, I don't know if it works as I expect, but the road test isn't bad.
To better say, I'm almost sure it does not work as I expect (probably
loss of data in type conversion), but the fact I obtain less OOO
packets and better throughput UDP/TCP means something better can be
done here.

The basic idea is to change the TIMEOUT dynamically, based on the
current queue status to avoid queue fullness. "If the queue is filling
up, try to manage it more frequently".

As I stated somewhere else, the microsecond resolution of poll is not
enough, please consider to switch to ppoll coupled with clock_gettime
instead of gettimeofday.

At present I use queue length as status reference, but (see commented
code) you will find I tried to base this on the queue "crossing"
(elaboration) time. More time queue management takes, more frequently
the management should be started (lowering the timeout). Because of
the free cpu time vde_switch process leaves free, complex and smart
managements are possible and should give better
throughput/loss/OOOpckts performance. Notice that this free cpu-time
can be due to weird behavior of the program and an eye must be kept
open on this.

The TIMES of retransmission should be dynamic too in my opinion and/or
under user control. And about the fact that if a packet cannot be
transmitted "now" the management pass to the next packet may not be
ever the best. "Passing to the next" is likely better for UDP (only
when different packet sizes are present of course, that is the normal
condition though), "Retrying until transmit" is likely better for
TCP... But here we are going to design more a good router than a
standard switch...

Of course, as stated somewhere else, one queue per-port is much better and fair.

I did not have time to read the interesting documentation you posted,
but a good knowledge of how real switches work is a good start point.
Even if it's very interesting, I do not have anymore so much time to
spend on this work. I have to stop putting new irons in the fire at
the moment.

Of course I wait your replies.

Regards

                       Simone



2011/2/25 Daniele Lacamera <r...@danielinux.net>:
> On Fri, Feb 25, 2011 at 08:37:35AM +0100, Daniele Lacamera wrote:
>> tail and a RED implemented as separate modules, don't know if they can be
>> useful. RED is very difficult to implement, so I had basically stolen that
>> from linux implementation ;).
>>
>
> Forgot to mention: I had also ported the tbf (token bucket) from linux tc,
> you will find all those modules in the vde_l3 dir.
>
>
>
> ------------------------------------------------------------------------------
> Free Software Download: Index, Search & Analyze Logs and other IT data in
> Real-Time with Splunk. Collect, index and harness all the fast moving IT data
> generated by your applications, servers and devices whether physical, virtual
> or in the cloud. Deliver compliance at lower cost and gain new business
> insights. http://p.sf.net/sfu/splunk-dev2dev
> _______________________________________________
> vde-users mailing list
> vde-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/vde-users
>

Attachment: vde_patch.patch
Description: Binary data

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
vde-users mailing list
vde-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vde-users

Reply via email to