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.";
}
}
}
}