Age | Commit message (Collapse) | Author |
|
Adds an unit test for ed3f7b711c92c69bf231bc9e6a06312b23270db0
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
uppercase letter as is required for Ruby constants"
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
We should do stricter validation. Probably, we should use
packet/bgp/validate.go.
close #1660
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Adds a user-friendly error message on gRPC connection error.
Resolves: #1701
Signed-off-by: Paul Greenberg <greenpau@outlook.com>
|
|
the commit 8c453bc9369e4cd96d19b9598bebb0ea2e23e991 fixes
NewROAListFromApiStructList() to check an error strictly. However,
this breaks the rpki table command:
$ gobgp rpki table
invalid CIDR address: 1.0.16.0
NewROAListFromApiStructList() has a bug about getting the address
family from an IP address. The address family was not used (other
information are used though) so before the commit, the command worked.
This fixes the bug in NewROAListFromApiStructList().
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
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>
|
|
The dampening feature was implemented to delay the update of nexthop
states in order to avoid the states are "extremely" frequent updated.
But with this implementation, if a path is withdrawn by peer or via API
which the dampening feature delaying the update of that path, the
withdrawn path can be restored unexpectedly again.
And currently Quagga and FRRouting does not support the dampening, this
path drops the dampening feature to avoid this problem.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
update accepted number in adj-in rib after AllowOwnAs has changed.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
fix accepted number in adj-in rib when it has an as-looped path.
adding another member to Path struct is pain. Should be fixed later.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
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>
|
|
The outgoing Route Target Constraint filter should be applied to eBGP
session, but currently applied to only iBGP session.
This patch fixes to apply rtfilter on eBGP session.
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>
|
|
In case that a Route Reflector(RR) and a non RR client peering, peering
of different RR clusters for example, the RR should send the RTC route
from its client even if the RTC route from non RR client is better path
based on the best path algorithm in order to notify that some RR clients
are interested in the given Route Target.
Currently, only source peer address is concerned, the RTC route from RR
client can have lower priority than non RR client and it can not be
advertised.
This patch fixes to prefer the route from RR client when selecting the
candidate to be advertised.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
To include the PeerDownReason and data in BMP messages,
this commit adds some field to WatchEventPeerState.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
RFC 7854 says that Peer Down Notification messages have
"data" field only if its peer down reason is "The local
system closed the session. No notification message was sent".
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
|
|
If capabilities are added or removed by updating peer configs,
it is needed to resend Open Message contains the new capabilities.
But currently, GoBGP does not resend Open Message for
Add-Path and Graceful Restart capabilities.
This commit fixes it to resend Open Message for them.
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@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>
|
|
Needs withdrawn paths that includes attributes. The attributes are
necessary because they are used with rtc table to check if the paths
were sent.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
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>
|
|
Currently, GoBGP sends the ROUTE_DELETE messages to Zebra for the paths
whose nexthop was determined as unreachable by IGP, but when Zebra
received the ROUTE_DELETE messages for the unreachable nexthop, Zebra
will send the NEXTHOP_UPDATE message with the given nexthop is
reachable via the default interface. This message unexpectedly causes
updates of the unreachable path to be reachable (not true though). Then
GoBGP will send ROUTE_ADD messages to Zebra, but those paths soon will
be invalidated via the NEXTHOP_UPDATE message, GoBGP will send the
ROUTE_DELETE messages and ... (infinite loop).
This patch fixes to avoid sending the ROUTE_DELETE messages for the
unreachable paths because those paths are inactivated on Zebra and not
installed to FIB.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
Currently, the received messages from Zebra are printed as byte slice
and it is difficult to determine which message was received.
This patch fixes to output the received message as the decoded
structure for the readability.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
|
|
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
This fixes an issue where GoBGP would incorrectly defer sending routes to a peer on a graceful restart.
RFC4724 states:
> Once the session between the Restarting Speaker and the Receiving
> Speaker is re-established, the Restarting Speaker will receive and
> process BGP messages from its peers. However, it MUST defer route
> selection for an address family until it either (a) receives the
> End-of-RIB marker from all its peers (excluding the ones with the
> "Restart State" bit set in the received capability and excluding the
> ones that do not advertise the graceful restart capability) or (b)
> the Selection_Deferral_Timer referred to below has expired.
The scenario that this fixes is where you have 3 (or more) peers, and 2 of the peers ("A" and "B") perform a graceful restart at the same time, but the 3rd ("C") does not. If after restart peer C sends EOR to peer A before peer B reaches BGP_FSM_ESTABLISHED with peer A, it defers the route selection. However once peer B does reach BGP_FSM_ESTABLISHED, peer A still wouldn't send any updates to peer C until the deferral expired.
This commit changes the behavior so that upon restart, once the peer receives EOR from all non-restarting peers and reaches BGP_FSM_ESTABLISHED for all restarting peers, the routes are sent to all peers.
|
|
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@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>
|
|
close #1661
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
fix a mess in the commit 388ef503f2c9cae.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|