Update MRI projects for Aluminium
[openflowplugin.git] / openflowjava / openflow-protocol-api / src / main / yang / openflow-instruction.yang
1 /*
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9  module openflow-instruction {
10     namespace "urn:opendaylight:openflow:common:instruction";
11     prefix "ofinstruction";
12
13     import openflow-types { prefix oft; }
14     import openflow-action {prefix ofaction;}
15
16     revision "2013-07-31" {
17         description "#NOT_PUBLISHED# OpenFlow 1.3 - instruction model";
18     }
19
20     container instruction-container {
21         uses instruction-grouping;
22     }
23
24     grouping instructions-grouping {
25         list instruction {
26             config false;
27             ordered-by user;
28             uses instruction-grouping;
29             leaf experimenter-id {
30                 type oft:experimenter-id;
31             }
32         }
33     }
34
35     grouping instruction-grouping {
36         choice instruction-choice {
37             case goto-table-case {
38                 container goto-table {
39                     leaf table-id {
40                         type uint8;
41                     }
42                 }
43             }
44             case write-metadata-case {
45                 container write-metadata {
46                     leaf metadata {
47                         type binary;
48                     }
49                     leaf metadata-mask {
50                         type binary;
51                     }
52                 }
53             }
54             case write-actions-case {
55                 container write-actions {
56                     uses ofaction:actions-grouping;
57                 }
58             }
59             case apply-actions-case {
60                 container apply-actions {
61                     uses ofaction:actions-grouping;
62                 }
63             }
64             case clear-actions-case {
65                 // empty instruction
66             }
67             case meter-case {
68                 container meter {
69                     leaf meter-id {
70                         type uint32;
71                     }
72                 }
73             }
74         }
75     }
76 }