]> git.proxmox.com Git - pve-network.git/blob - src/PVE/Network/SDN/Dhcp/Plugin.pm
8d0f7baff38b8e6e3c5050e6248a514fb68039ef
[pve-network.git] / src / PVE / Network / SDN / Dhcp / Plugin.pm
1 package PVE::Network::SDN::Dhcp::Plugin;
2
3 use strict;
4 use warnings;
5
6 use PVE::Cluster;
7 use PVE::JSONSchema qw(get_standard_option);
8
9 use base qw(PVE::SectionConfig);
10
11 my $defaultData = {
12 propertyList => {
13 type => {
14 description => "Plugin type.",
15 format => 'pve-configid',
16 type => 'string',
17 },
18 },
19 };
20
21 sub private {
22 return $defaultData;
23 }
24
25 sub add_ip_mapping {
26 my ($class, $dhcpid, $macdb, $mac, $ip4, $ip6) = @_;
27 die 'implement in sub class';
28 }
29
30 sub del_ip_mapping {
31 my ($class, $dhcp_config, $mac) = @_;
32 die 'implement in sub class';
33 }
34
35 sub configure_range {
36 my ($class, $dhcp_config, $subnet_config, $range_config) = @_;
37 die 'implement in sub class';
38 }
39
40 sub configure_subnet {
41 my ($class, $dhcp_config, $subnet_config) = @_;
42 die 'implement in sub class';
43 }
44
45 sub before_configure {
46 my ($class, $dhcp_config) = @_;
47 die 'implement in sub class';
48 }
49
50 sub after_configure {
51 my ($class, $dhcp_config) = @_;
52 die 'implement in sub class';
53 }
54
55 sub before_regenerate {
56 my ($class) = @_;
57 die 'implement in sub class';
58 }
59
60 sub after_regenerate {
61 my ($class, $dhcp_config) = @_;
62 die 'implement in sub class';
63 }
64
65 1;