├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── add-pr-labels.yml │ ├── add-rebase-label.yml │ ├── auto-author-assign.yml │ ├── check-open-prs-conflict.yml │ ├── check-pr-conflicts.yml │ ├── check-pr-message.yml │ ├── check-stale.yml │ ├── check-unused-imports.yml │ ├── cleanup-mirror-pr-branch.yml │ ├── codeql.yml │ ├── label-backport.yml │ ├── lint-with-ruff.yml │ ├── mirror-pr-and-sync.yml │ ├── package-smoketest.yml │ ├── sonarcloud.yml │ ├── trigger-pr-mirror-repo-sync.yml │ └── trigger-rebuild-repo-package.yml ├── .gitmodules ├── .vscode └── settings.json ├── CODEOWNERS ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE.GPL ├── LICENSE.LGPL ├── Makefile ├── README.md ├── data ├── config-mode-dependencies │ └── vyos-1x.json ├── config.boot.default ├── op-mode-standardized.json ├── templates │ ├── accel-ppp │ │ ├── chap-secrets.config_dict.j2 │ │ ├── chap-secrets.ipoe.j2 │ │ ├── chap-secrets.j2 │ │ ├── config_chap_secrets_radius.j2 │ │ ├── config_extended_scripts.j2 │ │ ├── config_ip_pool.j2 │ │ ├── config_ipv6_pool.j2 │ │ ├── config_limits.j2 │ │ ├── config_modules_auth_mode.j2 │ │ ├── config_modules_auth_protocols.j2 │ │ ├── config_modules_ipv6.j2 │ │ ├── config_name_server.j2 │ │ ├── config_shaper_radius.j2 │ │ ├── config_snmp.j2 │ │ ├── config_wins_server.j2 │ │ ├── ipoe.config.j2 │ │ ├── l2tp.config.j2 │ │ ├── ppp-options.j2 │ │ ├── pppoe.config.j2 │ │ ├── pptp.config.j2 │ │ └── sstp.config.j2 │ ├── aws │ │ └── override_aws_gwlbtun.conf.j2 │ ├── bcast-relay │ │ └── udp-broadcast-relay.j2 │ ├── chrony │ │ ├── chrony.conf.j2 │ │ └── override.conf.j2 │ ├── conntrack │ │ ├── nftables-ct.j2 │ │ ├── nftables-helpers.j2 │ │ ├── sysctl.conf.j2 │ │ └── vyos_nf_conntrack.conf.j2 │ ├── conntrackd │ │ └── conntrackd.conf.j2 │ ├── conserver │ │ ├── conserver.conf.j2 │ │ └── dropbear@.service.j2 │ ├── container │ │ ├── containers.conf.j2 │ │ ├── registries.conf.j2 │ │ ├── storage.conf.j2 │ │ └── systemd-unit.j2 │ ├── dhcp-client │ │ ├── dhcp6c-script.j2 │ │ ├── ipv4.j2 │ │ ├── ipv6.j2 │ │ ├── ipv6.override.conf.j2 │ │ └── override.conf.j2 │ ├── dhcp-relay │ │ ├── dhcrelay.conf.j2 │ │ └── dhcrelay6.conf.j2 │ ├── dhcp-server │ │ ├── kea-dhcp-ddns.conf.j2 │ │ ├── kea-dhcp4.conf.j2 │ │ └── kea-dhcp6.conf.j2 │ ├── dns-dynamic │ │ ├── ddclient.conf.j2 │ │ └── override.conf.j2 │ ├── dns-forwarding │ │ ├── override.conf.j2 │ │ ├── recursor.conf.j2 │ │ ├── recursor.conf.lua.j2 │ │ ├── recursor.forward-zones.conf.j2 │ │ ├── recursor.vyos-hostsd.conf.lua.j2 │ │ └── recursor.zone.conf.j2 │ ├── ethernet │ │ └── wpa_supplicant.conf.j2 │ ├── firewall │ │ ├── nftables-bridge.j2 │ │ ├── nftables-cgnat.j2 │ │ ├── nftables-defines.j2 │ │ ├── nftables-geoip-update.j2 │ │ ├── nftables-nat.j2 │ │ ├── nftables-nat66.j2 │ │ ├── nftables-offload.j2 │ │ ├── nftables-policy.j2 │ │ ├── nftables-static-nat.j2 │ │ ├── nftables-zone.j2 │ │ ├── nftables.j2 │ │ └── sysctl-firewall.conf.j2 │ ├── frr │ │ ├── babeld.frr.j2 │ │ ├── bfdd.frr.j2 │ │ ├── bgpd.frr.j2 │ │ ├── daemons.frr.tmpl │ │ ├── distribute_list_macro.j2 │ │ ├── eigrpd.frr.j2 │ │ ├── evpn.mh.frr.j2 │ │ ├── fabricd.frr.j2 │ │ ├── ipv6_distribute_list_macro.j2 │ │ ├── isisd.frr.j2 │ │ ├── ldpd.frr.j2 │ │ ├── nhrpd.frr.j2 │ │ ├── nhrpd_nftables.conf.j2 │ │ ├── ospf6d.frr.j2 │ │ ├── ospfd.frr.j2 │ │ ├── pim6d.frr.j2 │ │ ├── pimd.frr.j2 │ │ ├── policy.frr.j2 │ │ ├── rip_ripng.frr.j2 │ │ ├── ripd.frr.j2 │ │ ├── ripngd.frr.j2 │ │ ├── rpki.frr.j2 │ │ ├── staticd.frr.j2 │ │ ├── zebra.route-map.frr.j2 │ │ ├── zebra.segment_routing.frr.j2 │ │ └── zebra.vrf.route-map.frr.j2 │ ├── getty │ │ └── serial-getty.service.j2 │ ├── grub │ │ ├── grub_common.j2 │ │ ├── grub_compat.j2 │ │ ├── grub_main.j2 │ │ ├── grub_menu.j2 │ │ ├── grub_modules.j2 │ │ ├── grub_options.j2 │ │ ├── grub_vars.j2 │ │ └── grub_vyos_version.j2 │ ├── high-availability │ │ ├── 10-override.conf.j2 │ │ └── keepalived.conf.j2 │ ├── https │ │ ├── nginx.default.j2 │ │ ├── override.conf.j2 │ │ └── vyos-http-api.service.j2 │ ├── ids │ │ ├── suricata.j2 │ │ └── suricata_logrotate.j2 │ ├── igmp-proxy │ │ └── igmpproxy.conf.j2 │ ├── iproute2 │ │ ├── static.conf.j2 │ │ └── vrf.conf.j2 │ ├── ipsec │ │ ├── charon.j2 │ │ ├── charon │ │ │ ├── dhcp.conf.j2 │ │ │ └── eap-radius.conf.j2 │ │ ├── charon_systemd.conf.j2 │ │ ├── interfaces_use.conf.j2 │ │ ├── ios_profile.j2 │ │ ├── swanctl.conf.j2 │ │ ├── swanctl │ │ │ ├── l2tp.j2 │ │ │ ├── peer.j2 │ │ │ ├── profile.j2 │ │ │ └── remote_access.j2 │ │ └── windows_profile.j2 │ ├── lcd │ │ ├── LCDd.conf.j2 │ │ └── lcdproc.conf.j2 │ ├── lldp │ │ ├── lldpd.j2 │ │ └── vyos.conf.j2 │ ├── load-balancing │ │ ├── haproxy.cfg.j2 │ │ ├── nftables-wlb.j2 │ │ └── override_haproxy.conf.j2 │ ├── login │ │ ├── authorized_keys.j2 │ │ ├── authorized_principals.j2 │ │ ├── autologout.j2 │ │ ├── default_motd.j2 │ │ ├── limits.j2 │ │ ├── motd_vyos_nonproduction.j2 │ │ ├── nsswitch.conf.j2 │ │ ├── pam_otp_ga.conf.j2 │ │ ├── pam_radius_auth.conf.j2 │ │ ├── tacplus_nss.conf.j2 │ │ └── tacplus_servers.j2 │ ├── logs │ │ └── logrotate │ │ │ ├── vyos-atop.j2 │ │ │ └── vyos-rsyslog.j2 │ ├── macsec │ │ └── wpa_supplicant.conf.j2 │ ├── mdns-repeater │ │ ├── avahi-daemon.conf.j2 │ │ └── override.conf.j2 │ ├── ndppd │ │ └── ndppd.conf.j2 │ ├── ocserv │ │ ├── ocserv_config.j2 │ │ ├── ocserv_otp_usr.j2 │ │ ├── ocserv_passwd.j2 │ │ ├── radius_conf.j2 │ │ └── radius_servers.j2 │ ├── openvpn │ │ ├── auth.pw.j2 │ │ ├── client.conf.j2 │ │ ├── server.conf.j2 │ │ └── service-override.conf.j2 │ ├── pmacct │ │ ├── override.conf.j2 │ │ └── uacctd.conf.j2 │ ├── pppoe │ │ └── peer.j2 │ ├── prometheus │ │ ├── blackbox_exporter.service.j2 │ │ ├── blackbox_exporter.yml.j2 │ │ ├── frr_exporter.service.j2 │ │ └── node_exporter.service.j2 │ ├── protocols │ │ └── systemd_vyos_failover_service.j2 │ ├── router-advert │ │ └── radvd.conf.j2 │ ├── rsyslog │ │ ├── logrotate.j2 │ │ └── rsyslog.conf.j2 │ ├── salt-minion │ │ └── minion.j2 │ ├── sflow │ │ ├── hsflowd.conf.j2 │ │ └── override.conf.j2 │ ├── sla │ │ ├── owamp-override.conf.j2 │ │ ├── owamp-server.conf.j2 │ │ ├── twamp-override.conf.j2 │ │ └── twamp-server.conf.j2 │ ├── snmp │ │ ├── etc.snmp.conf.j2 │ │ ├── etc.snmpd.conf.j2 │ │ ├── override.conf.j2 │ │ ├── usr.snmpd.conf.j2 │ │ └── var.snmpd.conf.j2 │ ├── squid │ │ ├── sg_acl.conf.j2 │ │ ├── squid.conf.j2 │ │ └── squidGuard.conf.j2 │ ├── ssh │ │ ├── sshd_config.j2 │ │ ├── sshguard_config.j2 │ │ └── sshguard_whitelist.j2 │ ├── sstp-client │ │ └── peer.j2 │ ├── stunnel │ │ └── stunnel_config.j2 │ ├── system │ │ ├── 40_usb_autosuspend.j2 │ │ ├── cloud_init_networking.j2 │ │ ├── curlrc.j2 │ │ ├── proxy.j2 │ │ ├── ssh_config.j2 │ │ └── sysctl.conf.j2 │ ├── telegraf │ │ ├── override.conf.j2 │ │ ├── syslog_telegraf.j2 │ │ └── telegraf.j2 │ ├── tftp-server │ │ └── default.j2 │ ├── vyos-hostsd │ │ ├── hosts.j2 │ │ └── resolv.conf.j2 │ ├── wifi │ │ ├── hostapd.conf.j2 │ │ ├── hostapd_accept_station.conf.j2 │ │ ├── hostapd_deny_station.conf.j2 │ │ └── wpa_supplicant.conf.j2 │ └── zabbix-agent │ │ ├── 10-override.conf.j2 │ │ └── zabbix-agent.conf.j2 ├── vyos-configd-env-set ├── vyos-configd-env-unset └── vyos-firewall-init.conf ├── debian ├── changelog ├── compat ├── control ├── copyright ├── lintian-overrides ├── rules ├── vyos-1x-smoketest.install ├── vyos-1x-smoketest.postinst ├── vyos-1x-vmware.install ├── vyos-1x-vmware.preinst ├── vyos-1x.install ├── vyos-1x.links ├── vyos-1x.postinst └── vyos-1x.preinst ├── interface-definitions ├── container.xml.in ├── firewall.xml.in ├── high-availability.xml.in ├── include │ ├── accel-ppp │ │ ├── auth-local-users.xml.i │ │ ├── auth-mode.xml.i │ │ ├── auth-protocols.xml.i │ │ ├── client-ip-pool.xml.i │ │ ├── client-ipv6-pool.xml.i │ │ ├── default-ipv6-pool.xml.i │ │ ├── default-pool.xml.i │ │ ├── extended-scripts.xml.i │ │ ├── gateway-address-multi.xml.i │ │ ├── gateway-address.xml.i │ │ ├── lcp-echo-interval-failure.xml.i │ │ ├── lcp-echo-timeout.xml.i │ │ ├── limits.xml.i │ │ ├── log.xml.i │ │ ├── max-concurrent-sessions.xml.i │ │ ├── mtu-128-16384.xml.i │ │ ├── ppp-interface-cache.xml.i │ │ ├── ppp-mppe.xml.i │ │ ├── ppp-options-ipv4.xml.i │ │ ├── ppp-options-ipv6-interface-id.xml.i │ │ ├── ppp-options-ipv6.xml.i │ │ ├── ppp-options.xml.i │ │ ├── radius-accounting-interim-interval.xml.i │ │ ├── radius-additions-disable-accounting.xml.i │ │ ├── radius-additions-rate-limit.xml.i │ │ ├── radius-additions.xml.i │ │ ├── shaper.xml.i │ │ ├── snmp.xml.i │ │ ├── thread-count.xml.i │ │ ├── vlan-mon.xml.i │ │ ├── vlan.xml.i │ │ └── wins-server.xml.i │ ├── address-ipv4-ipv6-single.xml.i │ ├── allow-client.xml.i │ ├── arp-ndp-table-size.xml.i │ ├── auth-local-users.xml.i │ ├── auth-mode-pre-shared-secret.xml.i │ ├── auth-psk-id.xml.i │ ├── auth-psk-secret.xml.i │ ├── babel │ │ ├── interface.xml.i │ │ └── redistribute-common.xml.i │ ├── bfd │ │ ├── bfd.xml.i │ │ ├── common.xml.i │ │ └── profile.xml.i │ ├── bgp │ │ ├── afi-aggregate-address.xml.i │ │ ├── afi-allowas-in.xml.i │ │ ├── afi-attribute-unchanged.xml.i │ │ ├── afi-capability-orf.xml.i │ │ ├── afi-common-flowspec.xml.i │ │ ├── afi-default-originate.xml.i │ │ ├── afi-export-import.xml.i │ │ ├── afi-filter-list.xml.i │ │ ├── afi-ipv4-prefix-list.xml.i │ │ ├── afi-ipv6-nexthop-local.xml.i │ │ ├── afi-ipv6-prefix-list.xml.i │ │ ├── afi-l2vpn-advertise.xml.i │ │ ├── afi-l2vpn-common.xml.i │ │ ├── afi-label.xml.i │ │ ├── afi-maximum-paths.xml.i │ │ ├── afi-nexthop-self.xml.i │ │ ├── afi-nexthop-vpn-export.xml.i │ │ ├── afi-path-limit.xml.i │ │ ├── afi-rd.xml.i │ │ ├── afi-redistribute-common-protocols.xml.i │ │ ├── afi-redistribute-metric-route-map.xml.i │ │ ├── afi-route-map-export.xml.i │ │ ├── afi-route-map-import.xml.i │ │ ├── afi-route-map-vpn.xml.i │ │ ├── afi-route-map-vrf.xml.i │ │ ├── afi-route-map.xml.i │ │ ├── afi-route-reflector-client.xml.i │ │ ├── afi-route-server-client.xml.i │ │ ├── afi-route-target-vpn.xml.i │ │ ├── afi-sid.xml.i │ │ ├── afi-soft-reconfiguration.xml.i │ │ ├── afi-vpn-label.xml.i │ │ ├── bmp-monitor-afi-policy.xml.i │ │ ├── neighbor-afi-ipv4-flowspec.xml.i │ │ ├── neighbor-afi-ipv4-ipv6-common.xml.i │ │ ├── neighbor-afi-ipv4-labeled-unicast.xml.i │ │ ├── neighbor-afi-ipv4-multicast.xml.i │ │ ├── neighbor-afi-ipv4-unicast.xml.i │ │ ├── neighbor-afi-ipv4-vpn.xml.i │ │ ├── neighbor-afi-ipv6-flowspec.xml.i │ │ ├── neighbor-afi-ipv6-labeled-unicast.xml.i │ │ ├── neighbor-afi-ipv6-multicast.xml.i │ │ ├── neighbor-afi-ipv6-unicast.xml.i │ │ ├── neighbor-afi-ipv6-vpn.xml.i │ │ ├── neighbor-afi-l2vpn-evpn.xml.i │ │ ├── neighbor-bfd.xml.i │ │ ├── neighbor-capability.xml.i │ │ ├── neighbor-disable-capability-negotiation.xml.i │ │ ├── neighbor-disable-connected-check.xml.i │ │ ├── neighbor-ebgp-multihop.xml.i │ │ ├── neighbor-graceful-restart.xml.i │ │ ├── neighbor-local-as.xml.i │ │ ├── neighbor-local-role.xml.i │ │ ├── neighbor-override-capability.xml.i │ │ ├── neighbor-passive.xml.i │ │ ├── neighbor-password.xml.i │ │ ├── neighbor-path-attribute.xml.i │ │ ├── neighbor-shutdown.xml.i │ │ ├── neighbor-ttl-security.xml.i │ │ ├── neighbor-update-source.xml.i │ │ ├── peer-group.xml.i │ │ ├── protocol-common-config.xml.i │ │ ├── remote-as.xml.i │ │ ├── route-distinguisher.xml.i │ │ ├── timers-holdtime.xml.i │ │ └── timers-keepalive.xml.i │ ├── certificate-ca.xml.i │ ├── certificate-key.xml.i │ ├── certificate.xml.i │ ├── conntrack │ │ ├── log-protocols.xml.i │ │ └── timeout-custom-protocols.xml.i │ ├── constraint │ │ ├── alpha-numeric-hyphen-underscore-dot.xml.i │ │ ├── alpha-numeric-hyphen-underscore.xml.i │ │ ├── container-network.xml.i │ │ ├── dhcp-client-string-option.xml.i │ │ ├── email.xml.i │ │ ├── host-name.xml.i │ │ ├── interface-name-with-wildcard.xml.i │ │ ├── interface-name.xml.i │ │ ├── login-username.xml.i │ │ ├── protocols-static-table.xml.i │ │ ├── vrf.xml.i │ │ └── wireguard-keys.xml.i │ ├── dhcp-interface-multi.xml.i │ ├── dhcp-interface.xml.i │ ├── dhcp │ │ ├── captive-portal.xml.i │ │ ├── ddns-dns-server.xml.i │ │ ├── ddns-settings.xml.i │ │ ├── domain-name.xml.i │ │ ├── domain-search.xml.i │ │ ├── ntp-server.xml.i │ │ ├── option-v4.xml.i │ │ ├── option-v6.xml.i │ │ └── ping-check.xml.i │ ├── dns │ │ └── time-to-live.xml.i │ ├── eigrp │ │ └── protocol-common-config.xml.i │ ├── firewall │ │ ├── action-accept-drop-reject.xml.i │ │ ├── action-and-notrack.xml.i │ │ ├── action-forward.xml.i │ │ ├── action-l2.xml.i │ │ ├── action.xml.i │ │ ├── add-addr-to-group-ipv4.xml.i │ │ ├── add-addr-to-group-ipv6.xml.i │ │ ├── add-dynamic-address-groups.xml.i │ │ ├── add-dynamic-ipv6-address-groups.xml.i │ │ ├── address-inet.xml.i │ │ ├── address-ipv6.xml.i │ │ ├── address-mask-inet.xml.i │ │ ├── address-mask-ipv6.xml.i │ │ ├── address-mask.xml.i │ │ ├── address.xml.i │ │ ├── bridge-custom-name.xml.i │ │ ├── bridge-hook-forward.xml.i │ │ ├── bridge-hook-input.xml.i │ │ ├── bridge-hook-output.xml.i │ │ ├── bridge-hook-prerouting.xml.i │ │ ├── common-rule-bridge.xml.i │ │ ├── common-rule-inet.xml.i │ │ ├── common-rule-ipv4-raw.xml.i │ │ ├── common-rule-ipv4.xml.i │ │ ├── common-rule-ipv6-raw.xml.i │ │ ├── common-rule-ipv6.xml.i │ │ ├── connection-mark.xml.i │ │ ├── connection-status.xml.i │ │ ├── conntrack-helper.xml.i │ │ ├── default-action-base-chains.xml.i │ │ ├── default-action-bridge.xml.i │ │ ├── default-action.xml.i │ │ ├── default-log.xml.i │ │ ├── dscp.xml.i │ │ ├── eq.xml.i │ │ ├── firewall-hashing-parameters.xml.i │ │ ├── firewall-mark.xml.i │ │ ├── fqdn.xml.i │ │ ├── fragment.xml.i │ │ ├── fwmark.xml.i │ │ ├── geoip.xml.i │ │ ├── global-options.xml.i │ │ ├── gre.xml.i │ │ ├── gt.xml.i │ │ ├── hop-limit.xml.i │ │ ├── icmp-type-name.xml.i │ │ ├── icmp.xml.i │ │ ├── icmpv6-type-name.xml.i │ │ ├── icmpv6.xml.i │ │ ├── inbound-interface-no-group.xml.i │ │ ├── inbound-interface.xml.i │ │ ├── ipv4-custom-name.xml.i │ │ ├── ipv4-hook-forward.xml.i │ │ ├── ipv4-hook-input.xml.i │ │ ├── ipv4-hook-output.xml.i │ │ ├── ipv4-hook-prerouting.xml.i │ │ ├── ipv6-custom-name.xml.i │ │ ├── ipv6-hook-forward.xml.i │ │ ├── ipv6-hook-input.xml.i │ │ ├── ipv6-hook-output.xml.i │ │ ├── ipv6-hook-prerouting.xml.i │ │ ├── limit.xml.i │ │ ├── log-options.xml.i │ │ ├── log.xml.i │ │ ├── lt.xml.i │ │ ├── mac-address.xml.i │ │ ├── mac-group.xml.i │ │ ├── match-ether-type.xml.i │ │ ├── match-interface.xml.i │ │ ├── match-ipsec-in.xml.i │ │ ├── match-ipsec-out.xml.i │ │ ├── match-ipsec.xml.i │ │ ├── match-vlan.xml.i │ │ ├── name.xml.i │ │ ├── nat-balance.xml.i │ │ ├── nft-queue.xml.i │ │ ├── offload-target.xml.i │ │ ├── outbound-interface-no-group.xml.i │ │ ├── outbound-interface.xml.i │ │ ├── packet-options.xml.i │ │ ├── port.xml.i │ │ ├── protocol.xml.i │ │ ├── recent.xml.i │ │ ├── rule-log-level.xml.i │ │ ├── set-packet-modifications-conn-mark.xml.i │ │ ├── set-packet-modifications-dscp.xml.i │ │ ├── set-packet-modifications-hop-limit.xml.i │ │ ├── set-packet-modifications-mark.xml.i │ │ ├── set-packet-modifications-table-and-vrf.xml.i │ │ ├── set-packet-modifications-tcp-mss.xml.i │ │ ├── set-packet-modifications-ttl.xml.i │ │ ├── source-destination-dynamic-group-ipv6.xml.i │ │ ├── source-destination-dynamic-group.xml.i │ │ ├── source-destination-group-inet.xml.i │ │ ├── source-destination-group-ipv4.xml.i │ │ ├── source-destination-group-ipv6.xml.i │ │ ├── source-destination-group.xml.i │ │ ├── source-destination-remote-group.xml.i │ │ ├── state.xml.i │ │ ├── synproxy.xml.i │ │ ├── tcp-flags.xml.i │ │ ├── tcp-mss.xml.i │ │ ├── time.xml.i │ │ ├── timeout-common-protocols.xml.i │ │ ├── ttl.xml.i │ │ └── vrf.xml.i │ ├── generic-description.xml.i │ ├── generic-disable-node.xml.i │ ├── generic-interface-broadcast.xml.i │ ├── generic-interface-multi-broadcast.xml.i │ ├── generic-interface-multi-wildcard.xml.i │ ├── generic-interface-multi.xml.i │ ├── generic-interface.xml.i │ ├── generic-password.xml.i │ ├── generic-username.xml.i │ ├── haproxy │ │ ├── http-response-headers.xml.i │ │ ├── logging.xml.i │ │ ├── mode.xml.i │ │ ├── rule-backend.xml.i │ │ ├── rule-frontend.xml.i │ │ ├── tcp-request.xml.i │ │ ├── timeout-check.xml.i │ │ ├── timeout-client.xml.i │ │ ├── timeout-connect.xml.i │ │ ├── timeout-server.xml.i │ │ └── timeout.xml.i │ ├── ids │ │ └── threshold.xml.i │ ├── inbound-interface.xml.i │ ├── interface │ │ ├── address-ipv4-ipv6-dhcp.xml.i │ │ ├── address-ipv4-ipv6.xml.i │ │ ├── adjust-mss.xml.i │ │ ├── arp-cache-timeout.xml.i │ │ ├── authentication.xml.i │ │ ├── base-reachable-time.xml.i │ │ ├── default-route-distance.xml.i │ │ ├── dhcp-options.xml.i │ │ ├── dhcpv6-options.xml.i │ │ ├── dial-on-demand.xml.i │ │ ├── disable-arp-filter.xml.i │ │ ├── disable-forwarding.xml.i │ │ ├── disable-link-detect.xml.i │ │ ├── disable.xml.i │ │ ├── duid.xml.i │ │ ├── eapol.xml.i │ │ ├── enable-arp-accept.xml.i │ │ ├── enable-arp-announce.xml.i │ │ ├── enable-arp-ignore.xml.i │ │ ├── enable-directed-broadcast.xml.i │ │ ├── enable-proxy-arp.xml.i │ │ ├── evpn-mh-uplink.xml.i │ │ ├── hw-id.xml.i │ │ ├── inbound-interface.xml.i │ │ ├── ipv4-options.xml.i │ │ ├── ipv6-accept-dad.xml.i │ │ ├── ipv6-address-autoconf.xml.i │ │ ├── ipv6-address-eui64.xml.i │ │ ├── ipv6-address-interface-identifier.xml.i │ │ ├── ipv6-address-no-default-link-local.xml.i │ │ ├── ipv6-dup-addr-detect-transmits.xml.i │ │ ├── ipv6-options-with-nd.xml.i │ │ ├── ipv6-options.xml.i │ │ ├── mac-multi.xml.i │ │ ├── mac.xml.i │ │ ├── macsec-key.xml.i │ │ ├── mirror.xml.i │ │ ├── mtu-1200-16000.xml.i │ │ ├── mtu-1450-16000.xml.i │ │ ├── mtu-64-8024.xml.i │ │ ├── mtu-68-1500.xml.i │ │ ├── mtu-68-16000.xml.i │ │ ├── netns.xml.i │ │ ├── no-default-route.xml.i │ │ ├── no-peer-dns.xml.i │ │ ├── parameters-df.xml.i │ │ ├── parameters-flowlabel.xml.i │ │ ├── parameters-innerproto.xml.i │ │ ├── parameters-key.xml.i │ │ ├── parameters-tos.xml.i │ │ ├── parameters-ttl.xml.i │ │ ├── per-client-thread.xml.i │ │ ├── proxy-arp-pvlan.xml.i │ │ ├── redirect.xml.i │ │ ├── source-validation.xml.i │ │ ├── tunnel-remote-multi.xml.i │ │ ├── tunnel-remote.xml.i │ │ ├── vif-s.xml.i │ │ ├── vif.xml.i │ │ ├── vlan-protocol.xml.i │ │ └── vrf.xml.i │ ├── ip-address.xml.i │ ├── ip-protocol.xml.i │ ├── ipsec │ │ ├── authentication-id.xml.i │ │ ├── authentication-pre-shared-secret.xml.i │ │ ├── authentication-rsa.xml.i │ │ ├── authentication-x509.xml.i │ │ ├── bind.xml.i │ │ ├── esp-group.xml.i │ │ ├── ike-group.xml.i │ │ ├── local-address.xml.i │ │ ├── local-traffic-selector.xml.i │ │ ├── remote-address.xml.i │ │ └── replay-window.xml.i │ ├── ipv4-address-prefix-range.xml.i │ ├── ipv4-address-prefix.xml.i │ ├── isis │ │ ├── default-information-level.xml.i │ │ ├── ldp-sync-holddown.xml.i │ │ ├── ldp-sync-interface.xml.i │ │ ├── ldp-sync-protocol.xml.i │ │ ├── level-1-2-leaf.xml.i │ │ ├── lfa-local.xml.i │ │ ├── lfa-protocol.xml.i │ │ ├── lfa-remote.xml.i │ │ ├── metric.xml.i │ │ ├── passive.xml.i │ │ ├── password.xml.i │ │ ├── protocol-common-config.xml.i │ │ └── redistribute-level-1-2.xml.i │ ├── listen-address-ipv4-single.xml.i │ ├── listen-address-ipv4.xml.i │ ├── listen-address-single.xml.i │ ├── listen-address-vrf.xml.i │ ├── listen-address.xml.i │ ├── listen-interface-multi-broadcast.xml.i │ ├── log-adjacency-changes.xml.i │ ├── monitoring │ │ └── blackbox-exporter-module-commons.xml.i │ ├── name-server-ipv4-ipv6-port.xml.i │ ├── name-server-ipv4-ipv6.xml.i │ ├── name-server-ipv4.xml.i │ ├── name-server-ipv6.xml.i │ ├── nat-address.xml.i │ ├── nat-exclude.xml.i │ ├── nat-interface.xml.i │ ├── nat-port.xml.i │ ├── nat-rule.xml.i │ ├── nat-translation-options.xml.i │ ├── nat-translation-port.xml.i │ ├── nat │ │ └── protocol.xml.i │ ├── nat64 │ │ └── protocol.xml.i │ ├── net.xml.i │ ├── netlink │ │ ├── log-level.xml.i │ │ └── queue-size.xml.i │ ├── openfabric │ │ └── password.xml.i │ ├── ospf │ │ ├── authentication.xml.i │ │ ├── auto-cost.xml.i │ │ ├── default-information.xml.i │ │ ├── distance-global.xml.i │ │ ├── distance-per-protocol.xml.i │ │ ├── graceful-restart.xml.i │ │ ├── interface-common.xml.i │ │ ├── intervals.xml.i │ │ ├── log-adjacency-changes.xml.i │ │ ├── metric-type.xml.i │ │ ├── metric.xml.i │ │ ├── protocol-common-config.xml.i │ │ └── retransmit-window.xml.i │ ├── ospfv3 │ │ ├── no-summary.xml.i │ │ └── protocol-common-config.xml.i │ ├── pim │ │ ├── bsm.xml.i │ │ ├── dr-priority.xml.i │ │ ├── hello.xml.i │ │ ├── join-prune-interval.xml.i │ │ ├── keep-alive-timer.xml.i │ │ ├── packets.xml.i │ │ ├── passive.xml.i │ │ └── register-suppress-time.xml.i │ ├── pki │ │ ├── ca-certificate-multi.xml.i │ │ ├── ca-certificate.xml.i │ │ ├── certificate-key.xml.i │ │ ├── certificate-multi.xml.i │ │ ├── certificate.xml.i │ │ ├── cli-certificate-base64.xml.i │ │ ├── cli-private-key-base64.xml.i │ │ ├── cli-public-key-base64.xml.i │ │ ├── cli-revoke.xml.i │ │ ├── dh-params.xml.i │ │ ├── openssh-key.xml.i │ │ ├── password-protected.xml.i │ │ ├── private-key.xml.i │ │ └── public-key.xml.i │ ├── policy │ │ ├── action.xml.i │ │ ├── community-clear.xml.i │ │ ├── community-value-list.xml.i │ │ ├── extended-community-value-list.xml.i │ │ ├── host.xml.i │ │ ├── inverse-mask.xml.i │ │ ├── large-community-value-list.xml.i │ │ ├── local-route_rule_ipv4_address.xml.i │ │ ├── local-route_rule_ipv6_address.xml.i │ │ ├── local-route_rule_protocol.xml.i │ │ ├── network.xml.i │ │ ├── prefix-list.xml.i │ │ ├── prefix-list6.xml.i │ │ ├── route-common.xml.i │ │ ├── route-ipv4.xml.i │ │ ├── route-ipv6.xml.i │ │ ├── route-rule-action.xml.i │ │ └── tag.xml.i │ ├── port-number-start-zero.xml.i │ ├── port-number.xml.i │ ├── port-port-range.xml.i │ ├── pppoe-access-concentrator.xml.i │ ├── protocol-tcp-udp.xml.i │ ├── qos │ │ ├── bandwidth-auto.xml.i │ │ ├── bandwidth.xml.i │ │ ├── burst.xml.i │ │ ├── class-match-group.xml.i │ │ ├── class-match-ipv4-address.xml.i │ │ ├── class-match-ipv4.xml.i │ │ ├── class-match-ipv6-address.xml.i │ │ ├── class-match-ipv6.xml.i │ │ ├── class-match-mark.xml.i │ │ ├── class-match-vif.xml.i │ │ ├── class-match.xml.i │ │ ├── class-police-exceed.xml.i │ │ ├── class-priority.xml.i │ │ ├── codel-quantum.xml.i │ │ ├── flows.xml.i │ │ ├── hfsc-d.xml.i │ │ ├── hfsc-m1.xml.i │ │ ├── hfsc-m2.xml.i │ │ ├── interval.xml.i │ │ ├── match-dscp.xml.i │ │ ├── max-length.xml.i │ │ ├── mtu.xml.i │ │ ├── queue-average-packet.xml.i │ │ ├── queue-limit-1-4294967295.xml.i │ │ ├── queue-limit-2-10999.xml.i │ │ ├── queue-mark-probability.xml.i │ │ ├── queue-maximum-threshold.xml.i │ │ ├── queue-minimum-threshold.xml.i │ │ ├── queue-type.xml.i │ │ ├── set-dscp.xml.i │ │ ├── target.xml.i │ │ └── tcp-flags.xml.i │ ├── radius-acct-server-ipv4.xml.i │ ├── radius-auth-server-ipv4.xml.i │ ├── radius-nas-identifier.xml.i │ ├── radius-nas-ip-address.xml.i │ ├── radius-priority.xml.i │ ├── radius-server-acct-port.xml.i │ ├── radius-server-auth-port.xml.i │ ├── radius-server-ipv4-ipv6.xml.i │ ├── radius-server-key.xml.i │ ├── radius-timeout.xml.i │ ├── rip │ │ ├── access-list.xml.i │ │ ├── access-list6.xml.i │ │ ├── default-information.xml.i │ │ ├── default-metric.xml.i │ │ ├── interface.xml.i │ │ ├── prefix-list.xml.i │ │ ├── prefix-list6.xml.i │ │ ├── redistribute.xml.i │ │ ├── timers.xml.i │ │ └── version.xml.i │ ├── route-map.xml.i │ ├── router-id.xml.i │ ├── routing-passive-interface.xml.i │ ├── segment-routing-label-value.xml.i │ ├── server-ipv4-fqdn.xml.i │ ├── snmp │ │ ├── access-mode.xml.i │ │ ├── authentication-type.xml.i │ │ └── privacy-type.xml.i │ ├── source-address-ipv4-ipv6-multi.xml.i │ ├── source-address-ipv4-ipv6.xml.i │ ├── source-address-ipv4-multi.xml.i │ ├── source-address-ipv4.xml.i │ ├── source-address-ipv6.xml.i │ ├── source-interface-ethernet.xml.i │ ├── source-interface.xml.i │ ├── ssh-group.xml.i │ ├── ssh-user.xml.i │ ├── static │ │ ├── static-route-blackhole.xml.i │ │ ├── static-route-distance.xml.i │ │ ├── static-route-reject.xml.i │ │ ├── static-route-segments.xml.i │ │ ├── static-route-tag.xml.i │ │ ├── static-route-vrf.xml.i │ │ ├── static-route.xml.i │ │ └── static-route6.xml.i │ ├── stunnel │ │ ├── address.xml.i │ │ ├── connect.xml.i │ │ ├── listen.xml.i │ │ ├── protocol-options.xml.i │ │ ├── protocol-value-cifs.xml.i │ │ ├── protocol-value-connect.xml.i │ │ ├── protocol-value-imap.xml.i │ │ ├── protocol-value-nntp.xml.i │ │ ├── protocol-value-pgsql.xml.i │ │ ├── protocol-value-pop3.xml.i │ │ ├── protocol-value-proxy.xml.i │ │ ├── protocol-value-smtp.xml.i │ │ ├── protocol-value-socks.xml.i │ │ ├── psk.xml.i │ │ └── ssl.xml.i │ ├── syslog-facility.xml.i │ ├── system-ip-nht.xml.i │ ├── system-ip-protocol.xml.i │ ├── system-ipv6-protocol.xml.i │ ├── tls-version-min.xml.i │ ├── url-http-https.xml.i │ ├── version │ │ ├── bgp-version.xml.i │ │ ├── broadcast-relay-version.xml.i │ │ ├── cluster-version.xml.i │ │ ├── config-management-version.xml.i │ │ ├── conntrack-sync-version.xml.i │ │ ├── conntrack-version.xml.i │ │ ├── container-version.xml.i │ │ ├── dhcp-relay-version.xml.i │ │ ├── dhcp-server-version.xml.i │ │ ├── dhcpv6-server-version.xml.i │ │ ├── dns-dynamic-version.xml.i │ │ ├── dns-forwarding-version.xml.i │ │ ├── firewall-version.xml.i │ │ ├── flow-accounting-version.xml.i │ │ ├── https-version.xml.i │ │ ├── ids-version.xml.i │ │ ├── interfaces-version.xml.i │ │ ├── ipoe-server-version.xml.i │ │ ├── ipsec-version.xml.i │ │ ├── isis-version.xml.i │ │ ├── l2tp-version.xml.i │ │ ├── lldp-version.xml.i │ │ ├── mdns-version.xml.i │ │ ├── monitoring-version.xml.i │ │ ├── nat-version.xml.i │ │ ├── nat66-version.xml.i │ │ ├── nhrp-version.xml.i │ │ ├── ntp-version.xml.i │ │ ├── openconnect-version.xml.i │ │ ├── openvpn-version.xml.i │ │ ├── ospf-version.xml.i │ │ ├── pim-version.xml.i │ │ ├── policy-version.xml.i │ │ ├── pppoe-server-version.xml.i │ │ ├── pptp-version.xml.i │ │ ├── qos-version.xml.i │ │ ├── quagga-version.xml.i │ │ ├── reverseproxy-version.xml.i │ │ ├── rip-version.xml.i │ │ ├── rpki-version.xml.i │ │ ├── salt-version.xml.i │ │ ├── snmp-version.xml.i │ │ ├── ssh-version.xml.i │ │ ├── sstp-version.xml.i │ │ ├── system-version.xml.i │ │ ├── vrf-version.xml.i │ │ ├── vrrp-version.xml.i │ │ ├── vyos-accel-ppp-version.xml.i │ │ ├── wanloadbalance-version.xml.i │ │ └── webproxy-version.xml.i │ ├── vni.xml.i │ ├── vpn-ipsec-encryption.xml.i │ ├── vpn-ipsec-hash.xml.i │ ├── vrf-multi.xml.i │ ├── vrrp-transition-script.xml.i │ ├── vrrp │ │ └── garp.xml.i │ └── webproxy-url-filtering.xml.i ├── interfaces_bonding.xml.in ├── interfaces_bridge.xml.in ├── interfaces_dummy.xml.in ├── interfaces_ethernet.xml.in ├── interfaces_geneve.xml.in ├── interfaces_input.xml.in ├── interfaces_l2tpv3.xml.in ├── interfaces_loopback.xml.in ├── interfaces_macsec.xml.in ├── interfaces_openvpn.xml.in ├── interfaces_pppoe.xml.in ├── interfaces_pseudo-ethernet.xml.in ├── interfaces_sstpc.xml.in ├── interfaces_tunnel.xml.in ├── interfaces_virtual-ethernet.xml.in ├── interfaces_vti.xml.in ├── interfaces_vxlan.xml.in ├── interfaces_wireguard.xml.in ├── interfaces_wireless.xml.in ├── interfaces_wwan.xml.in ├── load-balancing_haproxy.xml.in ├── load-balancing_wan.xml.in ├── nat.xml.in ├── nat64.xml.in ├── nat66.xml.in ├── nat_cgnat.xml.in ├── netns.xml.in ├── pki.xml.in ├── policy.xml.in ├── policy_local-route.xml.in ├── policy_route.xml.in ├── protocols_babel.xml.in ├── protocols_bfd.xml.in ├── protocols_bgp.xml.in ├── protocols_eigrp.xml.in ├── protocols_failover.xml.in ├── protocols_igmp-proxy.xml.in ├── protocols_isis.xml.in ├── protocols_mpls.xml.in ├── protocols_nhrp.xml.in ├── protocols_openfabric.xml.in ├── protocols_ospf.xml.in ├── protocols_ospfv3.xml.in ├── protocols_pim.xml.in ├── protocols_pim6.xml.in ├── protocols_rip.xml.in ├── protocols_ripng.xml.in ├── protocols_rpki.xml.in ├── protocols_segment-routing.xml.in ├── protocols_static.xml.in ├── protocols_static_arp.xml.in ├── protocols_static_neighbor-proxy.xml.in ├── qos.xml.in ├── service_aws_glb.xml.in ├── service_broadcast-relay.xml.in ├── service_config-sync.xml.in ├── service_conntrack-sync.xml.in ├── service_console-server.xml.in ├── service_dhcp-relay.xml.in ├── service_dhcp-server.xml.in ├── service_dhcpv6-relay.xml.in ├── service_dhcpv6-server.xml.in ├── service_dns_dynamic.xml.in ├── service_dns_forwarding.xml.in ├── service_event-handler.xml.in ├── service_https.xml.in ├── service_ipoe-server.xml.in ├── service_lldp.xml.in ├── service_mdns_repeater.xml.in ├── service_monitoring_network_event.xml.in ├── service_monitoring_prometheus.xml.in ├── service_monitoring_telegraf.xml.in ├── service_monitoring_zabbix-agent.xml.in ├── service_ndp-proxy.xml.in ├── service_ntp.xml.in ├── service_pppoe-server.xml.in ├── service_router-advert.xml.in ├── service_salt-minion.xml.in ├── service_sla.xml.in ├── service_snmp.xml.in ├── service_ssh.xml.in ├── service_stunnel.xml.in ├── service_suricata.xml.in ├── service_tftp-server.xml.in ├── service_webproxy.xml.in ├── system_acceleration.xml.in ├── system_config-management.xml.in ├── system_conntrack.xml.in ├── system_console.xml.in ├── system_domain-name.xml.in ├── system_domain-search.xml.in ├── system_flow-accounting.xml.in ├── system_frr.xml.in ├── system_host-name.xml.in ├── system_ip.xml.in ├── system_ipv6.xml.in ├── system_lcd.xml.in ├── system_login.xml.in ├── system_login_banner.xml.in ├── system_logs.xml.in ├── system_name-server.xml.in ├── system_option.xml.in ├── system_proxy.xml.in ├── system_sflow.xml.in ├── system_static-host-mapping.xml.in ├── system_sysctl.xml.in ├── system_syslog.xml.in ├── system_task-scheduler.xml.in ├── system_time-zone.xml.in ├── system_update-check.xml.in ├── system_wireless.xml.in ├── vpn_ipsec.xml.in ├── vpn_l2tp.xml.in ├── vpn_openconnect.xml.in ├── vpn_pptp.xml.in ├── vpn_sstp.xml.in ├── vrf.xml.in └── xml-component-version.xml.in ├── mibs ├── AGENTX-MIB.txt ├── BGP4-MIB.txt ├── BRIDGE-MIB.txt ├── DISMAN-EVENT-MIB.txt ├── DISMAN-EXPRESSION-MIB.txt ├── DISMAN-NSLOOKUP-MIB.txt ├── DISMAN-PING-MIB.txt ├── DISMAN-SCHEDULE-MIB.txt ├── DISMAN-SCRIPT-MIB.txt ├── DISMAN-TRACEROUTE-MIB.txt ├── EtherLike-MIB.txt ├── HCNUM-TC.txt ├── HOST-RESOURCES-MIB.txt ├── HOST-RESOURCES-TYPES.txt ├── IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt ├── IANA-LANGUAGE-MIB.txt ├── IANA-RTPROTO-MIB.txt ├── IANAifType-MIB.txt ├── IF-INVERTED-STACK-MIB.txt ├── IF-MIB.txt ├── INET-ADDRESS-MIB.txt ├── IP-FORWARD-MIB.txt ├── IP-MIB.txt ├── IPV6-FLOW-LABEL-MIB.txt ├── IPV6-ICMP-MIB.txt ├── IPV6-MIB.txt ├── IPV6-TC.txt ├── IPV6-TCP-MIB.txt ├── IPV6-UDP-MIB.txt ├── MTA-MIB.txt ├── NETWORK-SERVICES-MIB.txt ├── NOTIFICATION-LOG-MIB.txt ├── OSPF-MIB.txt ├── OSPF-TRAP-MIB.txt ├── RFC1155-SMI.txt ├── RFC1213-MIB.txt ├── RIPv2-MIB.txt ├── RMON-MIB.txt ├── SCTP-MIB.txt ├── SMUX-MIB.txt ├── SNMP-COMMUNITY-MIB.txt ├── SNMP-FRAMEWORK-MIB.txt ├── SNMP-MPD-MIB.txt ├── SNMP-NOTIFICATION-MIB.txt ├── SNMP-PROXY-MIB.txt ├── SNMP-TARGET-MIB.txt ├── SNMP-USER-BASED-SM-MIB.txt ├── SNMP-USM-AES-MIB.txt ├── SNMP-USM-DH-OBJECTS-MIB.txt ├── SNMP-VIEW-BASED-ACM-MIB.txt ├── SNMPv2-CONF.txt ├── SNMPv2-MIB.txt ├── SNMPv2-SMI.txt ├── SNMPv2-TC.txt ├── SNMPv2-TM.txt ├── SOURCE-ROUTING-MIB.txt ├── TCP-MIB.txt ├── TRANSPORT-ADDRESS-MIB.txt ├── TUNNEL-MIB.txt ├── UDP-MIB.txt └── VYATTA-TRAP-MIB.txt ├── op-mode-definitions ├── clear-interfaces.xml.in ├── clear-ip.xml.in ├── clear-ipv6.xml.in ├── clear-log.xml.in ├── configure.xml.in ├── connect.xml.in ├── conntrack-sync.xml.in ├── container.xml.in ├── crypt.xml.in ├── date.xml.in ├── dhcp.xml.in ├── disconnect.xml.in ├── disks.xml.in ├── dns-dynamic.xml.in ├── dns-forwarding.xml.in ├── execute-bandwidth-test.xml.in ├── execute-port-scan.xml.in ├── execute-shell.xml.in ├── execute-ssh.xml.in ├── execute-wamp.xml.in ├── execute.xml.in ├── file.xml.in ├── firewall.xml.in ├── flow-accounting-op.xml.in ├── force-arp.xml.in ├── force-commit-archive.xml.in ├── force-ipv6-nd.xml.in ├── force-ipv6-rd.xml.in ├── force-mtu-host.xml.in ├── force-root-partition-auto-resize.xml.in ├── generate-interfaces-debug-archive.xml.in ├── generate-ipsec-debug-archive.xml.in ├── generate-ipsec-profile.xml.in ├── generate-macsec-key.xml.in ├── generate-openconnect-user-key.xml.in ├── generate-openvpn-config-client.xml.in ├── generate-psk.xml.in ├── generate-public-key-command.xml.in ├── generate-ssh-server-key.xml.in ├── generate-system-login-user.xml.in ├── generate-wireguard.xml.in ├── generate_firewall_rule-resequence.xml.in ├── generate_nat64_rule-resequence.xml.in ├── generate_nat66_rule-resequence.xml.in ├── generate_nat_rule-resequence.xml.in ├── generate_tech-support_archive.xml.in ├── geoip.xml.in ├── igmp-proxy.xml.in ├── include │ ├── bgp │ │ ├── advertised-routes.xml.i │ │ ├── afi-common.xml.i │ │ ├── afi-ipv4-ipv6-common.xml.i │ │ ├── afi-ipv4-ipv6-flowspec.xml.i │ │ ├── afi-ipv4-ipv6-vpn-rd.xml.i │ │ ├── afi-ipv4-ipv6-vpn.xml.i │ │ ├── dampened-routes.xml.i │ │ ├── evpn-type-1.xml.i │ │ ├── evpn-type-2.xml.i │ │ ├── evpn-type-3.xml.i │ │ ├── evpn-type-4.xml.i │ │ ├── evpn-type-5.xml.i │ │ ├── evpn-type-ead.xml.i │ │ ├── evpn-type-es.xml.i │ │ ├── evpn-type-macip.xml.i │ │ ├── evpn-type-multicast.xml.i │ │ ├── evpn-type-prefix.xml.i │ │ ├── exact-match.xml.i │ │ ├── filtered-routes.xml.i │ │ ├── flap-statistics.xml.i │ │ ├── martian-next-hop.xml.i │ │ ├── next-hop.xml.i │ │ ├── prefix-bestpath-multipath.xml.i │ │ ├── prefix-counts.xml.i │ │ ├── received-routes.xml.i │ │ ├── received.xml.i │ │ ├── reset-bgp-afi-common.xml.i │ │ ├── reset-bgp-neighbor-options.xml.i │ │ ├── reset-bgp-peer-group-vrf.xml.i │ │ ├── reset-bgp-peer-group.xml.i │ │ ├── routes.xml.i │ │ ├── show-bgp-common.xml.i │ │ └── show-ip-bgp-common.xml.i │ ├── frr-detail.xml.i │ ├── isis-common.xml.i │ ├── ldp-sync.xml.i │ ├── log │ │ └── network-event-type-interface.xml.i │ ├── monitor-no-ospf-packet-detail.xml.i │ ├── monitor-ospf-packet-detail.xml.i │ ├── ospf │ │ ├── common.xml.i │ │ └── graceful-restart.xml.i │ ├── ospfv3 │ │ ├── adv-router-id-node-tag.xml.i │ │ ├── adv-router.xml.i │ │ ├── border-routers.xml.i │ │ ├── database.xml.i │ │ ├── dump.xml.i │ │ ├── interface.xml.i │ │ ├── internal.xml.i │ │ ├── linkstate-id-node-tag.xml.i │ │ ├── linkstate-id.xml.i │ │ ├── linkstate.xml.i │ │ ├── neighbor.xml.i │ │ ├── redistribute.xml.i │ │ ├── route.xml.i │ │ └── self-originated.xml.i │ ├── rule-resequence.xml.i │ ├── show-interface-type-event-log.xml.i │ ├── show-nht.xml.i │ ├── show-route-bgp.xml.i │ ├── show-route-connected.xml.i │ ├── show-route-isis.xml.i │ ├── show-route-kernel.xml.i │ ├── show-route-openfabric.xml.i │ ├── show-route-ospf.xml.i │ ├── show-route-ospfv3.xml.i │ ├── show-route-rip.xml.i │ ├── show-route-ripng.xml.i │ ├── show-route-static.xml.i │ ├── show-route-supernets-only.xml.i │ ├── show-route-table.xml.i │ ├── show-route-tag.xml.i │ ├── vni-tagnode-all.xml.i │ ├── vni-tagnode.xml.i │ ├── vtysh-generic-detail-wide.xml.i │ ├── vtysh-generic-detail.xml.i │ ├── vtysh-generic-interface-tagNode.xml.i │ └── vtysh-generic-wide.xml.i ├── install-mok.xml.in ├── ipoe-server.xml.in ├── ipv4-route.xml.in ├── ipv6-route.xml.in ├── l2tp-server.xml.in ├── lldp.xml.in ├── load-balancing_haproxy.xml.in ├── load-balancing_wan.xml.in ├── mdns-reflector.xml.in ├── monitor-bandwidth.xml.in ├── monitor-bridge.xml.in ├── monitor-command.xml.in ├── monitor-log.xml.in ├── monitor-ndp.xml.in ├── monitor-protocol.xml.in ├── mtr.xml.in ├── multicast-group.xml.in ├── nat.xml.in ├── nat66.xml.in ├── nhrp.xml.in ├── ntp.xml.in ├── openconnect.xml.in ├── openvpn.xml.in ├── ping.xml.in ├── pki.xml.in ├── policy-route.xml.in ├── poweroff.xml.in ├── pppoe-server.xml.in ├── pptp-server.xml.in ├── raid.xml.in ├── reboot.xml.in ├── reset-bgp.xml.in ├── reset-conntrack.xml.in ├── reset-ip-bgp.xml.in ├── reset-ip-igmp.xml.in ├── reset-ip-multicast.xml.in ├── reset-mpls.xml.in ├── reset-session.xml.in ├── reset-vpn.xml.in ├── reset-wireguard.xml.in ├── restart-frr.xml.in ├── restart-ntp.xml.in ├── restart-router-advert.xml.in ├── restart-serial.xml.in ├── restart-snmp.xml.in ├── restart-ssh.xml.in ├── restart.xml.in ├── rpki.xml.in ├── sflow.xml.in ├── show-acceleration.xml.in ├── show-arp.xml.in ├── show-babel.xml.in ├── show-bfd.xml.in ├── show-bgp.xml.in ├── show-bridge.xml.in ├── show-configuration.xml.in ├── show-conntrack.xml.in ├── show-console-server.xml.in ├── show-environment.xml.in ├── show-evpn.xml.in ├── show-hardware.xml.in ├── show-history.xml.in ├── show-host.xml.in ├── show-interfaces-bonding.xml.in ├── show-interfaces-bridge.xml.in ├── show-interfaces-dummy.xml.in ├── show-interfaces-ethernet.xml.in ├── show-interfaces-geneve.xml.in ├── show-interfaces-input.xml.in ├── show-interfaces-l2tpv3.xml.in ├── show-interfaces-loopback.xml.in ├── show-interfaces-macsec.xml.in ├── show-interfaces-pppoe.xml.in ├── show-interfaces-pseudo-ethernet.xml.in ├── show-interfaces-sstpc.xml.in ├── show-interfaces-tunnel.xml.in ├── show-interfaces-virtual-ethernet.xml.in ├── show-interfaces-vti.xml.in ├── show-interfaces-vxlan.xml.in ├── show-interfaces-wireguard.xml.in ├── show-interfaces-wireless.xml.in ├── show-interfaces-wwan.xml.in ├── show-interfaces.xml.in ├── show-ip-access-paths-prefix-community-lists.xml.in ├── show-ip-bgp.xml.in ├── show-ip-igmp.xml.in ├── show-ip-multicast.xml.in ├── show-ip-ospf.xml.in ├── show-ip-pim.xml.in ├── show-ip-ports.xml.in ├── show-ip-rip.xml.in ├── show-ip-route.xml.in ├── show-ip.xml.in ├── show-ipv6-mld.xml.in ├── show-ipv6-ospfv3.xml.in ├── show-ipv6-pim.xml.in ├── show-ipv6-prefix-list.xml.in ├── show-ipv6-route.xml.in ├── show-ipv6.xml.in ├── show-isis.xml.in ├── show-kernel-modules.xml.in ├── show-license.xml.in ├── show-log.xml.in ├── show-login.xml.in ├── show-monitoring.xml.in ├── show-mpls.xml.in ├── show-netns.xml.in ├── show-openfabric.xml.in ├── show-poweroff.xml.in ├── show-protocols.xml.in ├── show-qos.xml.in ├── show-raid.xml.in ├── show-reboot.xml.in ├── show-route-map.xml.in ├── show-secure-boot.xml.in ├── show-segment-routing.xml.in ├── show-ssh.xml.in ├── show-system.xml.in ├── show-table.xml.in ├── show-techsupport_report.xml.in ├── show-users.xml.in ├── show-version.xml.in ├── show-virtual-server.xml.in ├── show-vrf.xml.in ├── snmp.xml.in ├── sstp-server.xml.in ├── suricata.xml.in ├── system-image.xml.in ├── telnet.xml.in ├── terminal.xml.in ├── traceroute.xml.in ├── traffic-dump.xml.in ├── vpn-ipsec.xml.in ├── vrrp.xml.in ├── wake-on-lan.xml.in └── webproxy.xml.in ├── python ├── setup.py └── vyos │ ├── __init__.py │ ├── accel_ppp.py │ ├── accel_ppp_util.py │ ├── airbag.py │ ├── base.py │ ├── certbot_util.py │ ├── component_version.py │ ├── compose_config.py │ ├── config.py │ ├── config_mgmt.py │ ├── configdep.py │ ├── configdict.py │ ├── configdiff.py │ ├── configquery.py │ ├── configsession.py │ ├── configsource.py │ ├── configtree.py │ ├── configverify.py │ ├── debug.py │ ├── defaults.py │ ├── ethtool.py │ ├── firewall.py │ ├── frrender.py │ ├── hostsd_client.py │ ├── ifconfig │ ├── __init__.py │ ├── afi.py │ ├── bond.py │ ├── bridge.py │ ├── control.py │ ├── dummy.py │ ├── ethernet.py │ ├── geneve.py │ ├── input.py │ ├── interface.py │ ├── l2tpv3.py │ ├── loopback.py │ ├── macsec.py │ ├── macvlan.py │ ├── operational.py │ ├── pppoe.py │ ├── section.py │ ├── sstpc.py │ ├── tunnel.py │ ├── veth.py │ ├── vrrp.py │ ├── vti.py │ ├── vtun.py │ ├── vxlan.py │ ├── wireguard.py │ ├── wireless.py │ └── wwan.py │ ├── iflag.py │ ├── include │ ├── __init__.py │ └── uapi │ │ ├── __init__.py │ │ └── linux │ │ ├── __init__.py │ │ ├── fib_rules.py │ │ ├── icmpv6.py │ │ ├── if_arp.py │ │ ├── lwtunnel.py │ │ ├── neighbour.py │ │ └── rtnetlink.py │ ├── initialsetup.py │ ├── ioctl.py │ ├── ipsec.py │ ├── kea.py │ ├── limericks.py │ ├── load_config.py │ ├── logger.py │ ├── migrate.py │ ├── nat.py │ ├── opmode.py │ ├── pki.py │ ├── priority.py │ ├── progressbar.py │ ├── proto │ ├── __init__.py │ ├── generate_dataclass.py │ ├── vycall_pb2.py │ ├── vyconf_client.py │ ├── vyconf_pb2.py │ └── vyconf_proto.py │ ├── qos │ ├── __init__.py │ ├── base.py │ ├── cake.py │ ├── droptail.py │ ├── fairqueue.py │ ├── fqcodel.py │ ├── limiter.py │ ├── netem.py │ ├── priority.py │ ├── randomdetect.py │ ├── ratelimiter.py │ ├── roundrobin.py │ └── trafficshaper.py │ ├── raid.py │ ├── range_regex.py │ ├── remote.py │ ├── snmpv3_hashgen.py │ ├── system │ ├── __init__.py │ ├── compat.py │ ├── disk.py │ ├── grub.py │ ├── grub_util.py │ ├── image.py │ └── raid.py │ ├── template.py │ ├── tpm.py │ ├── utils │ ├── __init__.py │ ├── assertion.py │ ├── auth.py │ ├── backend.py │ ├── boot.py │ ├── commit.py │ ├── config.py │ ├── configfs.py │ ├── convert.py │ ├── cpu.py │ ├── dict.py │ ├── disk.py │ ├── error.py │ ├── file.py │ ├── io.py │ ├── kernel.py │ ├── list.py │ ├── locking.py │ ├── misc.py │ ├── network.py │ ├── permission.py │ ├── process.py │ ├── serial.py │ ├── session.py │ ├── strip_config.py │ ├── system.py │ └── vti_updown_db.py │ ├── version.py │ ├── vyconf_session.py │ ├── wanloadbalance.py │ └── xml_ref │ ├── __init__.py │ ├── definition.py │ ├── generate_cache.py │ ├── generate_op_cache.py │ ├── op_definition.py │ ├── pkg_cache │ └── __init__.py │ └── update_cache.py ├── ruff.toml ├── schema ├── interface_definition.rnc ├── interface_definition.rng ├── op-mode-definition.rnc └── op-mode-definition.rng ├── scripts ├── build-command-op-templates ├── build-command-templates ├── generate-configd-include-json.py ├── override-default ├── transclude-template └── update-configd-include-file ├── smoketest ├── bin │ ├── vyos-configtest │ ├── vyos-configtest-pki │ └── vyos-smoketest ├── config-tests │ ├── basic-api-service │ ├── basic-haproxy │ ├── basic-syslog │ ├── basic-vyos │ ├── basic-vyos-no-ntp │ ├── bgp-azure-ipsec-gateway │ ├── bgp-bfd-communities │ ├── bgp-big-as-cloud │ ├── bgp-dmvpn-hub │ ├── bgp-dmvpn-spoke │ ├── bgp-evpn-l2vpn-leaf │ ├── bgp-evpn-l2vpn-spine │ ├── bgp-evpn-l3vpn-pe-router │ ├── bgp-medium-confederation │ ├── bgp-rpki │ ├── bgp-small-internet-exchange │ ├── bgp-small-ipv4-unicast │ ├── cluster-basic │ ├── container-simple │ ├── dialup-router-complex │ ├── dialup-router-medium-vpn │ ├── dialup-router-wireguard-ipv6 │ ├── egp-igp-route-maps │ ├── igmp-pim-small │ ├── ipoe-server │ ├── ipv6-disable │ ├── isis-small │ ├── nat-basic │ ├── ospf-simple │ ├── ospf-small │ ├── pppoe-server │ ├── qos-basic │ ├── rip-router │ ├── rpki-only │ ├── static-route-basic │ ├── tunnel-broker │ ├── vpn-openconnect-sstp │ ├── vrf-basic │ ├── vrf-bgp-pppoe-underlay │ ├── vrf-ospf │ └── wireless-basic ├── configs.no-load │ ├── bgp-small-as │ ├── firewall-big │ ├── pki-ipsec │ └── vrf-bgp ├── configs │ ├── basic-api-service │ ├── basic-haproxy │ ├── basic-syslog │ ├── basic-vyos │ ├── basic-vyos-no-ntp │ ├── bgp-azure-ipsec-gateway │ ├── bgp-bfd-communities │ ├── bgp-big-as-cloud │ ├── bgp-dmvpn-hub │ ├── bgp-dmvpn-spoke │ ├── bgp-evpn-l2vpn-leaf │ ├── bgp-evpn-l2vpn-spine │ ├── bgp-evpn-l3vpn-pe-router │ ├── bgp-medium-confederation │ ├── bgp-rpki │ ├── bgp-small-internet-exchange │ ├── bgp-small-ipv4-unicast │ ├── cluster-basic │ ├── container-simple │ ├── dialup-router-complex │ ├── dialup-router-medium-vpn │ ├── dialup-router-wireguard-ipv6 │ ├── egp-igp-route-maps │ ├── igmp-pim-small │ ├── ipoe-server │ ├── ipv6-disable │ ├── isis-small │ ├── nat-basic │ ├── ospf-simple │ ├── ospf-small │ ├── pppoe-server │ ├── qos-basic │ ├── rip-router │ ├── rpki-only │ ├── static-route-basic │ ├── tunnel-broker │ ├── vpn-openconnect-sstp │ ├── vrf-basic │ ├── vrf-bgp-pppoe-underlay │ ├── vrf-ospf │ └── wireless-basic └── scripts │ ├── cli │ ├── base_accel_ppp_test.py │ ├── base_interfaces_test.py │ ├── base_vyostest_shim.py │ ├── test_backslash_escape.py │ ├── test_cgnat.py │ ├── test_config_dependency.py │ ├── test_configd_init.py │ ├── test_container.py │ ├── test_firewall.py │ ├── test_high-availability_virtual-server.py │ ├── test_high-availability_vrrp.py │ ├── test_interfaces_bonding.py │ ├── test_interfaces_bridge.py │ ├── test_interfaces_dummy.py │ ├── test_interfaces_ethernet.py │ ├── test_interfaces_geneve.py │ ├── test_interfaces_input.py │ ├── test_interfaces_l2tpv3.py │ ├── test_interfaces_loopback.py │ ├── test_interfaces_macsec.py │ ├── test_interfaces_openvpn.py │ ├── test_interfaces_pppoe.py │ ├── test_interfaces_pseudo-ethernet.py │ ├── test_interfaces_tunnel.py │ ├── test_interfaces_virtual-ethernet.py │ ├── test_interfaces_vti.py │ ├── test_interfaces_vxlan.py │ ├── test_interfaces_wireguard.py │ ├── test_interfaces_wireless.py │ ├── test_load-balancing_haproxy.py │ ├── test_load-balancing_wan.py │ ├── test_nat.py │ ├── test_nat64.py │ ├── test_nat66.py │ ├── test_netns.py │ ├── test_op-mode_show.py │ ├── test_pki.py │ ├── test_policy.py │ ├── test_policy_local-route.py │ ├── test_policy_route.py │ ├── test_protocols_babel.py │ ├── test_protocols_bfd.py │ ├── test_protocols_bgp.py │ ├── test_protocols_igmp-proxy.py │ ├── test_protocols_isis.py │ ├── test_protocols_mpls.py │ ├── test_protocols_nhrp.py │ ├── test_protocols_openfabric.py │ ├── test_protocols_ospf.py │ ├── test_protocols_ospfv3.py │ ├── test_protocols_pim.py │ ├── test_protocols_pim6.py │ ├── test_protocols_rip.py │ ├── test_protocols_ripng.py │ ├── test_protocols_rpki.py │ ├── test_protocols_segment-routing.py │ ├── test_protocols_static.py │ ├── test_protocols_static_arp.py │ ├── test_qos.py │ ├── test_service_broadcast-relay.py │ ├── test_service_dhcp-relay.py │ ├── test_service_dhcp-server.py │ ├── test_service_dhcpv6-relay.py │ ├── test_service_dhcpv6-server.py │ ├── test_service_dns_dynamic.py │ ├── test_service_dns_forwarding.py │ ├── test_service_https.py │ ├── test_service_ipoe-server.py │ ├── test_service_lldp.py │ ├── test_service_mdns_repeater.py │ ├── test_service_monitoring_network_event.py │ ├── test_service_monitoring_prometheus.py │ ├── test_service_monitoring_telegraf.py │ ├── test_service_monitoring_zabbix-agent.py │ ├── test_service_ndp-proxy.py │ ├── test_service_ntp.py │ ├── test_service_pppoe-server.py │ ├── test_service_router-advert.py │ ├── test_service_salt-minion.py │ ├── test_service_snmp.py │ ├── test_service_ssh.py │ ├── test_service_stunnel.py │ ├── test_service_tftp-server.py │ ├── test_service_webproxy.py │ ├── test_system_acceleration_qat.py │ ├── test_system_conntrack.py │ ├── test_system_flow-accounting.py │ ├── test_system_frr.py │ ├── test_system_ip.py │ ├── test_system_ipv6.py │ ├── test_system_lcd.py │ ├── test_system_login.py │ ├── test_system_logs.py │ ├── test_system_option.py │ ├── test_system_resolvconf.py │ ├── test_system_sflow.py │ ├── test_system_syslog.py │ ├── test_vpn_ipsec.py │ ├── test_vpn_l2tp.py │ ├── test_vpn_openconnect.py │ ├── test_vpn_pptp.py │ ├── test_vpn_sstp.py │ └── test_vrf.py │ └── system │ ├── test_config_mount.py │ ├── test_iproute2.py │ ├── test_kernel_options.py │ └── test_module_load.py ├── sonar-project.properties ├── src ├── activation-scripts │ └── 20-ethernet_offload.py ├── completion │ ├── list_bgp_neighbors.sh │ ├── list_consoles.sh │ ├── list_container_sysctl_parameters.sh │ ├── list_ddclient_protocols.sh │ ├── list_disks.py │ ├── list_dumpable_interfaces.py │ ├── list_esi.sh │ ├── list_images.py │ ├── list_ipoe.py │ ├── list_ipsec_profile_tunnels.py │ ├── list_local_ips.sh │ ├── list_login_ttys.py │ ├── list_openconnect_users.py │ ├── list_openvpn_clients.py │ ├── list_openvpn_users.py │ ├── list_protocols.sh │ ├── list_raidset.sh │ ├── list_sysctl_parameters.sh │ ├── list_vni.sh │ ├── list_webproxy_category.sh │ ├── list_wireless_phys.sh │ └── qos │ │ └── list_traffic_match_group.py ├── conf_mode │ ├── container.py │ ├── firewall.py │ ├── high-availability.py │ ├── interfaces_bonding.py │ ├── interfaces_bridge.py │ ├── interfaces_dummy.py │ ├── interfaces_ethernet.py │ ├── interfaces_geneve.py │ ├── interfaces_input.py │ ├── interfaces_l2tpv3.py │ ├── interfaces_loopback.py │ ├── interfaces_macsec.py │ ├── interfaces_openvpn.py │ ├── interfaces_pppoe.py │ ├── interfaces_pseudo-ethernet.py │ ├── interfaces_sstpc.py │ ├── interfaces_tunnel.py │ ├── interfaces_virtual-ethernet.py │ ├── interfaces_vti.py │ ├── interfaces_vxlan.py │ ├── interfaces_wireguard.py │ ├── interfaces_wireless.py │ ├── interfaces_wwan.py │ ├── load-balancing_haproxy.py │ ├── load-balancing_wan.py │ ├── nat.py │ ├── nat64.py │ ├── nat66.py │ ├── nat_cgnat.py │ ├── netns.py │ ├── pki.py │ ├── policy.py │ ├── policy_local-route.py │ ├── policy_route.py │ ├── protocols_babel.py │ ├── protocols_bfd.py │ ├── protocols_bgp.py │ ├── protocols_eigrp.py │ ├── protocols_failover.py │ ├── protocols_igmp-proxy.py │ ├── protocols_isis.py │ ├── protocols_mpls.py │ ├── protocols_nhrp.py │ ├── protocols_openfabric.py │ ├── protocols_ospf.py │ ├── protocols_ospfv3.py │ ├── protocols_pim.py │ ├── protocols_pim6.py │ ├── protocols_rip.py │ ├── protocols_ripng.py │ ├── protocols_rpki.py │ ├── protocols_segment-routing.py │ ├── protocols_static.py │ ├── protocols_static_arp.py │ ├── protocols_static_neighbor-proxy.py │ ├── qos.py │ ├── service_aws_glb.py │ ├── service_broadcast-relay.py │ ├── service_config-sync.py │ ├── service_conntrack-sync.py │ ├── service_console-server.py │ ├── service_dhcp-relay.py │ ├── service_dhcp-server.py │ ├── service_dhcpv6-relay.py │ ├── service_dhcpv6-server.py │ ├── service_dns_dynamic.py │ ├── service_dns_forwarding.py │ ├── service_event-handler.py │ ├── service_https.py │ ├── service_ipoe-server.py │ ├── service_lldp.py │ ├── service_mdns_repeater.py │ ├── service_monitoring_network_event.py │ ├── service_monitoring_prometheus.py │ ├── service_monitoring_telegraf.py │ ├── service_monitoring_zabbix-agent.py │ ├── service_ndp-proxy.py │ ├── service_ntp.py │ ├── service_pppoe-server.py │ ├── service_router-advert.py │ ├── service_salt-minion.py │ ├── service_sla.py │ ├── service_snmp.py │ ├── service_ssh.py │ ├── service_stunnel.py │ ├── service_suricata.py │ ├── service_tftp-server.py │ ├── service_webproxy.py │ ├── system_acceleration.py │ ├── system_config-management.py │ ├── system_conntrack.py │ ├── system_console.py │ ├── system_flow-accounting.py │ ├── system_frr.py │ ├── system_host-name.py │ ├── system_ip.py │ ├── system_ipv6.py │ ├── system_lcd.py │ ├── system_login.py │ ├── system_login_banner.py │ ├── system_logs.py │ ├── system_option.py │ ├── system_proxy.py │ ├── system_sflow.py │ ├── system_sysctl.py │ ├── system_syslog.py │ ├── system_task-scheduler.py │ ├── system_timezone.py │ ├── system_update-check.py │ ├── system_wireless.py │ ├── vpn_ipsec.py │ ├── vpn_l2tp.py │ ├── vpn_openconnect.py │ ├── vpn_pptp.py │ ├── vpn_sstp.py │ └── vrf.py ├── etc │ ├── bash_completion.d │ │ └── vyatta-op │ ├── commit │ │ └── post-hooks.d │ │ │ └── 00vyos-sync │ ├── cron.d │ │ └── vyos-geoip │ ├── default │ │ └── vyatta │ ├── dhcp │ │ ├── dhclient-enter-hooks.d │ │ │ ├── 01-vyos-logging │ │ │ ├── 02-vyos-stopdhclient │ │ │ ├── 03-vyos-ipwrapper │ │ │ ├── 04-vyos-resolvconf │ │ │ ├── 05-vyos-mtureplace │ │ │ ├── 06-vyos-nodefaultroute │ │ │ └── 99-run-user-hooks │ │ └── dhclient-exit-hooks.d │ │ │ ├── 01-vyos-cleanup │ │ │ ├── 02-vyos-dhcp-renew-rfc3442 │ │ │ ├── 03-vyos-dhclient-hook │ │ │ ├── 98-run-user-hooks │ │ │ └── 99-ipsec-dhclient-hook │ ├── ipsec.d │ │ ├── key-pair.template │ │ └── vti-up-down │ ├── logrotate.d │ │ ├── conntrackd │ │ ├── vyos-atop │ │ └── vyos-rsyslog │ ├── modprobe.d │ │ ├── ifb.conf │ │ └── openvpn.conf │ ├── netplug │ │ ├── linkup.d │ │ │ └── vyos-python-helper │ │ ├── netplug │ │ ├── netplugd.conf │ │ └── vyos-netplug-dhcp-client │ ├── ppp │ │ ├── ip-down.d │ │ │ └── 98-vyos-pppoe-cleanup-nameservers │ │ └── ip-up.d │ │ │ ├── 96-vyos-sstpc-callback │ │ │ ├── 98-vyos-pppoe-setup-nameservers │ │ │ ├── 99-vyos-pppoe-callback │ │ │ └── 99-vyos-pppoe-wlb │ ├── securetty │ ├── security │ │ └── capability.conf │ ├── skel │ │ ├── .bashrc │ │ └── .profile │ ├── sudoers.d │ │ └── vyos │ ├── sysctl.d │ │ ├── 30-vyos-router.conf │ │ ├── 31-vyos-addr_gen_mode.conf │ │ └── 32-vyos-podman.conf │ ├── systemd │ │ ├── system-generators │ │ │ └── vyos-generator │ │ └── system │ │ │ ├── ModemManager.service.d │ │ │ └── override.conf │ │ │ ├── atop.service.d │ │ │ └── 10-override.conf │ │ │ ├── certbot.service.d │ │ │ └── 10-override.conf │ │ │ ├── conntrackd.service.d │ │ │ └── override.conf │ │ │ ├── conserver-server.service.d │ │ │ └── override.conf │ │ │ ├── frr.service.d │ │ │ └── override.conf │ │ │ ├── getty@.service.d │ │ │ └── aftervyos.conf │ │ │ ├── hostapd@.service.d │ │ │ └── override.conf │ │ │ ├── kea-dhcp-ddns-server.service.d │ │ │ └── override.conf │ │ │ ├── kea-dhcp4-server.service.d │ │ │ └── override.conf │ │ │ ├── kea-dhcp6-server.service.d │ │ │ └── override.conf │ │ │ ├── logrotate.timer.d │ │ │ └── 10-override.conf │ │ │ ├── nginx.service.d │ │ │ └── 10-override.conf │ │ │ ├── ocserv.service.d │ │ │ └── override.conf │ │ │ ├── openvpn@.service.d │ │ │ └── 10-override.conf │ │ │ ├── radvd.service.d │ │ │ └── override.conf │ │ │ ├── rsyslog.service.d │ │ │ └── override.conf │ │ │ ├── serial-getty@.service.d │ │ │ └── aftervyos.conf │ │ │ ├── ssh@.service.d │ │ │ └── vrf-override.conf │ │ │ ├── suricata.service.d │ │ │ └── 10-override.conf │ │ │ ├── wpa_supplicant-wired@.service.d │ │ │ └── override.conf │ │ │ └── wpa_supplicant@.service.d │ │ │ └── override.conf │ ├── telegraf │ │ └── custom_scripts │ │ │ ├── show_firewall_input_filter.py │ │ │ ├── show_interfaces_input_filter.py │ │ │ └── vyos_services_input_filter.py │ ├── udev │ │ └── rules.d │ │ │ ├── 42-qemu-usb.rules │ │ │ ├── 62-temporary-interface-rename.rules │ │ │ ├── 63-hyperv-vf-net.rules │ │ │ ├── 64-vyos-vmware-net.rules │ │ │ ├── 65-vyos-net.rules │ │ │ ├── 90-vyos-serial.rules │ │ │ └── 99-vyos-systemd.rules │ ├── update-motd.d │ │ └── 99-reboot │ └── vmware-tools │ │ ├── scripts │ │ └── resume-vm-default.d │ │ │ └── ether-resume.py │ │ └── tools.conf ├── helpers │ ├── add-system-version.py │ ├── commit-confirm-notify.py │ ├── config_dependency.py │ ├── geoip-update.py │ ├── latest-image-url.py │ ├── priority.py │ ├── read-saved-value.py │ ├── run-config-activation.py │ ├── run-config-migration.py │ ├── set_vyconf_backend.py │ ├── show_commit_data.py │ ├── simple-download.py │ ├── strip-private.py │ ├── teardown-config-session.py │ ├── test_commit.py │ ├── vyos-boot-config-loader.py │ ├── vyos-certbot-renew-pki.sh │ ├── vyos-check-wwan.py │ ├── vyos-config-encrypt.py │ ├── vyos-failover.py │ ├── vyos-interface-rescan.py │ ├── vyos-load-balancer.py │ ├── vyos-load-config.py │ ├── vyos-merge-config.py │ ├── vyos-save-config.py │ ├── vyos-vrrp-conntracksync.sh │ ├── vyos_config_sync.py │ └── vyos_net_name ├── init │ ├── vyos-config │ └── vyos-router ├── migration-scripts │ ├── bgp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ └── 5-to-6 │ ├── cluster │ │ └── 1-to-2 │ ├── config-management │ │ └── 0-to-1 │ ├── conntrack-sync │ │ └── 1-to-2 │ ├── conntrack │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ └── 4-to-5 │ ├── container │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── dhcp-relay │ │ └── 1-to-2 │ ├── dhcp-server │ │ ├── 10-to-11 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── dhcpv6-server │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ └── 5-to-6 │ ├── dns-dynamic │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ └── 3-to-4 │ ├── dns-forwarding │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ └── 3-to-4 │ ├── firewall │ │ ├── 10-to-11 │ │ ├── 11-to-12 │ │ ├── 12-to-13 │ │ ├── 13-to-14 │ │ ├── 14-to-15 │ │ ├── 15-to-16 │ │ ├── 16-to-17 │ │ ├── 17-to-18 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── flow-accounting │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── https │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ └── 6-to-7 │ ├── ids │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── interfaces │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 10-to-11 │ │ ├── 11-to-12 │ │ ├── 12-to-13 │ │ ├── 13-to-14 │ │ ├── 14-to-15 │ │ ├── 15-to-16 │ │ ├── 16-to-17 │ │ ├── 17-to-18 │ │ ├── 18-to-19 │ │ ├── 19-to-20 │ │ ├── 2-to-3 │ │ ├── 20-to-21 │ │ ├── 21-to-22 │ │ ├── 22-to-23 │ │ ├── 23-to-24 │ │ ├── 24-to-25 │ │ ├── 25-to-26 │ │ ├── 26-to-27 │ │ ├── 27-to-28 │ │ ├── 28-to-29 │ │ ├── 29-to-30 │ │ ├── 3-to-4 │ │ ├── 30-to-31 │ │ ├── 31-to-32 │ │ ├── 32-to-33 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── ipoe-server │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ └── 3-to-4 │ ├── ipsec │ │ ├── 10-to-11 │ │ ├── 11-to-12 │ │ ├── 12-to-13 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── isis │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── l2tp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ └── 8-to-9 │ ├── lldp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── monitoring │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── nat │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ └── 7-to-8 │ ├── nat66 │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── nhrp │ │ └── 0-to-1 │ ├── ntp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── openconnect │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── openvpn │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ └── 3-to-4 │ ├── ospf │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── pim │ │ └── 0-to-1 │ ├── policy │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ └── 8-to-9 │ ├── pppoe-server │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 10-to-11 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── pptp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ └── 4-to-5 │ ├── qos │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── quagga │ │ ├── 10-to-11 │ │ ├── 11-to-12 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ ├── 5-to-6 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ ├── 8-to-9 │ │ └── 9-to-10 │ ├── reverse-proxy │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── rip │ │ └── 0-to-1 │ ├── rpki │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── salt │ │ └── 0-to-1 │ ├── snmp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── ssh │ │ ├── 0-to-1 │ │ └── 1-to-2 │ ├── sstp │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ ├── 3-to-4 │ │ ├── 4-to-5 │ │ └── 5-to-6 │ ├── system │ │ ├── 10-to-11 │ │ ├── 11-to-12 │ │ ├── 12-to-13 │ │ ├── 13-to-14 │ │ ├── 14-to-15 │ │ ├── 15-to-16 │ │ ├── 16-to-17 │ │ ├── 17-to-18 │ │ ├── 18-to-19 │ │ ├── 19-to-20 │ │ ├── 20-to-21 │ │ ├── 21-to-22 │ │ ├── 22-to-23 │ │ ├── 23-to-24 │ │ ├── 24-to-25 │ │ ├── 25-to-26 │ │ ├── 26-to-27 │ │ ├── 27-to-28 │ │ ├── 28-to-29 │ │ ├── 6-to-7 │ │ ├── 7-to-8 │ │ └── 8-to-9 │ ├── vrf │ │ ├── 0-to-1 │ │ ├── 1-to-2 │ │ └── 2-to-3 │ ├── vrrp │ │ ├── 1-to-2 │ │ ├── 2-to-3 │ │ └── 3-to-4 │ ├── wanloadbalance │ │ └── 3-to-4 │ └── webproxy │ │ └── 1-to-2 ├── op_mode │ ├── accelppp.py │ ├── bgp.py │ ├── bonding.py │ ├── bridge.py │ ├── cgnat.py │ ├── clear_conntrack.py │ ├── config_mgmt.py │ ├── connect_disconnect.py │ ├── conntrack.py │ ├── conntrack_sync.py │ ├── container.py │ ├── cpu.py │ ├── dhcp.py │ ├── dns.py │ ├── evpn.py │ ├── execute_bandwidth_test.sh │ ├── execute_port-scan.py │ ├── file.py │ ├── firewall.py │ ├── flow_accounting_op.py │ ├── force_mtu_host.sh │ ├── force_root-partition-auto-resize.sh │ ├── format_disk.py │ ├── generate_interfaces_debug_archive.py │ ├── generate_ipsec_debug_archive.py │ ├── generate_openconnect_otp_key.py │ ├── generate_ovpn_client_file.py │ ├── generate_psk.py │ ├── generate_public_key_command.py │ ├── generate_service_rule-resequence.py │ ├── generate_ssh_server_key.py │ ├── generate_system_login_user.py │ ├── generate_tech-support_archive.py │ ├── igmp-proxy.py │ ├── ikev2_profile_generator.py │ ├── image_info.py │ ├── image_installer.py │ ├── image_manager.py │ ├── interfaces.py │ ├── interfaces_wireguard.py │ ├── interfaces_wireless.py │ ├── ipoe-control.py │ ├── ipsec.py │ ├── kernel_modules.py │ ├── lldp.py │ ├── load-balancing_haproxy.py │ ├── load-balancing_wan.py │ ├── log.py │ ├── maya_date.py │ ├── memory.py │ ├── mtr.py │ ├── mtr_execute.py │ ├── multicast.py │ ├── nat.py │ ├── neighbor.py │ ├── ntp.py │ ├── openconnect-control.py │ ├── openconnect.py │ ├── openvpn.py │ ├── otp.py │ ├── ping.py │ ├── pki.py │ ├── policy_route.py │ ├── powerctrl.py │ ├── ppp-server-ctrl.py │ ├── qos.py │ ├── raid.py │ ├── reset_openvpn.py │ ├── reset_vpn.py │ ├── reset_wireguard.py │ ├── restart.py │ ├── restart_dhcp_relay.py │ ├── restart_frr.py │ ├── route.py │ ├── secure_boot.py │ ├── serial.py │ ├── sflow.py │ ├── show-bond.py │ ├── show_acceleration.py │ ├── show_configuration_json.py │ ├── show_current_user.sh │ ├── show_disk_format.sh │ ├── show_ntp.sh │ ├── show_openconnect_otp.py │ ├── show_openvpn.py │ ├── show_openvpn_mfa.py │ ├── show_raid.sh │ ├── show_sensors.py │ ├── show_techsupport_report.py │ ├── show_usb_serial.py │ ├── show_users.py │ ├── show_virtual_server.py │ ├── show_wwan.py │ ├── snmp.py │ ├── snmp_ifmib.py │ ├── snmp_v3.py │ ├── snmp_v3_showcerts.sh │ ├── ssh.py │ ├── storage.py │ ├── stp.py │ ├── system.py │ ├── tcpdump.py │ ├── tech_support.py │ ├── toggle_help_binding.sh │ ├── traceroute.py │ ├── uptime.py │ ├── version.py │ ├── vpn_ike_sa.py │ ├── vpn_ipsec.py │ ├── vrf.py │ ├── vrrp.py │ ├── vtysh_wrapper.sh │ ├── vyos-op-cmd-wrapper.sh │ ├── webproxy_update_blacklist.sh │ ├── wireguard_client.py │ └── zone.py ├── opt │ └── vyatta │ │ ├── bin │ │ ├── restricted-shell │ │ └── vyatta-op-cmd-wrapper │ │ ├── etc │ │ ├── LICENSE │ │ └── shell │ │ │ └── level │ │ │ └── users │ │ │ ├── allowed-op │ │ │ └── allowed-op.in │ │ ├── sbin │ │ ├── if-mib-alias │ │ └── vyos-persistpath │ │ └── share │ │ └── vyatta-op │ │ └── functions │ │ └── interpreter │ │ ├── vyatta-common │ │ ├── vyatta-op-run │ │ └── vyatta-unpriv ├── pam-configs │ ├── mfa-google-authenticator │ ├── radius-mandatory │ ├── radius-optional │ ├── tacplus-mandatory │ └── tacplus-optional ├── services │ ├── api │ │ ├── __init__.py │ │ ├── graphql │ │ │ ├── README.graphql │ │ │ ├── __init__.py │ │ │ ├── bindings.py │ │ │ ├── generate │ │ │ │ ├── composite_function.py │ │ │ │ ├── config_session_function.py │ │ │ │ ├── generate_schema.py │ │ │ │ ├── schema_from_composite.py │ │ │ │ ├── schema_from_config_session.py │ │ │ │ └── schema_from_op_mode.py │ │ │ ├── graphql │ │ │ │ ├── __init__.py │ │ │ │ ├── auth_token_mutation.py │ │ │ │ ├── client_op │ │ │ │ │ └── auth_token.graphql │ │ │ │ ├── directives.py │ │ │ │ ├── errors.py │ │ │ │ ├── mutations.py │ │ │ │ ├── queries.py │ │ │ │ └── schema │ │ │ │ │ ├── auth_token.graphql │ │ │ │ │ └── schema.graphql │ │ │ ├── libs │ │ │ │ ├── __init__.py │ │ │ │ ├── key_auth.py │ │ │ │ ├── op_mode.py │ │ │ │ └── token_auth.py │ │ │ ├── routers.py │ │ │ └── session │ │ │ │ ├── __init__.py │ │ │ │ ├── composite │ │ │ │ └── system_status.py │ │ │ │ ├── errors │ │ │ │ └── op_mode_errors.py │ │ │ │ ├── override │ │ │ │ └── remove_firewall_address_group_members.py │ │ │ │ ├── session.py │ │ │ │ └── templates │ │ │ │ ├── create_dhcp_server.tmpl │ │ │ │ ├── create_firewall_address_group.tmpl │ │ │ │ ├── create_firewall_address_ipv_6_group.tmpl │ │ │ │ ├── create_interface_ethernet.tmpl │ │ │ │ ├── remove_firewall_address_group_members.tmpl │ │ │ │ ├── remove_firewall_address_ipv_6_group_members.tmpl │ │ │ │ ├── update_firewall_address_group_members.tmpl │ │ │ │ └── update_firewall_address_ipv_6_group_members.tmpl │ │ ├── rest │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ └── routers.py │ │ └── session.py │ ├── vyos-commitd │ ├── vyos-configd │ ├── vyos-conntrack-logger │ ├── vyos-domain-resolver │ ├── vyos-hostsd │ ├── vyos-http-api-server │ └── vyos-network-event-logger ├── shim │ ├── Makefile │ ├── mkjson │ │ ├── LICENSE │ │ ├── makefile │ │ ├── mkjson.c │ │ └── mkjson.h │ └── vyshim.c ├── system │ ├── grub_update.py │ ├── keepalived-fifo.py │ ├── normalize-ip │ ├── on-dhcp-event.sh │ ├── on-dhcpv6-event.sh │ ├── post-upgrade │ ├── standalone_root_pw_reset │ ├── sync-dhcp-lease-to-hosts.py │ ├── uacctd_stop.py │ ├── vyos-config-cloud-init.py │ ├── vyos-event-handler.py │ └── vyos-system-update-check.py ├── systemd │ ├── LCDd.service │ ├── accel-ppp@.service │ ├── aws-gwlbtun.service │ ├── dhclient@.service │ ├── dhcp6c@.service │ ├── dropbear@.service │ ├── dropbearkey.service │ ├── isc-dhcp-relay.service │ ├── isc-dhcp-relay6.service │ ├── lcdproc.service │ ├── ndppd.service │ ├── netplug.service │ ├── podman.service │ ├── podman.socket │ ├── ppp@.service │ ├── root-partition-auto-resize.service │ ├── stunnel.service │ ├── telegraf.service │ ├── tftpd@.service │ ├── vyconfd.service │ ├── vyos-beep.service │ ├── vyos-commitd.service │ ├── vyos-config-cloud-init.service │ ├── vyos-configd.service │ ├── vyos-conntrack-logger.service │ ├── vyos-domain-resolver.service │ ├── vyos-event-handler.service │ ├── vyos-grub-update.service │ ├── vyos-hostsd.service │ ├── vyos-network-event-logger.service │ ├── vyos-router.service │ ├── vyos-system-update.service │ ├── vyos-wan-load-balance.service │ ├── vyos.target │ └── wpa_supplicant-macsec@.service ├── tests │ ├── helper.py │ ├── test_config_diff.py │ ├── test_config_parser.py │ ├── test_configd_inspect.py │ ├── test_configverify.py │ ├── test_dependency_graph.py │ ├── test_dict_search.py │ ├── test_find_device_file.py │ ├── test_initial_setup.py │ ├── test_op_mode.py │ ├── test_task_scheduler.py │ ├── test_template.py │ ├── test_utils.py │ └── test_utils_network.py ├── utils │ ├── initial-setup │ ├── vyos-commands-to-config │ ├── vyos-config-file-query │ ├── vyos-config-to-commands │ ├── vyos-config-to-json │ ├── vyos-hostsd-client │ └── vyos-show-config └── validators │ ├── as-number-list │ ├── base64 │ ├── bgp-extended-community │ ├── bgp-large-community │ ├── bgp-large-community-list │ ├── bgp-rd-rt │ ├── bgp-regular-community │ ├── cpu │ ├── ddclient-protocol │ ├── ether-type │ ├── ethernet-interface │ ├── fqdn │ ├── interface-address │ ├── ip-address │ ├── ip-cidr │ ├── ip-host │ ├── ip-prefix │ ├── ip-protocol │ ├── ipv4 │ ├── ipv4-address │ ├── ipv4-address-exclude │ ├── ipv4-host │ ├── ipv4-multicast │ ├── ipv4-prefix │ ├── ipv4-prefix-exclude │ ├── ipv4-range │ ├── ipv4-range-exclude │ ├── ipv4-range-mask │ ├── ipv6 │ ├── ipv6-address │ ├── ipv6-address-exclude │ ├── ipv6-eui64-prefix │ ├── ipv6-exclude │ ├── ipv6-host │ ├── ipv6-link-local │ ├── ipv6-multicast │ ├── ipv6-prefix │ ├── ipv6-prefix-exclude │ ├── ipv6-range │ ├── ipv6-range-exclude │ ├── ipv6-srv6-segments │ ├── mac-address │ ├── mac-address-exclude │ ├── numeric-exclude │ ├── port-multi │ ├── port-range │ ├── port-range-exclude │ ├── psk-secret │ ├── script │ ├── sysctl │ ├── timezone │ ├── vrf-name │ └── wireless-phy ├── test-requirements.txt └── tests └── data ├── config.boot.default ├── config.left ├── config.right ├── config.valid └── interface-definitions ├── test-op.xml └── test.xml /.github/workflows/add-pr-labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Add pull request labels 3 | 4 | on: 5 | pull_request_target: 6 | branches: 7 | - current 8 | 9 | permissions: 10 | pull-requests: write 11 | contents: read 12 | 13 | jobs: 14 | add-pr-label: 15 | uses: vyos/.github/.github/workflows/add-pr-labels.yml@current 16 | secrets: inherit 17 | -------------------------------------------------------------------------------- /.github/workflows/add-rebase-label.yml: -------------------------------------------------------------------------------- 1 | name: Add rebase label 2 | 3 | on: 4 | pull_request_target: 5 | types: [synchronize, opened, reopened, labeled, unlabeled] 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | jobs: 12 | add-rebase-label: 13 | uses: vyos/.github/.github/workflows/add-rebase-label.yml@current 14 | secrets: inherit 15 | -------------------------------------------------------------------------------- /.github/workflows/auto-author-assign.yml: -------------------------------------------------------------------------------- 1 | name: "PR Triage" 2 | on: 3 | pull_request_target: 4 | types: [opened, reopened, ready_for_review, locked] 5 | 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | jobs: 12 | assign-author: 13 | uses: vyos/.github/.github/workflows/assign-author.yml@current 14 | secrets: inherit 15 | -------------------------------------------------------------------------------- /.github/workflows/check-open-prs-conflict.yml: -------------------------------------------------------------------------------- 1 | name: "Open PRs Conflicts checker" 2 | on: 3 | push: 4 | branches: 5 | - current 6 | - sagitta 7 | - circinus 8 | workflow_dispatch: 9 | 10 | permissions: 11 | contents: read 12 | pull-requests: write 13 | 14 | jobs: 15 | check-pr-conflict-call: 16 | uses: vyos/.github/.github/workflows/check-open-prs-conflict.yml@current 17 | secrets: inherit 18 | -------------------------------------------------------------------------------- /.github/workflows/check-pr-conflicts.yml: -------------------------------------------------------------------------------- 1 | 2 | name: "PR Conflicts checker" 3 | on: 4 | pull_request_target: 5 | types: [synchronize] 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | jobs: 12 | check-pr-conflict-call: 13 | uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@current 14 | secrets: inherit 15 | -------------------------------------------------------------------------------- /.github/workflows/check-pr-message.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Check pull request message format 3 | 4 | on: 5 | pull_request_target: 6 | branches: 7 | - current 8 | types: [opened, synchronize, edited] 9 | 10 | permissions: 11 | pull-requests: write 12 | contents: read 13 | 14 | jobs: 15 | check-pr-title: 16 | uses: vyos/.github/.github/workflows/check-pr-message.yml@current 17 | secrets: inherit 18 | -------------------------------------------------------------------------------- /.github/workflows/check-stale.yml: -------------------------------------------------------------------------------- 1 | name: "Issue and PR stale management" 2 | on: 3 | schedule: 4 | - cron: "0 0 * * *" 5 | 6 | permissions: 7 | pull-requests: write 8 | contents: read 9 | 10 | jobs: 11 | stale: 12 | uses: vyos/.github/.github/workflows/check-stale.yml@current 13 | secrets: inherit 14 | -------------------------------------------------------------------------------- /.github/workflows/check-unused-imports.yml: -------------------------------------------------------------------------------- 1 | name: Check for unused imports using Pylint 2 | on: 3 | pull_request_target: 4 | branches: 5 | - current 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | jobs: 12 | check-unused-imports: 13 | uses: vyos/.github/.github/workflows/check-unused-imports.yml@current 14 | secrets: inherit 15 | -------------------------------------------------------------------------------- /.github/workflows/cleanup-mirror-pr-branch.yml: -------------------------------------------------------------------------------- 1 | name: Cleanup pr mirror branch 2 | 3 | on: 4 | pull_request: 5 | types: [closed] 6 | branches: 7 | - current 8 | 9 | permissions: 10 | contents: write 11 | 12 | jobs: 13 | call-delete-branch: 14 | if: github.repository_owner != 'vyos' 15 | uses: vyos/.github/.github/workflows/cleanup-mirror-pr-branch.yml@current 16 | secrets: inherit 17 | -------------------------------------------------------------------------------- /.github/workflows/label-backport.yml: -------------------------------------------------------------------------------- 1 | name: Mergifyio backport 2 | 3 | on: [issue_comment] 4 | 5 | permissions: 6 | pull-requests: write 7 | contents: read 8 | 9 | jobs: 10 | mergifyio-backport: 11 | uses: vyos/.github/.github/workflows/label-backport.yml@current 12 | secrets: inherit 13 | -------------------------------------------------------------------------------- /.github/workflows/lint-with-ruff.yml: -------------------------------------------------------------------------------- 1 | name: Lint py code with ruff 2 | on: 3 | pull_request_target: 4 | branches: 5 | - current 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | jobs: 12 | ruff-lint: 13 | uses: vyos/.github/.github/workflows/lint-with-ruff.yml@current 14 | secrets: inherit 15 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libvyosconfig"] 2 | path = libvyosconfig 3 | url = ../../vyos/libvyosconfig 4 | branch = current 5 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Users from reviewers github team 2 | # * @vyos/reviewers 3 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_extended_scripts.j2: -------------------------------------------------------------------------------- 1 | {% if extended_scripts is vyos_defined %} 2 | [pppd-compat] 3 | verbose=1 4 | radattr-prefix=/run/accel-pppd/radattr 5 | {% set script_name = {'on_up': 'ip-up', 'on_down': 'ip-down', 'on_change':'ip-change', 'on_pre_up':'ip-pre-up'} %} 6 | {% for script in extended_scripts %} 7 | {{ script_name[script] }}={{ extended_scripts[script] }} 8 | {% endfor %} 9 | {% endif %} -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_limits.j2: -------------------------------------------------------------------------------- 1 | {% if limits is vyos_defined %} 2 | [connlimit] 3 | {% if limits.connection_limit is vyos_defined %} 4 | limit={{ limits.connection_limit }} 5 | {% endif %} 6 | {% if limits.burst is vyos_defined %} 7 | burst={{ limits.burst }} 8 | {% endif %} 9 | {% if limits.timeout is vyos_defined %} 10 | timeout={{ limits.timeout }} 11 | {% endif %} 12 | {% endif %} -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_modules_auth_mode.j2: -------------------------------------------------------------------------------- 1 | {% if authentication.mode is vyos_defined('local') %} 2 | chap-secrets 3 | {% elif authentication.mode is vyos_defined('radius') %} 4 | radius 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_modules_auth_protocols.j2: -------------------------------------------------------------------------------- 1 | {% for protocol in authentication.protocols %} 2 | {# this should be fixed in the CLI by a migrator #} 3 | {% if protocol == 'chap' %} 4 | auth_chap_md5 5 | {% elif protocol == 'mschap' %} 6 | auth_mschap_v1 7 | {% else %} 8 | auth_{{ protocol.replace('-', '_') }} 9 | {% endif %} 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_modules_ipv6.j2: -------------------------------------------------------------------------------- 1 | {% if ppp_options.ipv6 is vyos_defined and ppp_options.ipv6 is not vyos_defined('deny') %} 2 | ipv6pool 3 | ipv6_nd 4 | ipv6_dhcp 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_name_server.j2: -------------------------------------------------------------------------------- 1 | {% if name_server_ipv4 is vyos_defined %} 2 | [dns] 3 | {% for ns in name_server_ipv4 %} 4 | dns{{ loop.index }}={{ ns }} 5 | {% endfor %} 6 | {% endif %} 7 | 8 | {% if name_server_ipv6 is vyos_defined %} 9 | [ipv6-dns] 10 | {% for ns in name_server_ipv6 %} 11 | {{ ns }} 12 | {% endfor %} 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_snmp.j2: -------------------------------------------------------------------------------- 1 | {% if snmp.master_agent is vyos_defined %} 2 | [snmp] 3 | master=1 4 | {% endif %} 5 | -------------------------------------------------------------------------------- /data/templates/accel-ppp/config_wins_server.j2: -------------------------------------------------------------------------------- 1 | {% if wins_server is vyos_defined %} 2 | [wins] 3 | {% for server in wins_server %} 4 | wins{{ loop.index }}={{ server }} 5 | {% endfor %} 6 | {% endif %} 7 | -------------------------------------------------------------------------------- /data/templates/bcast-relay/udp-broadcast-relay.j2: -------------------------------------------------------------------------------- 1 | ### Autogenerated by service_broadcast-relay.py ### 2 | 3 | # UDP broadcast relay configuration for instance {{ id }} 4 | {{ '# ' ~ description if description is vyos_defined }} 5 | DAEMON_ARGS="{{ '-s ' ~ address if address is vyos_defined }} {{ instance }} {{ port }} {{ interface | join(' ') }}" 6 | -------------------------------------------------------------------------------- /data/templates/conntrack/vyos_nf_conntrack.conf.j2: -------------------------------------------------------------------------------- 1 | # Autogenerated by system_conntrack.py 2 | options nf_conntrack hashsize={{ hash_size }} 3 | -------------------------------------------------------------------------------- /data/templates/conserver/dropbear@.service.j2: -------------------------------------------------------------------------------- 1 | [Service] 2 | ExecStart= 3 | ExecStart=/usr/sbin/dropbear -w -j -k -r /etc/dropbear/dropbear_rsa_host_key -r /etc/dropbear/dropbear_ecdsa_host_key -b /etc/issue.net -c "/usr/bin/console {{ device }}" -P /run/conserver/dropbear.%I.pid -p %I 4 | PIDFile=/run/conserver/dropbear.%I.pid 5 | -------------------------------------------------------------------------------- /data/templates/container/storage.conf.j2: -------------------------------------------------------------------------------- 1 | ### Autogenerated by container.py ### 2 | [storage] 3 | driver = "overlay" 4 | graphroot = "/usr/lib/live/mount/persistence/container/storage" 5 | runroot = "/var/run/containers/storage" 6 | [storage.options] 7 | mount_program = "/usr/bin/fuse-overlayfs" 8 | -------------------------------------------------------------------------------- /data/templates/dns-dynamic/override.conf.j2: -------------------------------------------------------------------------------- 1 | {% set vrf_command = 'ip vrf exec ' ~ vrf ~ ' ' if vrf is vyos_defined else '' %} 2 | {% set cache_file = config_file.replace('.conf', '.cache') %} 3 | [Unit] 4 | ConditionPathExists={{ config_file }} 5 | Wants= 6 | After=vyos-router.service 7 | 8 | [Service] 9 | EnvironmentFile= 10 | ExecStart= 11 | ExecStart={{ vrf_command }}/usr/bin/ddclient --file {{ config_file }} --cache {{ cache_file }} --foreground --daemon {{ interval }} 12 | Restart=always 13 | -------------------------------------------------------------------------------- /data/templates/dns-forwarding/override.conf.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | ConditionPathExists={{ config_file }} 3 | After=vyos-router.service 4 | 5 | [Service] 6 | RuntimeDirectoryPreserve=yes 7 | ExecStart= 8 | ExecStart=/usr/sbin/pdns_recursor --daemon=no --write-pid=no --disable-syslog --log-timestamp=no --config-dir={{ config_dir }} 9 | -------------------------------------------------------------------------------- /data/templates/dns-forwarding/recursor.zone.conf.j2: -------------------------------------------------------------------------------- 1 | ; 2 | ; Autogenerated by service_dns_forwarding.py 3 | ; 4 | {% for r in records %} 5 | {{ r.name }} {{ r.ttl }} {{ r.type }} {{ r.value }} 6 | {% endfor %} 7 | -------------------------------------------------------------------------------- /data/templates/firewall/nftables-offload.j2: -------------------------------------------------------------------------------- 1 | {% macro flowtable(name, config) %} 2 | flowtable VYOS_FLOWTABLE_{{ name }} { 3 | hook ingress priority 0; devices = { {{ config.interface | join(', ') }} }; 4 | {% if config.offload is vyos_defined('hardware') %} 5 | flags offload; 6 | {% endif %} 7 | counter 8 | } 9 | {% endmacro %} 10 | -------------------------------------------------------------------------------- /data/templates/grub/grub_main.j2: -------------------------------------------------------------------------------- 1 | load_env 2 | insmod regexp 3 | 4 | for cfgfile in ${prefix}/grub.cfg.d/*-autoload.cfg 5 | do 6 | source ${cfgfile} 7 | done 8 | -------------------------------------------------------------------------------- /data/templates/grub/grub_menu.j2: -------------------------------------------------------------------------------- 1 | for cfgfile in ${config_directory}/vyos-versions/*.cfg 2 | do 3 | source "${cfgfile}" 4 | done 5 | source ${config_directory}/50-vyos-options.cfg 6 | -------------------------------------------------------------------------------- /data/templates/grub/grub_modules.j2: -------------------------------------------------------------------------------- 1 | {% for mod_name in mods_list %} 2 | insmod {{ mod_name | e }} 3 | {% endfor %} 4 | -------------------------------------------------------------------------------- /data/templates/grub/grub_vars.j2: -------------------------------------------------------------------------------- 1 | {% for var_name, var_value in vars.items() %} 2 | set {{ var_name | e }}="{{ var_value | e }}" 3 | export {{ var_name | e }} 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /data/templates/iproute2/static.conf.j2: -------------------------------------------------------------------------------- 1 | # Generated by VyOS (protocols_static.py), do not edit by hand 2 | {% if table is vyos_defined %} 3 | {% for t, t_options in table.items() %} 4 | {% if t_options.description is vyos_defined %} 5 | {{ "%-6s" | format(t) }} {{ "%-40s" | format(t_options.description | replace(" ", "_")) }} 6 | {% endif %} 7 | {% endfor %} 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /data/templates/iproute2/vrf.conf.j2: -------------------------------------------------------------------------------- 1 | ### Autogenerated by vrf.py ### 2 | # 3 | # Routing table ID to name mapping reference 4 | # id vrf name comment 5 | {% if name is vyos_defined %} 6 | {% for vrf, vrf_config in name.items() %} 7 | {{ "%-10s" | format(vrf_config.table) }} {{ "%-16s" | format(vrf) }} {{ '# ' ~ vrf_config.description if vrf_config.description is vyos_defined }} 8 | {% endfor %} 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /data/templates/ipsec/interfaces_use.conf.j2: -------------------------------------------------------------------------------- 1 | {% if interface is vyos_defined %} 2 | charon { 3 | interfaces_use = {{ ', '.join(interface) }} 4 | } 5 | {% endif %} -------------------------------------------------------------------------------- /data/templates/lldp/lldpd.j2: -------------------------------------------------------------------------------- 1 | ### Autogenerated by service_lldp.py ### 2 | DAEMON_ARGS="-M 4 {{ '-x' if snmp is vyos_defined }} {{ '-c' if legacy_protocols.cdp is vyos_defined }} {{ '-e' if legacy_protocols.edp is vyos_defined }} {{ '-f' if legacy_protocols.fdp is vyos_defined }} {{ '-s' if legacy_protocols.sonmp is vyos_defined }}" 3 | -------------------------------------------------------------------------------- /data/templates/login/authorized_keys.j2: -------------------------------------------------------------------------------- 1 | ### Automatically generated by system_login.py ### 2 | {% if authentication.public_keys is vyos_defined %} 3 | {% for key, key_options in authentication.public_keys.items() %} 4 | {# The whitespace after options is wisely chosen #} 5 | {{ key_options.options ~ ' ' if key_options.options is vyos_defined }}{{ key_options.type }} {{ key_options.key }} {{ key }} 6 | {% endfor %} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /data/templates/login/authorized_principals.j2: -------------------------------------------------------------------------------- 1 | ### Automatically generated by system_login.py ### 2 | {% if authentication.principal is vyos_defined %} 3 | {{ '\n'.join(authentication.principal) }} 4 | {% endif %} 5 | -------------------------------------------------------------------------------- /data/templates/login/autologout.j2: -------------------------------------------------------------------------------- 1 | {% if timeout is vyos_defined %} 2 | TMOUT={{ timeout }} 3 | readonly TMOUT 4 | export TMOUT 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /data/templates/login/limits.j2: -------------------------------------------------------------------------------- 1 | # Generated by system_login.py 2 | 3 | {% if max_login_session is vyos_defined %} 4 | * - maxsyslogins {{ max_login_session }} 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /data/templates/login/motd_vyos_nonproduction.j2: -------------------------------------------------------------------------------- 1 | 2 | --- 3 | WARNING: This VyOS system is not a stable long-term support version and 4 | is not intended for production use. 5 | 6 | -------------------------------------------------------------------------------- /data/templates/login/pam_otp_ga.conf.j2: -------------------------------------------------------------------------------- 1 | {% if authentication.otp.key is vyos_defined %} 2 | {{ authentication.otp.key | upper }} 3 | " RATE_LIMIT {{ authentication.otp.rate_limit }} {{ authentication.otp.rate_time }} 4 | " WINDOW_SIZE {{ authentication.otp.window_size }} 5 | " DISALLOW_REUSE 6 | " TOTP_AUTH 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /data/templates/logs/logrotate/vyos-atop.j2: -------------------------------------------------------------------------------- 1 | /var/log/atop/atop.log { 2 | daily 3 | dateext 4 | dateformat _%Y-%m-%d_%H-%M-%S 5 | maxsize {{ max_size }}M 6 | missingok 7 | nocompress 8 | nocreate 9 | nomail 10 | rotate {{ rotate }} 11 | prerotate 12 | # stop the service 13 | systemctl stop atop.service 14 | endscript 15 | postrotate 16 | # start atop service again 17 | systemctl start atop.service 18 | endscript 19 | } 20 | 21 | -------------------------------------------------------------------------------- /data/templates/logs/logrotate/vyos-rsyslog.j2: -------------------------------------------------------------------------------- 1 | /var/log/messages { 2 | create 3 | missingok 4 | nomail 5 | notifempty 6 | rotate {{ rotate }} 7 | size {{ max_size }}M 8 | postrotate 9 | # inform rsyslog service about rotation 10 | /usr/lib/rsyslog/rsyslog-rotate 11 | endscript 12 | } 13 | 14 | -------------------------------------------------------------------------------- /data/templates/mdns-repeater/override.conf.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | After=vyos-router.service 3 | ConditionPathExists={{ config_file }} 4 | 5 | [Service] 6 | ExecStart= 7 | ExecStart=/usr/sbin/avahi-daemon --syslog --file {{ config_file }} 8 | -------------------------------------------------------------------------------- /data/templates/ocserv/ocserv_otp_usr.j2: -------------------------------------------------------------------------------- 1 | #