41 lines
1.0 KiB
Plaintext
41 lines
1.0 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# Check whether the routemap is for internal BGP sessions.
|
||
|
function is_internal_route_map()
|
||
|
{
|
||
|
[[ "$1" =~ .*"_INTERNAL_".* ]]
|
||
|
}
|
||
|
|
||
|
function check_not_installed()
|
||
|
{
|
||
|
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');
|
||
|
do
|
||
|
is_internal_route_map $route_map_name && continue
|
||
|
echo "$config" | egrep -q "^route-map $route_map_name permit 20$"
|
||
|
c=$((c+$?))
|
||
|
echo "$config" | egrep -q "^route-map $route_map_name deny 30$"
|
||
|
c=$((c+$?))
|
||
|
done
|
||
|
return $c
|
||
|
}
|
||
|
|
||
|
function check_installed()
|
||
|
{
|
||
|
c=0
|
||
|
e=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');
|
||
|
do
|
||
|
is_internal_route_map $route_map_name && continue
|
||
|
echo "$config" | egrep -q "^route-map $route_map_name permit 20$"
|
||
|
c=$((c+$?))
|
||
|
e=$((e+1))
|
||
|
echo "$config" | egrep -q "^route-map $route_map_name deny 30$"
|
||
|
c=$((c+$?))
|
||
|
e=$((e+1))
|
||
|
done
|
||
|
return $((e-c))
|
||
|
}
|