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

Reply via email to