2021-02-12 12:56:44 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-11-03 10:54:33 -05:00
|
|
|
switch_type=`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['switch_type']"`
|
2021-02-12 12:56:44 -06:00
|
|
|
# Check whether the routemap is for internal BGP sessions.
|
|
|
|
function is_internal_route_map()
|
|
|
|
{
|
2024-01-05 14:24:31 -06:00
|
|
|
if [[ "$1" =~ .*"_INTERNAL_".* || "$1" =~ .*"VOQ_".* ]]
|
|
|
|
then
|
|
|
|
return 1
|
|
|
|
else
|
|
|
|
return 0
|
|
|
|
fi
|
2021-02-12 12:56:44 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
function check_not_installed()
|
|
|
|
{
|
|
|
|
c=0
|
|
|
|
config=$(vtysh -c "show run")
|
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' | egrep 'V4|V6' | uniq);
|
2021-02-12 12:56:44 -06:00
|
|
|
do
|
2024-01-05 14:24:31 -06:00
|
|
|
is_internal_route_map $route_map_name
|
|
|
|
if [[ $? -eq 1 ]]; then
|
|
|
|
continue
|
|
|
|
fi
|
2021-02-12 12:56:44 -06:00
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name permit 20$"
|
|
|
|
c=$((c+$?))
|
2023-11-20 11:42:02 -06:00
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name permit 30$"
|
|
|
|
c=$((c+$?))
|
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name deny 40$"
|
2021-02-12 12:56:44 -06:00
|
|
|
c=$((c+$?))
|
|
|
|
done
|
|
|
|
return $c
|
|
|
|
}
|
|
|
|
|
|
|
|
function check_installed()
|
|
|
|
{
|
|
|
|
c=0
|
|
|
|
e=0
|
|
|
|
config=$(vtysh -c "show run")
|
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' | egrep 'V4|V6' | uniq);
|
2021-02-12 12:56:44 -06:00
|
|
|
do
|
2024-01-05 14:24:31 -06:00
|
|
|
is_internal_route_map $route_map_name
|
|
|
|
if [[ $? -eq 1 ]]; then
|
|
|
|
continue
|
|
|
|
fi
|
2021-02-12 12:56:44 -06:00
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name permit 20$"
|
|
|
|
c=$((c+$?))
|
|
|
|
e=$((e+1))
|
2023-11-20 11:42:02 -06:00
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name permit 30$"
|
|
|
|
c=$((c+$?))
|
|
|
|
e=$((e+1))
|
|
|
|
echo "$config" | egrep -q "^route-map $route_map_name deny 40$"
|
2021-02-12 12:56:44 -06:00
|
|
|
c=$((c+$?))
|
|
|
|
e=$((e+1))
|
|
|
|
done
|
|
|
|
return $((e-c))
|
|
|
|
}
|
2021-04-08 17:16:43 -05:00
|
|
|
|
|
|
|
function find_num_routemap()
|
|
|
|
{
|
|
|
|
c=0
|
|
|
|
config=$(vtysh -c "show run")
|
|
|
|
for route_map_name in $(echo "$config" | sed -ne 's/ neighbor \S* route-map \(\S*\) out/\1/p' | egrep 'V4|V6' | uniq);
|
|
|
|
do
|
2024-01-05 14:24:31 -06:00
|
|
|
is_internal_route_map $route_map_name
|
|
|
|
if [[ $? -eq 1 ]]; then
|
|
|
|
continue
|
|
|
|
fi
|
2021-04-08 17:16:43 -05:00
|
|
|
c=$((c+1))
|
|
|
|
done
|
|
|
|
return $c
|
|
|
|
}
|