__bird_ospf: ass -extra-area-configuration parameter
This commit is contained in:
parent
023206d3d9
commit
eecb2b4629
5 changed files with 26 additions and 7 deletions
|
@ -24,12 +24,6 @@ import
|
||||||
export
|
export
|
||||||
The keyword or filter to decide what to export in the above channel.
|
The keyword or filter to decide what to export in the above channel.
|
||||||
|
|
||||||
|
|
||||||
REQUIRED MULTIPLE PARAMETERS
|
|
||||||
----------------------------
|
|
||||||
interface
|
|
||||||
An interface to include in OSPF area 0.
|
|
||||||
|
|
||||||
OPTIONAL PARAMETERS
|
OPTIONAL PARAMETERS
|
||||||
-------------------
|
-------------------
|
||||||
description
|
description
|
||||||
|
@ -39,12 +33,19 @@ instance-id
|
||||||
An OSPF instance ID, allowing several OSPF instances to run on the same
|
An OSPF instance ID, allowing several OSPF instances to run on the same
|
||||||
links.
|
links.
|
||||||
|
|
||||||
|
extra-area-configuration
|
||||||
|
Configuration string added to the `area` section of the OSPF configuration.
|
||||||
|
|
||||||
OPTIONAL MULTIPLE PARAMETERS
|
OPTIONAL MULTIPLE PARAMETERS
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
stubnet
|
stubnet
|
||||||
Add an optionless stubnet definition to the configuration.
|
Add an optionless stubnet definition to the configuration.
|
||||||
|
|
||||||
|
interface
|
||||||
|
An interface to include in OSPF area 0. Is required unless
|
||||||
|
extra-area-configuration is set.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
cdist-type__bird_core(7)
|
cdist-type__bird_core(7)
|
||||||
|
|
|
@ -44,6 +44,21 @@ then
|
||||||
instance_id="$(cat "${__object:?}/parameter/instance-id")"
|
instance_id="$(cat "${__object:?}/parameter/instance-id")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
extra_area_configuration=
|
||||||
|
if [ -f "${__object:?}/parameter/extra-area-configuration" ];
|
||||||
|
then
|
||||||
|
extra_area_configuration="$(cat "${__object:?}/parameter/extra-area-configuration")"
|
||||||
|
|
||||||
|
if [ "$extra_area_configuration" = "-" ]; then
|
||||||
|
extra_area_configuration=$(cat "$__object/stdin")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "${__object:?}/parameter/interface" ] && [ -z "$extra_area_configuration" ]; then
|
||||||
|
echo "Either --interface or --extra-area-configuration must be set." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
__file "${confdir:?}/ospf-${__object_id:?}.conf" \
|
__file "${confdir:?}/ospf-${__object_id:?}.conf" \
|
||||||
--mode 0640 --owner root --group bird \
|
--mode 0640 --owner root --group bird \
|
||||||
--source - << EOF
|
--source - << EOF
|
||||||
|
@ -59,6 +74,8 @@ $([ -n "${instance_id?}" ] && printf "\tinstance id %s;\n" "${instance_id?}")
|
||||||
area 0 {
|
area 0 {
|
||||||
$(sed -e 's/^/\t\tinterface "/' -e 's/$/";/' "${__object:?}/parameter/interface")
|
$(sed -e 's/^/\t\tinterface "/' -e 's/$/";/' "${__object:?}/parameter/interface")
|
||||||
$(sed -e 's/^/\t\tsubnet /' -e 's/$/;/' "${__object:?}/parameter/subnet")
|
$(sed -e 's/^/\t\tsubnet /' -e 's/$/;/' "${__object:?}/parameter/subnet")
|
||||||
|
|
||||||
|
$extra_area_configuration
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
description
|
description
|
||||||
instance-id
|
instance-id
|
||||||
|
extra-area-configuration
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
stubnet
|
stubnet
|
||||||
|
interface
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
interface
|
|
Loading…
Reference in a new issue