Code Duplication    Length = 33-34 lines in 2 locations

lib/exabgp/bgp/message/update/attribute/sr/srv6l3vpnsid.py 1 location

@@ 31-64 (lines=34) @@
28
# 3.2.  SRv6 L3 Service
29
30
31
@PrefixSid.register()
32
class Srv6L3vpnSid(object):
33
	TLV = 5
34
	LENGTH = 21
35
36
	def __init__ (self,l3vpnsid,packed=None):
37
		self.l3vpnsid = l3vpnsid
38
		self.packed = self.pack()
39
40
	def __repr__ (self):
41
		return "srv6-l3vpn-sid %s" % (self.l3vpnsid)
42
43
	def pack (self):
44
		return concat_bytes(
45
			pack('!B', self.TLV),
46
			pack('!H', self.LENGTH),
47
			pack('!B', 0),
48
			IP.pton(self.l3vpnsid),
49
			pack('!B', 0),
50
			pack('!H', 0xffff),
51
			pack('!B', 0),
52
		)
53
54
	@classmethod
55
	def unpack (cls,data,length):
56
		l3vpnsid = -1
57
		if cls.LENGTH != length:
58
			raise Notify(3,5, "Invalid TLV size. Should be {0} but {1} received".format(cls.LENGTH, length))
59
		data = data[1:17]
60
		l3vpnsid = IP.unpack(data)
61
		return cls(l3vpnsid=l3vpnsid,packed=data)
62
63
	def json (self, compact=None):
64
		return '"srv6-vpn-sid": "%s"' % (self.l3vpnsid)
65

lib/exabgp/bgp/message/update/attribute/sr/srv6vpnsid.py 1 location

@@ 32-64 (lines=33) @@
29
# 3.2.  SRv6 VPN SID
30
31
32
@PrefixSid.register()
33
class Srv6VpnSid(object):
34
	TLV = 4
35
	LENGTH = 19
36
37
	def __init__ (self,vpnsid,packed=None):
38
		self.vpnsid = vpnsid
39
		self.packed = self.pack()
40
41
	def __repr__ (self):
42
		return "srv6-vpn-sid %s" % (self.vpnsid)
43
44
	def pack (self):
45
		return concat_bytes(
46
			pack('!B', self.TLV),
47
			pack('!H', self.LENGTH),
48
			pack('!B', 0),
49
			pack('!B', 0),
50
			pack('!B', 0),
51
			IP.pton(self.vpnsid)
52
		)
53
54
	@classmethod
55
	def unpack (cls,data,length):
56
		vpnsid = -1
57
		if cls.LENGTH != length:
58
			raise Notify(3,5, "Invalid TLV size. Should be {0} but {1} received".format(cls.LENGTH, length))
59
		data = data[3:19]
60
		vpnsid = IP.unpack(data)
61
		return cls(vpnsid=vpnsid,packed=data)
62
63
	def json (self, compact=None):
64
		return '"srv6-vpn-sid": "%s"' % (self.vpnsid)
65