diff options
| -rw-r--r-- | src/PVE/Network/SDN/Controllers.pm | 71 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Controllers/BgpPlugin.pm | 20 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 6 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Controllers/IsisPlugin.pm | 20 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Controllers/Plugin.pm | 30 | 
5 files changed, 20 insertions, 127 deletions
diff --git a/src/PVE/Network/SDN/Controllers.pm b/src/PVE/Network/SDN/Controllers.pm index 2ffd75e..3c18552 100644 --- a/src/PVE/Network/SDN/Controllers.pm +++ b/src/PVE/Network/SDN/Controllers.pm @@ -80,12 +80,12 @@ sub read_etc_network_interfaces {      return $interfaces_config;  } -sub generate_controller_config { +sub generate_frr_config { +    my ($frr_config, $sdn_config) = @_; -    my $cfg = PVE::Network::SDN::running_config(); -    my $vnet_cfg = $cfg->{vnets}; -    my $zone_cfg = $cfg->{zones}; -    my $controller_cfg = $cfg->{controllers}; +    my $vnet_cfg = $sdn_config->{vnets}; +    my $zone_cfg = $sdn_config->{zones}; +    my $controller_cfg = $sdn_config->{controllers};      return if !$vnet_cfg && !$zone_cfg && !$controller_cfg; @@ -103,14 +103,10 @@ sub generate_controller_config {          }      } -    # generate configuration -    my $config = {}; -      foreach my $id (sort keys %{ $controller_cfg->{ids} }) {          my $plugin_config = $controller_cfg->{ids}->{$id};          my $plugin = PVE::Network::SDN::Controllers::Plugin->lookup($plugin_config->{type}); -        $plugin->generate_controller_config($plugin_config, $controller_cfg, $id, $uplinks, -            $config); +        $plugin->generate_frr_config($plugin_config, $controller_cfg, $id, $uplinks, $frr_config);      }      foreach my $id (sort keys %{ $zone_cfg->{ids} }) { @@ -121,8 +117,8 @@ sub generate_controller_config {          if ($controller) {              my $controller_plugin =                  PVE::Network::SDN::Controllers::Plugin->lookup($controller->{type}); -            $controller_plugin->generate_controller_zone_config( -                $plugin_config, $controller, $controller_cfg, $id, $uplinks, $config, +            $controller_plugin->generate_zone_frr_config( +                $plugin_config, $controller, $controller_cfg, $id, $uplinks, $frr_config,              );          }      } @@ -140,58 +136,11 @@ sub generate_controller_config {          if ($controller) {              my $controller_plugin =                  PVE::Network::SDN::Controllers::Plugin->lookup($controller->{type}); -            $controller_plugin->generate_controller_vnet_config( -                $plugin_config, $controller, $zone, $zoneid, $id, $config, +            $controller_plugin->generate_vnet_frr_config( +                $plugin_config, $controller, $zone, $zoneid, $id, $frr_config,              );          }      } - -    return $config; -} - -sub reload_controller { - -    my $cfg = PVE::Network::SDN::running_config(); -    my $controller_cfg = $cfg->{controllers}; - -    return if !$controller_cfg; - -    foreach my $id (keys %{ $controller_cfg->{ids} }) { -        my $plugin_config = $controller_cfg->{ids}->{$id}; -        my $plugin = PVE::Network::SDN::Controllers::Plugin->lookup($plugin_config->{type}); -        $plugin->reload_controller(); -    } -} - -sub generate_controller_rawconfig { -    my ($config) = @_; - -    my $cfg = PVE::Network::SDN::running_config(); -    my $controller_cfg = $cfg->{controllers}; -    return if !$controller_cfg; - -    my $rawconfig = ""; -    foreach my $id (keys %{ $controller_cfg->{ids} }) { -        my $plugin_config = $controller_cfg->{ids}->{$id}; -        my $plugin = PVE::Network::SDN::Controllers::Plugin->lookup($plugin_config->{type}); -        $rawconfig .= $plugin->generate_controller_rawconfig($plugin_config, $config); -    } -    return $rawconfig; -} - -sub write_controller_config { -    my ($config) = @_; - -    my $cfg = PVE::Network::SDN::running_config(); -    my $controller_cfg = $cfg->{controllers}; -    return if !$controller_cfg; - -    foreach my $id (keys %{ $controller_cfg->{ids} }) { -        my $plugin_config = $controller_cfg->{ids}->{$id}; -        my $plugin = PVE::Network::SDN::Controllers::Plugin->lookup($plugin_config->{type}); -        $plugin->write_controller_config($plugin_config, $config); -    }  }  1; - diff --git a/src/PVE/Network/SDN/Controllers/BgpPlugin.pm b/src/PVE/Network/SDN/Controllers/BgpPlugin.pm index dd835e4..5f3fcb0 100644 --- a/src/PVE/Network/SDN/Controllers/BgpPlugin.pm +++ b/src/PVE/Network/SDN/Controllers/BgpPlugin.pm @@ -53,7 +53,7 @@ sub options {  }  # Plugin implementation -sub generate_controller_config { +sub generate_frr_config {      my ($class, $plugin_config, $controller, $id, $uplinks, $config) = @_;      my @peers; @@ -135,7 +135,7 @@ sub generate_controller_config {      return $config;  } -sub generate_controller_zone_config { +sub generate_zone_frr_config {      my ($class, $plugin_config, $controller, $controller_cfg, $id, $uplinks, $config) = @_;  } @@ -167,20 +167,4 @@ sub on_update_hook {      }  } -sub generate_controller_rawconfig { -    my ($class, $plugin_config, $config) = @_; -    return ""; -} - -sub write_controller_config { -    my ($class, $plugin_config, $config) = @_; -    return; -} - -sub reload_controller { -    my ($class) = @_; -    return; -} -  1; - diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm index 4e71306..63d209d 100644 --- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm +++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm @@ -42,7 +42,7 @@ sub options {  }  # Plugin implementation -sub generate_controller_config { +sub generate_frr_config {      my ($class, $plugin_config, $controller_cfg, $id, $uplinks, $config) = @_;      my @peers; @@ -121,7 +121,7 @@ sub generate_controller_config {      return $config;  } -sub generate_controller_zone_config { +sub generate_zone_frr_config {      my ($class, $plugin_config, $controller, $controller_cfg, $id, $uplinks, $config) = @_;      my $local_node = PVE::INotify::nodename(); @@ -346,7 +346,7 @@ sub generate_controller_zone_config {      return $config;  } -sub generate_controller_vnet_config { +sub generate_vnet_frr_config {      my ($class, $plugin_config, $controller, $zone, $zoneid, $vnetid, $config) = @_;      my $exitnodes = $zone->{'exitnodes'}; diff --git a/src/PVE/Network/SDN/Controllers/IsisPlugin.pm b/src/PVE/Network/SDN/Controllers/IsisPlugin.pm index 0ef9fb9..716bb0f 100644 --- a/src/PVE/Network/SDN/Controllers/IsisPlugin.pm +++ b/src/PVE/Network/SDN/Controllers/IsisPlugin.pm @@ -58,7 +58,7 @@ sub options {  }  # Plugin implementation -sub generate_controller_config { +sub generate_frr_config {      my ($class, $plugin_config, $controller, $id, $uplinks, $config) = @_;      my $isis_ifaces = $plugin_config->{'isis-ifaces'}; @@ -91,7 +91,7 @@ sub generate_controller_config {      return $config;  } -sub generate_controller_zone_config { +sub generate_zone_frr_config {      my ($class, $plugin_config, $controller, $controller_cfg, $id, $uplinks, $config) = @_;  } @@ -117,20 +117,4 @@ sub on_update_hook {      }  } -sub generate_controller_rawconfig { -    my ($class, $plugin_config, $config) = @_; -    return ""; -} - -sub write_controller_config { -    my ($class, $plugin_config, $config) = @_; -    return; -} - -sub reload_controller { -    my ($class) = @_; -    return; -} -  1; - diff --git a/src/PVE/Network/SDN/Controllers/Plugin.pm b/src/PVE/Network/SDN/Controllers/Plugin.pm index 3de1af7..d70e518 100644 --- a/src/PVE/Network/SDN/Controllers/Plugin.pm +++ b/src/PVE/Network/SDN/Controllers/Plugin.pm @@ -72,47 +72,23 @@ sub parse_section_header {      return undef;  } -sub generate_sdn_config { -    my ($class, $plugin_config, $node, $data, $ctime) = @_; - -    die "please implement inside plugin"; -} - -sub generate_controller_config { +sub generate_frr_config {      my ($class, $plugin_config, $controller_cfg, $id, $uplinks, $config) = @_;      die "please implement inside plugin";  } -sub generate_controller_zone_config { +sub generate_zone_frr_config {      my ($class, $plugin_config, $controller, $controller_cfg, $id, $uplinks, $config) = @_;      die "please implement inside plugin";  } -sub generate_controller_vnet_config { +sub generate_vnet_frr_config {      my ($class, $plugin_config, $controller, $zoneid, $vnetid, $config) = @_;  } -sub generate_controller_rawconfig { -    my ($class, $plugin_config, $config) = @_; - -    die "please implement inside plugin"; -} - -sub write_controller_config { -    my ($class, $plugin_config, $config) = @_; - -    die "please implement inside plugin"; -} - -sub controller_reload { -    my ($class) = @_; - -    die "please implement inside plugin"; -} -  sub on_delete_hook {      my ($class, $controllerid, $zone_cfg) = @_;  | 
