There actually was another bad handler.  I've now actually pushed a handful of 
commits that address this specific problem and implement my suggestion for 
making the whole thing more robust (more or less -- I'd actually forgotten how 
much refactoring I'd done).  As a bonus, I made some minor fixes and 
implemented an entirely new (minor) feature: support for GET_CONFIG_REPLY.

Thanks again for the report!

-- Murphy

On Jun 3, 2014, at 2:22 PM, Murphy McCauley <murphy.mccau...@gmail.com> wrote:

> Thanks, Peter!  I was a little bit worried about this at the time when Denis 
> and I did it.  There was a note in the code about the mismatch of 
> BARRIER_REPLY, but not ERROR.
> 
> Have you, by chance, checked that the rest of the handlers are hooked up 
> okay? :)
> 
> (As a sidenote, I actually think we should probably rewrite this to work the 
> other direction... map from the handler names to the message types, and have 
> it be an error if there's no mapping.  This seems like it would be a lot more 
> robust.  We could do it by just scanning globals(), which is sort of gross 
> but I'd be okay with it for now, or using a decorator on the handlers...)
> 
> -- Murphy
> 
> On Jun 3, 2014, at 9:17 AM, Peter Peresini <peter.peres...@epfl.ch> wrote:
> 
>> Hi Murphy, 
>>  apparently recent refactorings in Dart branch broke ErrorIn events (they 
>> were no longer called because the handler was handler was not recognized), 
>> here is the fix.
>> 
>> Peter
>> 
>> 
>> 
>> From c11bd9c354b8fa6262133c096b7e6a36b6457b85 Mon Sep 17 00:00:00 2001
>> From: Peter Peresini <peter.peres...@gmail.com>
>> Date: Tue, 3 Jun 2014 18:14:25 +0200
>> Subject: [PATCH] Fix wrong name of error handler
>> 
>> ---
>>  pox/openflow/of_01.py | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/pox/openflow/of_01.py b/pox/openflow/of_01.py
>> index 5a66722..e21663a 100644
>> --- a/pox/openflow/of_01.py
>> +++ b/pox/openflow/of_01.py
>> @@ -188,7 +188,7 @@ class DefaultOpenFlowHandlers (OpenFlowHandlers):
>>        con.raiseEventNoErrors(PacketIn, con, msg)
>>  
>>    @staticmethod
>> -  def handle_ERROR_MSG (con, msg): #A
>> +  def handle_ERROR (con, msg): #A
>>      err = ErrorIn(con, msg)
>>      e = con.ofnexus.raiseEventNoErrors(err)
>>      if e is None or e.halt != True:
>> -- 
>> 1.8.3.2
>> 
>> 
>> 
> 

Reply via email to