2019-07-26 16:31:56 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-02-12 12:56:44 -06:00
|
|
|
# Load the common functions
|
|
|
|
source /usr/bin/TS
|
2019-07-26 16:31:56 -05:00
|
|
|
|
2021-04-08 17:16:43 -05:00
|
|
|
find_num_routemap
|
|
|
|
routemap_count=$?
|
2020-04-23 11:42:22 -05:00
|
|
|
check_not_installed
|
|
|
|
not_installed=$?
|
2021-04-08 17:16:43 -05:00
|
|
|
|
|
|
|
if [[ $routemap_count -eq 0 ]];
|
|
|
|
then
|
|
|
|
echo "System Mode: No external neighbors"
|
|
|
|
elif [[ $not_installed -ne 0 ]];
|
2019-07-26 16:31:56 -05:00
|
|
|
then
|
2019-11-06 18:07:28 -06:00
|
|
|
TSA_FILE=$(mktemp)
|
2021-04-08 17:16:43 -05:00
|
|
|
for route_map_name in $(echo "$config" | sed -ne 's/ neighbor \S* route-map \(\S*\) out/\1/p' | uniq);
|
2020-04-23 11:42:22 -05:00
|
|
|
do
|
2024-01-05 14:24:31 -06:00
|
|
|
is_internal_route_map $route_map_name
|
|
|
|
internal_route_map=$?
|
2020-04-23 11:42:22 -05:00
|
|
|
case "$route_map_name" in
|
|
|
|
*V4*)
|
|
|
|
ip_version=V4
|
[bgp]: Update TSA functionality (#5906)
Fixed TSA bugs:
1. TSA didn't advertise Loopback ipv6 address
2. TSA and TSB changed BGP dynamic and BGP monitors sessions
**- How to verify it**
Build an image and run on your DUT.
```
admin@str-s6100-acs-1:~$ TSA
System Mode: Normal -> Maintenance
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv4 neighbors 10.0.0.1 advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.32/32 0.0.0.0 0 32768 i
Total number of prefixes 1
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv6 neighbors fc00::a advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> fc00:1::/64 :: 0 32768 i
Total number of prefixes 1
admin@str-s6100-acs-1:~$ TSB
System Mode: Maintenance -> Normal
```
Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-11-13 19:54:20 -06:00
|
|
|
ip_protocol=ip
|
2020-04-23 11:42:22 -05:00
|
|
|
;;
|
|
|
|
*V6*)
|
|
|
|
ip_version=V6
|
[bgp]: Update TSA functionality (#5906)
Fixed TSA bugs:
1. TSA didn't advertise Loopback ipv6 address
2. TSA and TSB changed BGP dynamic and BGP monitors sessions
**- How to verify it**
Build an image and run on your DUT.
```
admin@str-s6100-acs-1:~$ TSA
System Mode: Normal -> Maintenance
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv4 neighbors 10.0.0.1 advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.32/32 0.0.0.0 0 32768 i
Total number of prefixes 1
admin@str-s6100-acs-1:~$ vtysh -c 'show bgp ipv6 neighbors fc00::a advertised-routes'
BGP table version is 6, local router ID is 10.1.0.32, vrf id 0
Default local pref 100, local AS 64601
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> fc00:1::/64 :: 0 32768 i
Total number of prefixes 1
admin@str-s6100-acs-1:~$ TSB
System Mode: Maintenance -> Normal
```
Co-authored-by: Pavel Shirshov <pavel.contrib@gmail.com>
2020-11-13 19:54:20 -06:00
|
|
|
ip_protocol=ipv6
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
continue
|
2020-04-23 11:42:22 -05:00
|
|
|
;;
|
|
|
|
esac
|
2024-01-05 14:24:31 -06:00
|
|
|
sonic-cfggen -d -a "{\"route_map_name\":\"$route_map_name\", \"ip_version\": \"$ip_version\", \"ip_protocol\": \"$ip_protocol\", \"internal_route_map\": \"$internal_route_map\"}" -y /etc/sonic/constants.yml -t /usr/share/sonic/templates/bgpd/tsa/bgpd.tsa.isolate.conf.j2 > "$TSA_FILE"
|
2020-04-23 11:42:22 -05:00
|
|
|
vtysh -f "$TSA_FILE"
|
|
|
|
rm -f "$TSA_FILE"
|
|
|
|
done
|
2019-07-26 16:31:56 -05:00
|
|
|
echo "System Mode: Normal -> Maintenance"
|
|
|
|
else
|
|
|
|
echo "System is already in Maintenance mode"
|
|
|
|
fi
|