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      description: >
53          This property describes the NTP Servers on the interface.
54          Implementation of this Dbus-interface is required to implement this property.
55          This property supports read/write operation.
56          Configure the NTP servers on the system during write operation.
57    - name: LinkLocalAutoConf
58      type: enum[self.LinkLocalConf]
59      description: >
60          This indicates link local auto configuration on this ethernet
61          interface and configured on this ethernet interface.
62    - name: IPv6AcceptRA
63      type: boolean
64      description: >
65          Boolean for accepting router advertisements in IPv6
66    - name: NICEnabled
67      type: boolean
68      description: >
69          Boolean for to enabling or disabling the ethernet port
70    - name: LinkUp
71      type: boolean
72      flags:
73          - const
74      description: >
75          This property reports the link status for the NIC. The read-only
76          boolean value is TRUE when the network cable is inserted, or there
77          is a carrier signal. It is FALSE when the cable is unplugged, or the
78          carrier signal is missing.
79    - name: DefaultGateway
80      type: string
81      description: >
82          Default IPv4 gateway of the ethernet interface.
83      errors:
84          - xyz.openbmc_project.Common.Error.InvalidArgument
85    - name: DefaultGateway6
86      type: string
87      description: >
88          Default IPv6 gateway of the ethernet interface.
89          For supported address formats refer RFC 2373.
90          Refer below man page for both v4 and v6 address format details
91          https://man7.org/linux/man-pages/man3/inet_pton.3.html
92      errors:
93          - xyz.openbmc_project.Common.Error.InvalidArgument
94
95enumerations:
96    - name: LinkLocalConf
97      description: >
98          Possible link local auto configuration values.
99      values:
100          - name: fallback
101          - name: both
102          - name: v4
103          - name: v6
104          - name: none
105
106    - name: DHCPConf
107      description: >
108          A list of the permitted DHCP settings used by systemd.
109      values:
110          - name: both
111          - name: v4
112          - name: v6
113          - name: none
114