Hi,
it should be operated with version and type, as your indication.

I will send patch soon.


thanks.


On Sun, 29 Dec 2013 19:22:02 -0500
Nicholas Bastin <[email protected]> wrote:
> There seems to be a fundamental flaw in the assumption of how BPDUs can be 
> handled in packet/bpdu.py (or I'm completely misunderstanding something, 
> which is also possible) in the implementation of bpdu.parser:
>
>      @classmethod
>      def parser(cls, buf):
>          assert len(buf) >= cls._PACK_LEN
>          (protocol_id, version_id,
>           bpdu_type) = struct.unpack_from(cls._PACK_STR, buf)
>          assert protocol_id == PROTOCOL_IDENTIFIER
>
>          bpdu_cls = cls._BPDU_TYPES.get(bpdu_type, None)
>
>          if bpdu_cls:
>              assert version_id == bpdu_cls.VERSION_ID
>              assert len(buf[cls._PACK_LEN:]) >= bpdu_cls.PACK_LEN
>              return bpdu_cls.parser(buf[cls._PACK_LEN:])
>          else:
>              # Unknown bdpu type.
>              return buf, None, None
>
> BPDU classes are looked up by type, but without paying any attention to what 
> version the BPDU is - the same type can appear in multiple versions and there 
> appears to be no way to handle this in the current architecture.  For 
> example, I have a (very common) situation where type 2 BPDUs are sent for 
> version 3 (MSTP).  The current implementation of Ryu already has a type 2 
> BPDU, but it requires the version to be 2 (bpdu.RstBPDUs) and the assertion 
> causes the application to crash (which is also bad).
>
> Even if I add a type 2 / version 3 BPDU handler, it'll conflict with the 
> existing registration for a type 2 BPDU in version 2.  It seems that the 
> registration (and lookup) mechanism needs to operate on a tuple of (version, 
> type) instead of just using type - or am I missing something here?
>
> --
> Nick
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>




------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to