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"/>
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" />
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>
39 <bean id="entityOwnershipUtils" class="org.opendaylight.genius.utils.clustering.EntityOwnershipUtils">
40 <argument ref="entityOwnershipService" />
43 <bean id="elanBridgeManager"
44 class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
45 <argument ref="dataBroker" />
46 <argument ref="elanConfig" />
47 <argument ref="interfaceManager" />
50 <bean id="elanForwardingEntriesHandler"
51 class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
52 <argument ref="dataBroker" />
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" />
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" />
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" />
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" />
95 <odl:notification-listener ref="elanPacketInHandler" />
97 <bean id="elanSmacFlowEventListener"
98 class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
99 <argument ref="dataBroker" />
100 <argument ref="interfaceManager" />
101 <argument ref="elanUtils" />
103 <odl:notification-listener ref="elanSmacFlowEventListener" />
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" />
112 <bean id="elanItmUtils" class="org.opendaylight.netvirt.elan.utils.ElanItmUtils">
113 <argument ref="dataBroker" />
114 <argument ref="itmRpcService" />
115 <argument ref="odlInterfaceRpcService" />
118 <bean id="elanDmacUtils" class="org.opendaylight.netvirt.elan.utils.ElanDmacUtils">
119 <argument ref="dataBroker" />
120 <argument ref="elanItmUtils" />
121 <argument ref="elanEtreeUtils" />
124 <bean id="elanEtreeUtils" class="org.opendaylight.netvirt.elan.utils.ElanEtreeUtils">
125 <argument ref="dataBroker" />
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" />
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" />
148 <bean id="elanStatisticsImpl"
149 class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
150 <argument ref="dataBroker" />
151 <argument ref="interfaceManager" />
153 <odl:rpc-implementation ref="elanStatisticsImpl" />
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" />
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" />
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" />
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" />
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" />
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" />
203 <bean id="elanService"
204 class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
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" />
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" />
221 <bean id="cacheElanInterfaceListener"
222 class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
223 init-method="init" destroy-method="close">
224 <argument ref="dataBroker" />
227 <bean id="cacheElanInstanceListener"
228 class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
229 init-method="init" destroy-method="close">
230 <argument ref="dataBroker" />
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" />
240 <bean id="elanStatusMonitor"
241 class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
242 init-method="init" destroy-method="close" />
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" />
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" />
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" />
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" />
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" />
288 <bean id="haEventHandler"
289 class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
290 <argument ref="dataBroker" />
293 <bean id="hAListeners"
294 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
295 <argument ref="dataBroker" />
298 <bean id="haConfigNodeListener"
299 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
300 <argument ref="dataBroker" />
301 <argument ref="haEventHandler" />
304 <bean id="haOpClusteredListener"
305 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
306 <argument ref="dataBroker" />
309 <bean id="haOpNodeListener"
310 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
311 <argument ref="dataBroker" />
312 <argument ref="haEventHandler" />
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"/>
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" />
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" />
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" />
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" />
359 <bean id="l2gwService"
360 class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
362 <argument ref="dataBroker" />
363 <argument ref="entityOwnershipUtils" />
364 <argument ref="itmRpcService" />
365 <argument ref="l2GatewayConnectionUtils" />
367 <service ref="l2gwService" odl:type="default"
368 interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
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" />
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"/>
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" />
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" />
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" />
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" />
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" />
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" />
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" />
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" />