diff --git a/interface-definitions/include/version/interfaces-version.xml.i b/interface-definitions/include/version/interfaces-version.xml.i index 3d11ce888..25f158508 100644 --- a/interface-definitions/include/version/interfaces-version.xml.i +++ b/interface-definitions/include/version/interfaces-version.xml.i @@ -1,3 +1,7 @@ <!-- include start from include/version/interfaces-version.xml.i --> +<<<<<<< HEAD <syntaxVersion component='interfaces' version='30'></syntaxVersion> +======= +<syntaxVersion component='interfaces' version='32'></syntaxVersion> +>>>>>>> 6db8d3ded (vxlan: T5671: change port to IANA assigned default port) <!-- include end --> diff --git a/interface-definitions/interfaces-vxlan.xml.in b/interface-definitions/interfaces-vxlan.xml.in index b246d9a09..3fae17178 100644 --- a/interface-definitions/interfaces-vxlan.xml.in +++ b/interface-definitions/interfaces-vxlan.xml.in @@ -1,124 +1,124 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="interfaces"> <children> <tagNode name="vxlan" owner="${vyos_conf_scripts_dir}/interfaces-vxlan.py"> <properties> <help>Virtual Extensible LAN (VXLAN) Interface</help> <priority>460</priority> <constraint> <regex>vxlan[0-9]+</regex> </constraint> <constraintErrorMessage>VXLAN interface must be named vxlanN</constraintErrorMessage> <valueHelp> <format>vxlanN</format> <description>VXLAN interface name</description> </valueHelp> </properties> <children> #include <include/interface/address-ipv4-ipv6.xml.i> #include <include/generic-description.xml.i> #include <include/interface/disable.xml.i> <leafNode name="external"> <properties> <help>Use external control plane</help> <valueless/> </properties> </leafNode> <leafNode name="gpe"> <properties> <help>Enable Generic Protocol extension (VXLAN-GPE)</help> <valueless/> </properties> </leafNode> <leafNode name="group"> <properties> <help>Multicast group address for VXLAN interface</help> <valueHelp> <format>ipv4</format> <description>Multicast IPv4 group address</description> </valueHelp> <valueHelp> <format>ipv6</format> <description>Multicast IPv6 group address</description> </valueHelp> <constraint> <validator name="ipv4-multicast"/> <validator name="ipv6-multicast"/> </constraint> <constraintErrorMessage>Multicast IPv4/IPv6 address required</constraintErrorMessage> </properties> </leafNode> #include <include/interface/ipv4-options.xml.i> #include <include/interface/ipv6-options.xml.i> #include <include/interface/mac.xml.i> #include <include/interface/mtu-1200-16000.xml.i> #include <include/interface/mirror.xml.i> <leafNode name="mtu"> <defaultValue>1450</defaultValue> </leafNode> <node name="parameters"> <properties> <help>VXLAN tunnel parameters</help> </properties> <children> <node name="ip"> <properties> <help>IPv4 specific tunnel parameters</help> </properties> <children> #include <include/interface/parameters-df.xml.i> #include <include/interface/parameters-tos.xml.i> #include <include/interface/parameters-ttl.xml.i> <leafNode name="ttl"> <defaultValue>16</defaultValue> </leafNode> </children> </node> <node name="ipv6"> <properties> <help>IPv6 specific tunnel parameters</help> </properties> <children> #include <include/interface/parameters-flowlabel.xml.i> </children> </node> <leafNode name="nolearning"> <properties> <help>Do not add unknown addresses into forwarding database</help> <valueless/> </properties> </leafNode> </children> </node> #include <include/port-number.xml.i> <leafNode name="port"> - <defaultValue>8472</defaultValue> + <defaultValue>4789</defaultValue> </leafNode> #include <include/source-address-ipv4-ipv6.xml.i> #include <include/source-interface.xml.i> #include <include/interface/tunnel-remote-multi.xml.i> #include <include/interface/redirect.xml.i> #include <include/interface/vrf.xml.i> #include <include/vni.xml.i> <tagNode name="vlan-to-vni"> <properties> <help>Configuring VLAN-to-VNI mappings for EVPN-VXLAN</help> <valueHelp> <format>u32:0-4094</format> <description>Virtual Local Area Network (VLAN) ID</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-4094"/> </constraint> <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage> </properties> <children> #include <include/vni.xml.i> </children> </tagNode> </children> </tagNode> </children> </node> </interfaceDefinition> diff --git a/smoketest/configs/bgp-evpn-l2vpn-leaf b/smoketest/configs/bgp-evpn-l2vpn-leaf index 020490186..ab46fbb02 100644 --- a/smoketest/configs/bgp-evpn-l2vpn-leaf +++ b/smoketest/configs/bgp-evpn-l2vpn-leaf @@ -1,149 +1,148 @@ interfaces { bridge br100 { member { interface eth3 { } interface vxlan100 { } } } dummy dum0 { address 172.29.0.1/32 } ethernet eth0 { description "Out-of-Band Managament Port" address 2001:db8::41/64 address 192.0.2.41/27 vrf MGMT } ethernet eth1 { address 172.29.1.1/31 mtu 1600 } ethernet eth2 { address 172.29.2.1/31 mtu 1600 } ethernet eth3 { } loopback lo { } vxlan vxlan100 { mtu 1500 parameters { nolearning } - port 4789 source-address 172.29.0.1 vni 100 } } protocols { bgp 65010 { address-family { ipv4-unicast { maximum-paths { ibgp 4 } redistribute { connected { } } } l2vpn-evpn { advertise-all-vni } } neighbor 172.29.1.0 { peer-group evpn } neighbor 172.29.2.0 { peer-group evpn } parameters { log-neighbor-changes } peer-group evpn { address-family { ipv4-unicast { nexthop-self { } } l2vpn-evpn { nexthop-self { } } } remote-as 65010 } } vrf MGMT { static { route 0.0.0.0/0 { next-hop 192.0.2.62 { } } route6 ::/0 { next-hop 2001:db8::1 { } } } } } service { lldp { interface all { } } ssh { disable-host-validation vrf MGMT } } system { config-management { commit-revisions 100 } console { device ttyS0 { speed 115200 } } host-name vyos login { user vyos { authentication { encrypted-password $6$O5gJRlDYQpj$MtrCV9lxMnZPMbcxlU7.FI793MImNHznxGoMFgm3Q6QP3vfKJyOSRCt3Ka/GzFQyW1yZS4NS616NLHaIPPFHc0 plaintext-password "" } } } ntp { listen-address 192.0.2.41 listen-address 2001:db8::41 server 0.de.pool.ntp.org { prefer } vrf MGMT } syslog { global { facility all { level info } facility protocols { level debug } } } } vrf { name MGMT { table 1000 } } // Warning: Do not remove the following line. // vyos-config-version: "broadcast-relay@1:cluster@1:config-management@1:conntrack@2:conntrack-sync@1:dhcp-relay@2:dhcp-server@5:dhcpv6-server@1:dns-forwarding@3:firewall@5:https@2:interfaces@20:ipoe-server@1:ipsec@5:l2tp@3:lldp@1:mdns@1:nat@5:nat66@1:ntp@1:pppoe-server@5:pptp@2:qos@1:quagga@8:rpki@1:salt@1:snmp@2:ssh@2:sstp@3:system@20:vrrp@2:vyos-accel-ppp@2:wanloadbalance@3:webproxy@2:zone-policy@1" // Release version: 1.4-rolling-202103091038 diff --git a/src/migration-scripts/interfaces/31-to-32 b/src/migration-scripts/interfaces/31-to-32 new file mode 100755 index 000000000..35b397c39 --- /dev/null +++ b/src/migration-scripts/interfaces/31-to-32 @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2023 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# T5671: change port to IANA assigned default port + +from sys import argv +from sys import exit +from vyos.configtree import ConfigTree + +if len(argv) < 2: + print("Must specify file name!") + exit(1) + +file_name = argv[1] +with open(file_name, 'r') as f: + config_file = f.read() + base = ['interfaces', 'vxlan'] + +config = ConfigTree(config_file) +if not config.exists(base): + # Nothing to do + exit(0) + +for vxlan in config.list_nodes(base): + if not config.exists(base + ['port']): + config.set(base + [vxlan, 'port'], value='8472') + +try: + with open(file_name, 'w') as f: + f.write(config.to_string()) +except OSError as e: + print(f'Failed to save the modified config: {e}') + exit(1)