Add additional DHCP configuration options
The existing D-Bus DHCPConf enumearation values do not allow IPv6
Stateless DHCP to be assigned. The IPv4 entries are sufficient, as
DHCP for the v4 stack is truly a boolean.
IPv6 is, at minimum, a ternary control. Adding new enumerations allows
the IPv6 configruation to be done in a more abstract fashion than the
current IPv6AcceptRA D-Bus entry. This D-Bus entry is a direct
reflection of how systemd-networkd manages Routint Advertisement, and
by extension DHCPv6. Only phosphor-network needs this knowledge.
Tested:
The changes compile.
Also, in combination with changes made to phosphor-network, many
busctl set/get property commands were issued to confirm the
enumerations were performing as expected.
Change-Id: I42a46549fed8b2d2187ea6a7eb7278c63b84bbef
Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
diff --git a/yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml b/yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml
index 09ddf04..b86a10e 100644
--- a/yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml
+++ b/yaml/xyz/openbmc_project/Network/EthernetInterface.interface.yaml
@@ -62,7 +62,9 @@
- name: IPv6AcceptRA
type: boolean
description: >
- Boolean for accepting router advertisements in IPv6
+ Boolean for accepting router advertisements in IPv6. This control is
+ being deprecated in favor of the DHCPConf enumerations
+ below. Removal of this entry is deferred.
- name: NICEnabled
type: boolean
description: >
@@ -105,9 +107,19 @@
- name: DHCPConf
description: >
- A list of the permitted DHCP settings used by systemd.
+ High level definitions of available DHCP states.
+ These definitions do not have a 1:1 correlation to the
+ systemd.network configuration file contents.
+ both: Enable IPv4 DHCP and IPv6 Stateful DHCP
+ v4v6stateless: Enable IPv4 DHCP and IPv6 SLAAC
+ v6: Enable IPv6 Stateful DHCP
+ v6stateless: Enable IPv6 SLAAC
+ v4: Enable IPv4 DHCP
+ none: Disable DHCP for IPv4 and IPv6
values:
- name: both
- - name: v4
+ - name: v4v6stateless
- name: v6
+ - name: v6stateless
+ - name: v4
- name: none