Code review - Issue 329400043: RPM comupting the RTT of each switchhttps://codereview.appspot.com/2017-12-06T16:00:42+00:00rietveld
Message from unknown
2017-10-07T08:43:38+00:00younes.tahri3urn:md5:24beec02648c7564356e1af0663ae4d9
Message from younes.tahri3@gmail.com
2017-10-07T08:51:29+00:00younes.tahri3urn:md5:aaecc1fd71532351e2a7b063b3404e52
Hey!
If you have some time you can review my code for RPM.
This code computes the RPM for each switch, but only one time.
Message from younes.tahri3@gmail.com
2017-10-07T08:54:38+00:00younes.tahri3urn:md5:928aeaaecef0d4a47fc92f93a550cd3a
Message from younes.tahri3@gmail.com
2017-10-07T08:57:36+00:00younes.tahri3urn:md5:c230da00ec47ce30784c3bf0df3107f4
Message from younes.tahri3@gmail.com
2017-10-07T09:01:28+00:00younes.tahri3urn:md5:d2b2b5dff866b0ea00982c180c506d78
Message from younes.tahri3@gmail.com
2017-10-07T09:02:29+00:00younes.tahri3urn:md5:a3c74e126b8a15d39fe370506f45ca80
Message from younes.tahri3@gmail.com
2017-10-07T09:03:23+00:00younes.tahri3urn:md5:a1aaffd2767949efa6005c204130a094
Message from unknown
2017-10-12T15:28:54+00:00younes.tahri3urn:md5:efe60efc58434b101b5324ce3c7e1213
Message from younes.tahri3@gmail.com
2017-10-12T20:08:12+00:00younes.tahri3urn:md5:4f3519998d10eefdd85b6a0e83c48ca3
Hey there!
Here is an updated version of the RPM!
Feel free to review when you have time!
PS: there is no difference betwwen the old version and the new version in Codereview, but that's because I forgot to do a git-cl upload before to do the push
Message from younes.tahri3@gmail.com
2017-10-12T20:10:55+00:00younes.tahri3urn:md5:011f0ac87dfd13a6b0f0d31e17892043
To view the full code, just click on context : whole file
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Thu, Oct 12, 2017 at 10:08 PM, <younes.tahri3@gmail.com> wrote:
> Hey there!
> Here is an updated version of the RPM!
> Feel free to review when you have time!
>
> PS: there is no difference betwwen the old version and the new version
> in Codereview, but that's because I forgot to do a git-cl upload before
> to do the push
>
> https://codereview.appspot.com/329400043/
>
Message from bpapageo@gmail.com
2017-10-12T20:16:19+00:00Vasileios Papageorgiouurn:md5:d1b01f9ba5bf8a6855173165cf41c8c1
Hi Yonues! I made a review on your first version of RPM
https://codereview.appspot.com/329400043/diff/1/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/1/RPM/RPM.py#newcode11
RPM/RPM.py:11: class L2Switch(app_manager.RyuApp):
Probably change the name of the class to RPM
https://codereview.appspot.com/329400043/diff/1/RPM/RPM.py#newcode15
RPM/RPM.py:15: super(L2Switch, self).__init__(*args, **kwargs)
here as well change it to RPM
https://codereview.appspot.com/329400043/diff/1/RPM/RPM.py#newcode36
RPM/RPM.py:36: #for i in self.switches:
do we need for loop?
Message from bpapageo@gmail.com
2017-10-12T20:27:00+00:00Vasileios Papageorgiouurn:md5:1eb6c3ec124915c87243713c740a0867
Hi Younes!
I made some comments on your new code for RPM
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode50
RPM/RPM.py:50: def roulette(self,ratio):
What is the use of this method? Is it used to create random number for swithces?
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode93
RPM/RPM.py:93: self.thread[switch_id].start()
are you achieving thread synchronization in here?
Message from engr.sikandar.iqbal@gmail.com
2017-10-16T22:02:25+00:00engr.sikandar.iqbalurn:md5:504edc4d756700d7a29b97f2ac2680b7
I'm looking forward to knowing your opinion regarding my comments. Thanks
BR,
Sikandar Iqbal
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode33
RPM/RPM.py:33: self.only_once[new_switch.id]=1
what is representation 1 for?
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode54
RPM/RPM.py:54: return 1
what 1 and 0 represent?
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode57
RPM/RPM.py:57: def threaded_function (self, datapath, switch_id):
Sorry I couldn't understand that you defined datapath and switch_id are equal and in barrier request method and here you are passing both datapath and switch_id as arguments?
Message from younes.tahri3@gmail.com
2017-10-17T08:32:48+00:00younes.tahri3urn:md5:4e4d6139994873ef820ebab8a5d83ea4
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode50
RPM/RPM.py:50: def roulette(self,ratio):
On 2017/10/12 20:27:00, Vasileios Papageorgiou wrote:
> What is the use of this method? Is it used to create random number for swithces?
it is used to pick the switches that we would want the RTT from
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode93
RPM/RPM.py:93: self.thread[switch_id].start()
On 2017/10/12 20:27:00, Vasileios Papageorgiou wrote:
> are you achieving thread synchronization in here?
No, I'm creating a thread for each switch
Message from younes.tahri3@gmail.com
2017-10-17T08:38:23+00:00younes.tahri3urn:md5:96fc2b77bef5d91e9cfadd9043082166
Hey there, I forgot to publish my comments. Here are my replies. I hope it's more clear now
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode33
RPM/RPM.py:33: self.only_once[new_switch.id]=1
On 2017/10/16 22:02:25, engr.sikandar.iqbal wrote:
> what is representation 1 for?
It's just a way of calling the function using (if only once==1) only one time
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode54
RPM/RPM.py:54: return 1
On 2017/10/16 22:02:25, engr.sikandar.iqbal wrote:
> what 1 and 0 represent?
1: We get the switch's RTT
0:We don't(sleep)
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode57
RPM/RPM.py:57: def threaded_function (self, datapath, switch_id):
On 2017/10/16 22:02:25, engr.sikandar.iqbal wrote:
> Sorry I couldn't understand that you defined datapath and switch_id are equal
> and in barrier request method and here you are passing both datapath and
> switch_id as arguments?
datapath and switch_id are not equal. The datapath is how the controller connects to the switch, and the switch_id is just the switch id.
They are arguments here because this function is called for each switch
Message from engr.sikandar.iqbal@gmail.com
2017-10-17T13:30:15+00:00engr.sikandar.iqbalurn:md5:382f05c965e55d061df6e8a282d16387
Thanks!
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode33
RPM/RPM.py:33: self.only_once[new_switch.id]=1
On 2017/10/17 08:38:22, younes.tahri3 wrote:
> On 2017/10/16 22:02:25, engr.sikandar.iqbal wrote:
> > what is representation 1 for?
>
> It's just a way of calling the function using (if only once==1) only one time
Thanks!
https://codereview.appspot.com/329400043/diff/20001/RPM/RPM.py#newcode54
RPM/RPM.py:54: return 1
On 2017/10/17 08:38:22, younes.tahri3 wrote:
> On 2017/10/16 22:02:25, engr.sikandar.iqbal wrote:
> > what 1 and 0 represent?
>
> 1: We get the switch's RTT
> 0:We don't(sleep)
ok, i got it
Message from unknown
2017-11-13T17:15:23+00:00younes.tahri3urn:md5:e596b05848e2f271ccc54a6f6ee2c15d
Message from younes.tahri3@gmail.com
2017-11-13T17:18:35+00:00younes.tahri3urn:md5:d8037d477fa87311282c6ee0bffeb3ea
Here is an updated code for the RPM, feel free to give comments.
Testing the fact that a switch that receives commands from the controller has a higher RPM.
+Starting to test how traffic affects the RPM
Message from bpapageo@gmail.com
2017-11-14T13:00:01+00:00Vasileios Papageorgiouurn:md5:3b907bb43626b8d28a2a693e2cae9321
Hi Younes,
See the comments for RPM implementation.
BR,
Vasilis Papageorgiou
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode45
RPM/RPM.py:45: self.iterator_302=0
why do we need self.iterator_302 for switch 302?
Can this be done by using a generic self.iterator ?
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode128
RPM/RPM.py:128: def threaded(self): # 1 thread for all the switches
Is the method threaded lines 128-147 used? I supposed it has to be used. IF it is still used i cannot see where it is called on the program. I believe that we should have self.threaded() somewhere. Please correct me if i am wrong
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode160
RPM/RPM.py:160: if switch_id==302:
i will check the switch id of another one as well to compare the RTT times of multiple switches that have rules. For instance, it would be necessary to install flows on switch 301 and compare the RTT of 301 with the RTT of 302
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode198
RPM/RPM.py:198:
lines 198-205 should be overwritten and delete both of them. This is based on the MyHTTPClient() class that is made for supporting GET, POST requests.
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode207
RPM/RPM.py:207: # self.thread =Thread(target = self.threaded,args=())
What about using ryu thread function ?
For instance, self.monitor_thread = hub.spawn(self._monitor)
was used on nfm to deal with Thread functionality
Message from unknown
2017-11-21T21:45:42+00:00younes.tahri3urn:md5:50544dfcb0741c9d80a275a1d1a37bcb
Message from younes.tahri3@gmail.com
2017-11-21T21:47:04+00:00younes.tahri3urn:md5:c472b4255b09a992e8a1293327a4a705
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode45
RPM/RPM.py:45: self.iterator_302=0
On 2017/11/14 13:00:01, Vasileios Papageorgiou wrote:
> why do we need self.iterator_302 for switch 302?
> Can this be done by using a generic self.iterator ?
This is just a tool to test how the traffic affects the RTT of s302. This is just a simple iterator that, when equal to 50s or 100s, gets the avg RTT for this switch
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode128
RPM/RPM.py:128: def threaded(self): # 1 thread for all the switches
On 2017/11/14 13:00:01, Vasileios Papageorgiou wrote:
> Is the method threaded lines 128-147 used? I supposed it has to be used. IF it
> is still used i cannot see where it is called on the program. I believe that we
> should have self.threaded() somewhere. Please correct me if i am wrong
this was used because the TA told us to try it, remember? 1 thread for all the switchs but then the handler was stuck in the loop and could compute the right RTT(check email)
So no, this is not used anymore, the function used is threaded_function
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode160
RPM/RPM.py:160: if switch_id==302:
On 2017/11/14 13:00:01, Vasileios Papageorgiou wrote:
> i will check the switch id of another one as well to compare the RTT times of
> multiple switches that have rules. For instance, it would be necessary to
> install flows on switch 301 and compare the RTT of 301 with the RTT of 302
Yes, this test is interesting, but to do so, maybe we need to separete the monitoring function from the rule sending function, so another file( check my last email)
I already tried this methode before without much success, but I'll try again, some stuff have been changed since.
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode198
RPM/RPM.py:198:
On 2017/11/14 13:00:01, Vasileios Papageorgiou wrote:
> lines 198-205 should be overwritten and delete both of them. This is based on
> the MyHTTPClient() class that is made for supporting GET, POST requests.
I don't understand what you mean here, can you clarify?
https://codereview.appspot.com/329400043/diff/40001/RPM/RPM.py#newcode207
RPM/RPM.py:207: # self.thread =Thread(target = self.threaded,args=())
On 2017/11/14 13:00:01, Vasileios Papageorgiou wrote:
> What about using ryu thread function ?
> For instance, self.monitor_thread = hub.spawn(self._monitor)
> was used on nfm to deal with Thread functionality
oh I didn't know about this, maybe this could be the solution
Message from younes.tahri3@gmail.com
2017-11-21T21:48:51+00:00younes.tahri3urn:md5:a4d6ff843e193636923ad2f4c0221125
Traffic generation : one terminal for each host+ssh+iperf
+Test automation for RPM: only one script to execute : autorun.sh
Message from unknown
2017-11-29T01:41:55+00:00younes.tahri3urn:md5:4c5fc005fc24ea4e92b517b799fcd666
Message from younes.tahri3@gmail.com
2017-11-29T01:44:55+00:00younes.tahri3urn:md5:a856cccb0c9551fd04a246a511b03733
Here you'll find the code I use to generate the graphs that are on the weekly report
Message from bpapageo@gmail.com
2017-11-29T13:49:20+00:00Vasileios Papageorgiouurn:md5:cbe9337c8518266de5fba567b9ef8cb6
Hi Younes,
Check my comments for RPM.py new file.
BR,
Vasileios Papageorgiou
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode1
RPM/RPM.py:1: from ryu.base import app_manager
How you run the file to see the graphs?
I checked by running ryu-manager RPM.py simple_switch_13.py and on another terminal
for topology : sudo mn --custom topo-stanford-campus.py --topo mytopo,s303,s304,s313,s314 --controller remote --mac
However, i see empty graphs been created.
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode25
RPM/RPM.py:25: def __init__(self, *args, **kwargs):
too many default parameters at _init_() . Delete the unnecessary ones.
You can use dictionaries to avoid have extended default values , as well.
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode113
RPM/RPM.py:113: def addRTT302_flows(self): #Computes avg RTT for s302 and s314 each time we add flows(here, 1 iperf flow added each 50s)
add more comments here to make the code understandable
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode130
RPM/RPM.py:130: def plot_RTTrules(self): #plot graph for s302 and s314 : RTT function of nb of rules sent to s302,no rules sent ro s314
add more comments here to make the code understandable
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode144
RPM/RPM.py:144: def plot_RTTflows(self): #plot graph for s302 and s314 : RTT function of nb of flows that go through s302. These flows don't go through s314 (cf topology)
Have you tried to use a box plot graph as Alireza suggested ?
Here is a sample code for creating a box-plot:
## Create data
np.random.seed(1)
# Put data to the box plot
print "#####################################################"
print self.collectn_1
print "#####################################################"
print self.collectn_2
self.data_to_plot = [self.collectn_1,self.collectn_2]
# Create a figure instance
fig = plt.figure(1, figsize=(9, 6))
# Create an axes instance
ax = fig.add_subplot(111)
# Create the boxplot
bp = ax.boxplot(self.data_to_plot)
#Save the figure
fig.savefig('fig1.png', bbox_inches='tight')
You can find also more ideas by accessing the links: http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/
https://plot.ly/matplotlib/box-plots/
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode188
RPM/RPM.py:188: #if self.iterator_302==100:
Remove commented lines(188-193)
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode226
RPM/RPM.py:226: #req = urllib2.Request(self.url, data, {'Content-Type': 'application/json', 'Content-Length': clen}) # sending the RTT to the cache
why lines 226-228 are commented in? Don't we need to send POST request to Database?
Message from 2016shana2333@gmail.com
2017-11-29T13:58:55+00:002016shana2333urn:md5:5d9eb03f638da2d5025133535b44aadf
Hi, here is a code review for RPM
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py
File RPM/test.py (right):
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py#newcode22
RPM/test.py:22: self.nbOfRules=0
What is nbOfRules used for?
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py#newcode42
RPM/test.py:42: def incrRules(self):
what is this function used for?
Message from younes.tahri3@gmail.com
2017-12-02T18:31:29+00:00younes.tahri3urn:md5:5426eacabc8e50589fba2c9e768eaad5
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py
File RPM/test.py (right):
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py#newcode22
RPM/test.py:22: self.nbOfRules=0
On 2017/11/29 13:58:55, 2016shana2333 wrote:
> What is nbOfRules used for?
nbOf rules is the number of rules to send to the switch 302 each periode of time T<<1s
https://codereview.appspot.com/329400043/diff/80001/RPM/test.py#newcode42
RPM/test.py:42: def incrRules(self):
On 2017/11/29 13:58:55, 2016shana2333 wrote:
> what is this function used for?
This function is used to to incremente the number of rules sent to s302:
each 10s, we add 5*20 sets of rules
Message from younes.tahri3@gmail.com
2017-12-02T18:42:11+00:00younes.tahri3urn:md5:fc4673821810ce74029757cf67509f5c
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode113
RPM/RPM.py:113: def addRTT302_flows(self): #Computes avg RTT for s302 and s314 each time we add flows(here, 1 iperf flow added each 50s)
On 2017/11/29 13:49:20, Vasileios Papageorgiou wrote:
> add more comments here to make the code understandable
yes, coming soon
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode144
RPM/RPM.py:144: def plot_RTTflows(self): #plot graph for s302 and s314 : RTT function of nb of flows that go through s302. These flows don't go through s314 (cf topology)
On 2017/11/29 13:49:20, Vasileios Papageorgiou wrote:
> Have you tried to use a box plot graph as Alireza suggested ?
> Here is a sample code for creating a box-plot:
> ## Create data
> np.random.seed(1)
> # Put data to the box plot
> print "#####################################################"
> print self.collectn_1
> print "#####################################################"
> print self.collectn_2
> self.data_to_plot = [self.collectn_1,self.collectn_2]
> # Create a figure instance
> fig = plt.figure(1, figsize=(9, 6))
> # Create an axes instance
> ax = fig.add_subplot(111)
> # Create the boxplot
> bp = ax.boxplot(self.data_to_plot)
> #Save the figure
> fig.savefig('fig1.png', bbox_inches='tight')
> You can find also more ideas by accessing the links:
> http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/
> https://plot.ly/matplotlib/box-plots/
i haven't tried that but it doesn't change anything. Running my code 3 times for example is equivalent to running your code way more times, because you need to change manually the frequency of number of rules sent. In my code the frequency is incremented each 10s
https://codereview.appspot.com/329400043/diff/80001/RPM/RPM.py#newcode188
RPM/RPM.py:188: #if self.iterator_302==100:
On 2017/11/29 13:49:20, Vasileios Papageorgiou wrote:
> Remove commented lines(188-193)
yes, a clean code is comming soon
Message from unknown
2017-12-02T20:01:55+00:00younes.tahri3urn:md5:d7997c648fe3f890503f6f5d2caee283
Message from younes.tahri3@gmail.com
2017-12-02T20:06:49+00:00younes.tahri3urn:md5:bcb68830d222c74568a38beda1f20d94
Hello!
You'll find here a commented version of the RPM code.
To try the code, open 2 terminals :
Terminal 1:taskset 0x2 ryu-manager RPM.py simple_switch_13.py test.py --ofp-tcp-listen-port 6633
Terminal 2: taskset 0x1 sudo mn --custom stanford-topo.py --topo mytopo,s302,s301,s303,s304,s204,s209 --controller=remote,ip=127.0.0.1,port=6633
To generate traffic, add "source iperf_traffic"
in the mininet CLI
Message from unknown
2017-12-05T20:34:24+00:00younes.tahri3urn:md5:573186f0e2cdb5d3f8f7aed9b5d6f3a4
Message from unknown
2017-12-05T20:38:49+00:00younes.tahri3urn:md5:4936c94e0dee5939ae6a9a4d130a3eb6
Message from younes.tahri3@gmail.com
2017-12-05T20:45:27+00:00younes.tahri3urn:md5:842c88a0e77ec89394d88d1d5626d426
Admission control test file, with updated port numbers(10001,10002,10003)
Message from unknown
2017-12-05T22:07:09+00:00younes.tahri3urn:md5:07389fbf24c54642f502b2edc1b2dc08
Message from younes.tahri3@gmail.com
2017-12-05T22:09:37+00:00younes.tahri3urn:md5:b48d628e7d830ae15120075e1fe0c026
Message from bpapageo@gmail.com
2017-12-06T15:24:25+00:00Vasileios Papageorgiouurn:md5:66e2aa24a7c6d6c559597db839594f2c
Hi Younes,
Check the comments for RPM.
BR,
Vasilis
https://codereview.appspot.com/329400043/diff/160001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/160001/RPM/RPM.py#newcode1
RPM/RPM.py:1: from ryu.base import app_manager
I am adding your own draft comments here so that it would be
more understandable for someone that wants to test RPM.
"To try the code, open 2 terminals :
Terminal 1:taskset 0x2 ryu-manager RPM.py simple_switch_13.py test.py
--ofp-tcp-listen-port 6633
Terminal 2: taskset 0x1 sudo mn --custom stanford-topo.py --topo
mytopo,s302,s301,s303,s304,s204,s209 --controller=remote,ip=127.0.0.1,port=6633
To generate traffic, add "source iperf_traffic"
in the mininet CLI"
https://codereview.appspot.com/329400043/diff/160001/RPM/RPM.py#newcode113
RPM/RPM.py:113: def addRTT302_flows(self): #Computes avg RTT for s302 and s314 each time we add flows(here, 1 iperf flow added each 30s)
What do you mean by 1 iperf flow added each 30s? Does it have to with the
topology/iperf_traffic test or with the topology/Admission_control test?
Message from bpapageo@gmail.com
2017-12-06T15:25:55+00:00Vasileios Papageorgiouurn:md5:a594656fa03b1cb8daa38de3d2030da8
Hi,
It seems a good script similar to what other automated test of Michael do.
BR,
Vasilis
Message from younes.tahri3@gmail.com
2017-12-06T16:00:42+00:00younes.tahri3urn:md5:bb56f057f28b86f0378b5a13576e2f79
https://codereview.appspot.com/329400043/diff/160001/RPM/RPM.py
File RPM/RPM.py (right):
https://codereview.appspot.com/329400043/diff/160001/RPM/RPM.py#newcode113
RPM/RPM.py:113: def addRTT302_flows(self): #Computes avg RTT for s302 and s314 each time we add flows(here, 1 iperf flow added each 30s)
On 2017/12/06 15:24:25, Vasileios Papageorgiou wrote:
> What do you mean by 1 iperf flow added each 30s? Does it have to with the
> topology/iperf_traffic test or with the topology/Admission_control test?
I use iperf_traffic file for this one. And in this file, you see that there is a sleep(30s) between each new iperf flow