Merge "Fix for Bug#239"
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-action.yang
index 6b10162209e594d67fa7ebe7343efc3c7691f0ac..9cc200c4bca021713abc24355759d0eac6e65a72 100644 (file)
-module openflow-action {
+/*
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+ module openflow-action {
     namespace "urn:opendaylight:openflow:common:action";
     prefix "ofaction";
 
     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;
+        description " Output to switch port. (both OF v1.0 and v1.3)";
+        base oft:action-base;
     }
     identity copy_ttl_out {
         description " Copy TTL \"outwards\" -- from next-to-outermost to outermost ";
-        base oft:action;
+        base oft:action-base;
     }
     identity copy_ttl_in {
         description " Copy TTL \"inwards\" -- from outermost to next-to-outermost ";
-        base oft:action;
+        base oft:action-base;
     }
     identity set_mpls_ttl {
         description " MPLS TTL ";
-        base oft:action;
+        base oft:action-base;
     }
     identity dec_mpls_ttl {
         description " Decrement MPLS TTL ";
-        base oft:action;
+        base oft:action-base;
     }
     identity push_vlan {
         description " Push a new VLAN tag ";
-        base oft:action;
+        base oft:action-base;
     }
     identity pop_vlan {
         description " Pop the outer VLAN tag ";
-        base oft:action;
+        base oft:action-base;
     }
     identity push_mpls {
         description " Push a new MPLS tag ";
-        base oft:action;
+        base oft:action-base;
     }
     identity pop_mpls {
         description " Pop the outer MPLS tag ";
-        base oft:action;
+        base oft:action-base;
     }
     identity set_queue {
         description " Set queue id when outputting to a port ";
-        base oft:action;
+        base oft:action-base;
     }
     identity group {
         description " Apply group. ";
-        base oft:action;
+        base oft:action-base;
     }
     identity set_nw_ttl {
         description " IP TTL. ";
-        base oft:action;
+        base oft:action-base;
     }
     identity dec_nw_ttl {
         description " Decrement IP TTL. ";
-        base oft:action;
+        base oft:action-base;
     }
     identity set_field {
         description " Set a header field using OXM TLV format. ";
-        base oft:action;
+        base oft:action-base;
     }
     identity push_pbb {
         description " Push a new PBB service tag (I-TAG) ";
-        base oft:action;
+        base oft:action-base;
     }
     identity pop_pbb {
         description " Pop the outer PBB service tag (I-TAG) ";
-        base oft:action;
+        base oft:action-base;
     }
     identity experimenter {
         description "";
-        base oft:action;
+        base oft:action-base;
     }
-
+    
     container actions-container {
-        uses action-header;
+        uses actions-grouping;
     }
-
-    grouping action-header {
-        container action {
+    
+    grouping actions-grouping {
+        list action {
+            config false;
             leaf type {
                 type identityref {
-                    base oft:action;
+                    base oft:action-base;
                 }
             }
         }
     }
+    
+    // OF1.0 structures
+    identity set_vlan_vid {
+        description "Set the 802.1q VLAN id (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_vlan_pcp {
+        description "Set the 802.1q priority (OF v1.0).";
+        base oft:action-base;
+    }
+    identity strip_vlan {
+        description "Strip the 802.1q header (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_dl_src {
+        description "Ethernet source address (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_dl_dst {
+        description "Ethernet destination address (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_nw_src {
+        description "IP source address (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_nw_dst {
+        description "IP destination address (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_nw_tos {
+        description "IP ToS (DSCP field, 6 bits) (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_tp_src {
+        description "TCP/UDP source port (OF v1.0).";
+        base oft:action-base;
+    }
+    identity set_tp_dst {
+        description "TCP/UDP destination port (OF v1.0).";
+        base oft:action-base;
+    }
+    identity enqueue {
+        description "Output to queue (OF v1.0).";
+        base oft:action-base;
+    }
 
-}
\ No newline at end of file
+}