added arputil module
[vpnservice.git] / arputil / arputil-api / src / main / yang / odl-arputil.yang
1 module odl-arputil {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:arputil";
4     prefix "odl-arputil";
5
6     import ietf-interfaces {
7         prefix if;
8     }
9
10     import ietf-inet-types {
11         prefix inet;
12     }
13
14     import ietf-yang-types {
15         prefix yang;
16     }
17
18     import opendaylight-inventory {
19         prefix inv; revision-date 2013-08-19;
20     }
21
22     import config {
23         prefix config; revision-date 2013-04-05;
24     }
25
26     revision "2015-11-26" {
27         description "Arp Util module";
28     }
29
30
31     grouping interfaces {
32         list interface-address {
33            key interface;
34            leaf interface {
35                 type leafref {
36                     path "/if:interfaces/if:interface/if:name";
37                 }
38            }
39            leaf ip-address {
40                 type inet:ip-address;
41            }
42         }
43     }
44
45
46     rpc get-mac {
47         input {
48             leaf ipaddress {
49                 type inet:ip-address;
50             }
51             uses interfaces;
52         }
53         output {
54             leaf macaddress {
55                 type yang:phys-address;
56             }
57         }
58     }
59
60     rpc send-arp-request {
61           input {
62               leaf ipaddress {
63                   type inet:ip-address;
64               }
65               uses interfaces;
66           }
67     }
68
69     rpc send-arp-response {
70           input {
71               leaf ipaddress {
72                   type inet:ip-address;
73               }
74               leaf macaddress {
75                   type yang:phys-address;
76               }
77               leaf interface {
78                   type leafref {
79                       path "/if:interfaces/if:interface/if:name";
80                   }
81               }
82               leaf src-ip-address {
83                   type inet:ip-address;
84               }
85           }
86     }
87
88
89     notification mac-changed {
90          leaf ipaddress {
91              type inet:ip-address;
92          }
93          leaf macaddress {
94              type yang:phys-address;
95          }
96          leaf interface {
97              type leafref {
98                 path "/if:interfaces/if:interface/if:name";
99              }
100          }
101     }
102
103     notification arp-request-received {
104          leaf dst-ipaddress {
105              type inet:ip-address;
106          }
107          leaf src-ipaddress {
108              type inet:ip-address;
109          }
110          leaf src-mac {
111              type yang:phys-address;
112          }
113          leaf of-table-id {
114              type uint32;
115          }
116          leaf interface {
117              type leafref {
118                 path "/if:interfaces/if:interface/if:name";
119             }
120          }
121     }
122
123     notification arp-response-received {
124          leaf ipaddress {
125              type inet:ip-address;
126          }
127          leaf macaddress {
128              type yang:phys-address;
129          }
130          leaf of-table-id {
131              type uint32;
132          }
133          leaf interface {
134              type leafref {
135                 path "/if:interfaces/if:interface/if:name";
136             }
137          }
138     }
139 }