1description: >
2    This defines an ethernet interface.
3    An object implementing this interface must implement
4    xyz.openbmc_project.State.OperationalStatus.
5
6properties:
7    - name: InterfaceName
8      type: string
9      description: >
10          Name of the ethernet interface.
11    - name: Speed
12      type: uint32
13      description: >
14          Current speed of the ethernet interface, in Mbps.
15    - name: AutoNeg
16      type: boolean
17      description: >
18          This indicates if the speed and duplex are automatically negotiated
19          and configured on this ethernet interface.
20    - name: MTU
21      type: size
22      default: 0
23      description: >
24          This indicates the size in bytes of largest protocol data unit,
25          which can be passed in an Ethernet frame on the interface.
26    - name: DomainName
27      type: array[string]
28      description: >
29          Domain names of the ethernet interface.
30    - name: DHCPEnabled
31      type: enum[self.DHCPConf]
32      description: >
33          Address mode of the ethernet interface.
34    - name: Nameservers
35      type: array[string]
36      description: >
37          DNS servers that are currently in use on this interface.
38      errors:
39          - xyz::openbmc_project.Common.Error.NotAllowed
40    - name: StaticNameServers
41      type: array[string]
42      description: >
43          A statically defined set of DNS server IP addresses to be used when
44          DHCP provisioning is not enabled for name server configuration. As
45          an implementation option this may also be used in addition to DHCP
46          provided addresses, or in cases where the DHCP server provides no DNS
47          assigments.
48      errors:
49          - xyz.openbmc_project.Common.Error.InvalidArgument
50    - name: NTPServers
51      type: array[string]
52      flags:
53          - readonly
54      description: >
55          NTP servers that are currently in use on this interface.
56          This includes both DHCP and static NTP server addresses.
57    - name: StaticNTPServers
58      type: array[string]
59      description: >
60          This property describes statically defined NTPServers on the
61          interface. This property supports read/write operation.
62          Configure the NTP servers on the system during write operation.
63    - name: LinkLocalAutoConf
64      type: enum[self.LinkLocalConf]
65      description: >
66          This indicates link local auto configuration on this ethernet
67          interface and configured on this ethernet interface.
68    - name: IPv6AcceptRA
69      type: boolean
70      description: >
71          Boolean for accepting router advertisements in IPv6. This control is
72          being deprecated in favor of the DHCPConf enumerations
73          below. Removal of this entry is deferred.
74    - name: NICEnabled
75      type: boolean
76      description: >
77          Boolean for to enabling or disabling the ethernet port
78    - name: LinkUp
79      type: boolean
80      flags:
81          - readonly
82      description: >
83          This property reports the link status for the NIC. The read-only
84          boolean value is TRUE when the network cable is inserted, or there
85          is a carrier signal. It is FALSE when the cable is unplugged, or the
86          carrier signal is missing.
87    - name: DefaultGateway
88      type: string
89      description: >
90          Default IPv4 gateway of the ethernet interface.
91      errors:
92          - xyz.openbmc_project.Common.Error.InvalidArgument
93    - name: DefaultGateway6
94      type: string
95      description: >
96          Default IPv6 gateway of the ethernet interface.
97          For supported address formats refer RFC 2373.
98          Refer below man page for both v4 and v6 address format details
99          https://man7.org/linux/man-pages/man3/inet_pton.3.html
100      errors:
101          - xyz.openbmc_project.Common.Error.InvalidArgument
102
103enumerations:
104    - name: LinkLocalConf
105      description: >
106          Possible link local auto configuration values.
107      values:
108          - name: fallback
109          - name: both
110          - name: v4
111          - name: v6
112          - name: none
113
114    - name: DHCPConf
115      description: >
116          High level definitions of available DHCP states.
117          These definitions do not have a 1:1 correlation to the
118          systemd.network configuration file contents.
119          both: Enable IPv4 DHCP and IPv6 Stateful DHCP
120          v4v6stateless: Enable IPv4 DHCP and IPv6 SLAAC
121          v6: Enable IPv6 Stateful DHCP
122          v6stateless: Enable IPv6 SLAAC
123          v4: Enable IPv4 DHCP
124          none: Disable DHCP for IPv4 and IPv6
125      values:
126          - name: both
127          - name: v4v6stateless
128          - name: v6
129          - name: v6stateless
130          - name: v4
131          - name: none
132