description: >
    This defines network tunneling parameters.

# TODO Fix it through https://github.com/openbmc/openbmc/issues/1438
# creatable: true

properties:
    - name: InterfaceName
      type: string
      description: >
          Name of the interface.
    - name: Local
      type: string
      description: >
          Local endpoint of tunnel.
    - name: Remote
      type: string
      description: >
          Remote endpoint of tunnel.
    - name: TOS
      type: uint32
      description: >
          The Type Of Service byte value for a tunnel interface.
    - name: TTL
      type: uint32
      description: >
          Number of hops that a packet is permitted to travel.
    - name: DiscoverPathMTU
      type: boolean
      description: >
          When true, enables Path MTU Discovery on the tunnel.
    - name: IPv6FlowLabel
      type: uint32
      description: >
          Configures the 20-bit flow label. It can be configured to a value
          in the range 0–0xFFFFF, or be set to "inherit", in which case the
          original flowlabel is used.
    - name: CopyDSCP
      type: boolean
      description: >
          When true, the Differentiated Service Code Point
          (DSCP) field will be copied to the inner header from outer header
          during the decapsulation of an IPv6 tunnel packet.
    - name: EncapsulationLimit
      type: uint32
      description: >
          The Tunnel Encapsulation Limit option specifies how many
          additional levels of encapsulation are permitted to be prepended
          to the packet.
    - name: Key
      type: string
      description: >
          This parameter specifies the same key to use in both
          directions (InputKey= and OutputKey=).
    - name: InputKey
      type: string
      description: >
          This parameter specifies the key to use for input.
    - name: OutputKey
      type: string
      description: >
          This parameter specifies the key to use for output.
    - name: Mode
      type: enum[self.IPv6Tunnel]
      description: >
          An "ip6tnl" tunnel can be in one of three modes.
      default: any

enumerations:
    - name: IPv6Tunnel
      description: >
          Possible IPv6 tunnel types.
      values:
          - name: ip6ip6
            description: >
                IPv6 over IPv6.
          - name: ipip6
            description: >
                IPv4 over IPv6.
          - name: any
            description: >
                Either ip6ip6 or ipip6.
