blob: 2996283ff9409fa1e2d40ea5c1fa8a4b92d3c8e2 [file] [log] [blame]
module fpc {
yang-version 1;
namespace "urn:onos:params:xml:ns:yang:fpc";
prefix "fpc";
import ietf-dmm-fpcagent { prefix fpcagent; }
import ietf-dmm-fpcbase { prefix fpcbase; }
import ietf-inet-types { prefix inet; }
import ietf-dmm-fpc-pmip { prefix fpc-pmip; }
import ietf-dmm-threegpp { prefix threegpp; }
revision "2015-01-05" {
description "Initial revision of fpc model";
}
// grouping zmq-dpn-config {
// leaf topic {
// type string;
// }
// }
// augment "/fpcagent:tenants/fpcagent:tenant/fpcagent:fpc-topology/fpcagent:dpns" {
// uses zmq-dpn-config;
// }
// New DPN Type
identity zmq-dpn-control-protocol {
base "fpcbase:fpc-dpn-control-protocol";
}
typedef membership-match-type {
type enumeration {
enum eq { value 0; }
enum super { value 1; }
enum psuper { value 2; }
enum sub { value 3; }
enum psub { value 4; }
enum overlap { value 5; }
enum nonoverlap { value 6; }
}
}
grouping membership-value {
leaf policy-membership {
type string;
}
}
augment "/fpcagent:tenants/fpcagent:tenant/fpcagent:fpc-policy/fpcagent:descriptors/fpcagent:descriptor-value" {
case tft-plusplus {
uses fpc:membership-value;
leaf membership-match-type {
type fpc:membership-match-type;
}
}
}
augment "/fpcagent:tenants/fpcagent:tenant/fpcagent:fpc-mobility/fpcagent:contexts" {
uses fpc:membership-value;
}
augment "/fpcagent:configure/fpcagent:input/fpcagent:op_body/fpcagent:create_or_update/fpcagent:contexts" {
uses fpc:membership-value;
}
augment "/fpcagent:configure-bundles/fpcagent:input/fpcagent:bundles/fpcagent:op_body/fpcagent:create_or_update/fpcagent:contexts" {
uses fpc:membership-value;
}
augment "/fpcagent:configure/fpcagent:output/fpcagent:result-type/fpcagent:common-success/fpcagent:contexts" {
uses fpc:membership-value;
}
augment "/fpcagent:configure-bundles/fpcagent:output/fpcagent:bundles/fpcagent:result-type/fpcagent:common-success/fpcagent:contexts" {
uses fpc:membership-value;
}
// TODO - Add Notification Augments for membership-value
container tx-stats {
config false;
leaf last-ts {
type string;
}
leaf total-txs {
type uint64;
}
list states {
key state;
leaf state {
type string;
}
leaf entries {
type uint64;
}
container total-time {
leaf mantissa {
type uint64;
}
leaf exponent {
type int32;
}
}
container average-time {
leaf mantissa {
type uint64;
}
leaf exponent {
type int32;
}
}
}
}
grouping connection-config {
leaf client-id {
type fpcagent:client-identifier;
}
leaf tenant-id {
type fpcbase:fpc-identity;
}
leaf-list supported-features {
type string;
}
leaf endpoint-uri {
type inet:uri;
}
leaf supports-oknotify-model {
type boolean;
}
leaf supports-ack-model {
type boolean;
}
}
container connection-info {
list connections {
config false;
key client-id;
leaf client-id {
type string;
}
container requested-info {
uses fpc:connection-config;
}
container assigned-info {
uses fpc:connection-config;
}
}
}
rpc register-client {
input {
uses fpc:connection-config;
}
output {
uses fpc:connection-config;
}
}
rpc deregister-client {
input {
leaf client-id {
type fpcagent:client-identifier;
}
}
output {
leaf client-id {
type fpcagent:client-identifier;
}
}
}
}