\r
import ietf-inet-types {prefix inet;}\r
import ietf-yang-types {prefix yang;}\r
- \r
+\r
import openflow-types {prefix oft;}\r
import openflow-protocol {prefix ofproto;}\r
import openflow-action {prefix ofaction;}\r
import openflow-instruction {prefix ofinstruction;}\r
import openflow-extensible-match {prefix oxm;}\r
\r
-\r
revision "2013-10-02" {\r
- description "Initial model";\r
+ description "OpenFlow 1.3 - augments model";\r
}\r
+\r
// OFP_MATCH AUGMENTS\r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf port-number {\r
type oft:port-number;\r
}\r
}\r
-\r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf metadata {\r
type binary;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf mask {\r
type binary;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf mac-address {\r
type yang:mac-address;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf eth-type {\r
type oft:ether-type;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf vlan-vid {\r
type uint16;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf vlan-pcp {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf dscp {\r
type inet:dscp;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf ecn {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf protocol-number {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf ipv4-prefix {\r
type inet:ipv4-prefix;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf port {\r
type inet:port-number;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf icmpv4-type {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf icmpv4-code {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf op-code {\r
type uint16;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf ipv6-prefix {\r
type inet:ipv6-prefix;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf ipv6-flabel {\r
type inet:ipv6-flow-label;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf icmpv6-type {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf icmpv6-code {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf ipv6-address {\r
type inet:ipv6-address;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf mpls-label {\r
type uint32;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf tc {\r
type uint8;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf bos {\r
type boolean;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf isid {\r
type uint32;\r
}\r
}\r
- \r
augment "/oxm:oxm-container/oxm:match-entries" {\r
leaf pseudo-field {\r
type bits {\r
bit unseq {\r
description "Unexpected sequencing encountered.";\r
position 8;\r
- } \r
+ }\r
}\r
}\r
}\r
type oft:any-port-number;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf max-length {\r
type uint16;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf mpls-ttl {\r
type uint8;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf ethertype {\r
type oft:ether-type;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf queue-id {\r
type uint32;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf group-id {\r
type uint32;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf nw-ttl {\r
type uint8;\r
}\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
uses oxm:oxm-fields;\r
}\r
- \r
augment "/ofaction:actions-container/ofaction:action" {\r
leaf experimenter {\r
type uint32;\r
uses ofinstruction:instructions;\r
}\r
}\r
-\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
list next-table-ids {\r
leaf table-id {\r
}\r
}\r
}\r
-\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
list action-ids {\r
uses ofaction:action-header;\r
}\r
}\r
-\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
list oxm-ids {\r
uses oxm:oxm-fields;\r
}\r
}\r
-\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
leaf experimenter {\r
type uint32;\r
type binary;\r
}\r
}\r
- \r
+\r
// OFP_INSTRUCTION AUGMENTS\r
augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
leaf table-id {\r
type uint8;\r
}\r
}\r
- \r
augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
leaf metadata {\r
type binary;\r
type binary;\r
}\r
}\r
- \r
augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
list actions {\r
uses ofaction:action-header;\r
}\r
}\r
- \r
augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
leaf meter-id {\r
type uint32;\r
}\r
}\r
- \r
augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
leaf experimenter {\r
type uint32;\r
namespace "urn:opendaylight:openflow:protocol";\r
prefix "ofproto";\r
\r
-\r
import ietf-inet-types {prefix inet;}\r
import ietf-yang-types {prefix yang;}\r
\r
import openflow-instruction { prefix ofinstruction;}\r
import openflow-action {prefix ofaction;}\r
\r
-\r
-\r
revision "2013-07-31" {\r
- description "Initial model";\r
+ description "OpenFlow 1.3 - protocol objects model";\r
}\r
\r
// Generic Structures\r
-\r
grouping port {\r
// reference "ofp_port";\r
leaf port-no { \r
units "kbps"; \r
}\r
}\r
- \r
+\r
grouping match {\r
leaf type {\r
type identityref {\r
}\r
uses oxm:oxm-fields;\r
}\r
- \r
+\r
container table-features-properties-container {\r
uses table-features-properties;\r
}\r
- \r
+\r
grouping table-features-properties {\r
list table-feature-properties {\r
leaf type {\r
}\r
}\r
\r
-\r
/* Immutable messages. */\r
notification hello-message {\r
uses hello;\r
prefix "oft";
revision "2013-07-31" {
- //description "Initial model";
+ //description "OpenFlow 1.3 - common types model";
}
typedef port-number {
}
}
-
typedef port-features {
////description "Features of ports available in datapath.";
//reference "ofp_port_features";
}
identity instruction {
-
}
identity action {
-
}
typedef metadata {
type binary;
}
-
+
typedef table-id {
type uint32;
}
typedef group-id {
type uint32;
}
-
+
typedef ether-type {
type uint16;
}
-
+
typedef error-type {
type enumeration {
enum HELLO_FAILED {
}
}
}
-
+
typedef hello-element-type {
type enumeration {
enum VERSIONBITMAP {
}
}
}
-
+
typedef switch-config-flag {
/* Handling of IP fragments. */
type enumeration {
}
}
}
-
+
typedef flow-removed-reason {
/* flow removed */
type enumeration {
}
}
}
-
+
typedef port-reason {
/* port status */
type enumeration {
}
}
}
-
+
typedef flow-mod-command {
/* ofp_flow_mod_command */
type enumeration {
}
}
}
-
+
typedef flow-mod-flags {
/* ofp_flow_mod_flags */
type bits {
}
}
}
-
+
typedef group-mod-command {
/* ofp_group_mod_command */
type enumeration {
}
}
-
-
+
typedef group-type {
/* ofp_group_type */
type enumeration {
}
}
}
-
+
typedef multipart-request-flags {
description
"enum ofp_multipart_request_flags ";
}
}
}
-
+
typedef multipart-type {
/* ofp_multipart_type */
type enumeration {
}
}
}
-
+
typedef queue-property {
/* ofp_queue_properties */
type enumeration {
}
}
}
-
+
typedef controller-role {
/* ofp_controller_role */
type enumeration {
}
}
}
-
+
typedef packet-in-reason {
/* ofp_packet_in_reason */
type enumeration {
}
}
}
-
+
typedef meter-mod-command {
/* ofp_meter_mod_command */
type enumeration {
enum OFPMC_DELETE {
description "Delete specified meter. ";
}
-
}
}
-
+
typedef meter-flags {
/* ofp_meter_flags */
type bits {
}
}
}
-
+
typedef meter-band-type {
/* ofp_meter_band_type */
type enumeration {
value 65535; //0xFFFF
description "Experimenter meter band. ";
}
-
}
}
-
+
typedef table-config {
/* ofp_table_config */
type bits {
}
}
}
-
+
typedef table-features-prop-type {
type enumeration {
enum OFPTFPT_INSTRUCTIONS {
}
}
}
-
+
typedef group-types {
/* ofp_group_type */
type bits {
}
}
}
-
+
typedef group-capabilities {
/* ofp_group_capabilities */
type bits {
}
}
}
-
+
}