blob: 0fa3ba17804220c286cd690ccfcddb617919c8be [file] [log] [blame]
module flow-classifier {
yang-version 1;
namespace "sfc.flowclassifier";
prefix "flow-classifier";
import "port-pair" {
prefix "port-pair";
}
organization "ON-LAB";
description "This submodule defines for flow classifier.";
revision "2016-05-24" {
description "Initial revision.";
}
typedef flow-classifier-id {
type port-pair:uuid;
}
typedef IpPrefix {
type string;
}
typedef VirtualPortId {
type string;
}
grouping flow-classifier {
container flow-classifier {
leaf id {
type flow-classifier-id;
}
leaf tenant-id {
type port-pair:tenant-id;
}
leaf name {
type string;
}
leaf description {
type string;
}
leaf etherType {
type string;
}
leaf protocol {
type string;
}
leaf priority {
type int32;
}
leaf minSrcPortRange {
type int32;
}
leaf maxSrcPortRange {
type int32;
}
leaf minDstPortRange {
type int32;
}
leaf maxDstPortRange {
type int32;
}
leaf srcIpPrefix {
type IpPrefix;
}
leaf dstIpPrefix {
type IpPrefix;
}
leaf srcPort {
type VirtualPortId;
}
leaf dstPort {
type VirtualPortId;
}
}
}
rpc exists {
input {
leaf id {
type flow-classifier-id;
}
}
output {
leaf is-present {
type boolean;
}
}
}
rpc get-flow-classifier-count {
output {
leaf count {
type int32;
}
}
}
rpc get-flow-classifier {
input {
leaf id {
type flow-classifier-id;
}
}
output {
uses flow-classifier;
}
}
rpc create-flow-classifier {
input {
uses flow-classifier;
}
output {
leaf is-created {
type boolean;
}
}
}
rpc update-flow-classifier {
input {
uses flow-classifier;
}
output {
leaf is-updated {
type boolean;
}
}
}
rpc remove-flow-classifier {
input {
leaf id {
type flow-classifier-id;
}
}
output {
leaf is-removed {
type boolean;
}
}
}
notification Flow-Classifier-Put {
uses flow-classifier;
}
notification Flow-Classifier-Delete {
uses flow-classifier;
}
notification Flow-Classifier-Update {
uses flow-classifier;
}
}