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