diff options
-rwxr-xr-x | smoketest/scripts/cli/test_protocols_bgp.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py index 1d93aeda4..e8b2ea34c 100755 --- a/smoketest/scripts/cli/test_protocols_bgp.py +++ b/smoketest/scripts/cli/test_protocols_bgp.py @@ -87,6 +87,9 @@ peer_group_config = { def getFRRBGPconfig(): return cmd(f'vtysh -c "show run" | sed -n "/router bgp {ASN}/,/^!/p"') +def getFRRRPKIconfig(): + return cmd(f'vtysh -c "show run" | sed -n "/rpki/,/^!/p"') + class TestProtocolsBGP(unittest.TestCase): def setUp(self): self.session = ConfigSession(os.getpid()) @@ -338,5 +341,38 @@ class TestProtocolsBGP(unittest.TestCase): self.assertIn(f' aggregate-address {network} summary-only', frrconfig) + def test_bgp_07_rpki(self): + rpki_path = ['protocols', 'rpki'] + init_tmo = '50' + polling = '400' + preference = '100' + timeout = '900' + + cache = { + 'foo' : { 'address' : '1.1.1.1', 'port' : '8080' }, +# T3253 only one peer supported +# 'bar' : { 'address' : '2.2.2.2', 'port' : '9090' }, + } + + self.session.set(rpki_path + ['polling-period', polling]) + self.session.set(rpki_path + ['preference', preference]) + + for name, config in cache.items(): + self.session.set(rpki_path + ['cache', name, 'address', config['address']]) + self.session.set(rpki_path + ['cache', name, 'port', config['port']]) + + # commit changes + self.session.commit() + + # Verify FRR bgpd configuration + frrconfig = getFRRRPKIconfig() + self.assertIn(f'rpki polling_period {polling}', frrconfig) + + for name, config in cache.items(): + self.assertIn('rpki cache {address} {port} preference 1'.format(**config), frrconfig) + + self.session.delete(rpki_path) + + if __name__ == '__main__': unittest.main(verbosity=2) |