updated internal route policy for chassis-packet (#15349)

What I did:

Workaround for the issue seen here : FRRouting/frr#13682
It seems there is timing issue where there are multiple recursive lookup needed to resolve nexthop of the route it's possible that it does not happen correctly causing route to remain in inactive state

Issue is seen on chassis-packet as there 2 level of recursive lookup needed for a given e-BGP learnt route
- Level1 to resolve e-BGP peer (connected route via bgp ) over Loopback4096 (i-BGP peering)
- Level 2 Loopback4096 over backend port-channels next-hops

For VOQ chassis there is no e-BGP peer (connected route via bgp )  resolution as route is added as Static route by orchagent over Ethernet-IB.

Also as part of this remove route-map policy from instance.conf.j2 as same is define in peer-group.j2.

Microsoft ADO: https://msazure.visualstudio.com/One/_workitems/edit/24198507

How I verify:
Functional Verification manually
Updated UT.
We will be adding sanity check in sonic-mgmt to make sure none of route are in inactive state.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
This commit is contained in:
abdosi 2023-06-07 09:17:44 -07:00 committed by GitHub
parent 94790bef04
commit 6139c525d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 78 additions and 6 deletions

View File

@ -10,18 +10,16 @@
address-family ipv4
neighbor {{ neighbor_addr }} peer-group INTERNAL_PEER_V4
!
{% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %}
{% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' or CONFIG_DB__DEVICE_METADATA['localhost']['switch_type'] == 'chassis-packet' %}
neighbor {{ neighbor_addr }} next-hop-self force
neighbor {{ neighbor_addr }} route-map FROM_BGP_INTERNAL_PEER_V4 in
{% endif %}
!
{% elif neighbor_addr | ipv6 %}
address-family ipv6
neighbor {{ neighbor_addr }} peer-group INTERNAL_PEER_V6
!
{% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' %}
{% if CONFIG_DB__DEVICE_METADATA['localhost']['sub_role'] == 'BackEnd' or CONFIG_DB__DEVICE_METADATA['localhost']['switch_type'] == 'chassis-packet' %}
neighbor {{ neighbor_addr }} next-hop-self force
neighbor {{ neighbor_addr }} route-map FROM_BGP_INTERNAL_PEER_V6 in
{% endif %}
{% endif %}
!

View File

@ -0,0 +1,15 @@
!
! template: bgpd/templates/internal/instance.conf.j2
!
neighbor 10.10.10.10 remote-as 555
neighbor 10.10.10.10 description remote_peer
neighbor 10.10.10.10 timers 3 10
neighbor 10.10.10.10 timers connect 10
address-family ipv4
neighbor 10.10.10.10 peer-group INTERNAL_PEER_V4
neighbor 10.10.10.10 next-hop-self force
neighbor 10.10.10.10 activate
exit-address-family
!
! end of template: bgpd/templates/internal/instance.conf.j2
!

View File

@ -0,0 +1,23 @@
{
"CONFIG_DB__DEVICE_METADATA": {
"localhost": {
"sub_role": "FrontEnd",
"type": "SpineRouter",
"switch_type": "chassis-packet"
}
},
"neighbor_addr": "10.10.10.10",
"bgp_session": {
"asn": "555",
"name": "remote_peer",
"keepalive": "5",
"holdtime": "30",
"admin_status": "down",
"ASIC": "something"
},
"constants": {
"deployment_id_asn_map": {
"5": "51111"
}
}
}

View File

@ -0,0 +1,15 @@
!
! template: bgpd/templates/internal/instance.conf.j2
!
neighbor fc::10 remote-as 555
neighbor fc::10 description remote_peer
neighbor fc::10 timers 3 10
neighbor fc::10 timers connect 10
address-family ipv6
neighbor fc::10 peer-group INTERNAL_PEER_V6
neighbor fc::10 next-hop-self force
neighbor fc::10 activate
exit-address-family
!
! end of template: bgpd/templates/internal/instance.conf.j2
!

View File

@ -0,0 +1,23 @@
{
"CONFIG_DB__DEVICE_METADATA": {
"localhost": {
"sub_role": "FrontEnd",
"type": "SpineRouter",
"switch_type": "chassis-packet"
}
},
"neighbor_addr": "fc::10",
"bgp_session": {
"asn": "555",
"name": "remote_peer",
"keepalive": "5",
"holdtime": "30",
"admin_status": "down",
"ASIC": "something"
},
"constants": {
"deployment_id_asn_map": {
"5": "51111"
}
}
}

View File

@ -8,7 +8,6 @@
address-family ipv4
neighbor 10.10.10.10 peer-group INTERNAL_PEER_V4
neighbor 10.10.10.10 next-hop-self force
neighbor 10.10.10.10 route-map FROM_BGP_INTERNAL_PEER_V4 in
neighbor 10.10.10.10 route-reflector-client
neighbor 10.10.10.10 activate
exit-address-family

View File

@ -8,7 +8,6 @@
address-family ipv6
neighbor fc::10 peer-group INTERNAL_PEER_V6
neighbor fc::10 next-hop-self force
neighbor fc::10 route-map FROM_BGP_INTERNAL_PEER_V6 in
neighbor fc::10 route-reflector-client
neighbor fc::10 activate
exit-address-family