Merge "BUG-4565: queue stats error"
[openflowplugin.git] / extension / openflowplugin-extension-api / src / main / yang / openflowplugin-extension-general.yang
1 module openflowplugin-extension-general {
2     yang-version 1;
3
4     namespace "urn:opendaylight:openflowplugin:extension:general";
5     prefix "openflowplugin-extension-general";
6     
7     import yang-ext {prefix ext; revision-date "2013-07-09";}
8     import flow-node-inventory {prefix fni; revision-date 2013-08-19; }
9     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
10     import sal-flow {prefix sal-flow;revision-date "2013-08-19";}
11     import sal-group {prefix sal-group;revision-date "2013-09-18";}
12     import packet-processing {prefix sal-packet;revision-date "2013-07-09";}
13     import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";}
14     import opendaylight-group-statistics {prefix odl-group-stats;revision-date "2013-11-11";}
15
16
17     description 
18         "Everything for a vendor who want to implement openflow extensions.";
19
20     revision "2014-07-14" {
21         description "Initial revision";
22     }
23
24     identity extension-key {
25         description "Base identity for all extension keys.";
26     }
27
28     grouping general-extension-grouping {
29         leaf extension-key {
30             type identityref {
31                 base extension-key;
32             }
33         }
34         container extension {
35             description "A vendor has to augment this container.";
36         }
37     }
38     
39     grouping general-extension-list-grouping {
40         list extension-list {
41             key extension-key;
42             uses general-extension-grouping;
43         }
44     }
45     
46
47     
48
49     // MATCH augmentations
50     // RPCS
51     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match" {
52         ext:augment-identifier "general-aug-match-rpc-add-flow";
53         uses general-extension-list-grouping;
54     }
55     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:match" {
56         ext:augment-identifier "general-aug-match-rpc-remove-flow";
57         uses general-extension-list-grouping;
58     }
59     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:match" {
60         ext:augment-identifier "general-aug-match-rpc-update-flow-original";
61         uses general-extension-list-grouping;
62     }
63     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:match" {
64         ext:augment-identifier "general-aug-match-rpc-update-flow-updated";
65         uses general-extension-list-grouping;
66     }
67     
68     // DATA
69     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match" {
70         ext:augment-identifier "general-aug-match-nodes-node-table-flow";
71         uses general-extension-list-grouping;
72     }
73     
74     // NOTIFICATIONS
75     augment "/sal-flow:switch-flow-removed/sal-flow:match" {
76         ext:augment-identifier "general-aug-match-notif-switch-flow-removed";
77         uses general-extension-list-grouping;
78     }
79     augment "/sal-packet:packet-received/sal-packet:match" {
80         ext:augment-identifier "general-aug-match-notif-packet-in";
81         uses general-extension-list-grouping;
82     }
83     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:match" {
84         ext:augment-identifier "general-aug-match-notif-update-flow-stats";
85         uses general-extension-list-grouping;
86     }
87
88     
89     
90     
91     
92     // VENDOR EXAMPLE -- testing purposes -> remove later!
93     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match/extension-list/extension" {
94         ext:augment-identifier "vendor-xxx1";
95         uses vendor-xxx-grouping;
96     }
97     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match/extension-list/extension" {
98         ext:augment-identifier "vendor-xxx2";
99         uses vendor-xxx-grouping;
100     }
101     grouping vendor-xxx-grouping {
102         leaf dos-ekis {
103             type string;
104         }
105     }
106     // -----^^^^-----
107 }