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"/>
62 <bean id="elanInstanceManager"
63 class="org.opendaylight.netvirt.elan.internal.ElanInstanceManager"
64 init-method="init" destroy-method="close">
65 <argument ref="dataBroker" />
66 <argument ref="idManagerService" />
67 <argument ref="elanInterfaceManager" />
68 <argument ref="interfaceManager" />
71 <bean id="elanNodeListener"
72 class="org.opendaylight.netvirt.elan.internal.ElanNodeListener"
73 init-method="init" destroy-method="close">
74 <argument ref="dataBroker" />
75 <argument ref="mdsalUtils" />
76 <argument ref="elanConfig" />
77 <argument ref="idManagerService" />
80 <bean id="elanPacketInHandler"
81 class="org.opendaylight.netvirt.elan.internal.ElanPacketInHandler">
82 <argument ref="dataBroker" />
83 <argument ref="interfaceManager" />
84 <argument ref="elanUtils" />
85 <argument ref="evpnUtils" />
87 <odl:notification-listener ref="elanPacketInHandler" />
89 <bean id="elanSmacFlowEventListener"
90 class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
91 <argument ref="dataBroker" />
92 <argument ref="interfaceManager" />
93 <argument ref="elanUtils" />
95 <odl:notification-listener ref="elanSmacFlowEventListener" />
97 <bean id="elanExtnTepListener"
98 class="org.opendaylight.netvirt.elan.internal.ElanExtnTepListener"
99 init-method="init" destroy-method="close">
100 <argument ref="dataBroker" />
101 <argument ref="elanInterfaceManager" />
104 <bean id="elanUtils" class="org.opendaylight.netvirt.elan.utils.ElanUtils"
105 destroy-method="close">
106 <argument ref="dataBroker" />
107 <argument ref="mdsalUtils" />
108 <argument ref="elanInstanceManager" />
109 <argument ref="odlInterfaceRpcService" />
110 <argument ref="itmRpcService" />
111 <argument ref="elanInterfaceManager" />
112 <argument ref="entityOwnershipService" />
113 <argument ref="interfaceManager" />
114 <argument ref="elanConfig" />
117 <bean id="elanStatisticsImpl"
118 class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
119 <argument ref="dataBroker" />
120 <argument ref="interfaceManager" />
122 <odl:rpc-implementation ref="elanStatisticsImpl" />
124 <bean id="elanInterfaceStateChangeListener"
125 class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateChangeListener"
126 init-method="init" destroy-method="close">
127 <argument ref="dataBroker" />
128 <argument ref="elanInterfaceManager" />
131 <bean id="elanInterfaceConfigListener"
132 class="org.opendaylight.netvirt.elan.internal.ElanInterfaceConfigListener"
133 init-method="init" destroy-method="close">
134 <argument ref="dataBroker" />
135 <argument ref="elanInterfaceManager" />
138 <bean id="elanTunnelInterfaceStateListener"
139 class="org.opendaylight.netvirt.elan.internal.ElanTunnelInterfaceStateListener"
140 init-method="init" destroy-method="close">
141 <argument ref="dataBroker" />
142 <argument ref="elanInterfaceManager" />
143 <argument ref="elanUtils" />
146 <bean id="elanInterfaceStateClusterListener"
147 class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateClusteredListener"
148 init-method="init" destroy-method="close">
149 <argument ref="dataBroker" />
150 <argument ref="elanInterfaceManager" />
151 <argument ref="elanUtils" />
152 <argument ref="entityOwnershipService" />
155 <bean id="elanDpnInterfaceClusteredListener"
156 class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfaceClusteredListener"
157 init-method="init" destroy-method="close">
158 <argument ref="dataBroker" />
159 <argument ref="entityOwnershipService" />
160 <argument ref="elanUtils" />
163 <bean id="elanVpnPortIpToPortListener"
164 class="org.opendaylight.netvirt.elan.internal.ElanLearntVpnVipToPortListener"
165 init-method="init" destroy-method="close">
166 <argument ref="dataBroker" />
167 <argument ref="interfaceManager" />
168 <argument ref="elanUtils" />
171 <bean id="elanService"
172 class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
174 <argument ref="idManagerService" />
175 <argument ref="interfaceManager" />
176 <argument ref="elanInstanceManager" />
177 <argument ref="elanBridgeManager" />
178 <argument ref="dataBroker" />
179 <argument ref="elanInterfaceManager" />
180 <argument ref="elanStatusMonitor" />
181 <argument ref="elanUtils" />
182 <argument ref="entityOwnershipService" />
184 <service ref="elanService" odl:type="default"
185 interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
186 <service ref="elanBridgeManager" odl:type="default"
187 interface="org.opendaylight.netvirt.elanmanager.api.IElanBridgeManager" />
189 <bean id="cacheElanInterfaceListener"
190 class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
191 init-method="init" destroy-method="close">
192 <argument ref="dataBroker" />
195 <bean id="cacheElanInstanceListener"
196 class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
197 init-method="init" destroy-method="close">
198 <argument ref="dataBroker" />
201 <bean id="hwvtepLocalUcastMacListener"
202 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepLocalUcastMacListener"
203 init-method="init" destroy-method="close">
204 <argument ref="dataBroker" />
205 <argument ref="elanUtils" />
208 <bean id="elanStatusMonitor"
209 class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
210 init-method="init" destroy-method="close" />
212 <bean id="l2GatewayConnectionListener"
213 class="org.opendaylight.netvirt.elan.l2gw.listeners.L2GatewayConnectionListener"
214 init-method="init" destroy-method="close">
215 <argument ref="dataBroker" />
216 <argument ref="elanUtils" />
219 <bean id="hwvtepPhysicalSwitchListener"
220 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepPhysicalSwitchListener"
221 init-method="init" destroy-method="close">
222 <argument ref="dataBroker" />
223 <argument ref="itmRpcService" />
224 <argument ref="entityOwnershipService" />
225 <argument ref="elanUtils" />
226 <argument ref="l2gwService" />
229 <bean id="hwvtepTerminationPointListener"
230 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepTerminationPointListener"
231 destroy-method="close">
232 <argument ref="dataBroker" />
233 <argument ref="elanUtils" />
234 <argument ref="entityOwnershipService" />
237 <bean id="haEventHandler"
238 class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
239 <argument ref="dataBroker" />
242 <bean id="hAListeners"
243 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
244 <argument ref="dataBroker" />
247 <bean id="haConfigNodeListener"
248 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
249 <argument ref="dataBroker" />
250 <argument ref="haEventHandler" />
253 <bean id="haOpClusteredListener"
254 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
255 <argument ref="dataBroker" />
258 <bean id="haOpNodeListener"
259 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
260 <argument ref="dataBroker" />
261 <argument ref="haEventHandler" />
264 <bean id="ElanOvsdbNodeListener"
265 class="org.opendaylight.netvirt.elan.internal.ElanOvsdbNodeListener"
266 init-method="init" destroy-method="close">
267 <argument ref="dataBroker" />
268 <argument ref="elanConfig" />
269 <argument ref="elanBridgeManager" />
270 <argument ref="elanService" />
271 <argument ref = "transportZoneNotificationUtil"/>
274 <bean id="elanGroupListener"
275 class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanGroupListener">
276 <argument ref="elanInterfaceManager" />
277 <argument ref="dataBroker" />
278 <argument ref="elanUtils" />
279 <argument ref="entityOwnershipService" />
282 <bean id="transportZoneNotificationUtil"
283 class="org.opendaylight.netvirt.elan.utils.TransportZoneNotificationUtil">
284 <argument ref="dataBroker" />
285 <argument ref="interfaceManager" />
286 <argument ref="elanService" />
287 <argument ref="elanConfig" />
288 <argument ref="elanBridgeManager" />
291 <bean id="ElanDpnToTransportZoneListener"
292 class="org.opendaylight.netvirt.elan.internal.ElanDpnToTransportZoneListener"
293 init-method="start" destroy-method="close">
294 <argument ref="dataBroker" />
295 <argument ref="interfaceManager" />
296 <argument ref="elanConfig" />
297 <argument ref="transportZoneNotificationUtil" />
300 <bean id="VpnDpnToTransportZoneListener"
301 class="org.opendaylight.netvirt.elan.internal.VpnDpnToTransportZoneListener"
302 init-method="start" destroy-method="close">
303 <argument ref="dataBroker" />
304 <argument ref="interfaceManager" />
305 <argument ref="elanConfig" />
306 <argument ref="transportZoneNotificationUtil" />
308 <bean id="l2gwService"
309 class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
311 <argument ref="dataBroker" />
312 <argument ref="entityOwnershipService" />
313 <argument ref="itmRpcService" />
314 <argument ref="elanUtils" />
316 <service ref="l2gwService" odl:type="default"
317 interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
319 <bean id="elanInstanceListener"
320 class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanInstanceListener"
321 init-method="init" destroy-method="close">
322 <argument ref="dataBroker" />
323 <argument ref="elanUtils" />
327 <bean id="evpnUtils" class="org.opendaylight.netvirt.elan.evpn.utils.EvpnUtils"
328 init-method="init" destroy-method="close">
329 <argument ref="dataBroker" />
330 <argument ref="interfaceManager" />
331 <argument ref="elanUtils" />
332 <argument ref="itmRpcService" />
333 <property name="vpnManager" ref="vpnManager"/>
334 <property name="bgpManager" ref="bgpManager"/>
337 <bean id="evpnMacVrfUtils"
338 class="org.opendaylight.netvirt.elan.evpn.utils.EvpnMacVrfUtils">
339 <argument ref="dataBroker" />
340 <argument ref="elanUtils" />
341 <argument ref="idManagerService" />
342 <argument ref="elanEvpnFlowUtils" />
343 <argument ref="mdsalUtils" />
344 <argument ref="evpnUtils" />
347 <bean id="elanEvpnFlowUtils"
348 class="org.opendaylight.netvirt.elan.evpn.utils.ElanEvpnFlowUtils">
349 <argument ref="mdsalUtils" />
350 <argument ref="elanUtils" />
353 <bean id="macVrfEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.MacVrfEntryListener"
354 init-method="init" destroy-method="close">
355 <argument ref="dataBroker" />
356 <argument ref="elanUtils" />
357 <argument ref="mdsalUtils" />
358 <argument ref="evpnMacVrfUtils" />
359 <argument ref="elanEvpnFlowUtils" />
362 <bean id="elanMacEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.ElanMacEntryListener"
363 init-method="init" destroy-method="close">
364 <argument ref="dataBroker" />
365 <argument ref="elanUtils" />
366 <argument ref="evpnUtils" />
369 <bean id="evpnElanInstanceListener" class="org.opendaylight.netvirt.elan.evpn.listeners.EvpnElanInstanceListener"
370 init-method="init" destroy-method="close">
371 <argument ref="dataBroker" />
372 <argument ref="evpnUtils" />
373 <argument ref="evpnMacVrfUtils" />
377 <bean id="elanDpnInterfacesListener" class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfacesListener"
378 init-method="start" destroy-method="close">
379 <argument ref="dataBroker" />
380 <argument ref="interfaceManager" />
381 <argument ref="elanService" />