Thanks for sharing your experience!

-Christian

On Sat, Jun 15, 2013 at 12:37 PM, Philippos Isaia <p.is...@lboro.ac.uk> wrote:
> Hi,
>
> I was thinking of my idea that "There is a small time interval every time
> you change the limit.  In that time interval, the switch/router disables the
> previous limit and enables the new limit. (i.e. flow table
> entry/modification)  But as soon as the previous limit is disabled, the
> switch/router is sending data without any restriction, until the new limit
> is enabled.  That time interval causes increase in bandwidth", and I was
> trying to find a way to eliminate that to see if the rate limiting works.
>
> And I have solved the problem.
>
> Instead of adding new meters and assign them to flow entries, I have decided
> to assign just one meter and every time I want the rate to change, to just
> modify that specific meter.
>
> Therefore,
>
> create meter
>
> dpctl tcp:127.0.0.1:6634 meter-mod cmd=add,flags=1,meter=1 drop:rate=10000
>
> add the flow entries
>
> dpctl tcp:127.0.0.1:6634 flow-mod table=0,cmd=add in_port=2 meter:1
> apply:output=1
>
> and every time I want to change the rate just execute the command
>
> dpctl tcp:127.0.0.1:6634 meter-mod cmd=mod,flags=1,meter=1 drop:rate=20000
>
> and it works perfectly.
>
> Therefore problem solved!
>
> Regards,
> Philip
>
> On 15 Jun 2013, at 15:57, Philippos Isaia <p.is...@lboro.ac.uk> wrote:
>
> Hi,
>
> I would like some help with the OpenFlow 1.3 implementation, specifically
> per flow meters.  What I am trying to do is to limit the rate of flow for
> the packets send from one host to another.  For the time I am running my
> experiment both on Mininet and on a TP-Link router using OpenWRT with
> OpenFlow 1.3.
> In order to create this rate limitation I am using dpctl. First of all I
> create the meters and then apply them to the connection once I want the
> specified limiting to take place.  Here is an example of how I create the
> meters and then apply them.
>
> Create Meters
>
> dpctl tcp:127.0.0.1:6634 meter-mod cmd=add,flags=1,meter=1 drop:rate=10000
> dpctl tcp:127.0.0.1:6634 meter-mod cmd=add,flags=1,meter=2 drop:rate=20000
>
> Apply Meters
> Initial Meter:
>
> dpctl tcp:127.0.0.1:6634 flow-mod table=0,cmd=add in_port=2 meter:1
> apply:output=1
>
> After 10seconds:
>
> dpctl tcp:127.0.0.1:6634 flow-mod table=0,cmd=add in_port=2 meter:2
> apply:output=1
>
> Problem
>
> I am using Iperf and Jperf to run my experiments.  I am sending UDP traffic
> from one host to another.  When I have the first meter active, I get a
> bandwidth of around 10Mbits.  The problem is that once I apply the second
> meter, instead of getting a smooth increate to around 20Mbits, the bandwidth
> for a second goes to around 30-35Mbits and then settles down to 20Mbits.  I
> have repeated the experiment several times using either Mininet (with
> OpenFlow 1.3) or the TP-Link router with OpenWRT.  All of the runs are
> identical.
>
> <tp13-061202-r.png>
>
> Anybody having any idea what is causing such an anomaly?
>
> I came up with several ideas and investigated them with several experiments
> but the anomaly still exists.  Here are my ideas and the experiments.
>
> Idea 1
>
> Instead of immediately doubling the bandwidth, I tried to make a more smooth
> change.
>
> Therefore instead of having:
> Meter 1 = 10000
> Meter 2 = 20000
>
> I created some in between steps to see if the anomaly still exists, like:
> Meter 1 = 10000
> Meter 2 = 10500
> Meter 3 = 11000
> Meter 4 = 11500
>
> Unfortunately there is the same anomaly as before. Even if the difference
> between the meters is just 1. Like from 10000 to 10001.
>
> Idea 2
>
> Maybe, during the rate change, there are some asynchronous packets in the
> buffer that may get processed, and maybe that is the reason for such a
> higher bandwidth.  Therefore what I did was to make the buffer size equal or
> even smaller than the packet size.
> Through that process I wanted to actually eliminate the possibility that
> packets may remain in the buffer.  Therefore no asynchronous packet
> processing can take place.
> Unfortunately the result remains the same! Anomaly still exists.
>
> Idea 3
>
> I believe that there is a small time interval every time you change the
> limit.  In that time interval, the switch/router disables the previous limit
> and enables the new limit (i.e. flow table modification).  But as soon as
> the previous limit is disabled, the switch/router is sending data without
> any restriction, until the new limit is enabled.  That time interval causes
> increase in bandwidth.", is the strongest candidate for the anomaly I face.
>
>
> Therefore, does anybody knows what is the problem that cause such a
> behaviour?  Any possible suggestions?  Solutions?
>
>
>
> _______________________________________________
> openflow-discuss mailing list
> openflow-discuss@lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
>



-- 
Christian
_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to