interfaces:
  GigabitEthernet1/0/0:
    sub-interfaces:
      100:
        description: "This sub-int is invalid because it has both dot1q and dot1ad"
        encapsulation:
          dot1q: 1000
          dot1ad: 1000
      101:
        description: "This sub-int is invalid because it has no outer dot1q and dot1ad"
        encapsulation:
          inner-dot1q: 1000

      102:
        description: "This sub-int is has the same encap as 103"
      103:
        description: "This sub-int is has the same encap as 102"
        encapsulation:
          dot1q: 102
          exact-match: True

  GigabitEthernet1/0/1:
    mtu: 9216
    lcp: "e1"
    addresses: [ "192.0.2.1/30", "2001:db8:1::1/64" ]
    sub-interfaces:
      100:
        lcp: "foo"
        addresses: [ "10.0.0.1/24", "10.0.0.2/24", "2001:db8:2::1/64" ]
      101:
        encapsulation:
          dot1ad: 100
          exact-match: True
        lcp: "e1.100"
        addresses: [ "10.0.2.1/30" ]
      102:
        encapsulation:
          dot1ad: 100
          inner-dot1q: 100
          exact-match: True
        lcp: "e1.100.100"
      200:
        mtu: 9000
        encapsulation:
          dot1q: 1000
      201:
        encapsulation:
          dot1q: 1000
          inner-dot1q: 1234
      202:
        encapsulation:
          dot1ad: 1000
      203:
        encapsulation:
          dot1ad: 1000
          inner-dot1q: 1000
          exact-match: True

  GigabitEthernet2/0/0:
    description: "This interface has no sub-ints"
    lcp: "e2"

  GigabitEthernet3/0/0:
    l2xc: GigabitEthernet3/0/1
  GigabitEthernet3/0/1:
    l2xc: GigabitEthernet3/0/0

  GigabitEthernet3/0/2:
    sub-interfaces:
      100:
        description: "This interface connects one-way to Gi3/0/2.200. Strange, but valid."
        l2xc: GigabitEthernet3/0/2.200
      200:
        description: "This interface does not connect back to Gi3/0/2.100. Strange, but valid."