remove checkstyle dependency from commons
[netvirt.git] / ipv6service / api / src / main / yang / ipv6-ndutil.yang
1 module ipv6-ndutil {
2     yang-version 1;
3     namespace "urn:opendaylight:netvirt:ipv6service:ipv6util";
4     prefix "ipv6-ndutil";
5
6     import ietf-interfaces {
7         prefix if;
8     }
9
10     import ietf-inet-types {
11         prefix inet; revision-date 2013-07-15;
12     }
13
14     import ietf-yang-types {
15         prefix yang;
16     }
17
18     revision "2017-02-10" {
19         description "IPv6 Neighbor Discovery Util module";
20     }
21
22
23     grouping interfaces {
24         list interface-address {
25            key interface;
26            leaf interface {
27                 type leafref {
28                     path "/if:interfaces/if:interface/if:name";
29                 }
30            }
31            leaf src-ip-address {
32                 type inet:ipv6-address;
33            }
34            leaf src-mac-address {
35                 type yang:phys-address;
36             }
37         }
38     }
39
40
41     rpc send-neighbor-solicitation {
42         input {
43             leaf target-ip-address {
44                 type inet:ipv6-address;
45             }
46             uses interfaces;
47         }
48     }
49
50     rpc send-neighbor-solicitation-to-of-group {
51         input {
52             leaf source-ipv6 {
53                 type inet:ipv6-address;
54                 mandatory "true";
55             }
56             leaf target-ip-address {
57                 type inet:ipv6-address;
58                 mandatory "true";
59             }
60             leaf source-ll-address {
61                type yang:mac-address;
62                mandatory "true";
63             }
64             leaf dp-id {
65                type uint64;
66                mandatory "true";
67             }
68             leaf of-group-id {
69                type uint32;
70                mandatory "true";
71                description "NS will be sent to the specified OpenFlow group ID.";
72             }
73         }
74     }
75
76     notification na-received {
77         leaf source-mac {
78             type yang:mac-address;
79         }
80         leaf destination-mac {
81             type yang:mac-address;
82         }
83         leaf source-ipv6 {
84             type inet:ipv6-address;
85         }
86         leaf destination-ipv6 {
87             type inet:ipv6-address;
88         }
89         leaf target-address {
90             type inet:ipv6-address;
91         }
92         leaf target-ll-address {
93             type yang:mac-address;
94         }
95         leaf of-table-id {
96             type uint32;
97         }
98         leaf metadata {
99             type uint64;
100         }
101         leaf interface {
102             type leafref {
103                 path "/if:interfaces/if:interface/if:name";
104             }
105         }
106     }
107 }