Skip to content
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

Fix l3_interfaces regression failures due to IPv6 default "dad" configuration #428

Merged
merged 4 commits into from
Aug 12, 2024

Conversation

kerry-meyer
Copy link
Collaborator

@kerry-meyer kerry-meyer commented Aug 11, 2024

SUMMARY

Changes made in SONiC for handling of default l3_interfaces IPv6 "dad" (duplicate address detection) configuration
have caused breakage in the enterprise_sonic l3_interfaces resource module. This breakage is evident in recent
regression test runs. It is caused by the fact that SONiC now represents a "deleted" IPv6 "dad" configuration as
an "active" (present) configuration with a value of "DISABLE". The previous SONiC handling for this attribute,
which represented deleted IPv6 "dad" configuration as "null" was consistent with handling of almost all
configuration options in SONiC and was compatible with our Ansible handling.

The new behavior caused failures in idempotency handling, resulting in sending of requests for configuration that was already present in cases where the configuration contained deleted IPv6 "dad" configuration.

The change set proposed in this PR enables correct Ansible configuration behavior for the cases that were causing failures by selectively filtering out IPv6 "dad" configuration that is not actually present.

GitHub Issues

List the GitHub issues impacted by this PR. If no Github issues are affected, please indicate this with "N/A".

GitHub Issue #
N/A
ISSUE TYPE
  • Bugfix Pull Request
COMPONENT NAME

l3_interfaces

OUTPUT

l3_interfaces_dad_default_cfg_PR_regression-2024-08-10-20-03-17.zip

ADDITIONAL INFORMATION

Checklist:
  • I have performed a self-review of my own code to ensure there are no formatting, linting, or security issues
  • I have verified that new and existing unit tests pass locally with my changes
  • I have not allowed coverage numbers to degenerate
  • I have maintained at least 90% code coverage
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • I have maintained backward compatibility or have provided any relevant "breaking_changes" descriptions in a "fragment" file in the "changelogs/fragments" directory of this repository.
  • I have provided a summary for this PR in valid "fragment" file format in the "changelogs/fragments" directory of this repository branch. Reference : Ansible Change Log Document
How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration

I re-ran the failing regression test section for l3_interfaces to verify that it passes with the proposed changes.

Copy link
Collaborator

@mingjunzhang2019 mingjunzhang2019 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look good!

@kerry-meyer kerry-meyer merged commit 31e637e into ansible-collections:main Aug 12, 2024
15 checks passed
@kerry-meyer kerry-meyer deleted the l3_ipv6_dad_default branch August 30, 2024 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants