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