hi kyriakos: I checked my directory ~/noxcore/src/nox/netapps, but I could not find the file monitoring.py. I think the nox I used is zaku, how can I change to destiny.
When I type "git clone git://noxrepo.org/nox", the following information come up. openflow@openflowvm:~$ git clone git://noxrepo.org/nox Initialized empty Git repository in /home/openflow/nox/.git/ noxrepo.org[0: 69.56.251.103]: errno=Connection timed out fatal: unable to connect a socket (Connection timed out) I wonder if I miss some steps. Thank your for advance. hzy 2011/10/28 Kyriakos Zarifis <kyr.zari...@gmail.com> > Hi, > > like you noticed, the 'discovery' component does not provide any > information like that. It only does neighbor discovery. > If you want to collect switch related information, you need to write your > own component and collect that information programatically using NOX's API > to do switch queries etc. > > The 'monitoring' component (under netapps/) has some very relevant > functionality, so you will find it useful to look at, or even copy code from > it. What 'monitoring' does is that is periodically sends out a bunch of > queries to all connected switches, collects statistics and exposes that info > to other components. It sounds similar to what you want to do. > > One way you could go about measuring a link's utilization is to > periodically see how many bytes have been sent out a port. The bytes sent > over a period T divided by T will give you a rough estimate of the Tx rate. > Divide that by link capacity for a rough estimate of utilization. The > smaller the period, the better the estimate, but the more control traffic. > 'monitoring' also does something like that, so you can take a look there. > > > On Thu, Oct 27, 2011 at 11:48 PM, hzy <yyjianx...@gmail.com> wrote: > >> hi Kyriakos: >> >> Thank you for your reply. I have solved my problem. But the discovery >> component doesn't meat my requirement. >> I want to collect the link information dynamically. e.g. the utilization >> rate of bandwith. Can I get this kind of information directly? If not what >> can I do to fit my aim? Can you give me some davices? >> >> thanks for advance. >> >> >> >> >> 2011/10/11 Kyriakos Zarifis <kyr.zari...@gmail.com> >> >>> Hi there, >>> >>> in order use Link_events in your python component you need to: >>> >>> 1) make your component aware of the Link_event object by importing it >>> 2) register a handler for the event in your component's configure() (to >>> make your component respond to such events) >>> 3) write a handler (to tell your component how it should respond to such >>> events) >>> >>> so, in practice: >>> >>> # 1 >>> from nox.netapps.discovery.pylinkevent import Link_event >>> ... >>> # 2 >>> def install(self): >>> ... >>> self.register_handler(Link_event.static_get_name(), >>> self.handle_link_event) >>> .... >>> # 3 >>> def handle_link_event(self, e): >>> print "Received link event:", e.__dict__ # this will show you >>> the contents of the event (for example: 'dport': 2, 'dpsrc': 1L, 'dpdst': >>> 2L, 'sport': 2, 'action': 'add') >>> # do something about the event here >>> >>> >>> On Tue, Oct 11, 2011 at 3:17 AM, hzy <yyjianx...@gmail.com> wrote: >>> >>>> Hi murphy: >>>> >>>> yes, the results are the same. >>>> the NOX I am using is download from >>>> http://www.openflow.org/wk/index.php/OpenFlow_Tutorial. >>>> Never mind, the thing I concern is that how can i deal with the >>>> link_event in my component. >>>> I think I should look some codes, like core.py or something else, I >>>> just don't know how to start. >>>> Can you give me some advice? >>>> best regards >>>> >>>> hzy >>>> >>>> >>>> 2011/10/11 Murphy McCauley <jam...@nau.edu> >>>> >>>>> I don't know anything about pytutorial (it's not one of the mainlin NOX >>>>> components), so I don't really know what to make of that. >>>>> >>>>> You tried implementing getInterface() like below on your my_router >>>>> class? >>>>> def getInterface (self): >>>>> return str(my_router) >>>>> >>>>> And the results were the same? >>>>> >>>>> This is unrelated, but you also seem to be using a version of NOX >>>>> that's over a year old. The destiny branch in particular has many bug >>>>> fixes. >>>>> >>>>> -- Murphy >>>>> >>>>> On Oct 10, 2011, at 7:40 PM, hzy wrote: >>>>> >>>>> Hi murphy: >>>>> >>>>> Thank you for your reply, but I have added these codes in my component. >>>>> This time I tried to invoke component pytutorial, so that you can get >>>>> more information in your computer. >>>>> >>>>> So I add following codes in discovery component. >>>>> self._pytutorial = >>>>> self.resolve("nox.coreapps.tutorial.pytutorial.pyturorial") >>>>> print self._pytutorial.mac_to_port >>>>> >>>>> 00478|pyrt|ERR:unable to invoke a Python event handler: >>>>> Traceback (most recent call last): >>>>> File "./nox/lib/util.py", line 116, in f >>>>> event.total_len, buffer_id, packet) >>>>> File "./nox/netapps/discovery/discovery.py", line 166, in <lambda> >>>>> discovery.lldp_input_handler(self,dp,inport,reason,len,bid,packet), >>>>> File "./nox/netapps/discovery/discovery.py", line 316, in >>>>> lldp_input_handler >>>>> print self._pytutorial.mac_to_port >>>>> AttributeError: 'NoneType' object has no attribute 'mac_to_port' >>>>> >>>>> I was confused. >>>>> >>>>> In other hand, I accept your advise to handle discovery's Link_even. >>>>> Since I am a newbie, can you give me some advice how to deal with >>>>> Link_event >>>>> in my component? >>>>> >>>>> Best regards. >>>>> >>>>> hzy >>>>> >>>>> 2011/10/10 Murphy McCauley <jam...@nau.edu> >>>>> >>>>>> Whoops. I meant: >>>>>> >>>>>> def getInterface (self): >>>>>> return str(my_router) >>>>>> >>>>>> Sorry about that! >>>>>> >>>>>> -- Murphy >>>>>> >>>>>> >>>>>> On Oct 10, 2011, at 7:51 AM, Murphy McCauley wrote: >>>>>> >>>>>> So first off, maybe you have a reason, but in general, the hope is >>>>>> that you should have no reason to modify discovery.py. Rather than >>>>>> modify >>>>>> discovery.py to explicitly call your component, hopefully you should be >>>>>> able >>>>>> to simply handle discovery's Link_event. >>>>>> >>>>>> If you really do need to modify discovery.py to call your component >>>>>> explicitly, then as for why your code doesn't work, I don't think I have >>>>>> enough information to say. Assuming that your paths are right (you have >>>>>> a >>>>>> directory/package called my_experiment) and that in my_router.py you >>>>>> have a >>>>>> class/component called my_router... my best guess is that you didn't >>>>>> implement getInterface() in my_router in the expected way. Try adding >>>>>> the >>>>>> following to your my_router class: >>>>>> >>>>>> def getInterface (self): >>>>>> return my_router >>>>>> >>>>>> Hope that helps. >>>>>> >>>>>> -- Murphy >>>>>> >>>>>> On Oct 10, 2011, at 6:45 AM, hzy wrote: >>>>>> >>>>>> hi murpy: >>>>>> Thank you for your reply. it works now, but another problem comes up. >>>>>> This time I want the discovery component invoke the dic_all_path >>>>>> defined in my modle. >>>>>> >>>>>> So I add following codes in discovery component >>>>>> self._my_router = >>>>>> self.resolve("nox.coreapps.my_experiment.my_router.my_router") >>>>>> print self._my_router.dic_all_path >>>>>> >>>>>> I also tried these codes >>>>>> from nox.coreapps.my_experiment import my_router >>>>>> self._my_router = self.resolve(my_router.my_router >>>>>> print self._my_router.dic_all_path >>>>>> >>>>>> 00206|pyrt|ERR:unable to invoke a Python event handler: >>>>>> Traceback (most recent call last): >>>>>> File "./nox/lib/util.py", line 116, in f >>>>>> event.total_len, buffer_id, packet) >>>>>> File "./nox/netapps/discovery/discovery.py", line 163, in <lambda> >>>>>> >>>>>> discovery.lldp_input_handler(self,dp,inport,reason,len,bid,packet), >>>>>> File "./nox/netapps/discovery/discovery.py", line 312, in >>>>>> lldp_input_handler >>>>>> print self._my_router.dic_all_path >>>>>> AttributeError: 'NoneType' object has no attribute 'dic_all_path' >>>>>> >>>>>> any ideas. >>>>>> best regards. >>>>>> >>>>>> hzy >>>>>> >>>>>> >>>>>> 2011/10/9 Murphy McCauley <jam...@nau.edu> >>>>>> >>>>>>> So, the discovery component is a class named "discovery" in a module >>>>>>> named "discovery" in a package named "discovery". So it's... >>>>>>> discovery.discovery.discovery. You've only got discovery.discovery. I >>>>>>> can >>>>>>> see how it's a bit confusing. :) >>>>>>> >>>>>>> So try the following instead: >>>>>>> self._discovery = self.resolve(discovery.discovery) >>>>>>> >>>>>>> Or alternatively, do: >>>>>>> self._discovery = >>>>>>> self.resolve("nox.netapps.discovery.discovery.discovery") >>>>>>> (In this case, you don't even need the import statement) >>>>>>> >>>>>>> -- Murphy >>>>>>> >>>>>>> On Oct 9, 2011, at 1:21 AM, hzy wrote: >>>>>>> >>>>>>> > hi all: >>>>>>> > >>>>>>> > Inorder to find interconnected links in my topology, i would like >>>>>>> to use discovery.py. >>>>>>> > In my own component I want to check the adjacency_list which is a >>>>>>> public attribute in discovery module. >>>>>>> > How can I use discovery from my component. >>>>>>> > >>>>>>> > I add the following codes, but it doesn't work. >>>>>>> > >>>>>>> > from nox.netapps.discovery import discovery >>>>>>> > self._discovery = self.resolve(discovery) >>>>>>> > print self._discovery.adjacency_list >>>>>>> > >>>>>>> > File "./nox/coreapps/my_experiment/my_router.py", line 499, in >>>>>>> datapath_join_callback >>>>>>> > print self._discovery.adjacency_list >>>>>>> > AttributeError: 'NoneType' object has no attribute 'adjacency_list' >>>>>>> > >>>>>>> > any ideas? >>>>>>> > thanks for advance. >>>>>>> > best regards >>>>>>> > >>>>>>> > hzy >>>>>>> > _______________________________________________ >>>>>>> > nox-dev mailing list >>>>>>> > nox-dev@noxrepo.org >>>>>>> > http://noxrepo.org/mailman/listinfo/nox-dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> nox-dev mailing list >>>> nox-dev@noxrepo.org >>>> http://noxrepo.org/mailman/listinfo/nox-dev >>>> >>>> >>> >> >
_______________________________________________ nox-dev mailing list nox-dev@noxrepo.org http://noxrepo.org/mailman/listinfo/nox-dev