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.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"/>
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="elanBridgeManager"
40 class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
41 <argument ref="dataBroker" />
42 <argument ref="elanConfig" />
43 <argument ref="interfaceManager" />
46 <bean id="elanForwardingEntriesHandler"
47 class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
48 <argument ref="dataBroker" />
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" />
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" />
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" />
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" />
89 <odl:notification-listener ref="elanPacketInHandler" />
91 <bean id="elanSmacFlowEventListener"
92 class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
93 <argument ref="dataBroker" />
94 <argument ref="interfaceManager" />
95 <argument ref="elanUtils" />
97 <odl:notification-listener ref="elanSmacFlowEventListener" />
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" />
106 <bean id="elanItmUtils" class="org.opendaylight.netvirt.elan.utils.ElanItmUtils">
107 <argument ref="dataBroker" />
108 <argument ref="itmRpcService" />
109 <argument ref="odlInterfaceRpcService" />
112 <bean id="elanDmacUtils" class="org.opendaylight.netvirt.elan.utils.ElanDmacUtils">
113 <argument ref="dataBroker" />
114 <argument ref="elanItmUtils" />
115 <argument ref="elanEtreeUtils" />
118 <bean id="elanEtreeUtils" class="org.opendaylight.netvirt.elan.utils.ElanEtreeUtils">
119 <argument ref="dataBroker" />
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" />
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" />
145 <bean id="elanStatisticsImpl"
146 class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
147 <argument ref="dataBroker" />
148 <argument ref="interfaceManager" />
150 <odl:rpc-implementation ref="elanStatisticsImpl" />
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" />
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" />
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" />
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" />
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" />
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" />
199 <bean id="elanService"
200 class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
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" />
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" />
217 <bean id="cacheElanInterfaceListener"
218 class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
219 init-method="init" destroy-method="close">
220 <argument ref="dataBroker" />
223 <bean id="cacheElanInstanceListener"
224 class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
225 init-method="init" destroy-method="close">
226 <argument ref="dataBroker" />
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" />
236 <bean id="elanStatusMonitor"
237 class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
238 init-method="init" destroy-method="close" />
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" />
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" />
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" />
267 <bean id="haEventHandler"
268 class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
269 <argument ref="dataBroker" />
272 <bean id="hAListeners"
273 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
274 <argument ref="dataBroker" />
277 <bean id="haConfigNodeListener"
278 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
279 <argument ref="dataBroker" />
280 <argument ref="haEventHandler" />
283 <bean id="haOpClusteredListener"
284 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
285 <argument ref="dataBroker" />
288 <bean id="haOpNodeListener"
289 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
290 <argument ref="dataBroker" />
291 <argument ref="haEventHandler" />
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"/>
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" />
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" />
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" />
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" />
338 <bean id="l2gwService"
339 class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
341 <argument ref="dataBroker" />
342 <argument ref="entityOwnershipService" />
343 <argument ref="itmRpcService" />
344 <argument ref="elanUtils" />
346 <service ref="l2gwService" odl:type="default"
347 interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
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" />
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"/>
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" />
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" />
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" />
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" />
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" />
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" />
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" />