-
Notifications
You must be signed in to change notification settings - Fork 664
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
[config reload]: On dual ToR systems, cache ARP and FDB tables #1465
[config reload]: On dual ToR systems, cache ARP and FDB tables #1465
Conversation
Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
|
||
# If we are able to successfully cache ARP table info, signal SWSS to restore from our cache | ||
# by creating /host/config-reload/needs-restore | ||
if success: |
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 required? in a similar way, swss can check if the (arp.json and fdb.json) file exists and restore, correct?
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.
SWSS checks for file existence, but also checks /proc/cmdline to make sure fast-reboot actually occurred. I wanted to have a similar check for config reload for redundancy.
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.
LGTM! minor question.
Use the fast-reboot-dump and filter_fdb_entries scripts to cache the current ARP and FDB tables in /host/config-reload. Also create a file in the same directory to indicate to SWSS that it should restore from the cache. Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
Fix the path to config_db.json in config-reload for dual-tor device. Presently, there exists a typo in config_db.json filename that is sent as an argument to filter_fdb_entries. This causes failure during config reload. Related PR: #1465
sonic-net#1465)" This reverts commit 10de91d. Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
sonic-net#1465)" This reverts commit 10de91d. Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
sonic-net#1465)" This reverts commit 10de91d. Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
sonic-net#1465)" This reverts commit 10de91d. Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
sonic-net#2460) …s (sonic-net#1465)" - This reverts commit 10de91d. - Also removes '--disable-arp-cache' option from config reload tests that was added in sonic-net#2325 Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
sonic-net#2460) …s (sonic-net#1465)" - This reverts commit 10de91d. - Also removes '--disable-arp-cache' option from config reload tests that was added in sonic-net#2325 Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
Signed-off-by: Lawrence Lee lawlee@microsoft.com
What I did
On dual ToR systems, before performing
config reload
cache the ARP and FDB tables (similar to fast reboot) so that the standby ToR is able to resume normal operation afterwards.Note: will require a separate change in sonic-buildimage for the
docker_image_ctl.j2
file for the SWSS containerHow I did it
Add an optional flag to disable caching behavior (enabled by default for dual ToR systems, disabled for all others).
Use the
fast-reboot-dump
andfilter_fdb_entries
scripts to cache the current ARP and FDB tables in/host/config-reload
. Also create a file in the same directory to indicate to SWSS that it should restore from the cache.How to verify it
config reload -d
on a dual ToR system. Confirm that no cache is created in/host/config-reload
.config reload
on a dual ToR system. Confirm a cache IS created in/host/config-reload
. There should be anarp.json
,fdb.json
, anddefault_routes.json
(this one will be unused)config reload
andconfig reload -d
on a dual ToR system. Confirm that no cache is created in/host/config-reload
.Previous command output (if the output of a command-line utility has changed)
New command output (if the output of a command-line utility has changed)