Bug 7680: leaked routes not advertised to DC-GW
[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   <reference id="entityOwnershipService"
28              interface="org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService" />
29
30   <odl:rpc-service id="idManagerService"
31                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
32   <odl:rpc-service id="itmRpcService"
33                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService" />
34   <odl:rpc-service id="odlInterfaceRpcService"
35                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
36   <odl:rpc-service id="odlArputilService"
37                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
38   <odl:rpc-service id="packetProcessingService"
39                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService" />
40   <odl:rpc-service id="lockManagerService"
41                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService" />
42   <odl:rpc-service id="alivenessManager"
43                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.AlivenessMonitorService" />
44
45   <bean id="dpnInVpnChangeListener"
46         class="org.opendaylight.netvirt.vpnmanager.DpnInVpnChangeListener">
47     <argument ref="dataBroker" />
48     <argument ref="mdsalUtils" />
49   </bean>
50   <service ref="dpnInVpnChangeListener" odl:type="default"
51            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.OdlL3vpnListener" />
52   <odl:notification-listener ref="dpnInVpnChangeListener" />
53
54   <bean id="vpnOpDataSyncer" class="org.opendaylight.netvirt.vpnmanager.VpnOpDataSyncer"/>
55
56   <bean id="vpnFootprintService" class="org.opendaylight.netvirt.vpnmanager.VpnFootprintService">
57     <argument ref="dataBroker" />
58     <argument ref="fibManager" />
59     <argument ref="odlInterfaceRpcService" />
60     <argument ref="notificationPublishService" />
61     <argument ref="vpnOpDataSyncer" />
62   </bean>
63
64   <bean id="vpnInterfaceManager"
65         class="org.opendaylight.netvirt.vpnmanager.VpnInterfaceManager"
66         init-method="start" destroy-method="close">
67     <argument ref="dataBroker" />
68     <argument ref="bgpmanager" />
69     <argument ref="odlArputilService" />
70     <argument ref="idManagerService" />
71     <argument ref="mdsalUtils" />
72     <argument ref="fibManager" />
73     <argument ref="odlInterfaceRpcService" />
74     <argument ref="vpnFootprintService" />
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     <argument ref="entityOwnershipService" />
111   </bean>
112
113   <bean id="subnetMacHandler"
114         class="org.opendaylight.netvirt.vpnmanager.SubnetMacHandler"
115         init-method="start" destroy-method="close">
116     <argument ref="dataBroker" />
117     <argument ref="mdsalUtils" />
118   </bean>
119
120   <bean id="subnetRoutePacketInHandler"
121         class="org.opendaylight.netvirt.vpnmanager.SubnetRoutePacketInHandler">
122     <argument ref="dataBroker" />
123     <argument ref="packetProcessingService" />
124   </bean>
125   <service ref="subnetRoutePacketInHandler" odl:type="default"
126            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingListener" />
127   <odl:notification-listener ref="subnetRoutePacketInHandler" />
128
129   <odl:clustered-app-config id="vpnConfig"
130                             binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.config.rev161130.VpnConfig">
131   </odl:clustered-app-config>
132
133   <bean id="arpNotificationHandler"
134         class="org.opendaylight.netvirt.vpnmanager.ArpNotificationHandler">
135     <argument ref="dataBroker" />
136     <argument ref="idManagerService" />
137     <argument ref="interfaceManager"/>
138     <argument ref="vpnConfig"/>
139   </bean>
140   <service ref="arpNotificationHandler" odl:type="default"
141            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilListener" />
142   <odl:notification-listener ref="arpNotificationHandler" />
143
144   <bean id="subnetRouteInterfaceStateChangeListener"
145         class="org.opendaylight.netvirt.vpnmanager.SubnetRouteInterfaceStateChangeListener"
146         init-method="start" destroy-method="close">
147     <argument ref="dataBroker" />
148     <argument ref="vpnInterfaceManager" />
149     <argument ref="vpnSubnetRouteHandler" />
150   </bean>
151
152   <bean id="vpnSubnetRouteHandler"
153         class="org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler">
154     <argument ref="dataBroker" />
155     <argument ref="subnetOpDpnManager" />
156     <argument ref="bgpmanager" />
157     <argument ref="vpnInterfaceManager" />
158     <argument ref="idManagerService" />
159     <argument ref="lockManagerService" />
160     <argument ref="vpnOpDataSyncer"/>
161   </bean>
162   <service ref="vpnSubnetRouteHandler" odl:type="default"
163            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronvpnListener" />
164   <odl:notification-listener ref="vpnSubnetRouteHandler" />
165
166   <bean id="tunnelInterfaceStateListener"
167         class="org.opendaylight.netvirt.vpnmanager.TunnelInterfaceStateListener"
168         init-method="start" destroy-method="close">
169     <argument ref="dataBroker" />
170     <argument ref="bgpmanager" />
171     <argument ref="fibManager" />
172     <argument ref="itmRpcService" />
173     <argument ref="odlInterfaceRpcService"/>
174     <argument ref="vpnInterfaceManager" />
175     <argument ref="vpnSubnetRouteHandler" />
176   </bean>
177
178   <bean id="subnetOpDpnManager" class="org.opendaylight.netvirt.vpnmanager.SubnetOpDpnManager">
179     <argument ref="dataBroker" />
180   </bean>
181
182   <bean id="vpnManagerImpl" class="org.opendaylight.netvirt.vpnmanager.VpnManagerImpl"
183         init-method="start">
184     <argument ref="dataBroker" />
185     <argument ref="idManagerService" />
186     <argument ref="vpnInstanceListener" />
187     <argument ref="vpnInterfaceManager" />
188     <argument ref="mdsalUtils" />
189     <argument ref="vpnFootprintService" />
190     <argument ref="odlInterfaceRpcService" />
191     <argument ref="elanService" />
192   </bean>
193   <service ref="vpnManagerImpl"
194            interface="org.opendaylight.netvirt.vpnmanager.api.IVpnManager" />
195
196   <bean id="vpnInstanceListener"
197         class="org.opendaylight.netvirt.vpnmanager.VpnInstanceListener"
198         init-method="start" destroy-method="close">
199     <argument ref="dataBroker" />
200     <argument ref="bgpmanager" />
201     <argument ref="idManagerService" />
202     <argument ref="vpnInterfaceManager" />
203     <argument ref="fibManager" />
204     <argument ref="vpnOpDataSyncer" />
205   </bean>
206
207   <bean id="fibEntriesListener" class="org.opendaylight.netvirt.vpnmanager.FibEntriesListener"
208         init-method="start" destroy-method="close">
209     <argument ref="dataBroker" />
210     <argument ref="vpnInstanceListener" />
211   </bean>
212
213   <odl:rpc-implementation ref="vpnRpcServiceImpl" />
214   <bean id="vpnRpcServiceImpl"
215         class="org.opendaylight.netvirt.vpnmanager.VpnRpcServiceImpl">
216     <argument ref="dataBroker" />
217     <argument ref="idManagerService" />
218     <argument ref="vpnInterfaceManager" />
219     <argument ref="fibManager" />
220     <argument ref="bgpmanager" />
221   </bean>
222   <service ref="vpnRpcServiceImpl"
223            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.rpc.rev160201.VpnRpcService" />
224
225   <bean id="interVpnLinkService"
226         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.IVpnLinkServiceImpl"
227         init-method="start" destroy-method="close">
228     <argument ref="dataBroker" />
229     <argument ref="idManagerService" />
230     <argument ref="bgpmanager" />
231     <argument ref="fibManager" />
232   </bean>
233   <service ref="interVpnLinkService"
234            interface="org.opendaylight.netvirt.vpnmanager.api.intervpnlink.IVpnLinkService"/>
235
236   <bean id="interVpnLinkLocator"
237         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkLocator" >
238     <argument ref="dataBroker" />
239   </bean>
240
241   <bean id="interVpnLinkListener"
242         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkListener"
243         init-method="start" destroy-method="close">
244     <argument ref="dataBroker" />
245     <argument ref="idManagerService" />
246     <argument ref="mdsalUtils" />
247     <argument ref="bgpmanager" />
248     <argument ref="fibManager" />
249     <argument ref="notificationPublishService" />
250     <argument ref="interVpnLinkService" />
251     <argument ref="interVpnLinkLocator" />
252     <argument ref="vpnFootprintService" />
253     <argument ref="vpnOpDataSyncer" />
254   </bean>
255
256   <bean id="interVpnLinkStateListener"
257         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkStateListener"
258         init-method="start" destroy-method="close">
259      <argument ref="dataBroker" />
260      <argument ref="interVpnLinkService" />
261   </bean>
262
263   <bean id="interVpnLinkNodeListener"
264         class="org.opendaylight.netvirt.vpnmanager.intervpnlink.InterVpnLinkNodeListener"
265         init-method="start" destroy-method="close">
266     <argument ref="dataBroker" />
267     <argument ref="mdsalUtils" />
268     <argument ref="vpnFootprintService" />
269   </bean>
270
271   <bean id="tunnelEndPointChangeListener"
272         class="org.opendaylight.netvirt.vpnmanager.TunnelEndPointChangeListener"
273         init-method="start" destroy-method="close">
274     <argument ref="dataBroker" />
275     <argument ref="vpnInterfaceManager" />
276   </bean>
277
278   <bean id="VpnNodeListener"
279         class="org.opendaylight.netvirt.vpnmanager.VpnNodeListener"
280         init-method="start" destroy-method="close">
281     <argument ref="dataBroker" />
282     <argument ref="mdsalUtils" />
283     <argument ref="idManagerService" />
284   </bean>
285
286   <bean id="vpnElanInterfaceChangeListener"
287         class="org.opendaylight.netvirt.vpnmanager.VpnElanInterfaceChangeListener"
288         init-method="start" destroy-method="close">
289     <argument ref="dataBroker" />
290     <argument ref="elanService" />
291   </bean>
292
293   <bean id="vpnOpInstanceCacheManager"
294         class="org.opendaylight.netvirt.vpnmanager.cache.listeners.VpnOpInstanceCacheManager"
295         init-method="start" destroy-method="close">
296     <argument ref="dataBroker" />
297   </bean>
298
299   <bean id="centralizedSwitchProvider"
300         class="org.opendaylight.netvirt.vpnmanager.CentralizedSwitchProvider">
301         <argument ref="dataBroker" />
302   </bean>
303   <service ref="centralizedSwitchProvider"
304            interface="org.opendaylight.netvirt.vpnmanager.api.ICentralizedSwitchProvider" />
305
306   <bean id="centralizedSwitchChangeListener"
307         class="org.opendaylight.netvirt.vpnmanager.CentralizedSwitchChangeListener"
308         init-method="init" destroy-method="close">
309         <argument ref="dataBroker" />
310         <argument ref="vpnManager" />
311   </bean>
312
313   <bean id="l3vpnRegistry"
314         class="org.opendaylight.netvirt.vpnmanager.populator.registry.L3vpnRegistry"
315         init-method="init" destroy-method="close">
316   </bean>
317
318   <bean id="l3vpnOverMplsGrePopulator"
319         class="org.opendaylight.netvirt.vpnmanager.populator.impl.L3vpnOverMplsGrePopulator"
320         init-method="init" destroy-method="close">
321     <argument ref="dataBroker" />
322     <argument ref="vpnInterfaceManager" />
323     <argument ref="bgpmanager" />
324     <argument ref="fibManager" />
325     <argument ref="idManagerService" />
326   </bean>
327
328   <bean id="l3vpnOverVxlanPopulator"
329         class="org.opendaylight.netvirt.vpnmanager.populator.impl.L3vpnOverVxlanPopulator"
330         init-method="init" destroy-method="close">
331     <argument ref="dataBroker" />
332     <argument ref="vpnInterfaceManager" />
333     <argument ref="bgpmanager" />
334     <argument ref="fibManager" />
335   </bean>
336 </blueprint>