Merge "Added meter, action, group, flow models, mask and transactions support."
[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 {
20         uses "inv:node-context-ref";
21
22         leaf flow-table {
23             type flow-table-ref;
24         }
25         uses types:flow;
26     }
27
28     /** Base configuration structure **/
29     grouping flow-update {
30         uses "inv:node-context-ref";
31
32         container original-flow {
33             uses types:flow;
34         }
35         container updated-flow {
36             uses types:flow;
37         }
38     }
39
40     rpc add-flow {
41         input {
42             uses node-flow;
43             uses tr:transaction-aware;            
44         }
45         output {
46             uses tr:transaction-aware;
47         }
48     }
49
50     rpc remove-flow {
51         input {
52             uses node-flow;
53             uses tr:transaction-aware;            
54         }
55         output {
56             uses tr:transaction-aware;
57         }
58     }
59
60     rpc update-flow {
61         input {
62             uses flow-update;
63             uses tr:transaction-aware;            
64         }
65         output {
66             uses tr:transaction-aware;
67         }
68     }
69
70     notification flow-added {
71         uses node-flow;
72     }
73
74     notification flow-updated {
75         uses node-flow;
76     }
77
78     notification flow-removed {
79         uses node-flow;
80     }
81 }