This patch removes 'Subtype' byte from SystemCapabilities TLV. There was an inconsistency in offical IEEE document which was corrected in 802.1AB-2009/Cor 1-2013.
Signed-off-by: Marcin Chron <marcin_mi...@o2.pl> --- ryu/lib/packet/lldp.py | 15 ++++++--------- ryu/tests/unit/packet/test_lldp.py | 4 +--- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/ryu/lib/packet/lldp.py b/ryu/lib/packet/lldp.py index 914f07c..a48884d 100644 --- a/ryu/lib/packet/lldp.py +++ b/ryu/lib/packet/lldp.py @@ -455,13 +455,12 @@ class SystemCapabilities(LLDPBasicTLV): Attribute Description ================= ===================================== buf Binary data to parse. - subtype Subtype. system_cap System Capabilities. enabled_cap Enabled Capabilities. ================= ===================================== """ - # chassis subtype(1) + system cap(2) + enabled cap(2) - _PACK_STR = '!BHH' + # system cap(2) + enabled cap(2) + _PACK_STR = '!HH' _PACK_SIZE = struct.calcsize(_PACK_STR) _LEN_MIN = _PACK_SIZE _LEN_MAX = _PACK_SIZE @@ -481,10 +480,9 @@ class SystemCapabilities(LLDPBasicTLV): def __init__(self, buf=None, *args, **kwargs): super(SystemCapabilities, self).__init__(buf, *args, **kwargs) if buf: - (self.subtype, self.system_cap, self.enabled_cap) = \ - struct.unpack(self._PACK_STR, self.tlv_info[:self._PACK_SIZE]) + (self.system_cap, self.enabled_cap) = struct.unpack( + self._PACK_STR, self.tlv_info[:self._PACK_SIZE]) else: - self.subtype = kwargs['subtype'] self.system_cap = kwargs['system_cap'] self.enabled_cap = kwargs['enabled_cap'] self.len = self._PACK_SIZE @@ -492,9 +490,8 @@ class SystemCapabilities(LLDPBasicTLV): self.typelen = (self.tlv_type << LLDP_TLV_TYPE_SHIFT) | self.len def serialize(self): - return struct.pack('!HBHH', - self.typelen, self.subtype, - self.system_cap, self.enabled_cap) + return struct.pack('!HHH', + self.typelen, self.system_cap, self.enabled_cap) @lldp.set_tlv_type(LLDP_TLV_MANAGEMENT_ADDRESS) diff --git a/ryu/tests/unit/packet/test_lldp.py b/ryu/tests/unit/packet/test_lldp.py index d8d261c..a5c96bd 100644 --- a/ryu/tests/unit/packet/test_lldp.py +++ b/ryu/tests/unit/packet/test_lldp.py @@ -227,8 +227,7 @@ class TestLLDPOptionalTLV(unittest.TestCase): + b'\x73\x74\x65\x72\x20\x30\x35\x2f' \ + b'\x32\x37\x2f\x30\x35\x20\x30\x34' \ + b'\x3a\x35\x33\x3a\x31\x31\x00\x0e' \ - + b'\x05\x01\x00\x14\x00\x14\x10\x0e' \ - + b'\x07' \ + + b'\x04\x00\x14\x00\x14\x10\x0e\x07' \ + b'\x06\x00\x01\x30\xf9\xad\xa0\x02' \ + b'\x00\x00\x03\xe9\x00\xfe\x07\x00' \ + b'\x12\x0f\x02\x07\x01\x00\xfe\x09' \ @@ -274,7 +273,6 @@ class TestLLDPOptionalTLV(unittest.TestCase): # SystemCapabilities eq_(tlvs[6].tlv_type, lldp.LLDP_TLV_SYSTEM_CAPABILITIES) - eq_(tlvs[6].subtype, lldp.ChassisID.SUB_CHASSIS_COMPONENT) eq_(tlvs[6].system_cap & lldp.SystemCapabilities.CAP_MAC_BRIDGE, lldp.SystemCapabilities.CAP_MAC_BRIDGE) eq_(tlvs[6].enabled_cap & lldp.SystemCapabilities.CAP_MAC_BRIDGE, -- 2.7.4 Please forgive me for the first version of patch. This is my very first contribution to any public project and I have no idea what I am doing. I hope now the change will be acceptable. On Thu, May 17, 2018 at 12:02:13PM +0900, IWAMOTO Toshihiro wrote: > On Fri, 11 May 2018 05:49:55 +0900, > mch...@student.agh.edu.pl wrote: > > > > This patch removes 'Subtype' byte from SystemCapabilities TLV. > > There was an inconsistency in offical IEEE document which was corrected > > in 802.1AB-2009/Cor 1-2013. > > Good catch. Thanks. > But your patch's whitespaces seems to be garbled and the patch cannot > be applied. Could you send the patch again? > > > Signed-off-by: Marcin Chron <marcin_mi...@o2.pl> > > --- > > ryu/lib/packet/lldp.py | 11 ++++------- > > ryu/tests/unit/packet/test_lldp.py | 3 +-- > > 2 files changed, 5 insertions(+), 9 deletions(-) > > > > diff --git a/ryu/lib/packet/lldp.py b/ryu/lib/packet/lldp.py > > index 914f07c..d328691 100644 > > -- > IWAMOTO Toshihiro ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel