From: Alexandre Derumier <aderumier@odiso.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 pve-network 3/5] zones: evpn: move vnet mac option to evpn zone plugin
Date: Wed, 21 Apr 2021 22:55:47 +0200 [thread overview]
Message-ID: <20210421205549.1604429-4-aderumier@odiso.com> (raw)
In-Reply-To: <20210421205549.1604429-1-aderumier@odiso.com>
This is only used by evpn plugin, and we can have
same anycast mac for all vnets like cisco,juniper,arista...
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
---
PVE/Network/SDN/VnetPlugin.pm | 6 ------
PVE/Network/SDN/Zones/EvpnPlugin.pm | 17 +++++++++++------
test/zones/evpn/ipv4/expected_sdn_interfaces | 1 +
test/zones/evpn/ipv4/sdn_config | 2 +-
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/PVE/Network/SDN/VnetPlugin.pm b/PVE/Network/SDN/VnetPlugin.pm
index 34841ae..96a13b4 100644
--- a/PVE/Network/SDN/VnetPlugin.pm
+++ b/PVE/Network/SDN/VnetPlugin.pm
@@ -70,11 +70,6 @@ sub properties {
description => "alias name of the vnet",
optional => 1,
},
- mac => {
- type => 'string',
- description => "Anycast router mac address",
- optional => 1, format => 'mac-addr'
- }
};
}
@@ -83,7 +78,6 @@ sub options {
zone => { optional => 0},
tag => { optional => 1},
alias => { optional => 1 },
- mac => { optional => 1 },
vlanaware => { optional => 1 },
};
}
diff --git a/PVE/Network/SDN/Zones/EvpnPlugin.pm b/PVE/Network/SDN/Zones/EvpnPlugin.pm
index ca000cf..d68d3ee 100644
--- a/PVE/Network/SDN/Zones/EvpnPlugin.pm
+++ b/PVE/Network/SDN/Zones/EvpnPlugin.pm
@@ -28,6 +28,11 @@ sub properties {
type => 'string',
description => "Frr router name",
},
+ 'mac' => {
+ type => 'string',
+ description => "Anycast logical router mac address",
+ optional => 1, format => 'mac-addr'
+ },
'exitnodes' => get_standard_option('pve-node-list'),
};
}
@@ -40,6 +45,7 @@ sub options {
controller => { optional => 0 },
exitnodes => { optional => 1 },
mtu => { optional => 1 },
+ mac => { optional => 1 },
dns => { optional => 1 },
reversedns => { optional => 1 },
dnszone => { optional => 1 },
@@ -55,7 +61,7 @@ sub generate_sdn_config {
my $alias = $vnet->{alias};
my $ipv4 = $vnet->{ipv4};
my $ipv6 = $vnet->{ipv6};
- my $mac = $vnet->{mac};
+ my $mac = $plugin_config->{'mac'};
my $vrf_iface = "vrf_$zoneid";
my $vrfvxlan = $plugin_config->{'vrf-vxlan'};
@@ -184,6 +190,10 @@ sub on_update_hook {
if (defined($zone_cfg->{ids}->{$id}->{'vrf-vxlan'}) && $zone_cfg->{ids}->{$id}->{'vrf-vxlan'} eq $vrfvxlan);
}
+ if (!defined($zone_cfg->{ids}->{$zoneid}->{'mac'})) {
+ my $dc = PVE::Cluster::cfs_read_file('datacenter.cfg');
+ $zone_cfg->{ids}->{$zoneid}->{'mac'} = PVE::Tools::random_ether_addr($dc->{mac_prefix});
+ }
}
@@ -206,11 +216,6 @@ sub vnet_update_hook {
next if $other_zone->{type} ne 'vxlan' && $other_zone->{type} ne 'evpn';
raise_param_exc({ tag => "vxlan tag $tag already exist in vnet $id in zone $other_zoneid "}) if $other_tag && $tag eq $other_tag;
}
-
- if (!defined($vnet->{mac})) {
- my $dc = PVE::Cluster::cfs_read_file('datacenter.cfg');
- $vnet->{mac} = PVE::Tools::random_ether_addr($dc->{mac_prefix});
- }
}
diff --git a/test/zones/evpn/ipv4/expected_sdn_interfaces b/test/zones/evpn/ipv4/expected_sdn_interfaces
index 6d2d3b6..e2d5a75 100644
--- a/test/zones/evpn/ipv4/expected_sdn_interfaces
+++ b/test/zones/evpn/ipv4/expected_sdn_interfaces
@@ -3,6 +3,7 @@
auto myvnet
iface myvnet
address 10.0.0.1/24
+ hwaddress A2:1D:CB:1A:C0:8B
bridge_ports vxlan_myvnet
bridge_stp off
bridge_fd 0
diff --git a/test/zones/evpn/ipv4/sdn_config b/test/zones/evpn/ipv4/sdn_config
index 4c115a9..dd73b5c 100644
--- a/test/zones/evpn/ipv4/sdn_config
+++ b/test/zones/evpn/ipv4/sdn_config
@@ -7,7 +7,7 @@
},
zones => {
- ids => { myzone => { ipam => "pve", type => "evpn", controller => "evpnctl", 'vrf-vxlan' => 1000 } },
+ ids => { myzone => { ipam => "pve", type => "evpn", controller => "evpnctl", 'vrf-vxlan' => 1000, 'mac' => 'A2:1D:CB:1A:C0:8B' } },
},
controllers => {
ids => { evpnctl => { type => "evpn", 'peers' => '192.168.0.1,192.168.0.2,192.168.0.3', asn => "65000" } },
--
2.20.1
next prev parent reply other threads:[~2021-04-21 20:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-21 20:55 [pve-devel] [PATCH v2 pve-network 0/5] evpn && bgp improvements Alexandre Derumier
2021-04-21 20:55 ` [pve-devel] [PATCH v2 pve-network 1/5] tests: fix evpn vrf Alexandre Derumier
2021-04-21 20:55 ` [pve-devel] [PATCH v2 pve-network 2/5] bgp: add ebgp_multihop option Alexandre Derumier
2021-04-21 20:55 ` Alexandre Derumier [this message]
2021-04-21 20:55 ` [pve-devel] [PATCH v2 pve-network 4/5] zones: evpn: fix arp-accept && ip-forward + ipv6 snat Alexandre Derumier
2021-04-21 20:55 ` [pve-devel] [PATCH v2 pve-network 5/5] zones: simple: fix ip-forward && " Alexandre Derumier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210421205549.1604429-4-aderumier@odiso.com \
--to=aderumier@odiso.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox