[bird_radv] Add option to include MTU in RAs.

This commit is contained in:
sparrowhawk 2022-02-07 13:44:10 +01:00
parent 6310db7301
commit 727fbd55fb
No known key found for this signature in database
GPG key ID: 6778C9C29C02D691
6 changed files with 22 additions and 5 deletions

View file

@ -15,12 +15,17 @@ autoconfigure IPv6 hosts, this type is a rudimentary implementation to generate
configuration for Bird to do so. configuration for Bird to do so.
REQUIRED MULTIPLE PARAMETERS REQUIRED PARAMETERS
---------------------------- -------------------
interface interface
The interfaces to activate the protocol on. RAs will be sent using the The interfaces to activate the protocol on. RAs will be sent using the
prefixes configured on these interfaces. prefixes configured on these interfaces.
OPTIONAL PARAMETERS
-------------------
mtu
An optional MTU setting to include in the router advertisements.
OPTIONAL MULTIPLE PARAMETERS OPTIONAL MULTIPLE PARAMETERS
---------------------------- ----------------------------
@ -41,6 +46,7 @@ EXAMPLES
__bird_radv datacenter \ __bird_radv datacenter \
--interface eth1 \ --interface eth1 \
--mtu 9000 \
--route ::/0 \ --route ::/0 \
--ns 2001:DB8:cafe::4 \ --ns 2001:DB8:cafe::4 \
--ns 2001:DB8:cafe::14 \ --ns 2001:DB8:cafe::14 \

View file

@ -55,6 +55,12 @@ then
DNSSL=$(sed -e 's/^/\tdnssl "/' -e 's/$/";/' "${__object:?}/parameter/dnssl") DNSSL=$(sed -e 's/^/\tdnssl "/' -e 's/$/";/' "${__object:?}/parameter/dnssl")
fi fi
MTU=
if [ -f "${__object:?}/parameter/mtu" ];
then
MTU="link mtu $(cat "${__object:?}/parameter/mtu")"
fi
__file "${confdir:?}/radv-${__object_id:?}.conf" \ __file "${confdir:?}/radv-${__object_id:?}.conf" \
--mode 0640 --owner root --group bird \ --mode 0640 --owner root --group bird \
--source - << EOF --source - << EOF
@ -71,7 +77,9 @@ protocol radv ${__object_id:?} {
propagate routes ${have_routes:?}; propagate routes ${have_routes:?};
ipv6 { table radv_routes; export all; }; ipv6 { table radv_routes; export all; };
$(sed -e 's/^/\tinterface "/' -e 's/$/";/' "${__object:?}/parameter/interface") interface "$(cat "${__object:?}/parameter/interface")" {
$MTU
};
$RDNS $RDNS

View file

@ -0,0 +1 @@
mtu

View file

@ -17,4 +17,4 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>. # along with cdist. If not, see <http://www.gnu.org/licenses/>.
systemctl enable systemd-networkd echo "systemctl enable systemd-networkd"

View file

@ -35,6 +35,7 @@ esac
# sections in the same order as they are in the manpage. This will make hacking # sections in the same order as they are in the manpage. This will make hacking
# and maintaining this type much easier. # and maintaining this type much easier.
mkdir "${__object:?}/files"
output_file="${__object:?}/files/${__object_id:?}.network" output_file="${__object:?}/files/${__object_id:?}.network"
cat << EOF > "$output_file" cat << EOF > "$output_file"
@ -81,4 +82,5 @@ then
fi fi
__file "/etc/systemd/network/${__object_id:?}.network" \ __file "/etc/systemd/network/${__object_id:?}.network" \
--source "$output_file" --source "$output_file" \
--mode 0644