#!/usr/bin/env python
+# SPDX-License-Identifier: ISC
#
# test_bgp_prefix_sid.py
# Copyright (c) 2020 by LINE Corporation
# Copyright (c) 2020 by Hiroki Shirokura <slank.dev@gmail.com>
#
-# Permission to use, copy, modify, and/or distribute this software
-# for any purpose with or without fee is hereby granted, provided
-# that the above copyright notice and this permission notice appear
-# in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
-# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-# OF THIS SOFTWARE.
-#
"""
test_bgp_prefix_sid.py: Test BGP topology with EBGP on prefix-sid
from lib import topotest
from lib.topogen import Topogen, TopoRouter, get_topogen
from lib.topolog import logger
-from mininet.topo import Topo
+pytestmark = [pytest.mark.bgpd]
-class TemplateTopo(Topo):
- def build(self, **_opts):
- tgen = get_topogen(self)
- router = tgen.add_router("r1")
- switch = tgen.add_switch("s1")
- switch.add_link(router)
- switch = tgen.gears["s1"]
- peer1 = tgen.add_exabgp_peer(
- "peer1", ip="10.0.0.101", defaultRoute="via 10.0.0.1"
- )
- peer2 = tgen.add_exabgp_peer(
- "peer2", ip="10.0.0.102", defaultRoute="via 10.0.0.1"
- )
- switch.add_link(peer1)
- switch.add_link(peer2)
+def build_topo(tgen):
+ router = tgen.add_router("r1")
+ switch = tgen.add_switch("s1")
+ switch.add_link(router)
+
+ switch = tgen.gears["s1"]
+ peer1 = tgen.add_exabgp_peer("peer1", ip="10.0.0.101", defaultRoute="via 10.0.0.1")
+ peer2 = tgen.add_exabgp_peer("peer2", ip="10.0.0.102", defaultRoute="via 10.0.0.1")
+ switch.add_link(peer1)
+ switch.add_link(peer2)
def setup_module(module):
- tgen = Topogen(TemplateTopo, module.__name__)
+ tgen = Topogen(build_topo, module.__name__)
tgen.start_topology()
router = tgen.gears["r1"]
def exabgp_get_update_prefix(filename, afi, nexthop, prefix):
- with open("/tmp/peer2-received.log") as f:
+ with open(filename) as f:
for line in f.readlines():
output = json.loads(line)
ret = output.get("neighbor")
def test_peer2_receive_prefix_sid_type1():
tgen = get_topogen()
peer2 = tgen.gears["peer2"]
+ logfile = "{}/{}-received.log".format(peer2.gearlogdir, peer2.name)
def _check_type1_peer2(prefix, labelindex):
output = exabgp_get_update_prefix(
- "/tmp/peer2-received.log", "ipv4 nlri-mpls", "10.0.0.101", prefix
+ logfile, "ipv4 nlri-mpls", "10.0.0.101", prefix
)
expected = {
"type": "update",