Infrautils DiagStatus Integration For ELAN
[netvirt.git] / vpnservice / elanmanager / elanmanager-impl / src / main / resources / org / opendaylight / blueprint / elanmanager.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="pingpong" />
9   <reference id="notificationService"
10     interface="org.opendaylight.controller.md.sal.binding.api.NotificationService" />
11   <reference id="entityOwnershipService"
12     interface="org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService" />
13   <reference id="mdsalUtils"
14     interface="org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager" />
15   <reference id="interfaceManager"
16     interface="org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager" />
17   <reference id="vpnManager"
18              interface="org.opendaylight.netvirt.vpnmanager.api.IVpnManager" availability="optional"/>
19   <reference id="bgpManager"
20              interface="org.opendaylight.netvirt.bgpmanager.api.IBgpManager" availability="optional"/>
21   <reference id="neutronvpnManagerImpl"
22              interface="org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager" availability="optional"/>
23   <reference id="diagStatusService"
24              interface="org.opendaylight.infrautils.diagstatus.DiagStatusService" />
25
26   <odl:rpc-service id="odlInterfaceRpcService"
27     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
28   <odl:rpc-service id="itmRpcService"
29     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService" />
30   <odl:rpc-service id="salFlowService"
31     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService" />
32   <odl:rpc-service id="idManagerService"
33     interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
34
35   <odl:clustered-app-config id="elanConfig"
36     binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfig"
37     default-config-file-name="netvirt-elanmanager-config.xml"
38     update-strategy="none">
39   </odl:clustered-app-config>
40
41   <bean id="entityOwnershipUtils" class="org.opendaylight.genius.utils.clustering.EntityOwnershipUtils">
42     <argument ref="entityOwnershipService" />
43   </bean>
44
45   <bean id="elanBridgeManager"
46     class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
47     <argument ref="dataBroker" />
48     <argument ref="elanConfig" />
49     <argument ref="interfaceManager" />
50   </bean>
51
52   <bean id="elanForwardingEntriesHandler"
53     class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
54     <argument ref="dataBroker" />
55   </bean>
56
57   <bean id="elanInterfaceManager"
58     class="org.opendaylight.netvirt.elan.internal.ElanInterfaceManager"
59     init-method="init" destroy-method="close">
60     <argument ref="dataBroker" />
61     <argument ref="idManagerService" />
62     <argument ref="mdsalUtils" />
63     <argument ref="interfaceManager" />
64     <argument ref="elanForwardingEntriesHandler" />
65     <argument ref="neutronvpnManagerImpl"/>
66     <argument ref="elanItmUtils" />
67     <argument ref="elanEtreeUtils" />
68     <argument ref="elanL2GatewayUtils" />
69   </bean>
70
71   <bean id="elanInstanceManager"
72     class="org.opendaylight.netvirt.elan.internal.ElanInstanceManager"
73     init-method="init" destroy-method="close">
74     <argument ref="dataBroker" />
75     <argument ref="idManagerService" />
76     <argument ref="elanInterfaceManager" />
77     <argument ref="interfaceManager" />
78   </bean>
79
80   <bean id="elanNodeListener"
81     class="org.opendaylight.netvirt.elan.internal.ElanNodeListener"
82     init-method="init" destroy-method="close">
83     <argument ref="dataBroker" />
84     <argument ref="mdsalUtils" />
85     <argument ref="elanConfig" />
86     <argument ref="idManagerService" />
87   </bean>
88
89   <bean id="elanPacketInHandler"
90     class="org.opendaylight.netvirt.elan.internal.ElanPacketInHandler">
91     <argument ref="dataBroker" />
92     <argument ref="interfaceManager" />
93     <argument ref="elanUtils" />
94     <argument ref="evpnUtils" />
95     <argument ref="elanL2GatewayUtils" />
96   </bean>
97   <odl:notification-listener ref="elanPacketInHandler" />
98
99   <bean id="elanSmacFlowEventListener"
100     class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
101     <argument ref="dataBroker" />
102     <argument ref="interfaceManager" />
103     <argument ref="elanUtils" />
104   </bean>
105   <odl:notification-listener ref="elanSmacFlowEventListener" />
106
107   <bean id="elanExtnTepListener"
108         class="org.opendaylight.netvirt.elan.internal.ElanExtnTepListener"
109         init-method="init" destroy-method="close">
110     <argument ref="dataBroker" />
111     <argument ref="elanInterfaceManager" />
112   </bean>
113
114   <bean id="elanItmUtils" class="org.opendaylight.netvirt.elan.utils.ElanItmUtils">
115     <argument ref="dataBroker" />
116     <argument ref="itmRpcService" />
117     <argument ref="odlInterfaceRpcService" />
118   </bean>
119
120   <bean id="elanDmacUtils" class="org.opendaylight.netvirt.elan.utils.ElanDmacUtils">
121     <argument ref="dataBroker" />
122     <argument ref="elanItmUtils" />
123     <argument ref="elanEtreeUtils" />
124   </bean>
125
126   <bean id="elanEtreeUtils" class="org.opendaylight.netvirt.elan.utils.ElanEtreeUtils">
127     <argument ref="dataBroker" />
128   </bean>
129
130   <bean id="elanL2GatewayMulticastUtils" class="org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils">
131     <argument ref="dataBroker" />
132     <argument ref="elanInstanceManager" />
133     <argument ref="elanInterfaceManager" />
134     <argument ref="elanItmUtils" />
135   </bean>
136
137   <bean id="elanUtils" class="org.opendaylight.netvirt.elan.utils.ElanUtils">
138     <argument ref="dataBroker" />
139     <argument ref="mdsalUtils" />
140     <argument ref="elanInstanceManager" />
141     <argument ref="odlInterfaceRpcService" />
142     <argument ref="itmRpcService" />
143     <argument ref="interfaceManager" />
144     <argument ref="elanConfig" />
145     <argument ref="elanL2GatewayMulticastUtils" />
146     <argument ref="elanEtreeUtils" />
147     <argument ref="elanItmUtils" />
148   </bean>
149
150   <bean id="elanStatisticsImpl"
151     class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
152     <argument ref="dataBroker" />
153     <argument ref="interfaceManager" />
154   </bean>
155   <odl:rpc-implementation ref="elanStatisticsImpl" />
156
157   <bean id="elanInterfaceStateChangeListener"
158     class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateChangeListener"
159     init-method="init" destroy-method="close">
160     <argument ref="dataBroker" />
161     <argument ref="elanInterfaceManager" />
162   </bean>
163
164   <bean id="elanInterfaceConfigListener"
165     class="org.opendaylight.netvirt.elan.internal.ElanInterfaceConfigListener"
166     init-method="init" destroy-method="close">
167     <argument ref="dataBroker" />
168     <argument ref="elanInterfaceManager" />
169   </bean>
170
171   <bean id="elanTunnelInterfaceStateListener"
172     class="org.opendaylight.netvirt.elan.internal.ElanTunnelInterfaceStateListener"
173     init-method="init" destroy-method="close">
174     <argument ref="dataBroker" />
175     <argument ref="elanInterfaceManager" />
176     <argument ref="elanUtils" />
177   </bean>
178
179   <bean id="elanInterfaceStateClusterListener"
180     class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateClusteredListener"
181     init-method="init" destroy-method="close">
182     <argument ref="dataBroker" />
183     <argument ref="elanInterfaceManager" />
184     <argument ref="elanUtils" />
185     <argument ref="entityOwnershipUtils" />
186   </bean>
187
188   <bean id="elanDpnInterfaceClusteredListener"
189     class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfaceClusteredListener"
190     init-method="init" destroy-method="close">
191     <argument ref="dataBroker" />
192     <argument ref="entityOwnershipUtils" />
193     <argument ref="elanUtils" />
194     <argument ref="elanL2GatewayUtils" />
195   </bean>
196
197   <bean id="elanVpnPortIpToPortListener"
198     class="org.opendaylight.netvirt.elan.internal.ElanLearntVpnVipToPortListener"
199     init-method="init" destroy-method="close">
200     <argument ref="dataBroker" />
201     <argument ref="interfaceManager" />
202     <argument ref="elanUtils" />
203   </bean>
204
205   <bean id="elanService"
206     class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
207     init-method="init">
208     <argument ref="idManagerService" />
209     <argument ref="interfaceManager" />
210     <argument ref="elanInstanceManager" />
211     <argument ref="elanBridgeManager" />
212     <argument ref="dataBroker" />
213     <argument ref="elanInterfaceManager" />
214     <argument ref="elanStatusMonitor" />
215     <argument ref="elanUtils" />
216     <argument ref="entityOwnershipService" />
217   </bean>
218   <service ref="elanService" odl:type="default"
219     interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
220   <service ref="elanBridgeManager" odl:type="default"
221     interface="org.opendaylight.netvirt.elanmanager.api.IElanBridgeManager" />
222
223   <bean id="cacheElanInterfaceListener"
224     class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
225     init-method="init" destroy-method="close">
226     <argument ref="dataBroker" />
227   </bean>
228
229   <bean id="cacheElanInstanceListener"
230     class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
231     init-method="init" destroy-method="close">
232     <argument ref="dataBroker" />
233   </bean>
234
235   <!--<bean id="hwvtepLocalUcastMacListener"
236     class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepLocalUcastMacListener"
237     init-method="init" destroy-method="close">
238     <argument ref="dataBroker" />
239     <argument ref="elanL2GatewayUtils" />
240   </bean>-->
241
242   <bean id="elanStatusMonitor"
243     class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
244     init-method="init" destroy-method="close" />
245
246   <bean id="l2GatewayConnectionListener"
247     class="org.opendaylight.netvirt.elan.l2gw.listeners.L2GatewayConnectionListener"
248     init-method="init" destroy-method="close">
249     <argument ref="dataBroker" />
250     <argument ref="l2GatewayConnectionUtils" />
251   </bean>
252
253   <bean id="l2GatewayConnectionUtils" class="org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils">
254     <argument ref="dataBroker" />
255     <argument ref="elanInstanceManager" />
256     <argument ref="entityOwnershipUtils" />
257     <argument ref="elanUtils" />
258     <argument ref="elanL2GatewayUtils" />
259   </bean>
260
261   <bean id="elanL2GatewayUtils" class="org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils"
262         destroy-method="close">
263     <argument ref="dataBroker" />
264     <argument ref="elanDmacUtils" />
265     <argument ref="elanItmUtils" />
266     <argument ref="entityOwnershipUtils" />
267     <argument ref="odlInterfaceRpcService" />
268   </bean>
269
270   <bean id="hwvtepPhysicalSwitchListener"
271     class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepPhysicalSwitchListener"
272     init-method="init" destroy-method="close">
273     <argument ref="dataBroker" />
274     <argument ref="itmRpcService" />
275     <argument ref="entityOwnershipUtils" />
276     <argument ref="l2GatewayConnectionUtils" />
277     <argument ref="l2gwService" />
278     <argument ref="l2gatewayUtils" />
279     <argument ref="haOpClusteredListener" />
280   </bean>
281
282   <bean id="hwvtepTerminationPointListener"
283     class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepTerminationPointListener"
284     destroy-method="close">
285     <argument ref="dataBroker" />
286     <argument ref="elanL2GatewayUtils" />
287     <argument ref="entityOwnershipUtils" />
288   </bean>
289
290   <bean id="haEventHandler"
291     class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
292     <argument ref="dataBroker" />
293   </bean>
294
295   <bean id="hAListeners"
296     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
297     <argument ref="dataBroker" />
298   </bean>
299
300   <bean id="haConfigNodeListener"
301     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
302     <argument ref="dataBroker" />
303     <argument ref="haEventHandler" />
304   </bean>
305
306   <bean id="haOpClusteredListener"
307     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
308     <argument ref="dataBroker" />
309   </bean>
310
311   <bean id="haOpNodeListener"
312     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
313     <argument ref="dataBroker" />
314     <argument ref="haEventHandler" />
315   </bean>
316
317   <bean id="ElanOvsdbNodeListener"
318     class="org.opendaylight.netvirt.elan.internal.ElanOvsdbNodeListener"
319     init-method="init" destroy-method="close">
320     <argument ref="dataBroker" />
321     <argument ref="elanConfig" />
322     <argument ref="elanBridgeManager" />
323     <argument ref="elanService" />
324     <argument ref = "transportZoneNotificationUtil"/>
325   </bean>
326
327   <bean id="elanGroupListener"
328     class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanGroupListener">
329     <argument ref="elanInterfaceManager" />
330     <argument ref="dataBroker" />
331     <argument ref="entityOwnershipUtils" />
332     <argument ref="elanInstanceManager" />
333   </bean>
334
335   <bean id="transportZoneNotificationUtil"
336     class="org.opendaylight.netvirt.elan.utils.TransportZoneNotificationUtil">
337     <argument ref="dataBroker" />
338     <argument ref="interfaceManager" />
339     <argument ref="elanService" />
340     <argument ref="elanConfig" />
341     <argument ref="elanBridgeManager" />
342   </bean>
343
344   <bean id="ElanDpnToTransportZoneListener"
345     class="org.opendaylight.netvirt.elan.internal.ElanDpnToTransportZoneListener"
346     init-method="start" destroy-method="close">
347     <argument ref="dataBroker" />
348     <argument ref="interfaceManager" />
349     <argument ref="elanConfig" />
350     <argument ref="transportZoneNotificationUtil" />
351   </bean>
352
353   <bean id="VpnDpnToTransportZoneListener"
354     class="org.opendaylight.netvirt.elan.internal.VpnDpnToTransportZoneListener"
355     init-method="start" destroy-method="close">
356     <argument ref="dataBroker" />
357     <argument ref="interfaceManager" />
358     <argument ref="elanConfig" />
359     <argument ref="transportZoneNotificationUtil" />
360   </bean>
361   <bean id="l2gwService"
362         class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
363         init-method="init">
364     <argument ref="dataBroker" />
365     <argument ref="entityOwnershipUtils" />
366     <argument ref="itmRpcService" />
367     <argument ref="l2GatewayConnectionUtils" />
368   </bean>
369   <service ref="l2gwService" odl:type="default"
370            interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
371
372   <bean id="elanInstanceListener"
373         class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanInstanceListener"
374         init-method="init" destroy-method="close">
375     <argument ref="dataBroker" />
376     <argument ref="entityOwnershipUtils" />
377   </bean>
378
379   <bean id="evpnUtils" class="org.opendaylight.netvirt.elan.evpn.utils.EvpnUtils"
380         init-method="init" destroy-method="close">
381     <argument ref="dataBroker" />
382     <argument ref="interfaceManager" />
383     <argument ref="elanUtils" />
384     <argument ref="itmRpcService" />
385     <property name="vpnManager" ref="vpnManager"/>
386     <property name="bgpManager" ref="bgpManager"/>
387   </bean>
388
389   <bean id="evpnMacVrfUtils"
390         class="org.opendaylight.netvirt.elan.evpn.utils.EvpnMacVrfUtils">
391     <argument ref="dataBroker" />
392     <argument ref="elanInstanceManager" />
393     <argument ref="idManagerService" />
394     <argument ref="elanEvpnFlowUtils" />
395     <argument ref="mdsalUtils" />
396     <argument ref="evpnUtils" />
397   </bean>
398
399   <bean id="elanEvpnFlowUtils"
400         class="org.opendaylight.netvirt.elan.evpn.utils.ElanEvpnFlowUtils">
401     <argument ref="mdsalUtils" />
402     <argument ref="elanItmUtils" />
403     <argument ref="elanEtreeUtils" />
404   </bean>
405
406   <bean id="macVrfEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.MacVrfEntryListener"
407         init-method="init" destroy-method="close">
408     <argument ref="dataBroker" />
409     <argument ref="evpnMacVrfUtils" />
410   </bean>
411
412   <bean id="elanMacEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.ElanMacEntryListener"
413         init-method="init" destroy-method="close">
414     <argument ref="dataBroker" />
415     <argument ref="evpnUtils" />
416   </bean>
417
418   <bean id="evpnElanInstanceListener" class="org.opendaylight.netvirt.elan.evpn.listeners.EvpnElanInstanceListener"
419         init-method="init" destroy-method="close">
420     <argument ref="dataBroker" />
421     <argument ref="evpnUtils" />
422     <argument ref="evpnMacVrfUtils" />
423   </bean>
424
425
426   <bean id="elanDpnInterfacesListener" class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfacesListener"
427         init-method="start" destroy-method="close">
428     <argument ref="dataBroker" />
429     <argument ref="interfaceManager" />
430     <argument ref="elanService" />
431   </bean>
432
433   <bean id="l2gatewayUtils"
434         class="org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayUtils"
435         init-method="init" destroy-method="close">
436     <argument ref="dataBroker" />
437     <argument ref="itmRpcService" />
438     <argument ref="l2GatewayConnectionUtils" />
439   </bean>
440
441   <bean id="localUcastMacListener" class="org.opendaylight.netvirt.elan.l2gw.listeners.LocalUcastMacListener"
442         init-method="init" destroy-method="close">
443     <argument ref="dataBroker" />
444     <argument ref="elanUtils" />
445     <argument ref="haOpClusteredListener" />
446     <argument ref="elanL2GatewayUtils" />
447   </bean>
448
449 </blueprint>