Blob Blame History Raw
module mod8 {
    prefix abc;
    namespace "urn:cesnet:mod8";

    typedef ip-address {
        type string {
            pattern '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+';
            length "7..15";
        }
    }

    list interface {
        key "name";
        leaf name {
            type string;
        }
        leaf admin-status {
            type admin-status;
            default up;
        }
        list addres {
            status obsolete;
            key "ip";
            leaf ip {
                type ip-address;
                status obsolete;
            }
        }
    }

    container default-address {
        leaf ifname {
            type leafref {
                path "../../interface/name";
            }
        }
        leaf address {
            type leafref {
                path "../../interface[name = current()/../ifname]"
                   + "/addres/ip";
            }
        }
    }

    typedef admin-status {
        type enumeration {
            enum up {
                value 1;
                description "Ready to pass packets.";
            }
            enum down {
                value 2;
                description "Not ready to pass packets and not in some test mode.";
            }
            enum testing {
                value 3;
                description "In some test mode.";
            }
        }
    }
}