Merge remote-tracking branch 'liblldp/master'
[openflowplugin.git] / model / model-flow-service / src / main / yang / sal-async-config.yang
1 module sal-async-config {
2     namespace "urn:opendaylight:async-config:service";
3     prefix async-config;
4
5     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
6     import opendaylight-port-types {prefix port-type;revision-date "2013-09-25";}
7     import opendaylight-flow-types  { prefix flow-types;  revision-date "2013-10-26"; }
8     import openflow-protocol { prefix ofproto; revision-date "2013-07-31"; }
9     import packet-processing  { prefix packet-processing;  revision-date "2013-07-09"; }
10
11     description "Asynchronous configuration message.";
12
13     revision "2017-06-19" {
14         description "Initial revision of asynchronous configuration service.";
15     }
16
17     typedef packet-in-mask {
18         type bits {
19             bit NO_MATCH;
20             bit ACTION;
21             bit INVALID_TTL;
22         }
23     }
24
25     typedef port-status-mask {
26         description "Be careful when modifying this configuration, as this can impact lldp-speaker";
27         type bits {
28             bit ADD;
29             bit DELETE;
30             bit UPDATE;
31         }
32     }
33
34     typedef flow-removed-mask {
35         description "Be careful when modifying this configuration, as this can impact FRM.";
36         type bits {
37             bit IDLE_TIMEOUT;
38             bit HARD_TIMEOUT;
39             bit DELETE;
40             bit GROUP_DELETE;
41         }
42      }
43
44     grouping async-config {
45         container packet-in-mask {
46             leaf master-mask {
47                 type packet-in-mask;
48             }
49
50             leaf slave-mask {
51                 type packet-in-mask;
52             }
53         }
54
55         container port-status-mask {
56             leaf master-mask {
57                 type port-status-mask;
58             }
59
60             leaf slave-mask {
61                 type port-status-mask;
62             }
63         }
64
65         container flow-removed-mask {
66             leaf master-mask {
67                 type flow-removed-mask;
68             }
69
70             leaf slave-mask {
71                 type flow-removed-mask;
72             }
73         }
74     }
75
76     container async-config-message {
77         uses ofproto:ofHeader;
78         uses async-config;
79     }
80
81     rpc set-async {
82         description "Controller to switch message set configuration.";
83
84         input {
85             uses "inv:node-context-ref";
86             uses async-config;
87         }
88     }
89
90     rpc get-async {
91         description "Controller to switch message get configuration.";
92
93         input {
94             uses "inv:node-context-ref";
95         }
96
97         output {
98             uses async-config;
99         }
100     }
101
102 }