Esempio n. 1
0
    def test_show_status(self):
        """Test show_status."""

        birdclient = BirdClient()
        result = birdclient.show_status(
            self._load_file("test_show_status.txt"))

        correct_result = {
            "last_reboot": "2019-08-15 12:42:47.592",
            "last_reconfiguration": "2019-08-15 12:42:47.592",
            "router_id": "172.16.10.1",
            "server_time": "2019-08-15 12:42:51.638",
            "version": "2.0.4",
        }

        assert result == correct_result, "The show_status() result does not match what it should be"
Esempio n. 2
0
    def test_show_route_table_t_static6(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_static6",
            self._load_file("test_show_route_table_t_static6.txt"))

        correct_result = {
            "fec0:10::/64": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "fec0::4",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static6",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "fec0:20::/64": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "fec0::5",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static6",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 3
0
    def test_show_route_table_t_rip6(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_rip6", self._load_file("test_show_route_table_t_rip6.txt"))

        correct_result = {
            "fc10::/64": [{
                "bestpath":
                False,
                "metric1":
                3,
                "nexthops": [{
                    "gateway": "fe80::1:ff:fe00:1",
                    "interface": "eth0"
                }],
                "pref":
                120,
                "prefix_type":
                "unicast",
                "protocol":
                "rip6",
                "since":
                "2019-10-01 17:59:42",
            }],
            "fc21::/64": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "fc20::3",
                    "interface": "eth1"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static6",
                "since":
                "2019-10-01 17:59:38",
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 4
0
    def test_show_route_table_t_rip4(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_rip4", self._load_file("test_show_route_table_t_rip4.txt"))

        correct_result = {
            "192.168.10.0/24": [{
                "bestpath":
                False,
                "metric1":
                3,
                "nexthops": [{
                    "gateway": "192.168.0.1",
                    "interface": "eth0"
                }],
                "pref":
                120,
                "prefix_type":
                "unicast",
                "protocol":
                "rip4",
                "since":
                "2019-10-01 17:59:41",
            }],
            "192.168.21.0/24": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "192.168.20.3",
                    "interface": "eth1"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static4",
                "since":
                "2019-10-01 17:59:38",
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 5
0
    def test_show_route_table_t_direct6(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_direct6",
            self._load_file("test_show_route_table_t_direct6.txt"))

        correct_result = {
            "fc10::/64": [{
                "bestpath": True,
                "nexthops": [{
                    "interface": "eth1"
                }],
                "pref": 240,
                "prefix_type": "unicast",
                "protocol": "direct6_rip",
                "since": "2019-10-01 18:42:53",
            }]
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 6
0
    def test_show_route_table_t_bgp4_with_blackhole(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_bgp4",
            self._load_file("test_show_route_table_t_bgp4_with_blackhole.txt"))

        correct_result = {
            "100.64.11.0/24": [{
                "attributes": {
                    "BGP.large_community": [(65000, 3, 1)],
                    "BGP.local_pref": 930
                },
                "bestpath": True,
                "pref": 200,
                "prefix_type": "blackhole",
                "protocol": "bgp_originate4",
                "since": "2019-10-02 11:29:38",
                "type": ["static", "univ"],
            }]
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 7
0
    def test_show_route_table_t_bgp6(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_bgp6", self._load_file("test_show_route_table_t_bgp6.txt"))

        correct_result = {
            "fc00:130::/48": [
                {
                    "asn": "AS65007",
                    "attributes": {
                        "BGP.as_path": [65007],
                        "BGP.large_community": [
                            (65000, 4, 65414),
                            (65007, 3, 1),
                            (65000, 3, 2),
                            (65000, 1, 901),
                        ],
                        "BGP.local_pref":
                        750,
                        "BGP.next_hop": ["fc61::3", "fe80::61:1ff:fe00:1"],
                        "BGP.origin":
                        "IGP",
                    },
                    "bestpath": True,
                    "bgp_type": "i",
                    "nexthops": [{
                        "gateway": "fc61::3",
                        "interface": "eth1"
                    }],
                    "pref": 100,
                    "prefix_type": "unicast",
                    "protocol": "bgp_AS65007_client3_peer6",
                    "since": "2019-09-30 17:14:00",
                    "type": ["BGP", "univ"],
                },
                {
                    "attributes": {
                        "BGP.as_path": [],
                        "BGP.cluster_list": "0.0.0.1",
                        "BGP.large_community": [(65000, 3, 1)],
                        "BGP.local_pref": 940,
                        "BGP.next_hop": ["fc50::5"],
                        "BGP.origin": "IGP",
                        "BGP.originator_id": "100.64.10.2",
                    },
                    "bestpath":
                    False,
                    "bgp_type":
                    "i",
                    "from":
                    "fc20::3",
                    "nexthops": [
                        {
                            "gateway": "fe80::20:1ff:fe00:1",
                            "interface": "eth0",
                            "weight": 1
                        },
                        {
                            "gateway": "fe80::20:1ff:fe02:1",
                            "interface": "eth0",
                            "weight": 1
                        },
                    ],
                    "pref":
                    100,
                    "prefix_type":
                    "unicast",
                    "protocol":
                    "bgp_AS65000_rr2_peer6",
                    "since":
                    "2019-09-30 17:14:20",
                    "type": ["BGP", "univ"],
                },
            ],
            "fc20::/64": [
                {
                    "attributes": {
                        "BGP.as_path": [],
                        "BGP.cluster_list": "0.0.0.1",
                        "BGP.community": [
                            (1, 0),
                            (1, 1),
                            (1, 2),
                        ],
                        "BGP.ext_community": [("rt", 1, 1), ("ro", 2, 2)],
                        "BGP.large_community": [(65000, 3, 1)],
                        "BGP.local_pref": 930,
                        "BGP.next_hop": ["fc20::1"],
                        "BGP.origin": "IGP",
                        "BGP.originator_id": "100.64.20.1",
                    },
                    "bestpath": True,
                    "bgp_type": "i",
                    "from": "fc10::3",
                    "nexthops": [{
                        "gateway": "fc20::1",
                        "interface": "eth0"
                    }],
                    "pref": 100,
                    "prefix_type": "unicast",
                    "protocol": "bgp_AS65000_rr1_peer6",
                    "since": "2019-09-30 17:14:15",
                    "type": ["BGP", "univ"],
                },
                {
                    "asn":
                    "AS65006",
                    "attributes": {
                        "BGP.as_path": [65006],
                        "BGP.cluster_list": "0.0.0.1",
                        "BGP.large_community": [],
                        "BGP.local_pref": 450,
                        "BGP.next_hop": ["fc40::11", "fe80::40:1ff:fe00:1"],
                        "BGP.origin": "IGP",
                        "BGP.originator_id": "100.64.10.1",
                    },
                    "bestpath":
                    False,
                    "bgp_type":
                    "i",
                    "from":
                    "fc20::3",
                    "nexthops": [
                        {
                            "gateway": "fe80::20:1ff:fe00:1",
                            "interface": "eth0",
                            "weight": 1
                        },
                        {
                            "gateway": "fe80::20:1ff:fe02:1",
                            "interface": "eth0",
                            "weight": 1
                        },
                    ],
                    "pref":
                    100,
                    "prefix_type":
                    "unicast",
                    "protocol":
                    "bgp_AS65000_rr2_peer6",
                    "since":
                    "2019-09-30 17:14:14",
                    "type": ["BGP", "univ"],
                },
            ],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 8
0
    def test_show_route_table_t_bgp4(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_bgp4", self._load_file("test_show_route_table_t_bgp4.txt"))

        correct_result = {
            "100.100.0.0/24": [{
                "asn":
                "AS65001",
                "attributes": {
                    "BGP.as_path": [65001],
                    "BGP.cluster_list": "0.0.0.1",
                    "BGP.large_community": [],
                    "BGP.local_pref": 750,
                    "BGP.next_hop": ["100.64.50.3"],
                    "BGP.origin": "IGP",
                    "BGP.originator_id": "100.64.10.2",
                },
                "bestpath":
                True,
                "bgp_type":
                "i",
                "from":
                "100.64.10.3",
                "nexthops": [
                    {
                        "gateway": "100.64.20.1",
                        "interface": "eth0",
                        "weight": 1
                    },
                    {
                        "gateway": "100.64.20.5",
                        "interface": "eth0",
                        "weight": 1
                    },
                ],
                "pref":
                100,
                "prefix_type":
                "unicast",
                "protocol":
                "bgp_AS65000_rr1_peer4",
                "since":
                "2019-09-30 17:14:14",
                "type": ["BGP", "univ"],
            }],
            "100.201.0.0/24": [
                {
                    "asn":
                    "AS65006",
                    "attributes": {
                        "BGP.as_path": [65006],
                        "BGP.cluster_list": "0.0.0.1",
                        "BGP.large_community": [(65000, 3, 3), (65006, 3, 1)],
                        "BGP.local_pref": 450,
                        "BGP.next_hop": ["100.64.40.11"],
                        "BGP.origin": "IGP",
                        "BGP.originator_id": "100.64.10.1",
                    },
                    "bestpath":
                    True,
                    "bgp_type":
                    "i",
                    "from":
                    "100.64.10.3",
                    "nexthops": [
                        {
                            "gateway": "100.64.20.1",
                            "interface": "eth0",
                            "weight": 1
                        },
                        {
                            "gateway": "100.64.20.5",
                            "interface": "eth0",
                            "weight": 1
                        },
                    ],
                    "pref":
                    100,
                    "prefix_type":
                    "unicast",
                    "protocol":
                    "bgp_AS65000_rr1_peer4",
                    "since":
                    "2019-09-30 17:14:14",
                    "type": ["BGP", "univ"],
                },
                {
                    "asn": "AS65004",
                    "attributes": {
                        "BGP.as_path": [65004],
                        "BGP.cluster_list": "0.0.0.1",
                        "BGP.community": [
                            (1, 0),
                            (1, 1),
                            (1, 2),
                        ],
                        "BGP.ext_community": [("rt", 1, 1), ("ro", 2, 2)],
                        "BGP.large_community": [(65000, 3, 4), (65004, 3, 1)],
                        "BGP.local_pref": 150,
                        "BGP.next_hop": ["100.64.43.2"],
                        "BGP.origin": "IGP",
                        "BGP.originator_id": "100.64.20.1",
                    },
                    "bestpath": False,
                    "bgp_type": "i",
                    "from": "100.64.20.3",
                    "nexthops": [{
                        "gateway": "100.64.20.1",
                        "interface": "eth0"
                    }],
                    "pref": 100,
                    "prefix_type": "unicast",
                    "protocol": "bgp_AS65000_rr2_peer4",
                    "since": "2019-09-30 17:14:09",
                    "type": ["BGP", "univ"],
                },
            ],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 9
0
    def test_show_route_table_t_ospf6_2(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_ospf6", self._load_file("test_show_route_table_t_ospf6-2.txt"))

        correct_result = {
            "fc00:90::/64": [{
                "attributes": {
                    "OSPF.metric1": 40,
                    "OSPF.metric2": 10000,
                    "OSPF.router_id": "100.64.10.2",
                    "OSPF.tag": "0x00000000",
                },
                "bestpath":
                False,
                "metric1":
                40,
                "metric2":
                10000,
                "nexthops": [
                    {
                        "gateway": "fe80::20:1ff:fe00:1",
                        "interface": "eth0",
                        "weight": 1
                    },
                    {
                        "gateway": "fe80::20:1ff:fe02:1",
                        "interface": "eth0",
                        "weight": 1
                    },
                ],
                "ospf_type":
                "E2",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf6",
                "router_id":
                "100.64.10.2",
                "since":
                "2019-09-30 17:14:13",
                "type": ["OSPF-E2", "univ"],
            }],
            "fc50::2/127": [{
                "attributes": {
                    "OSPF.metric1": 40,
                    "OSPF.router_id": "100.64.10.2"
                },
                "bestpath":
                False,
                "metric1":
                40,
                "nexthops": [
                    {
                        "gateway": "fe80::20:1ff:fe00:1",
                        "interface": "eth0",
                        "weight": 1
                    },
                    {
                        "gateway": "fe80::20:1ff:fe02:1",
                        "interface": "eth0",
                        "weight": 1
                    },
                ],
                "ospf_type":
                "I",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf6",
                "router_id":
                "100.64.10.2",
                "since":
                "2019-09-30 17:14:13",
                "type": ["OSPF", "univ"],
            }],
            "fec0:20::/64": [{
                "bestpath":
                False,
                "metric1":
                20,
                "metric2":
                10000,
                "nexthops": [{
                    "gateway": "fe80::8c84:28ff:fe6c:40ae",
                    "interface": "eth0"
                }],
                "ospf_type":
                "E2",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf6",
                "router_id":
                "172.16.10.1",
                "since":
                "2019-09-01 14:20:00",
                "type": ["OSPF-E2", "univ"],
            }],
            "fec0::/64": [{
                "bestpath":
                False,
                "metric1":
                20,
                "nexthops": [{
                    "gateway": "fe80::8c84:28ff:fe6c:40ae",
                    "interface": "eth0"
                }],
                "ospf_type":
                "I",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf6",
                "router_id":
                "172.16.10.1",
                "since":
                "2019-09-01 14:19:58",
                "type": ["OSPF", "univ"],
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 10
0
    def test_show_protocols(self):
        """Test show_protocols."""

        birdclient = BirdClient()
        result = birdclient.show_protocols(
            self._load_file("test_show_protocols.txt"))

        correct_result = {
            "ospf4": {
                "info": "Alone",
                "name": "ospf4",
                "proto": "OSPF",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "t_ospf4",
            },
            "ospf6": {
                "info": "Running",
                "name": "ospf6",
                "proto": "OSPF",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "t_ospf6",
            },
            "p_ospf4_to_kernel4": {
                "info": "t_ospf4 <=> t_kernel4",
                "name": "p_ospf4_to_kernel4",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
            "p_ospf4_to_static4": {
                "info": "t_ospf4 <=> t_static4",
                "name": "p_ospf4_to_static4",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
            "p_ospf6_to_kernel6": {
                "info": "t_ospf6 <=> t_kernel6",
                "name": "p_ospf6_to_kernel6",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
            "p_ospf6_to_static6": {
                "info": "t_ospf6 <=> t_static6",
                "name": "p_ospf6_to_static6",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
            "p_static4_to_kernel4": {
                "info": "t_static4 <=> t_kernel4",
                "name": "p_static4_to_kernel4",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
            "p_static6_to_kernel6": {
                "info": "t_static6 <=> t_kernel6",
                "name": "p_static6_to_kernel6",
                "proto": "Pipe",
                "since": "2019-09-01 13:13:28",
                "state": "up",
                "table": "---",
            },
        }

        assert result == correct_result, "The show_protocols() result does not match what it should be"
Esempio n. 11
0
    def test_show_route_table_t_ospf4(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_ospf4", self._load_file("test_show_route_table_t_ospf4.txt"))

        correct_result = {
            "10.0.1.0/24": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "192.168.0.4",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "10.0.2.0/24": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "192.168.0.5",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "100.64.43.2/31": [{
                "attributes": {
                    "OSPF.metric1": 20,
                    "OSPF.router_id": "100.64.20.1"
                },
                "bestpath":
                False,
                "metric1":
                20,
                "nexthops": [{
                    "gateway": "100.64.20.1",
                    "interface": "eth0"
                }],
                "ospf_type":
                "I",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf4",
                "router_id":
                "100.64.20.1",
                "since":
                "2019-09-30 17:14:09",
                "type": ["OSPF", "univ"],
            }],
            "100.64.44.2/31": [{
                "attributes": {
                    "OSPF.metric1": 30,
                    "OSPF.router_id": "100.64.30.1"
                },
                "bestpath":
                True,
                "metric1":
                20,
                "nexthops": [{
                    "gateway": "100.64.30.1",
                    "interface": "eth0"
                }],
                "ospf_type":
                "I",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf4",
                "router_id":
                "100.64.30.1",
                "since":
                "2019-09-30 17:14:09",
                "type": ["OSPF", "univ"],
            }],
            "100.64.50.2/31": [{
                "attributes": {
                    "OSPF.metric1": 40,
                    "OSPF.router_id": "100.64.10.2"
                },
                "bestpath":
                False,
                "metric1":
                40,
                "nexthops": [
                    {
                        "gateway": "100.64.20.1",
                        "interface": "eth0",
                        "weight": 1
                    },
                    {
                        "gateway": "100.64.20.5",
                        "interface": "eth0",
                        "weight": 1
                    },
                ],
                "ospf_type":
                "I",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf4",
                "router_id":
                "100.64.10.2",
                "since":
                "2019-09-30 17:14:13",
                "type": ["OSPF", "univ"],
            }],
            "100.90.0.0/28": [{
                "attributes": {
                    "OSPF.metric1": 40,
                    "OSPF.metric2": 10000,
                    "OSPF.router_id": "100.64.10.2",
                    "OSPF.tag": "0x00000000",
                },
                "bestpath":
                False,
                "metric1":
                40,
                "metric2":
                10000,
                "nexthops": [
                    {
                        "gateway": "100.64.20.1",
                        "interface": "eth0",
                        "weight": 1
                    },
                    {
                        "gateway": "100.64.20.5",
                        "interface": "eth0",
                        "weight": 1
                    },
                ],
                "ospf_type":
                "E2",
                "pref":
                150,
                "prefix_type":
                "unicast",
                "protocol":
                "ospf4",
                "router_id":
                "100.64.10.2",
                "since":
                "2019-09-30 17:14:13",
                "type": ["OSPF-E2", "univ"],
            }],
            "172.16.100.0/24": [{
                "bestpath":
                False,
                "nexthops": [{
                    "gateway": "172.16.10.10",
                    "interface": "eth9"
                }],
                "pref":
                10,
                "prefix_type":
                "unicast",
                "protocol":
                "kernel4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["inherit", "univ"],
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 12
0
    def test_show_route_table_t_kernel6(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_kernel6",
            self._load_file("test_show_route_table_t_kernel6.txt"))

        correct_result = {
            "::/0": [{
                "attributes": {
                    "BGP.as_path": [],
                    "BGP.large_community": [(65000, 3, 1)],
                    "BGP.local_pref": 945,
                    "BGP.next_hop": ["fc00:101::2"],
                    "BGP.origin": "IGP",
                },
                "bestpath": True,
                "bgp_type": "i",
                "from": "fc00:100::1",
                "metric": None,
                "pref": 100,
                "prefix_type": "unreachable",
                "protocol": "bgp6_AS65000_r1",
                "since": "2020-10-07 09:06:05",
                "type": ["BGP", "univ"],
            }],
            "fec0:10::/64": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "fec0::4",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static6",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "fec0:20::/64": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "fec0::5",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static6",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 13
0
    def test_show_route_table_t_kernel4(self):
        """Test show_route_table."""

        birdclient = BirdClient()
        result = birdclient.show_route_table(
            "t_kernel4",
            self._load_file("test_show_route_table_t_kernel4.txt"))

        correct_result = {
            "0.0.0.0/0": [{
                "attributes": {
                    "BGP.as_path": [],
                    "BGP.large_community": [(65000, 3, 1)],
                    "BGP.local_pref": 945,
                    "BGP.next_hop": ["192.168.0.5"],
                    "BGP.origin": "IGP",
                },
                "bestpath": True,
                "bgp_type": "i",
                "from": "192.168.0.1",
                "metric": None,
                "pref": 100,
                "prefix_type": "unreachable",
                "protocol": "bgp4_AS65000_r1",
                "since": "2020-10-07 09:06:05",
                "type": ["BGP", "univ"],
            }],
            "10.0.1.0/24": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "192.168.0.4",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "10.0.2.0/24": [{
                "bestpath":
                True,
                "nexthops": [{
                    "gateway": "192.168.0.5",
                    "interface": "eth0"
                }],
                "pref":
                200,
                "prefix_type":
                "unicast",
                "protocol":
                "static4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["static", "univ"],
            }],
            "172.16.100.0/24": [{
                "bestpath":
                False,
                "nexthops": [{
                    "gateway": "172.16.10.10",
                    "interface": "eth9"
                }],
                "pref":
                10,
                "prefix_type":
                "unicast",
                "protocol":
                "kernel4",
                "since":
                "2019-09-01 13:36:14",
                "type": ["inherit", "univ"],
            }],
        }

        assert result == correct_result, "The show_route_table() result does not match what it should be"
Esempio n. 14
0
 def _birdc(self) -> BirdClient:
     """Return BirdClient instance."""
     return BirdClient(self._controlsocket, debug=self._debug)