# replace MTU with value from configuration # get MTU value via Python # as configuration is not available to cli-shell-api at the first boot, we must use vyos.config, which contain workaround for this, instead clean shell function get_mtu { python3 - <\w+)\.(?P\d+)$') if regex_filter.search(interface_name): iface = regex_filter.search(interface_name).group('interface') vid = regex_filter.search(interface_name).group('vid') interface_name = "{} vif {}".format(iface, vid) # initialize config config = Config() if config.exists('interfaces'): iface_types = config.list_nodes('interfaces') for iface_type in iface_types: # check if configuration contain MTU value for interface and return (print) it if config.exists("interfaces {} {} mtu".format(iface_type, interface_name)): print(format(config.return_value("interfaces {} {} mtu".format(iface_type, interface_name)))) PYEND } # check if DHCP server return MTU value if [ -n "$new_interface_mtu" ]; then # try to get MTU from config and replace original one configured_mtu="$(get_mtu)" if [[ -n $configured_mtu ]] ; then logmsg info "Replacing MTU value for $interface with preconfigured one: $configured_mtu" new_interface_mtu="$configured_mtu" fi fi