namespace "urn:opendaylight:flow:types";
prefix flow;
- import ietf-inet-types {prefix inet;}
- import opendaylight-match-types {prefix match;}
- import ietf-yang-types {prefix yang;}
- import opendaylight-l2-types {prefix l2t;}
+ import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
+ import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
+ import opendaylight-l2-types {prefix l2t; revision-date "2013-08-27";}
+ import opendaylight-match-types {prefix match; revision-date 2013-10-26";}
+
- revision "2013-08-19" {
+ revision "2013-10-26" {
description "Initial revision of flow service";
}
type int32;
}
+
+ grouping action-list {
+ list action {
+ key "order";
+ leaf order {
+ type int32;
+ }
+ uses action;
+ }
+ }
+
grouping address {
choice address {
case ipv4 {
}
}
+ grouping instruction-list {
+ list instruction {
+ key "order";
+ leaf order {
+ type int32;
+ }
+ uses instruction;
+ }
+ }
+
+ grouping instruction {
+ choice instruction {
+ case go-to-table {
+ leaf table_id {
+ type uint8;
+ }
+ }
+
+ case write-metadata {
+ leaf metadata {
+ type uint64;
+ }
+
+ leaf metadata-mask {
+ type uint64;
+ }
+ }
+
+ case write-actions {
+ uses action-list;
+ }
+
+ case apply-actions {
+ uses action-list;
+ }
+
+ case clear-actions {
+ uses action-list;
+ }
+
+ case meter {
+ leaf meter {
+ type string;
+ }
+ }
+ }
+ }
+
grouping action {
choice action {
case output-action {
leaf-list output-node-connector {
type inet:uri;
}
+
+ leaf max-length {
+ type uint16 {
+ range "0..65294";
+ }
+ }
}
case controller-action {
case set-queue-action {
leaf queue {
- type string; // TODO: define queues
+ type string;
}
}
case pop-mpls-action {
leaf ethernet-type {
- type uint16; // TODO: define ethertype type
+ type uint16; // TODO: define ethertype type
}
}
}
case push-pbb-action {
-
+ leaf ethernet-type {
+ type uint16; // TODO: define ethertype type
+ }
}
+ case pop-pbb-action {
+
+ }
+
case push-mpls-action {
-
+ leaf ethernet-type {
+ type uint16; // TODO: define ethertype type
+ }
}
-
+
+ case dec-mpls-ttl {
+ }
+
+ case dec-nw-ttl {
+ }
+
case drop-action {
}
// leaf header { //header = [TPID + TCI]
// }
}
+
+ case copy-ttl-out {
+ }
+
+ case copy-ttl-in {
+ }
+
case set-dl-dst-action {
leaf address {
type yang:mac-address;
type yang:mac-address;
}
}
+ case group-action {
+ leaf group {
+ type string;
+ }
+ }
+
case set-dl-type-action {
leaf dl-type {
type l2t:ether-type;
}
}
+
case set-next-hop-action {
uses address;
}
+
case set-nw-dst-action {
uses address;
}
+
case set-nw-src-action{
uses address;
}
+
case set-nw-tos-action {
leaf tos {
type int32;
type vlan-cfi;
}
}
+
case set-vlan-id-action {
leaf vlan-id {
type l2t:vlan-id;
}
}
+
case set-vlan-pcp-action {
leaf vlan-pcp {
type l2t:vlan-pcp;
}
}
- case sw-path-action {
- }
-
+ case sw-path-action {
+ }
}
}
container match {
uses match:match;
}
- list action {
- key "order";
- leaf order {
- type int32;
- }
- uses action;
+
+ container instructions {
+ uses instruction-list;
}
+
leaf priority {
type uint16;
}
}
leaf table_id {
- type uint64;
+ type uint8;
}
leaf buffer_id {