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