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