Age | Commit message (Collapse) | Author |
|
|
|
|
|
This patch adds checks to confirm the stale paths are also removed from
the adj-RIB-in table.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch fixes to assert the Graceful Restart time is not expired
while waiting for re-establishing peer connection.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
The current Graceful Restart time is 20 sec, but this value is not
enough long and can be exceeded unexpectedly while waiting for
re-establishing peer connections. Then the stale paths on a receiving
router are dropped before the paths successfully synced, and some test
cases on "graceful_restart_test.py" will be passed unexpectedly.
This patch extends the Graceful Restart time to 30 sec and introduces
the constants for Graceful Restart time and Long-Lived Graceful Restart
time.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch adds a test case to test if the path, which came after the
NEXTHOP_UPDATE message was received from Zebra, is updated by reflecting
the nexthop cache.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
update accepted number in adj-in rib after AllowOwnAs has changed.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
make sure that an adj-rib return the accepted and received numbers
when it has an as-looped path.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch adds test cases for the Route Target Constraint of the
inter-AS route distribution and combination of the inter-AS and intra-AS
route distribution.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch adds assertion points for the counts of advertised and
received routes. Also adds comments for the states of VRFs and routes.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Because the RTM is removed from adj-RIB-in before collecting the
candidate routes to be withdrawn, the candidates are unexpectedly
filtered before sending withdraw messages. Then on the peers, the VPN
routes are left on.
This patch fixes to selects candidates from the filtered paths and send
withdraw messages as expected. Also resolves the TODO in
"test/scenario_test/rtc_test.py".
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Add test for the issue reported on #1682
(https://github.com/osrg/gobgp/issues/1682).
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Also removes a debug print.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Quagga seems to advertise routes to neighbors by intervals of 30 seconds
(eBGP) or 5 seconds (iBGP) by default. Because of this delay, timer in
"bgp_confederation_test.py", 60 seconds, can be exceeded when the UPDATE
messages need to go through multi ASs.
This patch fixes to use minimum advertisement-interval and reduces the
time of test cases.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Also removes a debug print
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
To improve the stability of "bgp_router_test.py", this patch fixes to
retry assertions of RIB on a Quagga router after shutting down a
neighbor.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
For the stability of some scenario tests, this patch fixes to wait for
GoBGP starting up after restarting GoBGP daemon. Currently, there are
cases that CLI command can be called without checking whether GoBGP
daemon is surely started or not.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
GoBGPContainer.graceful_restart() does not "restart" GoBGP daemon, but
just stops (kills) GoBGP daemon. Then this patch renames
graceful_restart() to stop_gobgp() to avoid confusion.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Improves pylint result.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Seems that fabric v2 doesn't work with the current files. Let's keep
using v1.X for now.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
https://github.com/osrg/gobgp/issues/1249
The IN policy was removed. The modification by the IMPORT policy are
visible to all route server peers.
This saves some dozens bytes memory per a path.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
needs to find a diffrent ESI with the same mac address.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
"exabgpcli" supports to show adj-RIB-in and adj-RIB-out, this patch
enables ExaBGPContainer to get these RIBs information.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, to advertise or withdraw routes with ExaBGPContainer, we need
to configure static routes via config file and restart ExaBGP daemon.
In other words, we can NOT send withdrawing advertisement with
ExaBGPContainer. Also, restating ExaBGP daemon frequently can make
scenario test unstable, and it should be avoided.
On the other hand, with ExaBGP version 4.0.5 or later(*), we can
advertise or withdraw routes using "exabgpcli" without restating ExaBGP
daemon (or writing application which calls ExaBGP's APIs).
This patch fixes to use "exabgpcli" and reduces the number of restating
ExaBGP daemon.
Note: According to this change, adding routes into ExaBGP should be
called after adding neighbor.
(*): "exabgpcli" is introduced at version 4.0.2, but has some bugs
related to Python 3 compatibility and FlowSpec rules combinations, then
we need to use version 4.0.5 or later.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Some times, on Travis-CI, some test cases fail unexpectedly in checking
paths in RIBs due to advertisements are not yet received from other
routers.
Currently, in order to avoid this unexpected result, "time.sleep" is
inserted after adding new routes, but it is not enough.
This patch introduces a new function to enable to do assertion several
times and avoid failure with the first assertion.
Note: This patch does not introduces this change into all test cases, do
only into some test cases which fail relatively frequently.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
With the current implementation, when adding routes on GoBGPContainer,
we re-configure and reload daemon, then add routes using CLI command.
Differ from QuaggaBGPContainer, when deletion of routes, reloading is
not required, but if reloading daemon frequently, we need to wait for
the daemon restarting, it causes testing time longer and unstable.
This patch enables to add routes without reloading daemon.
Note: According to this change, adding routes should be called after
starting daemons.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, to advertise or withdraw routes on QuaggaBGPContainer, we
need to configure static routes in configure file and restart Quagga
daemons.
In other words, we can NOT send withdrawing advertisement from Quagga
side.
Also, restating Quagga daemons frequently can make scenario test
unstable, and it should be avoided.
This patch fixes to use "vtysh" and reduces the number of restating
Quagga daemons.
Note: According to this change, adding routes on Quagga should be called
after starting daemons.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, scenario test library does not wait for the daemons boot in
containers at starting up or after sending SIGHUP for reloading new
configurations.
So some test cases (e.g., graceful_restart_test.py) fails occasionally
to insert static routes into GoBGP after reloading new configurations.
This patch fixes to wait for the daemons boot and improves the stability
of scenario tests.
Note: This patch does not introduce these improvements to
BagpipeContainer and ExaBGPContainer, because;
- Docker image for BaGPipe, which used in scenario test library, is too
old and BagpipeContainer does not seem to be used in the current test
cases.
- The version of ExaBGP in "osrg/exabgp" Docker image has no way to ask
the daemon status other than "ps" command ("ps" is already done, but
not enough). If "exabgpcli" is available on ExaBGP container, which is
required the next release of 4.0.2 or 3.4.21, we can use it to check
whether ExaBGP is started up or not.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
This patch extends test cases using YABGP;
- Test "gobgp" command outputs representations with IPv4/IPv6
- IPv4 FlowSpec rules advertisements and withdraws
TODO: Supports test cases for the IPv6 FlowSpec rules withdraws when
YABGP supports the IPv6 FlowSpec or when ExaBGP fixes issues(*) of
logging the received FlowSpec rules.
(*): ExaBGP (v4.0.2 or v3.4.21) will failed to log the received FlowSpec
rules which contains some specific operators/operands (e.g., "!=" or
empty operator). Then, we need to wait for the next release to implement
more test cases.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Note: This implementation supposes the YABGP version 0.4.0.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, in case of the FlowSpec routes, "prefix" value which stored
on each container instance is just a keyword and not valid NLRI
arguments for adding or deleting routes.
So when deleting routes with "route" keyword, it is required to
construct the NLRI arguments using "matchs" value.
This patch enables to construct the valid NLIR arguments as "prefix"
value when adding the FlowSpec routes and enables to delete the FlowSpec
routes with "route" keyword.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, we test the ping reachability of Quagga(o1) -> GoBGP(g1) ->
Quagga(q1) in this scenario test, but in this case, two Quagga routers
belong to the connected networks of GoBGP router and ping will succeed
without the BGP advertisements.
Then, even if GoBGP failed to install the received routes to the Linux
routeing table via Zebra daemon, this test case will pass.
This patch fixes to test the reachability of Quagga(o1) -> GoBGP(g1) ->
Quagga(q1) -> Quagga(o2) and makes the advertised routes required to be
installed into the g1's routing table.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
With this patch, it is not required to enable IPv6 forwarding by using
"sysctl" explicitly in Quagga or GoBGP(Zebra enabled) containers.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
When creating a new Docker network (Linux Bridge), some routes to its
subnet will be installed in to the container host's routing table.
This routes enable containers to communicate each other through the
container host's rouging table, then causes the unexpected success of
scenario tests (e.g., ping between containers).
This patch removes the unexpected routes from the container host and
avoid this problem.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
When adding or deleting routes in ExaBGPContainer, it is required to
restart ExaBGPContainer with the current implementation.
This patch fixes to wait for the re-establishment with ExaBGP and
improves the stability of this test case.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
On some environments, it's necessary to use the current PYTHONPATH to run python.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
For Unnumbered BGP, neighbor AS number isn't needed
to be specified, so 'peer-as' should not be specified
in the scenario test for Unnumbered BGP.
However, currently 'peer-as' is always specified
in test/lib/gobgp.py
This commit solves this by not specifying `peer-as`
if 'neighbor-interface' is configured.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
This commit introduces 'bgp_config' attribute for
GoBGP/Quagga containers to configure complex settings.
Adding to this, this commit enables to configure
BGP confederation settings to GoBGP/Quagga conrainers.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
For Quagga containers, currently, when we use get_global_rib()
without specifying prefix, we cannot get AS_PATH and other attributes.
And when we use get_global_rib() with prefix,
we can get only one path even if there is multiple paths for a destination.
This commit fixes these problems by refining test/lib/quagga.py.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|