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. Deprecated in favor of
40          split options to avoid combinatorics.
41    - name: DHCP4
42      type: boolean
43      description: >
44          Enable or disable IPv4 DHCP.
45    - name: DHCP6
46      type: boolean
47      description: >
48          Enable or disable IPv6 DHCP.
49    - name: Nameservers
50      type: array[string]
51      description: >
52          DNS servers that are currently in use on this interface.
53      errors:
54          - xyz::openbmc_project.Common.Error.NotAllowed
55    - name: StaticNameServers
56      type: array[string]
57      description: >
58          A statically defined set of DNS server IP addresses to be used when
59          DHCP provisioning is not enabled for name server configuration. As
60          an implementation option this may also be used in addition to DHCP
61          provided addresses, or in cases where the DHCP server provides no DNS
62          assigments.
63      errors:
64          - xyz.openbmc_project.Common.Error.InvalidArgument
65    - name: NTPServers
66      type: array[string]
67      description: >
68          NTP servers that are currently in use on this interface.
69          This includes both DHCP and static NTP server addresses.
70    - name: StaticNTPServers
71      type: array[string]
72      description: >
73          This property describes statically defined NTPServers on the
74          interface. This property supports read/write operation.
75          Configure the NTP servers on the system during write operation.
76    - name: LinkLocalAutoConf
77      type: enum[self.LinkLocalConf]
78      description: >
79          This indicates link local auto configuration on this ethernet
80          interface and configured on this ethernet interface.
81    - name: IPv6AcceptRA
82      type: boolean
83      description: >
84          Boolean for accepting router advertisements in IPv6.
85    - name: NICEnabled
86      type: boolean
87      description: >
88          Boolean for to enabling or disabling the ethernet port
89    - name: LinkUp
90      type: boolean
91      flags:
92          - readonly
93      description: >
94          This property reports the link status for the NIC. The read-only
95          boolean value is TRUE when the network cable is inserted, or there
96          is a carrier signal. It is FALSE when the cable is unplugged, or the
97          carrier signal is missing.
98    - name: DefaultGateway
99      type: string
100      description: >
101          Default IPv4 gateway of the ethernet interface.
102      errors:
103          - xyz.openbmc_project.Common.Error.InvalidArgument
104    - name: DefaultGateway6
105      type: string
106      description: >
107          Default IPv6 gateway of the ethernet interface.
108          For supported address formats refer RFC 2373.
109          Refer below man page for both v4 and v6 address format details
110          https://man7.org/linux/man-pages/man3/inet_pton.3.html
111      errors:
112          - xyz.openbmc_project.Common.Error.InvalidArgument
113
114enumerations:
115    - name: LinkLocalConf
116      description: >
117          Possible link local auto configuration values.
118      values:
119          - name: fallback
120          - name: both
121          - name: v4
122          - name: v6
123          - name: none
124
125    - name: DHCPConf
126      description: >
127          High level definitions of available DHCP states.
128          These definitions do not have a 1:1 correlation to the
129          systemd.network configuration file contents.
130          both: Enable IPv4 DHCP and IPv6 Stateful DHCP
131          v4v6stateless: Enable IPv4 DHCP and IPv6 SLAAC
132          v6: Enable IPv6 Stateful DHCP
133          v6stateless: Enable IPv6 SLAAC
134          v4: Enable IPv4 DHCP
135          none: Disable DHCP for IPv4 and IPv6
136      values:
137          - name: both
138          - name: v4v6stateless
139          - name: v6
140          - name: v6stateless
141          - name: v4
142          - name: none
143