import openflow-types { prefix oft; }
revision "2013-07-31" {
- description "Initial model";
+ description "OpenFlow 1.3 - action model";
}
- /*
identity output {
description " Output to switch port. ";
base oft:action;
}
identity copy_ttl_out {
- description " Copy TTL "outwards" -- from next-to-outermost to outermost ";
+ description " Copy TTL \"outwards\" -- from next-to-outermost to outermost ";
base oft:action;
}
identity copy_ttl_in {
- description " Copy TTL "inwards" -- from outermost to next-to-outermost ";
+ description " Copy TTL \"inwards\" -- from outermost to next-to-outermost ";
base oft:action;
}
identity set_mpls_ttl {
description "";
base oft:action;
}
- */
- grouping output {
- description
- "Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
- When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
- number of bytes to send. A 'max_len' of zero means no bytes of the
- packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
- the packet is not buffered and the complete packet is to be sent to
- the controller.";
- leaf port {
- type oft:any-port-number;
- }
- leaf max-length {
- description "Maximum packet length to be send to controller.";
- type union {
- type uint16 {
- range "0..65294"; // 0..0xff0e
- }
- type enumeration {
- enum no-buffer {
- description
- "indicates that no buffering should be
- applied and the whole packet is to be
- sent to the controller";
- value 65535; //0xffff
- }
- }
- }
- }
- }
-
- grouping group {
- leaf group {
- type oft:group-id; // define action group-id type;
- }
- }
-
- grouping set-queue {
- leaf queue {
- type oft:queue-id;
- }
- }
-
- grouping set-mpls-ttl {
- leaf mpls_ttl {
- type uint8;
- }
- }
-
- grouping set-nw-ttl {
- leaf nw_ttl {
- type uint8;
- }
- }
-
- grouping push-pbb {
-
- }
-
- grouping push-mpls {
+ container actions-container {
+ uses action-header;
}
- grouping push-vlan {
-
- }
-
- grouping pop-mpls {
- leaf ethertype {
- type uint16; // TODO: define ethertype type
- }
- }
-
- grouping set-field {
- container field {
- // TODO: figure definition
- }
- }
-
-
grouping action-header {
- leaf type {
- type action-type;
- }
- }
-
- typedef action-type {
- /* ofp_action_type */
- type enumeration {
- enum OUTPUT {
- description "Output to switch port.";
- }
- enum SET_VLAN_VID {
- description "Set the 802.1q VLAN id.";
- }
- enum SET_VLAN_PCP {
- description "Set the 802.1q priority.";
- }
- enum STRIP_VLAN {
- description "Strip the 802.1q header.";
- }
- enum SET_DL_SRC {
- description "Ethernet source address.";
- }
- enum SET_DL_DST {
- description "Ethernet destination address.";
- }
- enum SET_NW_SRC {
- description "IP source address.";
- }
- enum SET_NW_DST {
- description "IP destination address.";
- }
- enum SET_TP_SRC {
- description "TCP/UDP source port.";
- }
- enum SET_TP_DST {
- description "TCP/UDP destination port.";
- }
- enum OFPAT_VENDOR {
- value 65535; // 0xffff
+ container action {
+ leaf type {
+ type identityref {
+ base oft:action;
+ }
}
}
}
+
}
\ No newline at end of file