Hi Natasha,

After some more debugging I discovered the error message was caused by a 
minor typo in our code. Instead of assigning to the attribute "outport" 
of a FullRoute instance, we were inadvertently assigning to "output" 
(this is in Python code). Could you add generating an error message when 
users do this as a low-priority feature request please :-)

Also, while I understand the logic of wanting to prevent the inport and 
outport from being the same at either end of the link, what happens when 
someone uses NOX on a wireless AP in which case it may be the case that 
the input and output should be the same?

Thanks again,
Glen


Natasha Gude wrote:
> The message means that if the found route were to be installed, the 
> flow would be sent out the same port that it came in on at either the 
> source or destination access point switch.  NOX state-wise, it means 
> we have a link connected to the same port as a switch, which is 
> incorrect.  In the test code, the inport/outport fields of the 
> FullRoute object describe where the endhosts are connected, not where 
> the links are connected (which is on port 0).
>
> Natasha
>
> On Jul 18, 2008, at 8:16 PM, Glen Gibb wrote:
>
>> Hi all,
>>
>> Perhaps I'm misunderstanding the get_route event but I'm getting error
>> messages like the following at times:
>> 00008|routing|ERR:Invalid route between aps 1731efa639:3 and
>> 1731ed8d28:0 (inport == outport)
>>
>> Can someone clarify what this error means? As far as I can tell this
>> error doesn't make sense for the scenario in which I'm trying to use it.
>> I have three OF switches connected effectively in a line -- the two aps
>> listed above are on opposite ends of this line.
>>
>>
>> Also, looking through the examples for sample code I saw the following
>> in pyunittests/routing_test.py:
>>   def post_events(self):
>>       e = Link_event(netinet.datapathid.from_host(2),
>>                      netinet.datapathid.from_host(3),
>>                      0, 0, Link_event.ADD)
>>       self.post(e)
>>       e = Link_event(netinet.datapathid.from_host(1),
>>                      netinet.datapathid.from_host(2),
>>                      0, 1, Link_event.ADD)
>>       self.post(e)
>>       self.d = defer.Deferred()
>>       return self.d
>>
>>   def handle_link_event(self, event):
>>       if self.n_received == 0:
>>           self.n_received = 1
>>           return CONTINUE
>>
>>       route = pyrouting.PyFullRoute()
>>       route.id.src = src = netinet.datapathid.from_host(1)
>>       route.id.dst = dst = netinet.datapathid.from_host(3)
>>       route.inport = route.outport = 1
>>
>>       if not self.routing.get_route(route):
>>
>> Reading the above I would have thought that 1 and 3 would have been
>> connected on port 0, but in the get_route it looks like you're querying
>> from port 1?
>>
>>
>>
>> Thanks,
>> Glen
>>
>> _______________________________________________
>> nox-dev mailing list
>> [email protected]
>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
>
>


_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to