Skip to content

Commit addfbdb

Browse files
committed
incusd/network/ovn: Add option ipv4.dhcp.expiry for OVN networks
Signed-off-by: Gwendolyn <[email protected]>
1 parent 44028f2 commit addfbdb

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

internal/server/network/driver_ovn.go

+15-2
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,11 @@ func (n *ovn) Validate(config map[string]string) error {
398398

399399
return validate.IsNetworkAddressCIDRV4(value)
400400
}),
401-
"ipv4.dhcp": validate.Optional(validate.IsBool),
401+
"ipv4.dhcp": validate.Optional(validate.IsBool),
402+
"ipv4.dhcp.expiry": validate.Optional(func(value string) error {
403+
_, err := time.ParseDuration(value)
404+
return err
405+
}),
402406
"ipv4.dhcp.ranges": validate.Optional(validate.IsListOf(validate.IsNetworkRangeV4)),
403407
"ipv4.dhcp.routes": validate.Optional(validate.IsDHCPRouteList),
404408
"ipv6.address": validate.Optional(func(value string) error {
@@ -2675,12 +2679,21 @@ func (n *ovn) setup(update bool) error {
26752679
dhcpV4Netmask = "255.255.255.255"
26762680
}
26772681

2682+
leaseTime := time.Hour * 1
2683+
if n.config["ipv4.dhcp.expiry"] != "" {
2684+
duration, err := time.ParseDuration(n.config["ipv4.dhcp.expiry"])
2685+
if err != nil {
2686+
return fmt.Errorf("Failed to parse expiry: %w", err)
2687+
}
2688+
leaseTime = duration
2689+
}
2690+
26782691
opts := &networkOVN.OVNDHCPv4Opts{
26792692
ServerID: routerIntPortIPv4,
26802693
ServerMAC: routerMAC,
26812694
Router: routerIntPortIPv4,
26822695
DomainName: n.getDomainName(),
2683-
LeaseTime: time.Duration(time.Hour * 1),
2696+
LeaseTime: leaseTime,
26842697
MTU: bridgeMTU,
26852698
Netmask: dhcpV4Netmask,
26862699
DNSSearchList: n.getDNSSearchList(),

0 commit comments

Comments
 (0)