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