OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
exabgp
/
bgp
/
message
/
open
/
capability
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
__init__.py
1.29 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
__pycache__
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
addpath.py
2.13 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
asn4.py
966 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📄
capabilities.py
7.16 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
capability.py
6.89 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
extended.py
899 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📄
graceful.py
3.2 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
hostname.py
1.33 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
mp.py
1.27 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
ms.py
1.47 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
negotiated.py
8.81 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
nexthop.py
1.81 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
operational.py
932 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📄
refresh.py
2.63 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
unknown.py
1.4 KB
03/13/2021 04:30:48 PM
rw-r--r--
Editing: addpath.py
Close
# encoding: utf-8 """ addpath.py Created by Thomas Mangin on 2012-07-17. Copyright (c) 2009-2017 Exa Networks. All rights reserved. License: 3-clause BSD. (See the COPYRIGHT file) """ from struct import pack from exabgp.protocol.family import AFI from exabgp.protocol.family import SAFI from exabgp.util import ordinal from exabgp.bgp.message.open.capability.capability import Capability # ====================================================================== AddPath # @Capability.register() class AddPath(Capability, dict): ID = Capability.CODE.ADD_PATH string = { 0: 'disabled', 1: 'receive', 2: 'send', 3: 'send/receive', } def __init__(self, families=(), send_receive=0): for afi, safi in families: self.add_path(afi, safi, send_receive) def add_path(self, afi, safi, send_receive): self[(afi, safi)] = send_receive def __str__(self): return ( 'AddPath(' + ','.join( [ "%s %s %s" % (self.string[self[aafi]], xafi, xsafi) for (aafi, xafi, xsafi) in [((afi, safi), str(afi), str(safi)) for (afi, safi) in self] ] ) + ')' ) def json(self): families = ','.join( '"%s/%s": "%s"' % (xafi, xsafi, self.string[self[aafi]]) for (aafi, xafi, xsafi) in (((afi, safi), str(afi), str(safi)) for (afi, safi) in self) ) return '{ "name": "addpath"%s%s }' % (', ' if families else '', families) def extract(self): rs = b'' for v in self: if self[v]: rs += v[0].pack() + v[1].pack() + pack('!B', self[v]) return [ rs, ] @staticmethod def unpack_capability(instance, data, capability=None): # pylint: disable=W0613 # XXX: FIXME: should check that we have not yet seen the capability while data: afi = AFI.unpack(data[:2]) safi = SAFI.unpack(data[2]) sr = ordinal(data[3]) instance.add_path(afi, safi, sr) data = data[4:] return instance