description: >
    This defines an ethernet interface. An object implementing this interface
    must implement xyz.openbmc_project.State.OperationalStatus.

properties:
    - name: InterfaceName
      type: string
      flags:
          - const
      description: >
          Name of the ethernet interface.
    - name: Speed
      type: uint32
      flags:
          - readonly
      description: >
          Current speed of the ethernet interface, in Mbps.
    - name: AutoNeg
      type: boolean
      flags:
          - readonly
      description: >
          This indicates if the speed and duplex are automatically negotiated
          and configured on this ethernet interface.
    - name: MTU
      type: size
      default: 0
      description: >
          This indicates the size in bytes of largest protocol data unit, which
          can be passed in an Ethernet frame on the interface.
    - name: DomainName
      type: array[string]
      description: >
          Domain names of the ethernet interface.
    - name: DHCPEnabled
      type: enum[self.DHCPConf]
      description: >
          Address mode of the ethernet interface. Deprecated in favor of split
          options to avoid combinatorics.
    - name: DHCP4
      type: boolean
      description: >
          Enable or disable IPv4 DHCP.
    - name: DHCP6
      type: boolean
      description: >
          Enable or disable IPv6 DHCP.
    - name: Nameservers
      type: array[string]
      description: >
          DNS servers that are currently in use on this interface.
      flags:
          - readonly
    - name: StaticNameServers
      type: array[string]
      description: >
          A statically defined set of DNS server IP addresses to be used when
          DHCP provisioning is not enabled for name server configuration. As an
          implementation option this may also be used in addition to DHCP
          provided addresses, or in cases where the DHCP server provides no DNS
          assigments.
      errors:
          - xyz.openbmc_project.Common.Error.InvalidArgument
    - name: NTPServers
      type: array[string]
      description: >
          NTP servers that are currently in use on this interface. This includes
          both DHCP and static NTP server addresses.
    - name: StaticNTPServers
      type: array[string]
      description: >
          This property describes statically defined NTPServers on the
          interface. This property supports read/write operation. Configure the
          NTP servers on the system during write operation.
    - name: LinkLocalAutoConf
      type: enum[self.LinkLocalConf]
      description: >
          This indicates link local auto configuration on this ethernet
          interface and configured on this ethernet interface.
    - name: IPv6AcceptRA
      type: boolean
      description: >
          Boolean for accepting router advertisements in IPv6.
    - name: NICEnabled
      type: boolean
      description: >
          Boolean for to enabling or disabling the ethernet port
    - name: LinkUp
      type: boolean
      flags:
          - readonly
      description: >
          This property reports the link status for the NIC. The read-only
          boolean value is TRUE when the network cable is inserted, or there is
          a carrier signal. It is FALSE when the cable is unplugged, or the
          carrier signal is missing.
    - name: DefaultGateway
      type: string
      description: >
          Default IPv4 gateway of the ethernet interface.
      errors:
          - xyz.openbmc_project.Common.Error.InvalidArgument
    - name: DefaultGateway6
      type: string
      description: >
          Default IPv6 gateway of the ethernet interface. For supported address
          formats refer RFC 2373. Refer below man page for both v4 and v6
          address format details
          https://man7.org/linux/man-pages/man3/inet_pton.3.html
      errors:
          - xyz.openbmc_project.Common.Error.InvalidArgument

enumerations:
    - name: LinkLocalConf
      description: >
          Possible link local auto configuration values.
      values:
          - name: fallback
          - name: both
          - name: v4
          - name: v6
          - name: none

    - name: DHCPConf
      description: >
          High level definitions of available DHCP states. These definitions do
          not have a 1:1 correlation to the systemd.network configuration file
          contents. both: Enable IPv4 DHCP and IPv6 Stateful DHCP v4v6stateless:
          Enable IPv4 DHCP and IPv6 SLAAC v6: Enable IPv6 Stateful DHCP
          v6stateless: Enable IPv6 SLAAC v4: Enable IPv4 DHCP none: Disable DHCP
          for IPv4 and IPv6
      values:
          - name: both
          - name: v4v6stateless
          - name: v6
          - name: v6stateless
          - name: v4
          - name: none
