-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Isis configuration support #1234
base: master
Are you sure you want to change the base?
Conversation
Update frr-isis-sonic-yang-model-hld.md to include isis interface auth
syntax update
|
||
Following section describes the changes to DB. | ||
|
||
Added new configuration tables specific to FRR_ISIS features: |
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.
Would you be adding more details for each of these tables, and also define the schema?
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.
doc/isis/frr-isis-sonic-yang-model-hld.md defines these tables
|
||
#### CLI/YANG Model Enhancements | ||
|
||
There are no CLI changes made in this feature thus far. |
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.
Some basic CLI's should be planned.
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.
Added some new cli support
@cchoate54 can you please add the code PRs by referring to #806 ? Thanks. |
|
||
sonic:~$ show run isis --config_db | ||
{ | ||
"ISIS_GLOBAL": { |
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.
Can we include VRF as the key in the initial schema itself? we can support just default VRF for now. This will help to extend the support easily for user VRF in the future.
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.
Included support for VRF similarly to how it was supported in the sonic-bgp-global yang model
ISIS Level Yang container is sonic-isis.yang. | ||
|
||
``` | ||
container ISIS_LEVEL { |
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.
Suggest to use the name ISIS_LEVELS
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.
Updated the container name to ISIS_LEVELS
} | ||
|
||
leaf ifname { | ||
type string; |
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.
We should leafref to INTERFACE table.
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.
Updated the type to leafref interface tables FRR would consider in-scope: PORT, PORTCHANNEL, and LOOPBACK_INTERFACE
``` | ||
|
||
##### SONiC ISIS Defined Types | ||
Types defined in sonic-types.yang.j2. |
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.
Suggest to just follow typedefs from standard openconfig model
https://github.com/openconfig/public/blob/master/release/models/isis/openconfig-isis-types.yang
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.
All defined ISIS types are now from openconfig isis types
key "instance level_number"; | ||
|
||
leaf instance { | ||
type string; |
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.
Please use leafref to instance present in global table.
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.
ISIS_LEVELS and ISIS_GLOBALS can be configured independently of each other based on FRR allowed behavior. I added a must statement to make sure they are always the same instance value.
key "instance ifname"; | ||
|
||
leaf instance { | ||
type string; |
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.
Please use leafref to instance present in global table.
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.
Added a leafref to instance in either ISIS_LEVELS or ISIS_GLOBAL
- FRR-ISIS config template files and isisd enabled by default in the FRR container | ||
- /dockers/docker-fpm-frr | ||
- Enable ISIS trap messages | ||
- /files/image_config/copp |
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.
Please capture the copp section. Please ensure trap is installed only when feature is enabled
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.
Based on https://github.com/sonic-net/SONiC/blob/master/doc/copp/CoPP%20Config%20and%20Management.md , it seems we should be able to add isis to the COPP_TRAP table only when needed. Would this be a sufficient solution for now ?
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.
Yes. Please add it on run time by updating COPP_TRAP entry. Please check is as example
https://github.com/sonic-net/sonic-ztp/pull/37/files
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.
Added a step to add/remove 'isis' in the COPP_TRAP entry on bgp container startup when frr_mgmt_framework_config is updated
community review recording https://zoom.us/rec/share/tHWVKfn1VXDl9tlYRFezxTUtTcZ4QKlt8DCz2hYuR-S2aNelacjCqmOUMicTpRo.mKL3EctOVqP1y9EB |
I believe that in an ideal case it would be great to have systemd service per routing protocol and also systemd target that groups these services. This could provide the best flexibility. E.g.,
That's the way how we group SONiC services with |
…ction about the copp_table exemption
…te54/SONiC-fork into isis_configuration_support
@venkatmahalingam and @dgsudharsan can you please review the changes made based on your suggestions |
… table of FRR container startup
…te54/SONiC-fork into isis_configuration_support
type string { | ||
pattern "default"; | ||
} | ||
type leafref { |
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.
Do we have ISIS support for user VRF as well? if yes, why do we have max-elements 1 at line 225?
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.
This was added based on the FRR documentation mentioning "isisd does not yet support multiple ISIS processes but you must specify the name of ISIS process" in https://docs.frrouting.org/en/latest/isisd.html
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.
@venkatmahalingam what are your thoughts here ?
Moved from 202305 release to 202311. |
@cchoate54 can you please help to double check if all comments have been addressed? We need reviewers to approve this PR if no additional comments. Thanks. |
no update, move to backlog |
@cchoate54 Can configuration be done through the CLI of sonic-utilities to write to config_db, or can it only be done through REST or gNMI in the management framework? |
Here is the documentation to describe the initial changes proposed to introduce FRR-ISIS configuration to SONiC.
Enable isisd and add ISIS Config Support.