7280 - ARP Responder fix for Floating Ips (extension of bug 6726)
[netvirt.git] / vpnservice / vpnmanager / vpnmanager-impl / src / main / resources / org / opendaylight / blueprint / vpnmanager.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
3            xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
4            odl:use-default-for-reference-types="true">
5
6   <reference id="dataBroker"
7              interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
8              odl:type="default" />
9   <reference id="mdsalUtils"
10              interface="org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager" />
11   <reference id="interfaceManager"
12              interface="org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager" />
13   <reference id="notificationPublishService"
14              interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" />
15   <reference id="bgpmanager"
16              interface="org.opendaylight.netvirt.bgpmanager.api.IBgpManager" />
17   <reference id="elanService"
18              interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
19   <reference id="fibManager"
20              interface="org.opendaylight.netvirt.fibmanager.api.IFibManager" />
21   <reference id="neutronVpnService"
22              interface="org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager"
23              availability="optional" />
24   <reference id="vpnManager"
25              interface="org.opendaylight.netvirt.vpnmanager.api.IVpnManager"
26              availability="optional" />
27
28   <odl:rpc-service id="idManagerService"
29                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
30   <odl:rpc-service id="itmRpcService"
31                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService" />
32   <odl:rpc-service id="odlInterfaceRpcService"
33                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
34   <odl:rpc-service id="odlArputilService"
35                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
36   <odl:rpc-service id="packetProcessingService"
37                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService" />
38   <odl:rpc-service id="lockManagerService"
39                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService" />
40   <odl:rpc-service id="alivenessManager"
41                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.AlivenessMonitorService" />
42
43   <bean id="dpnInVpnChangeListener"
44         class="org.opendaylight.netvirt.vpnmanager.DpnInVpnChangeListener">
45     <argument ref="dataBroker" />
46     <argument ref="mdsalUtils" />
47   </bean>
48   <service ref="dpnInVpnChangeListener" odl:type="default"
49            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.OdlL3vpnListener" />
50   <odl:notification-listener ref="dpnInVpnChangeListener" />
51
52   <bean id="vpnOpDataSyncer" class="org.opendaylight.netvirt.vpnmanager.VpnOpDataSyncer"/>
53
54   <bean id="vpnFootprintService" class="org.opendaylight.netvirt.vpnmanager.VpnFootprintService">
55     <argument ref="dataBroker" />
56     <argument ref="fibManager" />
57     <argument ref="odlInterfaceRpcService" />
58     <argument ref="notificationPublishService" />
59     <argument ref="vpnOpDataSyncer" />
60   </bean>
61
62   <bean id="vpnInterfaceManager"
63         class="org.opendaylight.netvirt.vpnmanager.VpnInterfaceManager"
64         init-method="start" destroy-method="close">
65     <argument ref="dataBroker" />
66     <argument ref="bgpmanager" />
67     <argument ref="odlArputilService" />
68     <argument ref="idManagerService" />
69     <argument ref="mdsalUtils" />
70     <argument ref="fibManager" />
71     <argument ref="odlInterfaceRpcService" />
72     <argument ref="vpnFootprintService" />
73     <argument ref="vpnOpDataSyncer" />
74     <argument ref="neutronVpnService" />
75     <argument ref="interfaceManager" />
76     <argument ref="vpnManager" />
77   </bean>
78
79   <bean id="interfaceStateChangeListener"
80         class="org.opendaylight.netvirt.vpnmanager.InterfaceStateChangeListener"
81         init-method="start" destroy-method="close">
82     <argument ref="dataBroker" />
83     <argument ref="vpnInterfaceManager" />
84   </bean>
85
86   <bean id="vpnInterfaceOpListener"
87         class="org.opendaylight.netvirt.vpnmanager.VpnInterfaceOpListener"
88         init-method="start" destroy-method="close">
89     <argument ref="dataBroker" />
90     <argument ref="vpnInterfaceManager" />
91     <argument ref="vpnFootprintService" />
92   </bean>
93
94   <bean id="arpMonitorEventListener"
95         class="org.opendaylight.netvirt.vpnmanager.ArpMonitorEventListener">
96     <argument ref="dataBroker" />
97     <argument ref="alivenessManager" />
98   </bean>
99   <odl:notification-listener ref="arpMonitorEventListener" />
100
101   <bean id="arpMonitoringHandler"
102         class="org.opendaylight.netvirt.vpnmanager.ArpMonitoringHandler"
103         init-method="start" destroy-method="close">
104     <argument ref="dataBroker" />
105     <argument ref="odlInterfaceRpcService" />
106     <argument ref="mdsalUtils" />
107     <argument ref="alivenessManager" />
108     <argument ref="neutronVpnService" />
109     <argument ref="interfaceManager" />
110   </bean>
111
112   <bean id="subnetRoutePacketInHandler"
113         class="org.opendaylight.netvirt.vpnmanager.SubnetRoutePacketInHandler">
114     <argument ref="dataBroker" />
115     <argument ref="packetProcessingService" />
116   </bean>
117   <service ref="subnetRoutePacketInHandler" odl:type="default"
118            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingListener" />
119   <odl:notification-listener ref="subnetRoutePacketInHandler" />
120
121   <odl:clustered-app-config id="vpnConfig"
122                             binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.config.rev161130.VpnConfig">
123   </odl:clustered-app-config>
124
125   <bean id="arpNotificationHandler"
126         class="org.opendaylight.netvirt.vpnmanager.ArpNotificationHandler">
127     <argument ref="dataBroker" />
128     <argument ref="vpnInterfaceManager" />
129     <argument ref="idManagerService" />
130     <argument ref="odlArputilService" />
131     <argument ref="arpMonitoringHandler" />
132     <argument ref="odlInterfaceRpcService" />
133     <argument ref="interfaceManager"/>
134     <argument ref="vpnConfig"/>
135   </bean>
136   <service ref="arpNotificationHandler" odl:type="default"
137            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilListener" />
138   <odl:notification-listener ref="arpNotificationHandler" />
139
140   <bean id="subnetRouteInterfaceStateChangeListener"
141         class="org.opendaylight.netvirt.vpnmanager.SubnetRouteInterfaceStateChangeListener"
142         init-method="start" destroy-method="close">
143     <argument ref="dataBroker" />
144     <argument ref="vpnInterfaceManager" />
145     <argument ref="vpnSubnetRouteHandler" />
146   </bean>
147
148   <bean id="vpnSubnetRouteHandler"
149         class="org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler">
150     <argument ref="dataBroker" />
151     <argument ref="subnetOpDpnManager" />
152     <argument ref="bgpmanager" />
153     <argument ref="vpnInterfaceManager" />
154     <argument ref="idManagerService" />
155     <argument ref="lockManagerService" />
156     <argument ref="vpnOpDataSyncer"/>
157   </bean>
158   <service ref="vpnSubnetRouteHandler" odl:type="default"
159            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronvpnListener" />
160   <odl:notification-listener ref="vpnSubnetRouteHandler" />
161
162   <bean id="tunnelInterfaceStateListener"
163         class="org.opendaylight.netvirt.vpnmanager.TunnelInterfaceStateListener"
164         init-method="start" destroy-method="close">
165     <argument ref="dataBroker" />
166     <argument ref="bgpmanager" />
167     <argument ref="fibManager" />
168     <argument ref="itmRpcService" />
169     <argument ref="odlInterfaceRpcService"/>
170     <argument ref="vpnInterfaceManager" />
171     <argument ref="vpnSubnetRouteHandler" />
172   </bean>
173
174   <bean id="subnetOpDpnManager" class="org.opendaylight.netvirt.vpnmanager.SubnetOpDpnManager">
175     <argument ref="dataBroker" />
176   </bean>
177
178   <bean id="vpnManagerImpl" class="org.opendaylight.netvirt.vpnmanager.VpnManagerImpl"
179         init-method="start">
180     <argument ref="dataBroker" />
181     <argument ref="idManagerService" />
182     <argument ref="vpnInstanceListener" />
183     <argument ref="vpnInterfaceManager" />
184     <argument ref="mdsalUtils" />
185     <argument ref="vpnFootprintService" />
186     <argument ref="odlInterfaceRpcService" />
187     <argument ref="elanService" />
188   </bean>
189   <service ref="vpnManagerImpl"
190            interface="org.opendaylight.netvirt.vpnmanager.api.IVpnManager" />
191
192   <bean id="vpnInstanceListener"
193         class="org.opendaylight.netvirt.vpnmanager.VpnInstanceListener"
194         init-method="start" destroy-method="close">
195     <argument ref="dataBroker" />
196     <argument ref="bgpmanager" />
197     <argument ref="idManagerService" />
198     <argument ref="vpnInterfaceManager" />
199     <argument ref="fibManager" />
200     <argument ref="vpnOpDataSyncer" />
201   </bean>
202
203   <bean id="fibEntriesListener" class="org.opendaylight.netvirt.vpnmanager.FibEntriesListener"
204         init-method="start" destroy-method="close">
205     <argument ref="dataBroker" />
206     <argument ref="vpnInstanceListener" />
207   </bean>
208
209   <odl:rpc-implementation ref="vpnRpcServiceImpl" />
210   <bean id="vpnRpcServiceImpl"
211         class="org.opendaylight.netvirt.vpnmanager.VpnRpcServiceImpl">
212     <argument ref="dataBroker" />
213     <argument ref="idManagerService" />
214     <argument ref="vpnInterfaceManager" />
215     <argument ref="fibManager" />
216     <argument ref="bgpmanager" />
217   </bean>
218   <service ref="vpnRpcServiceImpl"
219            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.rpc.rev160201.VpnRpcService" />
220
221   <bean id="interVpnLinkService"
222         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkService">
223     <argument ref="dataBroker" />
224   </bean>
225
226   <bean id="interVpnLinkListener"
227         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkListener"
228         init-method="start" destroy-method="close">
229     <argument ref="dataBroker" />
230     <argument ref="idManagerService" />
231     <argument ref="mdsalUtils" />
232     <argument ref="bgpmanager" />
233     <argument ref="fibManager" />
234     <argument ref="notificationPublishService" />
235     <argument ref="interVpnLinkService" />
236     <argument ref="vpnFootprintService" />
237     <argument ref="vpnOpDataSyncer" />
238   </bean>
239
240   <bean id="interVpnLinkNodeListener"
241         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkNodeListener"
242         init-method="start" destroy-method="close">
243     <argument ref="dataBroker" />
244     <argument ref="mdsalUtils" />
245     <argument ref="vpnFootprintService" />
246   </bean>
247
248   <bean id="tunnelEndPointChangeListener"
249         class="org.opendaylight.netvirt.vpnmanager.TunnelEndPointChangeListener"
250         init-method="start" destroy-method="close">
251     <argument ref="dataBroker" />
252     <argument ref="vpnInterfaceManager" />
253   </bean>
254
255   <bean id="VpnNodeListener"
256         class="org.opendaylight.netvirt.vpnmanager.VpnNodeListener"
257         init-method="start" destroy-method="close">
258     <argument ref="dataBroker" />
259     <argument ref="mdsalUtils" />
260     <argument ref="idManagerService" />
261   </bean>
262
263   <bean id="vpnElanInterfaceChangeListener"
264         class="org.opendaylight.netvirt.vpnmanager.VpnElanInterfaceChangeListener"
265         init-method="start" destroy-method="close">
266     <argument ref="dataBroker" />
267     <argument ref="elanService" />
268   </bean>
269
270   <bean id="vpnOpInstanceCacheManager"
271         class="org.opendaylight.netvirt.vpnmanager.cache.listeners.VpnOpInstanceCacheManager"
272         init-method="start" destroy-method="close">
273     <argument ref="dataBroker" />
274   </bean>
275
276   <bean id="centralizedSwitchProvider"
277         class="org.opendaylight.netvirt.vpnmanager.CentralizedSwitchProvider">
278         <argument ref="dataBroker" />
279   </bean>
280   <service ref="centralizedSwitchProvider"
281            interface="org.opendaylight.netvirt.vpnmanager.api.ICentralizedSwitchProvider" />
282
283   <bean id="centralizedSwitchChangeListener"
284         class="org.opendaylight.netvirt.vpnmanager.CentralizedSwitchChangeListener"
285         init-method="init" destroy-method="close">
286         <argument ref="dataBroker" />
287         <argument ref="vpnManager" />
288   </bean>
289 </blueprint>