diff options
author | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2016-05-25 02:43:31 +0000 |
---|---|---|
committer | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2016-05-25 02:53:42 +0000 |
commit | 0dbf1d87cb6f42498e6607d616572fb80d36fd83 (patch) | |
tree | a942f671dd44ee75480ad6d3f162d9d29f1be42d /test/lib/gobgp.py | |
parent | 7c42e295e28c233fdb7a130681cd490308f116ca (diff) |
policy: add local-pref action
$ gobgp policy statement st01 add action local-pref 110
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'test/lib/gobgp.py')
-rw-r--r-- | test/lib/gobgp.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/lib/gobgp.py b/test/lib/gobgp.py index 7faa2198..7627fd50 100644 --- a/test/lib/gobgp.py +++ b/test/lib/gobgp.py @@ -87,6 +87,12 @@ class GoBGPContainer(BGPContainer): if p['type'] == BGP_ATTR_TYPE_NEXT_HOP or p['type'] == BGP_ATTR_TYPE_MP_REACH_NLRI: return p['nexthop'] + def _get_local_pref(self, path): + for p in path['attrs']: + if p['type'] == BGP_ATTR_TYPE_LOCAL_PREF: + return p['value'] + return None + def _trigger_peer_cmd(self, cmd, peer): if peer not in self.peers: raise Exception('not found peer {0}'.format(peer.router_id)) @@ -117,6 +123,7 @@ class GoBGPContainer(BGPContainer): for p in d["paths"]: p["nexthop"] = self._get_nexthop(p) p["aspath"] = self._get_as_path(p) + p["local-pref"] = self._get_local_pref(p) return ret def get_global_rib(self, prefix='', rf='ipv4'): @@ -127,6 +134,7 @@ class GoBGPContainer(BGPContainer): for p in d["paths"]: p["nexthop"] = self._get_nexthop(p) p["aspath"] = self._get_as_path(p) + p["local-pref"] = self._get_local_pref(p) return ret def monitor_global_rib(self, queue, rf='ipv4'): @@ -139,6 +147,7 @@ class GoBGPContainer(BGPContainer): p = json.loads(buf)[0] p["nexthop"] = self._get_nexthop(p) p["aspath"] = self._get_as_path(p) + p["local-pref"] = self._get_local_pref(p) queue.put(p) buf = '' else: @@ -165,6 +174,7 @@ class GoBGPContainer(BGPContainer): p["nexthop"] = self._get_nexthop(p) p["aspath"] = self._get_as_path(p) p["prefix"] = p['nlri']['prefix'] + p["local-pref"] = self._get_local_pref(p) return ret def get_adj_rib_in(self, peer, prefix='', rf='ipv4'): |