On Wed, 2 Sep 2015 08:26:31 +0900 Yusuke Iwase <[email protected]> wrote:
> Hi, > > On 2015年08月29日 03:46, Alan Deikman wrote: >> >>> On Aug 27, 2015, at 10:44 PM, Yusuke Iwase <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> If OVS work so, I think it is a bug of OVS and tester.py should not wait >>> OVS. >> >> I believe you are right. In the process of investigating this I captured >> all the OpenFlow packets between Ryu and the switches and looked at them >> with Wireshark. There seems to be no problem with how tester.py uses the >> OpenFlow protocol. >> >> The flaw is that the OF agent that OVS uses will update its own data base >> (tables of flows) then signal via the Barrier Request Reply that this is >> done. It should wait until the flow tables all the way into the cache are >> updated but it does not. However it appears this will be very hard to >> implement due to the architecture of OVS which separates the data base >> (ovsdb) from the actual switching logic (openvswitchd and the dkms kernel >> module.) >> >> However since so many OF products are based on OVS I wonder if tester.py >> should have an additional command line option to invoke this work around. > > If tester.py should support such feature, how about the following patch? > I added sleep interval for each test case. > > > $ git diff > diff --git a/ryu/flags.py b/ryu/flags.py > index 225cbbb..a45ac34 100644 > --- a/ryu/flags.py > +++ b/ryu/flags.py > @@ -80,5 +80,8 @@ CONF.register_cli_opts([ > '(default: openflow13)'), > cfg.StrOpt('tester-version', default='openflow13', > help='tester sw OFP version [openflow13|openflow14] ' > - '(default: openflow13)') > + '(default: openflow13)'), > + cfg.IntOpt('interval', default=0, > + help='interval time in seconds of each test ' > + '(default: 0)'), how about tester-interval for the consistency with the rest? > ], group='test-switch') > diff --git a/ryu/tests/switch/tester.py b/ryu/tests/switch/tester.py > index 6c4e233..5087614 100644 > --- a/ryu/tests/switch/tester.py > +++ b/ryu/tests/switch/tester.py > @@ -273,6 +273,7 @@ class OfTester(app_manager.RyuApp): > super(OfTester, self).__init__() > self._set_logger() > > + self.interval = CONF['test-switch']['interval'] > self.target_dpid = self._convert_dpid(CONF['test-switch']['target']) > self.target_send_port_1 = CONF['test-switch']['target_send_port_1'] > self.target_send_port_2 = CONF['test-switch']['target_send_port_2'] > @@ -434,6 +435,7 @@ class OfTester(app_manager.RyuApp): > result = self._test_execute(test, desc) > report.setdefault(result, []) > report[result].append([testfile.description, test.description]) > + hub.sleep(self.interval) > return report > > def _test_execute(self, test, description): > > > Usage Example) > $ ryu-manager ryu/tests/switch/tester.py --test-switch-interval 10 > > > Thanks, > Iwase > >> >> ---------------------------- >> Alan Deikman >> ZNYX Networks, Inc. >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> >> >> _______________________________________________ >> Ryu-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> > > ------------------------------------------------------------------------------ > _______________________________________________ > Ryu-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/ryu-devel > ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
