module infix-interfaces {
  yang-version 1.1;
  namespace "urn:infix:interfaces:ns:yang:1.0";
  prefix infix-if;

  import infix-if-type {
    prefix infixift;
  }
  import ietf-interfaces {
    prefix if;
  }

  include infix-if-base;
  include infix-if-bridge;
  include infix-if-container;
  include infix-if-veth;
  include infix-if-vlan;

  organization "KernelKit";
  contact      "kernelkit@googlegroups.com";
  description  "Linux bridge and lag extensions for ietf-interfaces.";

  revision 2024-01-15 {
    description "Add support for container ports (CNI networks).";
    reference "internal";
  }

  revision 2023-09-19 {
    description "Add deviation to allow setting phys-address on links.";
    reference "internal";
  }

  revision 2023-08-21 {
    description "Move port augment to submodule for infix-if-bridge and
                 infix-if-lag (later) which reference it.

                 Add deviation to if:type to limit the iana-if-types to
                 only those supported, also reduce list for CLI <TAB>.

                 Lint: move include and import to match canonical order.";
    reference "internal";
  }

  revision 2023-06-05 {
    description "Initial revision.";
    reference "internal";
  }

  /*
   * Features
   */

  feature containers {
    description "Containers is an optional build-time feature in Infix.";
  }

  /*
   * Data Nodes
   */

  deviation "/if:interfaces/if:interface/if:type" {
    deviate replace {
      type identityref {
        base infixift:infix-interface-type;
      }
    }
  }

  deviation "/if:interfaces/if:interface/if:phys-address" {
    deviate replace {
      config true;
    }
  }

  deviation "/if:interfaces-state" {
    deviate not-supported;
    description "Deprecated";
  }
}
