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">
6 <reference id="dataBroker"
7 interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
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" />
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" />
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>
41 <bean id="entityOwnershipUtils" class="org.opendaylight.genius.utils.clustering.EntityOwnershipUtils">
42 <argument ref="entityOwnershipService" />
45 <bean id="elanBridgeManager"
46 class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
47 <argument ref="dataBroker" />
48 <argument ref="elanConfig" />
49 <argument ref="interfaceManager" />
52 <bean id="elanForwardingEntriesHandler"
53 class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
54 <argument ref="dataBroker" />
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" />
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" />
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" />
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" />
97 <odl:notification-listener ref="elanPacketInHandler" />
99 <bean id="elanSmacFlowEventListener"
100 class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
101 <argument ref="dataBroker" />
102 <argument ref="interfaceManager" />
103 <argument ref="elanUtils" />
105 <odl:notification-listener ref="elanSmacFlowEventListener" />
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" />
114 <bean id="elanItmUtils" class="org.opendaylight.netvirt.elan.utils.ElanItmUtils">
115 <argument ref="dataBroker" />
116 <argument ref="itmRpcService" />
117 <argument ref="odlInterfaceRpcService" />
120 <bean id="elanDmacUtils" class="org.opendaylight.netvirt.elan.utils.ElanDmacUtils">
121 <argument ref="dataBroker" />
122 <argument ref="elanItmUtils" />
123 <argument ref="elanEtreeUtils" />
126 <bean id="elanEtreeUtils" class="org.opendaylight.netvirt.elan.utils.ElanEtreeUtils">
127 <argument ref="dataBroker" />
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" />
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" />
150 <bean id="elanStatisticsImpl"
151 class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
152 <argument ref="dataBroker" />
153 <argument ref="interfaceManager" />
155 <odl:rpc-implementation ref="elanStatisticsImpl" />
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" />
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" />
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" />
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" />
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" />
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" />
205 <bean id="elanService"
206 class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
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" />
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" />
223 <bean id="cacheElanInterfaceListener"
224 class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
225 init-method="init" destroy-method="close">
226 <argument ref="dataBroker" />
229 <bean id="cacheElanInstanceListener"
230 class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
231 init-method="init" destroy-method="close">
232 <argument ref="dataBroker" />
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" />
242 <bean id="elanStatusMonitor"
243 class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
244 init-method="init" destroy-method="close" />
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" />
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" />
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" />
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" />
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" />
290 <bean id="haEventHandler"
291 class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
292 <argument ref="dataBroker" />
295 <bean id="hAListeners"
296 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
297 <argument ref="dataBroker" />
300 <bean id="haConfigNodeListener"
301 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
302 <argument ref="dataBroker" />
303 <argument ref="haEventHandler" />
306 <bean id="haOpClusteredListener"
307 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
308 <argument ref="dataBroker" />
311 <bean id="haOpNodeListener"
312 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
313 <argument ref="dataBroker" />
314 <argument ref="haEventHandler" />
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"/>
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" />
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" />
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" />
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" />
361 <bean id="l2gwService"
362 class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
364 <argument ref="dataBroker" />
365 <argument ref="entityOwnershipUtils" />
366 <argument ref="itmRpcService" />
367 <argument ref="l2GatewayConnectionUtils" />
369 <service ref="l2gwService" odl:type="default"
370 interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
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" />
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"/>
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" />
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" />
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" />
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" />
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" />
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" />
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" />
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" />