Flow removed switch event. Group and Meter update RPC
[controller.git] / opendaylight / md-sal / model / model-flow-service / src / main / yang / flow-service.yang
1 module sal-flow {
2     namespace "urn:opendaylight:flow:service";
3     prefix flow;
4
5     import yang-ext {prefix ext; revision-date "2013-07-09";}
6     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
7     import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
8     import opendaylight-flow-types {prefix types;revision-date "2013-10-26";}
9     import flow-capable-transaction {prefix tr;}
10
11     revision "2013-08-19" {
12         description "Initial revision of flow service";
13     }
14
15     typedef flow-table-ref {
16         type instance-identifier;
17     }
18     
19     grouping node-flow-removed {
20         leaf node {
21             ext:context-reference "inv:node-context";
22             type inv:node-ref;
23         }
24         leaf flow-table {
25             type flow-table-ref;
26         }
27         uses types:flow-mod-removed;
28     }
29     
30     grouping node-flow {
31         uses "inv:node-context-ref";
32
33         leaf flow-table {
34             type flow-table-ref;
35         }
36         uses types:flow;
37     }
38
39     /** Base configuration structure **/
40     grouping flow-update {
41         uses "inv:node-context-ref";
42
43         container original-flow {
44             uses types:flow;
45         }
46         container updated-flow {
47             uses types:flow;
48         }
49     }
50
51     rpc add-flow {
52         input {
53             uses node-flow;
54             uses tr:transaction-aware;            
55         }
56         output {
57             uses tr:transaction-aware;
58         }
59     }
60
61     rpc remove-flow {
62         input {
63             uses node-flow;
64             uses tr:transaction-aware;            
65         }
66         output {
67             uses tr:transaction-aware;
68         }
69     }
70
71     rpc update-flow {
72         input {
73             uses flow-update;
74             uses tr:transaction-aware;            
75         }
76         output {
77             uses tr:transaction-aware;
78         }
79     }
80
81     notification flow-added {
82         uses node-flow;
83     }
84
85     notification flow-updated {
86         uses node-flow;
87     }
88
89     notification flow-removed {
90         uses node-flow;
91     }
92     
93     notification switch-flow-removed {
94         uses node-flow-removed;
95     }
96 }