]> git.proxmox.com Git - pve-network.git/commit
dhcp: add abstract class for DHCP plugins
authorStefan Hanreich <s.hanreich@proxmox.com>
Fri, 17 Nov 2023 11:39:45 +0000 (12:39 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 18 Nov 2023 14:59:50 +0000 (15:59 +0100)
commitb240ff0b1f3ca4f24d825961bb1d96f454889b79
treeefee199f5e3f5551d8f368d638d3663d417b6fea
parent7ba1781725dbac13bf9f0d5451dc29d87778e737
dhcp: add abstract class for DHCP plugins

This abstract class provides several hooks that should be called
during the config generation process, they expose the functionality
for the different configuration tasks required from the DHCP plugins.

add_ip_mapping
Adds a mapping from MAC address to an IP for a given DHCP server. The
DHCP server will then always assign the given IP address to the MAC.

del_ip_mapping
Deletes all mappings for a given MAC address for a given DHCP server.

before_regenerate
Should be called before the plugin does any configuration tasks. The
main usage for this hook is tearing down old instances.

after_regenerate
Should be called after the plugin has finished generating any
configuration. The main usage for this hook is to perform cleanup and
restart / reload services.

before_configure
Should be called before creating the configuration for a specific DHCP
instance, as defined in the dhcp.cfg. This can be used for performing
instance-specific setup.

after_configure
Should be called after the configuration for a specific DHCP instance,
as defined in the dhcp.cfg. This will mainly be used for enabling and
restarting / reloading a specific instance of a DHCP server.

configure_subnet
This function configures the settings for a specific subnet (that can
contain multiple DHCP ranges). This sets global settings for a
specific subnet such as DNS server or gateway.

configure_range
This configures a DHCP range that is available for a given Subnet.

Co-Authored-By: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
src/PVE/Network/SDN/Dhcp/Makefile [new file with mode: 0644]
src/PVE/Network/SDN/Dhcp/Plugin.pm [new file with mode: 0644]
src/PVE/Network/SDN/Makefile