Neutron Port allocation for DHCP Service
[netvirt.git] / vpnservice / elanmanager / elanmanager-impl / src / main / resources / org / opendaylight / blueprint / elanmanager.xml
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">
5
6   <reference id="dataBroker"
7     interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
8     odl:type="pingpong" />
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"/>
23
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" />
32
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>
38
39   <bean id="elanBridgeManager"
40     class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
41     <argument ref="dataBroker" />
42     <argument ref="elanConfig" />
43     <argument ref="interfaceManager" />
44   </bean>
45
46   <bean id="elanForwardingEntriesHandler"
47     class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
48     <argument ref="dataBroker" />
49   </bean>
50
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   </bean>
61
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" />
69   </bean>
70
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" />
78   </bean>
79
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" />
86   </bean>
87   <odl:notification-listener ref="elanPacketInHandler" />
88
89   <bean id="elanSmacFlowEventListener"
90     class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
91     <argument ref="dataBroker" />
92     <argument ref="interfaceManager" />
93     <argument ref="elanUtils" />
94   </bean>
95   <odl:notification-listener ref="elanSmacFlowEventListener" />
96
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" />
102   </bean>
103
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" />
115   </bean>
116
117   <bean id="elanStatisticsImpl"
118     class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
119     <argument ref="dataBroker" />
120     <argument ref="interfaceManager" />
121   </bean>
122   <odl:rpc-implementation ref="elanStatisticsImpl" />
123
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" />
129   </bean>
130
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" />
136   </bean>
137
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" />
144   </bean>
145
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" />
153   </bean>
154
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" />
161   </bean>
162
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" />
169   </bean>
170
171   <bean id="elanService"
172     class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
173     init-method="init">
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" />
183   </bean>
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" />
188
189   <bean id="cacheElanInterfaceListener"
190     class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
191     init-method="init" destroy-method="close">
192     <argument ref="dataBroker" />
193   </bean>
194
195   <bean id="cacheElanInstanceListener"
196     class="org.opendaylight.netvirt.elan.utils.CacheElanInstanceListener"
197     init-method="init" destroy-method="close">
198     <argument ref="dataBroker" />
199   </bean>
200
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" />
206   </bean>
207
208   <bean id="elanStatusMonitor"
209     class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitorJMX"
210     init-method="init" destroy-method="close" />
211
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" />
217   </bean>
218
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" />
227   </bean>
228
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" />
235   </bean>
236
237   <bean id="haEventHandler"
238     class="org.opendaylight.netvirt.elan.l2gw.ha.handlers.HAEventHandler">
239     <argument ref="dataBroker" />
240   </bean>
241
242   <bean id="hAListeners"
243     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAListeners">
244     <argument ref="dataBroker" />
245   </bean>
246
247   <bean id="haConfigNodeListener"
248     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAConfigNodeListener">
249     <argument ref="dataBroker" />
250     <argument ref="haEventHandler" />
251   </bean>
252
253   <bean id="haOpClusteredListener"
254     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpClusteredListener">
255     <argument ref="dataBroker" />
256   </bean>
257
258   <bean id="haOpNodeListener"
259     class="org.opendaylight.netvirt.elan.l2gw.ha.listeners.HAOpNodeListener">
260     <argument ref="dataBroker" />
261     <argument ref="haEventHandler" />
262   </bean>
263
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"/>
272   </bean>
273
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" />
280   </bean>
281
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" />
289   </bean>
290
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" />
298   </bean>
299
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" />
307   </bean>
308   <bean id="l2gwService"
309         class="org.opendaylight.netvirt.elan.l2gw.utils.L2gwServiceProvider"
310         init-method="init">
311     <argument ref="dataBroker" />
312     <argument ref="entityOwnershipService" />
313     <argument ref="itmRpcService" />
314     <argument ref="elanUtils" />
315   </bean>
316   <service ref="l2gwService" odl:type="default"
317            interface="org.opendaylight.netvirt.elanmanager.api.IL2gwService" />
318
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" />
324
325   </bean>
326
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"/>
335   </bean>
336
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" />
345   </bean>
346
347   <bean id="elanEvpnFlowUtils"
348         class="org.opendaylight.netvirt.elan.evpn.utils.ElanEvpnFlowUtils">
349     <argument ref="mdsalUtils" />
350     <argument ref="elanUtils" />
351   </bean>
352
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" />
360   </bean>
361
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" />
367   </bean>
368
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" />
374   </bean>
375
376
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" />
382   </bean>
383
384 </blueprint>