-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
topotests: convert to exabgp 4 and python3 #14890
Conversation
@mwinter-osr -> Can you coordinate with @louis-6wind to get this done? |
I had to abort the CI here. All platforms hang at the same topotest:
Please investigate before you retry |
This is because of the issue: |
The CI already support exabgp 4. By default it's using ExaBGP 3, but if it detects the line (This will use ExaBGP 4.2.11 with FRR related IPv6 fixes) Please update the PR with this line in the |
exabgp used is 4.2.21 |
@@ -21,5 +21,7 @@ router bgp 1 | |||
! | |||
address-family ipv6 vpn | |||
neighbor 10.0.0.101 activate | |||
neighbor 10.0.0.101 route-map DENY_ALL out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this on purpose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes it is. See commit log ebc71fe
tests/topotests/lib/topogen.py
Outdated
|
||
if commander is None: | ||
commander = Commander("exabgp", logger=logging.getLogger("exabgp")) | ||
|
||
def exacmd_version_ok(exacmd): | ||
logger.debug("checking %s for exabgp < version 4", exacmd) | ||
logger.debug("checking %s for exabgp", exacmd) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should do a reverse check? To check if we don't use a lower version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
doc/developer/topotests.rst
Outdated
@@ -39,8 +37,7 @@ Installing Topotest Requirements | |||
python3 -m pip install 'pytest-xdist>=2.3.0' | |||
python3 -m pip install 'scapy>=2.4.5' | |||
python3 -m pip install xmltodict | |||
# Use python2 pip to install older ExaBGP | |||
python2 -m pip install 'exabgp<4.0.0' | |||
python3 -m pip install 'exabg==4.2.21' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4.2.11?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
= 4.2.11
docker/ubuntu-ci/Dockerfile
Outdated
python3 -m pip install wheel && \ | ||
python3 -m pip install pytest && \ | ||
python3 -m pip install pytest-sugar && \ | ||
python3 -m pip install pytest-xdist && \ | ||
python3 -m pip install "scapy>=2.4.2" && \ | ||
python3 -m pip install xmltodict && \ | ||
python3 -m pip install grpcio grpcio-tools && \ | ||
python2 -m pip install 'exabgp<4.0.0' | ||
python3 -m pip install 'exabgp==4.2.21' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4.2.11?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
= 4.2.11
61d57cc
to
11a7b1b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems we still have some issues:
E AssertionError: Can't find a usable ExaBGP (must be version >= 4.2.11)
CI:rerun Fixed ExaBGP 4 invocation on non-LXC testbeds. Rerunning (still expecting more issues) |
ci:rerun |
ci:rerun Retesting. intel systems should be fixed, arm still expected to fail |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rebase your PR in addition to the other comments to make sure it works with latest FRR master
doc/developer/topotests.rst
Outdated
@@ -39,8 +37,7 @@ Installing Topotest Requirements | |||
python3 -m pip install 'pytest-xdist>=2.3.0' | |||
python3 -m pip install 'scapy>=2.4.5' | |||
python3 -m pip install xmltodict | |||
# Use python2 pip to install older ExaBGP | |||
python2 -m pip install 'exabgp<4.0.0' | |||
python3 -m pip install 'exabg>=4.2.11' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest to install exabgp 4.2.11 from our OSR repository which has the required patches:
pip3 install git+https://github.com/opensourcerouting/[email protected]
docker/ubuntu-ci/Dockerfile
Outdated
python3 -m pip install wheel && \ | ||
python3 -m pip install pytest && \ | ||
python3 -m pip install pytest-sugar && \ | ||
python3 -m pip install pytest-xdist && \ | ||
python3 -m pip install "scapy>=2.4.2" && \ | ||
python3 -m pip install xmltodict && \ | ||
python3 -m pip install grpcio grpcio-tools && \ | ||
python2 -m pip install 'exabgp<4.0.0' | ||
python3 -m pip install 'exabgp>=4.2.11' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here on exabgp, use the OSR version with the patches
Require exabgp >= 4.2.11 to allow to newer version to run exabgp topotests. Next commits will adapt the exabgp topotests when needed. Signed-off-by: Louis Scalbert <[email protected]>
Look for python3 exabgp instead of python2. Signed-off-by: Louis Scalbert <[email protected]>
Use exabgp 4.2.11 in CI instead. Signed-off-by: Louis Scalbert <[email protected]>
Log exabgp by default in /tmp/topotests/<testname>/<peername>/exabgp.log Level is INFO. Note that in case the configuration syntax is invalid, exabgp does not log into the file and exits at startup. You can check a configuration syntax by running: > exabgp <exabgp.cfg> Signed-off-by: Louis Scalbert <[email protected]>
Create reate exabgp cli fifo even it is not used in topotests to avoid this error message: > 16:21:42 | 2290205 | cli | could not find the named pipes (exabgp.in and exabgp.out) required for the cli > 16:21:42 | 2290205 | cli | we scanned the following folders (the number is your PID): > 16:21:42 | 2290205 | cli control | - /run/exabgp/ > 16:21:42 | 2290205 | cli control | - /run/0/ > 16:21:42 | 2290205 | cli control | - /run/ > 16:21:42 | 2290205 | cli control | - /var/run/exabgp/ > 16:21:42 | 2290205 | cli control | - /var/run/0/ > 16:21:42 | 2290205 | cli control | - /var/run/ > 16:21:42 | 2290205 | cli control | - /usr/local/run/exabgp/ > 16:21:42 | 2290205 | cli control | - /usr/local/run/0/ > 16:21:42 | 2290205 | cli control | - /usr/local/run/ > 16:21:42 | 2290205 | cli control | - /usr/local/var/run/exabgp/ > 16:21:42 | 2290205 | cli control | - /usr/local/var/run/0/ > 16:21:42 | 2290205 | cli control | - /usr/local/var/run/ > 16:21:42 | 2290205 | cli control | please make them in one of the folder with the following commands: > 16:21:42 | 2290205 | cli control | > mkfifo //run/exabgp.{in,out} > 16:21:42 | 2290205 | cli control | > chmod 600 //run/exabgp.{in,out} Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_ecmp_topo1 to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_multiview_topo1 to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_vrf_md5_peering to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_vrf_netns to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_prefix_sid to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_prefix_sid2 to exabgp 4 Do not advertise prefixes to exabgp to avoid an issue where exabgp resets the bgp session with the following notification: > invalid ipv6 mpls-vpn next-hop length 48 expected 24 or 40 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_peer_type_multipath_relax to exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Cleanup bgp_peer_type_multipath_relax to make it more readable. Signed-off-by: Louis Scalbert <[email protected]>
Convert exabgp scripts to python3 Signed-off-by: Louis Scalbert <[email protected]>
Convert bgp_ecmp_topo1 to python3 Signed-off-by: Louis Scalbert <[email protected]>
Remove python2 support Signed-off-by: Louis Scalbert <[email protected]>
Update ubuntu template for exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Update the documentation to require exabgp 4 Signed-off-by: Louis Scalbert <[email protected]>
Workaround an issue in bgp_peer_type_multipath_relax. Link: FRRouting#14895 Signed-off-by: Louis Scalbert <[email protected]>
Convert topotests to exabgp 4 and python3.
The CI migration needs to be converted to exabgp 4 for this to work