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" />
79 <bean id="elanPacketInHandler"
80 class="org.opendaylight.netvirt.elan.internal.ElanPacketInHandler">
81 <argument ref="dataBroker" />
82 <argument ref="interfaceManager" />
83 <argument ref="elanUtils" />
84 <argument ref="evpnUtils" />
86 <odl:notification-listener ref="elanPacketInHandler" />
88 <bean id="elanSmacFlowEventListener"
89 class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
90 <argument ref="dataBroker" />
91 <argument ref="interfaceManager" />
92 <argument ref="elanUtils" />
94 <odl:notification-listener ref="elanSmacFlowEventListener" />
96 <bean id="elanExtnTepListener"
97 class="org.opendaylight.netvirt.elan.internal.ElanExtnTepListener"
98 init-method="init" destroy-method="close">
99 <argument ref="dataBroker" />
100 <argument ref="elanInterfaceManager" />
103 <bean id="elanUtils" class="org.opendaylight.netvirt.elan.utils.ElanUtils"
104 destroy-method="close">
105 <argument ref="dataBroker" />
106 <argument ref="mdsalUtils" />
107 <argument ref="elanInstanceManager" />
108 <argument ref="odlInterfaceRpcService" />
109 <argument ref="itmRpcService" />
110 <argument ref="elanInterfaceManager" />
111 <argument ref="entityOwnershipService" />
112 <argument ref="interfaceManager" />
113 <argument ref="elanConfig" />
116 <bean id="elanStatisticsImpl"
117 class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
118 <argument ref="dataBroker" />
119 <argument ref="interfaceManager" />
121 <odl:rpc-implementation ref="elanStatisticsImpl" />
123 <bean id="elanInterfaceStateChangeListener"
124 class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateChangeListener"
125 init-method="init" destroy-method="close">
126 <argument ref="dataBroker" />
127 <argument ref="elanInterfaceManager" />
130 <bean id="elanTunnelInterfaceStateListener"
131 class="org.opendaylight.netvirt.elan.internal.ElanTunnelInterfaceStateListener"
132 init-method="init" destroy-method="close">
133 <argument ref="dataBroker" />
134 <argument ref="elanInterfaceManager" />
135 <argument ref="elanUtils" />
138 <bean id="elanInterfaceStateClusterListener"
139 class="org.opendaylight.netvirt.elan.internal.ElanInterfaceStateClusteredListener"
140 init-method="init" destroy-method="close">
141 <argument ref="dataBroker" />
142 <argument ref="elanInterfaceManager" />
143 <argument ref="elanUtils" />
144 <argument ref="entityOwnershipService" />
147 <bean id="elanDpnInterfaceClusteredListener"
148 class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfaceClusteredListener"
149 init-method="init" destroy-method="close">
150 <argument ref="dataBroker" />
151 <argument ref="entityOwnershipService" />
152 <argument ref="elanUtils" />
155 <bean id="elanVpnPortIpToPortListener"
156 class="org.opendaylight.netvirt.elan.internal.ElanLearntVpnVipToPortListener"
157 init-method="init" destroy-method="close">
158 <argument ref="dataBroker" />
159 <argument ref="interfaceManager" />
160 <argument ref="elanUtils" />
163 <bean id="elanService"
164 class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
166 <argument ref="idManagerService" />
167 <argument ref="interfaceManager" />
168 <argument ref="elanInstanceManager" />
169 <argument ref="elanBridgeManager" />
170 <argument ref="dataBroker" />
171 <argument ref="elanInterfaceManager" />
172 <argument ref="elanStatusMonitor" />
173 <argument ref="elanUtils" />
174 <argument ref="entityOwnershipService" />
176 <service ref="elanService" odl:type="default"
177 interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
178 <service ref="elanBridgeManager" odl:type="default"
179 interface="org.opendaylight.netvirt.elanmanager.api.IElanBridgeManager" />
181 <bean id="cacheElanInterfaceListener"
182 class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
183 init-method="init" destroy-method="close">
184 <argument ref="dataBroker" />
187 <bean id="cacheElanInstanceListener"
188 class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
189 init-method="init" destroy-method="close">
190 <argument ref="dataBroker" />
193 <bean id="hwvtepLocalUcastMacListener"
194 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepLocalUcastMacListener"
195 init-method="init" destroy-method="close">
196 <argument ref="dataBroker" />
197 <argument ref="elanUtils" />
200 <bean id="elanStatusMonitor"
201 class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
202 init-method="init" destroy-method="close" />
204 <bean id="l2GatewayConnectionListener"
205 class="org.opendaylight.netvirt.elan.l2gw.listeners.L2GatewayConnectionListener"
206 init-method="init" destroy-method="close">
207 <argument ref="dataBroker" />
208 <argument ref="elanUtils" />
211 <bean id="hwvtepPhysicalSwitchListener"
212 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepPhysicalSwitchListener"
213 init-method="init" destroy-method="close">
214 <argument ref="dataBroker" />
215 <argument ref="itmRpcService" />
216 <argument ref="entityOwnershipService" />
217 <argument ref="elanUtils" />
218 <argument ref="l2gwService" />
221 <bean id="hwvtepTerminationPointListener"
222 class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepTerminationPointListener"
223 destroy-method="close">
224 <argument ref="dataBroker" />
225 <argument ref="elanUtils" />
226 <argument ref="entityOwnershipService" />
229 <bean id="haEventHandler"
230 class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
231 <argument ref="dataBroker" />
234 <bean id="hAListeners"
235 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
236 <argument ref="dataBroker" />
239 <bean id="haConfigNodeListener"
240 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
241 <argument ref="dataBroker" />
242 <argument ref="haEventHandler" />
245 <bean id="haOpClusteredListener"
246 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
247 <argument ref="dataBroker" />
250 <bean id="haOpNodeListener"
251 class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
252 <argument ref="dataBroker" />
253 <argument ref="haEventHandler" />
256 <bean id="ElanOvsdbNodeListener"
257 class="org.opendaylight.netvirt.elan.internal.ElanOvsdbNodeListener"
258 init-method="init" destroy-method="close">
259 <argument ref="dataBroker" />
260 <argument ref="elanConfig" />
261 <argument ref="elanBridgeManager" />
262 <argument ref="elanService" />
263 <argument ref = "transportZoneNotificationUtil"/>
266 <bean id="elanGroupListener"
267 class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanGroupListener">
268 <argument ref="elanInterfaceManager" />
269 <argument ref="dataBroker" />
270 <argument ref="elanUtils" />
271 <argument ref="entityOwnershipService" />
274 <bean id="transportZoneNotificationUtil"
275 class="org.opendaylight.netvirt.elan.utils.TransportZoneNotificationUtil">
276 <argument ref="dataBroker" />
277 <argument ref="interfaceManager" />
278 <argument ref="elanService" />
279 <argument ref="elanConfig" />
280 <argument ref="elanBridgeManager" />
283 <bean id="ElanDpnToTransportZoneListener"
284 class="org.opendaylight.netvirt.elan.internal.ElanDpnToTransportZoneListener"
285 init-method="start" destroy-method="close">
286 <argument ref="dataBroker" />
287 <argument ref="interfaceManager" />
288 <argument ref="elanConfig" />
289 <argument ref="transportZoneNotificationUtil" />
292 <bean id="VpnDpnToTransportZoneListener"
293 class="org.opendaylight.netvirt.elan.internal.VpnDpnToTransportZoneListener"
294 init-method="start" destroy-method="close">
295 <argument ref="dataBroker" />
296 <argument ref="interfaceManager" />
297 <argument ref="elanConfig" />
298 <argument ref="transportZoneNotificationUtil" />
300 <bean id="l2gwService"
301 class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
303 <argument ref="dataBroker" />
304 <argument ref="entityOwnershipService" />
305 <argument ref="itmRpcService" />
306 <argument ref="elanUtils" />
308 <service ref="l2gwService" odl:type="default"
309 interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
311 <bean id="elanInstanceListener"
312 class="org.opendaylight.netvirt.elan.l2gw.listeners.ElanInstanceListener"
313 init-method="init" destroy-method="close">
314 <argument ref="dataBroker" />
315 <argument ref="elanUtils" />
319 <bean id="evpnUtils" class="org.opendaylight.netvirt.elan.evpn.utils.EvpnUtils"
320 init-method="init" destroy-method="close">
321 <argument ref="dataBroker" />
322 <argument ref="interfaceManager" />
323 <argument ref="elanUtils" />
324 <argument ref="itmRpcService" />
325 <property name="vpnManager" ref="vpnManager"/>
326 <property name="bgpManager" ref="bgpManager"/>
329 <bean id="evpnMacVrfUtils"
330 class="org.opendaylight.netvirt.elan.evpn.utils.EvpnMacVrfUtils">
331 <argument ref="dataBroker" />
332 <argument ref="elanUtils" />
333 <argument ref="idManagerService" />
334 <argument ref="elanEvpnFlowUtils" />
335 <argument ref="mdsalUtils" />
338 <bean id="elanEvpnFlowUtils"
339 class="org.opendaylight.netvirt.elan.evpn.utils.ElanEvpnFlowUtils">
340 <argument ref="mdsalUtils" />
341 <argument ref="elanUtils" />
344 <bean id="macVrfEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.MacVrfEntryListener"
345 init-method="init" destroy-method="close">
346 <argument ref="dataBroker" />
347 <argument ref="elanUtils" />
348 <argument ref="mdsalUtils" />
349 <argument ref="evpnMacVrfUtils" />
350 <argument ref="elanEvpnFlowUtils" />
353 <bean id="elanMacEntryListener" class="org.opendaylight.netvirt.elan.evpn.listeners.ElanMacEntryListener"
354 init-method="init" destroy-method="close">
355 <argument ref="dataBroker" />
356 <argument ref="elanUtils" />
357 <argument ref="evpnUtils" />
360 <bean id="elanDpnInterfacesListener" class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfacesListener"
361 init-method="start" destroy-method="close">
362 <argument ref="dataBroker" />
363 <argument ref="interfaceManager" />
364 <argument ref="elanService" />