]> git.proxmox.com Git - pve-network.git/commitdiff
evpn zone plugin : remove vrf option
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 26 Nov 2019 09:00:28 +0000 (10:00 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 26 Nov 2019 11:33:40 +0000 (12:33 +0100)
instead, use zone name as vrf

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/SDN/Controllers.pm
PVE/Network/SDN/Controllers/EvpnPlugin.pm
PVE/Network/SDN/Zones/EvpnPlugin.pm
test/documentation.txt

index 827c715c2c539520806da1fb5086ed618748ca66..f0895387f54198e3ef0de6150f4b0dc80874b554 100644 (file)
@@ -103,7 +103,7 @@ sub generate_controller_config {
        my $plugin_config = $transport_cfg->{ids}->{$id};
        my $controllerid = $plugin_config->{controller};
        next if !$controllerid;
-       my $controller = $transport_cfg->{ids}->{$controllerid};
+       my $controller = $controller_cfg->{ids}->{$controllerid};
        if ($controller) {
            my $controller_plugin = PVE::Network::SDN::Controllers::Plugin->lookup($controller->{type});
            $controller_plugin->generate_controller_transport_config($plugin_config, $controller, $id, $uplinks, $config);
index 97dc825068fa5bfb88014e7b0591ad85d443d984..012c9a45647b455efb5f37927410513f394c2591 100644 (file)
@@ -105,8 +105,6 @@ sub generate_controller_config {
 
         @router_config = ();
         #import /32 routes of evpn network from vrf1 to default vrf (for packet return)
-        #frr 7.1 tag is bugged -> works fine with 7.1 stable branch(20190829-02-g6ba76bbc1)
-        #https://github.com/FRRouting/frr/issues/4905
        foreach my $address (@gatewaypeers) {
            push @router_config, "neighbor $address activate";
        }
@@ -121,7 +119,7 @@ sub generate_controller_config {
 sub generate_controller_transport_config {
     my ($class, $plugin_config, $router, $id, $uplinks, $config) = @_;
 
-    my $vrf = $plugin_config->{'vrf'};
+    my $vrf = $id;
     my $vrfvxlan = $plugin_config->{'vrf-vxlan'};
     my $asn = $router->{asn};
     my $gatewaynodes = $router->{'gateway-nodes'};
index 11192265cf4fd68895b0c2aa4e81368cde861caf..62382fb482ddd25672d4801c9f056ce26645fff0 100644 (file)
@@ -14,10 +14,6 @@ sub type {
 
 sub properties {
     return {
-       'vrf' => {
-           description => "vrf name.",
-           type => 'string',  #fixme: format
-       },
        'vrf-vxlan' => {
            type => 'integer',
            description => "l3vni.",
@@ -34,7 +30,6 @@ sub options {
     return {
         nodes => { optional => 1},
        'uplink-id' => { optional => 0 },
-        'vrf' => { optional => 0 },
         'vrf-vxlan' => { optional => 0 },
         'controller' => { optional => 0 },
     };
@@ -51,7 +46,7 @@ sub generate_sdn_config {
     my $mac = $vnet->{mac};
 
     my $uplink = $plugin_config->{'uplink-id'};
-    my $vrf = $plugin_config->{'vrf'};
+    my $vrf = $zoneid;
     my $vrfvxlan = $plugin_config->{'vrf-vxlan'};
 
     die "missing vxlan tag" if !$tag;
@@ -102,7 +97,7 @@ sub generate_sdn_config {
 
        if ($vrfvxlan) {
            #l3vni vxlan interface
-           my $iface_vxlan = "vxlan$vrf";
+           my $iface_vxlan = "vxvrf$vrf";
            @iface_config = ();
            push @iface_config, "vxlan-id $vrfvxlan";
            push @iface_config, "vxlan-local-tunnelip $ifaceip" if $ifaceip;
@@ -137,15 +132,7 @@ sub on_update_hook {
        die "$controller is not a evpn controller type" if $controller_cfg->{ids}->{$controller}->{type} ne 'evpn';
     }
 
-    #vrf && vrf-vxlan need to be defined
-    my $vrf = $zone_cfg->{ids}->{$zoneid}->{vrf};
-
-    # verify that vrf is not already declared in another zone
-    foreach my $id (keys %{$zone_cfg->{ids}}) {
-       next if $id eq $zoneid;
-       die "vrf $vrf is already declared in $id"
-               if (defined($zone_cfg->{ids}->{$id}->{vrf}) && $zone_cfg->{ids}->{$id}->{vrf} eq $vrf);
-    }
+    #vrf-vxlan need to be defined
 
     my $vrfvxlan = $zone_cfg->{ids}->{$zoneid}->{'vrf-vxlan'};
     # verify that vrf-vxlan is not already declared in another zone
index 6b2dfb2e47e1f5c7514727a6737ae16d7c936fbb..82e7e1495fddc40d625d5d85971496c9811344f2 100644 (file)
@@ -18,7 +18,7 @@ pvesh create /cluster/sdn/controllers/ --controller frrrouter1 --type evpn --upl
 pvesh create /cluster/sdn/zones/ --zone layer2evpnzone --type evpn --uplink-id 1 --controller frrrouter1
 
 #create a layer3 routable vxlan bgpevpn transportzone
-pvesh create /cluster/sdn/zones/ --zone layer3evpnzone --type evpn --uplink-id 1 --controller frrrouter1 --vrf vrf1 --vrf-vxlan 4000
+pvesh create /cluster/sdn/zones/ --zone layer3evpnzone --type evpn --uplink-id 1 --controller frrrouter1 --vrf-vxlan 4000
 
 
 #create a vnet in the transportzone