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