Skip to content

Commit

Permalink
tests: Check if the route over eBGP is preferred when eBGP-OAD is used
Browse files Browse the repository at this point in the history
If at least one of the candidate routes was received via EBGP, remove from
consideration all routes that were received via EBGP-OAD and IBGP.

Signed-off-by: Donatas Abraitis <[email protected]>
  • Loading branch information
ton31337 committed Jan 11, 2024
1 parent 584b031 commit 1c491df
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 7 deletions.
10 changes: 10 additions & 0 deletions tests/topotests/bgp_oad/r1/frr.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,14 @@ router bgp 65001
neighbor 192.168.1.2 timers 1 3
neighbor 192.168.1.2 timers connect 1
neighbor 192.168.1.2 oad
neighbor 192.168.1.4 remote-as external
neighbor 192.168.1.4 timers 1 3
neighbor 192.168.1.4 timers connect 1
address-family ipv4 unicast
neighbor 192.168.1.4 route-map r4 in
exit-address-family
!
route-map r4 permit 10
set local-preference 123
set metric 123
exit
8 changes: 4 additions & 4 deletions tests/topotests/bgp_oad/r2/frr.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ router bgp 65002
neighbor 192.168.1.1 timers 1 3
neighbor 192.168.1.1 timers connect 1
neighbor 192.168.1.1 oad
neighbor 192.168.2.1 remote-as external
neighbor 192.168.2.1 timers 1 3
neighbor 192.168.2.1 timers connect 1
neighbor 192.168.2.1 oad
neighbor 192.168.2.3 remote-as external
neighbor 192.168.2.3 timers 1 3
neighbor 192.168.2.3 timers connect 1
neighbor 192.168.2.3 oad
!
2 changes: 1 addition & 1 deletion tests/topotests/bgp_oad/r3/frr.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ int lo
ip address 10.10.10.10/32
!
int r3-eth0
ip address 192.168.2.1/24
ip address 192.168.2.3/24
!
router bgp 65003
no bgp ebgp-requires-policy
Expand Down
16 changes: 16 additions & 0 deletions tests/topotests/bgp_oad/r4/frr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
!
int r4-eth0
ip address 192.168.1.4/24
!
int r4-eth1
ip address 192.168.4.4/24
!
router bgp 65004
no bgp ebgp-requires-policy
neighbor 192.168.1.1 remote-as external
neighbor 192.168.1.1 timers 1 3
neighbor 192.168.1.1 timers connect 1
neighbor 192.168.4.5 remote-as external
neighbor 192.168.4.5 timers 1 3
neighbor 192.168.4.5 timers connect 1
!
17 changes: 17 additions & 0 deletions tests/topotests/bgp_oad/r5/frr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
!
int lo
ip address 10.10.10.10/32
!
int r5-eth0
ip address 192.168.4.5/24
!
router bgp 65005
no bgp ebgp-requires-policy
neighbor 192.168.4.4 remote-as external
neighbor 192.168.4.4 timers 1 3
neighbor 192.168.4.4 timers connect 1
!
address-family ipv4 unicast
redistribute connected
exit-address-family
!
18 changes: 16 additions & 2 deletions tests/topotests/bgp_oad/test_bgp_oad.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@


def setup_module(mod):
topodef = {"s1": ("r1", "r2"), "s2": ("r2", "r3")}
topodef = {"s1": ("r1", "r2", "r4"), "s2": ("r2", "r3"), "s3": ("r4", "r5")}
tgen = Topogen(topodef, mod.__name__)
tgen.start_topology()

Expand Down Expand Up @@ -64,7 +64,21 @@ def _bgp_converge():
"aspath": {"string": "65002 65003"},
"metric": 123,
"locPrf": 123,
}
"peer": {
"hostname": "r2",
"type": "external (oad)",
},
},
{
"aspath": {"string": "65004 65005"},
"metric": 123,
"locPrf": 123,
"bestpath": {"selectionReason": "Peer Type"},
"peer": {
"hostname": "r4",
"type": "external",
},
},
]
}
return topotest.json_cmp(output, expected)
Expand Down

0 comments on commit 1c491df

Please sign in to comment.