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

[arp_update]: Set failed IPv6 neighbors to incomplete #11919

Merged

Conversation

theasianpianist
Copy link
Contributor

Signed-off-by: Lawrence Lee lawlee@microsoft.com

Why I did it

If IPv6 neighbor entries become "FAILED", then any subsequent neighbor advertisement messages will not be able to resolve these entries in the neighbor cache, only a ping or other traffic being sent from the device will be able to resolve these. This means that standby ToRs may have such FAILED entries stuck in the neighbor cache for a long time.

How I did it

After pinging any failed IPv6 neighbor entries, set the remaining failed/incomplete entries to a permanent INCOMPLETE state. This manual setting to INCOMPLETE prevents these entries from automatically transitioning to FAILED state, and since they are now incomplete any subsequent NA messages for these neighbors is able to resolve the entry in the cache.

How to verify it

  1. Add a failed IPv6 neighbor entry to the neighbor cache (e.g. pinging an unreachable address)
  2. Run the arp_update script
  3. The entry should now be incomplete
root@str2-7050cx3-acs-08:/# ping fc02:1000::500
PING fc02:1000::500(fc02:1000::500) 56 data bytes
^C
--- fc02:1000::500 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 13ms

root@str2-7050cx3-acs-08:/# ip neigh show fc02:1000::500
fc02:1000::500 dev Vlan1000  FAILED
root@str2-7050cx3-acs-08:/# arp_update
ping6: Warning: source address might be selected on device other than PortChannel101.
ping6: Warning: source address might be selected on device other than PortChannel102.
ping6: Warning: source address might be selected on device other than PortChannel103.
ping6: Warning: source address might be selected on device other than PortChannel104.
ping6: Warning: source address might be selected on device other than Vlan1000.
^C
root@str2-7050cx3-acs-08:/# ip neigh show fc02:1000::500
fc02:1000::500 dev Vlan1000  INCOMPLETE
root@str2-7050cx3-acs-08:/# sleep 10
root@str2-7050cx3-acs-08:/# ip neigh show fc02:1000::500
fc02:1000::500 dev Vlan1000  INCOMPLETE
root@str2-7050cx3-acs-08:/#

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205

Description for the changelog

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
files/scripts/arp_update Outdated Show resolved Hide resolved
Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
@prsunny
Copy link
Contributor

prsunny commented Sep 1, 2022

Can you please raise one for 202012?

@theasianpianist
Copy link
Contributor Author

Can you please raise one for 202012?

Addressed offline, we should be able to cherry-pick to 202012 without any conflicts

@yejianquan
Copy link
Contributor

/AzurePipelines run Azure.sonic-buildimage

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@theasianpianist theasianpianist merged commit a762b35 into sonic-net:master Sep 2, 2022
qiluo-msft pushed a commit that referenced this pull request Sep 2, 2022
After pinging any failed IPv6 neighbor entries, set the remaining failed/incomplete entries to a permanent INCOMPLETE state. This manual setting to INCOMPLETE prevents these entries from automatically transitioning to FAILED state, and since they are now incomplete any subsequent NA messages for these neighbors is able to resolve the entry in the cache.

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
yxieca pushed a commit that referenced this pull request Sep 8, 2022
After pinging any failed IPv6 neighbor entries, set the remaining failed/incomplete entries to a permanent INCOMPLETE state. This manual setting to INCOMPLETE prevents these entries from automatically transitioning to FAILED state, and since they are now incomplete any subsequent NA messages for these neighbors is able to resolve the entry in the cache.

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
theasianpianist added a commit that referenced this pull request Nov 7, 2022
Typo in prior PR #11919 hardcodes Vlan name. Change command to use the $vlan variable instead

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
yxieca pushed a commit that referenced this pull request Nov 10, 2022
Typo in prior PR #11919 hardcodes Vlan name. Change command to use the $vlan variable instead

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
qiluo-msft pushed a commit that referenced this pull request Nov 11, 2022
Typo in prior PR #11919 hardcodes Vlan name. Change command to use the $vlan variable instead

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants