diff options
author | IWASE Yusuke <iwase.yusuke0@gmail.com> | 2018-04-04 16:55:21 +0900 |
---|---|---|
committer | IWASE Yusuke <iwase.yusuke0@gmail.com> | 2018-04-09 12:00:22 +0900 |
commit | ff81215c9c77946e81c7092dbd90a30a75d413f5 (patch) | |
tree | cdf6c4dede881224d698804b20335536369c7019 /config/util_test.go | |
parent | d5201470f374cd5773f42c52c305bdf250453140 (diff) |
server: Avoid infinite UPDATE loop of RTM NLRI
When GoBGP dropped adj-Rib-out per Peer, we fixed to send the same Route
Target Membership (RTM) NLRI even if it is already sent. This can cause
the infinite UPDATE loop when Route Reflector(RR) reflects RTM NLRI to
its clients.
For example, the following situation causes the infinite UPDATE loop.
Topology:
+----- RR -----+
| |
Client1 Client2
When Client1 has VRF with RT 65000:1 and sends a RTM NLRI to RR, then RR
reflects the NLRI to Client2. If a new VRF with the same RT 65000:1 on
Client2 is created, Client2 will notify it to RR, then RR calculates the
best, but RR will send the NLRI from Client2 to Client1 even if it is
not the best. Client1 receives the NLRI again, calculates the best and
re-sends the best. Then, RR reflects the received NLRI ... (infinite
loop).
This patch fixes to compare the candidate path to be sent with the old
path and assume the given candidate path was already sent before if the
candidate path and the old path is the same path. Then avoids the
infinite UPDATE loop.
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Diffstat (limited to 'config/util_test.go')
0 files changed, 0 insertions, 0 deletions