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

bgp error handling changes for review on master branch #424

Merged
merged 5 commits into from
Dec 17, 2019

Conversation

sudhanshukumar22
Copy link
Contributor

This document gives an overview of how to handle hardware install related errors in BGP. Based on community feedback, I will add an updated document with the following features:

  1. Add a knob for disabling and enabling error handling. If the error-handling is disabled, FRR to FPM communication will work as before. The hardware-related errors will be dropped in fpmsyncd and will not be sent to Zebra,
  2. When the error handling feature is enabled, we should wait in BGP for installing the route in hardware. Once the route is successfully programmed in hardware, we will advertise the route to its peers.

@prsunny
Copy link
Contributor

prsunny commented Sep 19, 2019

Currently orchagent crashes when there is a table full error, i.e when SAI returns SAI_STATUS_TABLE_FULL. With the error-handling, are you planning to change this behavior when the number of routes exceed the HW limits?

@sudhanshukumar22
Copy link
Contributor Author

Hi,
When error-handling is enabled, the system will not crash if we try to create an entry in hardware and it returns SAI_STATUS_TABLE_FULL. In this case, we will mark the route as not installed in hardware and create an entry in ERROR_ROUTE_TABLE.

sudhanshukumar22 added a commit to sudhanshukumar22/sonic-swss that referenced this pull request Oct 18, 2019
The  routes will be pushed by BGP to Zebra to   fpm to be installed
in  hardware.  If fpm returns error, the routes will not  be sent by BGP to
its  peers. Only  successful routes are sent by BGP to its  peers. The
feature can  be  enabled/disabled in BGP by a CLI. By default, the  feature
is disabled.  Functional specification:
sonic-net/SONiC#424
Signed-off by: Preetham Singh <[email protected]>
Signed-off by: Sudhanshu Kumar <[email protected]>
sudhanshukumar22 added a commit to sudhanshukumar22/sonic-utilities that referenced this pull request Oct 18, 2019
Functional specification:
sonic-net/SONiC#424
The routes will be pushed by BGP to Zebra to fpm to be installed
in hardware. If fpm returns error, the routes will not be sent by BGP to
its peers. Only successful routes are sent by BGP to its peers. The
feature can be enabled/disabled in BGP by a CLI. By default, the feature
is disabled. Functional specification:
sonic-net/SONiC#424
Signed-off by: Preetham Singh [email protected]
Signed-off by: Sudhanshu Kumar [email protected]
sudhanshukumar22 added a commit to sudhanshukumar22/sonic-buildimage that referenced this pull request Oct 24, 2019
 behavior  The  routes will be pushed by BGP to Zebra to   fpm to be installed
 in  hardware.  If fpm returns error, the routes will not  be sent by BGP to
 its  peers. Only  successful routes are sent by BGP to its  peers. The
 feature can  be  enabled/disabled in BGP by a CLI. By default, the  feature
 is disabled.  Functional specification:
 sonic-net/SONiC#424 Signed-off   by: Preetham Singh
 <[email protected]>
@xinliu-seattle xinliu-seattle merged commit 8503bd3 into sonic-net:master Dec 17, 2019
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.

4 participants