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
