Issue 20758: Changes to run telemetry/test_events.py on v6 topos#21592
Conversation
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
642d80f to
32b9583
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
| return idle_count == (expected_idle_count - bgp_monitor_count) | ||
| if idle_count != (expected_idle_count - bgp_monitor_count): | ||
| return False | ||
| return True |
There was a problem hiding this comment.
Can you please confirm if this check is still working when we only have IPv4/IPv6 neighbors?
@yanmo96 Do we have IPv4 bgp neighbors in loopback IPv6-only testbed?
There was a problem hiding this comment.
Hi @bingwang-ms in ipv6-only testbed, we do not have ipv4 bgp neighbors
|
Thanks for working on this! A few things to address before this can be merged: 1. Master already handles both address families by concatenating the summaries: 2. There's an existing helper 3. Also remove the Since this PR was created, an Please rebase onto latest master and update accordingly. |
yxieca
left a comment
There was a problem hiding this comment.
AI agent on behalf of Ying. Reviewed; no issues found.
32b9583 to
dd4e07f
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Thanks for the review! All three items addressed in the rebase. The branch now contains a single commit on top of latest 1. Dropped Master already has the equivalent v4+v6 fix. Removed entirely. 2. Replaced the mgmt_ip = duthost.get_mgmt_ip()["mgmt_ip"]
cmd = cmdFormat.format(mgmt_ip, env.gnmi_port, ...)Same pattern that's already used in 3. Removed both The Verification (run on an IPv6 VTB with the 202505 SONiC image):
— anders-bot (AI-assisted, on behalf of @anders-nexthop) |
@wangxinbot @yxieca please take a look at the updated PR, it needs to be re-approved after handling review comments. |
* use duthost.get_mgmt_ip() in generate_client_cli() to pick the right mgmt ip (v4 or v6) for the gnxi tool * fix get_mgmt_ip() to read from the kernel via 'ip addr' rather than from SONiC's 'show ip[v6] interface', which filters out site-local v6 addresses (fec0::/10) and breaks the helper on v6-only mgmt setups; also skip link-local (fe80::/10) explicitly so the v6 regex never matches the '0/64' tail of 'eth0/64' * remove the IPv6-only conditional skip and xfail entries for test_events Signed-off-by: Anders Linn <anders@nexthop.ai>
dd4e07f to
ac7b286
Compare
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Update — pushed one more change to this PR (force-pushed the same commit). While verifying on a true What I did Modified Why it's needed Two pre-existing issues stack up on a v6-only mgmt DUT:
End result: The fix has two halves: switching from How I found it After the rebase, I set up a true v6-only mgmt VTB:
In that environment Verification (with the fix) On the same v6-only mgmt VTB:
— anders-bot (AI-assisted, on behalf of @anders-nexthop) |
Verified on a true is_mgmt_ipv6_only==True VTB (t0-small-v6 with eth0 v4 removed) that these tests pass after the get_mgmt_ip() and generate_client_cli() fixes from sonic-net#21592 land. Drop their "dut ipv6 mgmt ip not supported" skip entries. Telemetry (10 tests): - test_telemetry.py::test_osbuild_version - test_telemetry.py::test_sysuptime - test_telemetry.py::test_telemetry_ouput - test_telemetry.py::test_virtualdb_table_streaming - test_telemetry_cert_rotation.py::test_telemetry_cert_rotate - test_telemetry_cert_rotation.py::test_telemetry_post_cert_add - test_telemetry_cert_rotation.py::test_telemetry_post_cert_del - test_telemetry_poll.py::test_poll_mode_delete - test_telemetry_poll.py::test_poll_mode_no_table_or_key - test_telemetry_poll.py::test_poll_mode_present_table_delayed_key gNMI (13 tests): - test_gnmi_appldb.py::test_gnmi_appldb_01 - test_gnmi_configdb.py::test_gnmi_configdb_full_replace_01 - test_gnmi_configdb.py::test_gnmi_configdb_get_authenticate - test_gnmi_configdb.py::test_gnmi_configdb_incremental_01 - test_gnmi_configdb.py::test_gnmi_configdb_incremental_02 - test_gnmi_configdb.py::test_gnmi_configdb_streaming_onchange_01 - test_gnmi_configdb.py::test_gnmi_configdb_streaming_onchange_02 - test_gnmi_configdb.py::test_gnmi_configdb_streaming_sample_01 - test_gnmi_configdb.py::test_gnmi_configdb_subscribe_authenticate - test_gnmi_countersdb.py::test_gnmi_counterdb_streaming_sample_01 - test_gnmi_countersdb.py::test_gnmi_counterdb_streaming_sample_02 - test_gnmi_countersdb.py::test_gnmi_output - test_gnmi_countersdb.py::test_gnmi_queue_buffer_cnt zmq (1 test): - test_gnmi_zmq.py::test_gnmi_zmq Skips intentionally retained: - gnmi/test_gnmi.py: file-level skip; multiple tests fail with hard-coded 10.250.0.101 in their gnmi_cli dialer logic and need their own refactor. - telemetry/test_telemetry_poll.py::test_poll_mode_default_route: fails on v6 due to a BGP default-route reconvergence issue, not mgmt IP. Signed-off-by: Anders Linn <anders@nexthop.ai>
|
Review note (non-blocking):
Reviewed by AI agent on behalf of Ying. |
@yxieca @bingwang-ms I would like to address this issue in a follow-up commit. With these changes, the machinery is in place to remove the skips on several other telemetry tests. I'd rather get this one merged since it's been in the works for a long time, and then submit another which removes all of those skips (after I verify that they all still pass). Can we get this one approved and merged up? The skip-expiry just hit for this: #20758 (comment) |
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: selldinesh <dinesh.sellappan@keysight.com>
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: Raghavendran Ramanathan <rraghav@cisco.com>
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: selldinesh <dinesh.sellappan@keysight.com>
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: selldinesh <dinesh.sellappan@keysight.com>
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: ssithaia-ebay <ssithaian@ebay.com>
…ic-net#21592) What: Enabled telemetry/test_events.py to run on IPv6-only topologies. Why: The test was conditionally skipped on IPv6 topos (issue sonic-net#20758), reducing IPv6-only test coverage. How: Extended is_bgp_state_idle() to check both IPv4 and IPv6 address families. Used is_mgmt_ipv6_only to pass the correct IP address to gnxi tool. Removed the conditional skip for IPv6 topos. Testing: Verified on IPv6 topology. All CI checks passed. Signed-off-by: anders-nexthop <anders@nexthop.ai> Signed-off-by: Yael Tzur <ytzur@nvidia.com>
Description of PR
Summary:
telemetry/test_events.py needs to be enhanced to run on ipv6 topos.
is_mgmt_ipv6_onlywas added here, which can be used to check for ipv6-only topos. This can be used in this test to pass the correct ip address into the gnxi tool, which has already been enhanced to handle ipv6 addresses.Changes were required to
is_bgp_state_idle()in tests/common/devices/sonic.py to check for active neighbors in both address families.The conditional skip has been removed.
Closes #20758
Type of change
Back port request
Approach
What is the motivation for this PR?
Increase IPv6-only coverage.
How did you do it?
How did you verify/test it?
Run the test on a virtual device with an ipv6-only topo. It fails before this change and passes after it.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation