Merge "Bug 6687: Fix NPE when updating ExternalNetwork"
[netvirt.git] / vpnservice / natservice / natservice-impl / src / main / resources / org / opendaylight / blueprint / natservice.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="default" />
9   <reference id="bgpManager"
10              interface="org.opendaylight.netvirt.bgpmanager.api.IBgpManager" />
11   <reference id="elanService"
12              interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
13   <reference id="fibManager"
14              interface="org.opendaylight.netvirt.fibmanager.api.IFibManager" />
15   <reference id="interfaceManager"
16              interface="org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager" />
17   <reference id="mdsalUtils"
18              interface="org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager" />
19   <reference id="neutronvpnManager"
20              interface="org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager" />
21   <reference id="vpnManager"
22              interface="org.opendaylight.netvirt.vpnmanager.api.IVpnManager" />
23
24   <odl:rpc-service id="idManagerService"
25                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
26   <odl:rpc-service id="odlInterfaceRpcService"
27                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
28   <odl:rpc-service id="itmRpcService"
29                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService" />
30   <odl:rpc-service id="packetProcessingService"
31                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService" />
32   <odl:rpc-service id="neutronvpnService"
33                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronvpnService" />
34   <odl:rpc-service id="vpnRpcService"
35                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.rpc.rev160201.VpnRpcService" />
36   <odl:rpc-service id="fibRpcService"
37                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fib.rpc.rev160121.FibRpcService" />
38   <odl:rpc-service id="odlArputilService"
39                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
40
41   <bean id="subnetmapListener"
42         class="org.opendaylight.netvirt.natservice.internal.SubnetmapListener"
43         init-method="init" destroy-method="close">
44     <argument ref="dataBroker" />
45     <argument ref="externalNetworkGroupInstaller" />
46   </bean>
47
48   <bean id="floatingIPListener"
49         class="org.opendaylight.netvirt.natservice.internal.FloatingIPListener"
50         init-method="init" destroy-method="close">
51     <argument ref="dataBroker" />
52     <argument ref="mdsalUtils" />
53     <argument ref="odlInterfaceRpcService" />
54     <argument ref="idManagerService" />
55     <argument ref="blueprintBundleContext" />
56   </bean>
57
58   <bean id="externalNetworkListener"
59         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkListener"
60         init-method="init" destroy-method="close">
61     <argument ref="dataBroker" />
62     <argument ref="mdsalUtils" />
63   </bean>
64
65   <bean id="naptManager"
66         class="org.opendaylight.netvirt.natservice.internal.NaptManager">
67     <argument ref="dataBroker" />
68     <argument ref="idManagerService" />
69   </bean>
70
71   <bean id="naptEventHandler"
72         class="org.opendaylight.netvirt.natservice.internal.NaptEventHandler">
73     <argument ref="dataBroker" />
74     <argument ref="mdsalUtils" />
75     <argument ref="naptManager" />
76     <argument ref="packetProcessingService" />
77     <argument ref="odlInterfaceRpcService" />
78     <argument ref="interfaceManager" />
79   </bean>
80
81   <bean id="eventDispatcher"
82         class="org.opendaylight.netvirt.natservice.internal.EventDispatcher"
83         init-method="init">
84     <argument ref="naptEventHandler" />
85   </bean>
86
87   <bean id="naptPacketInHandler"
88         class="org.opendaylight.netvirt.natservice.internal.NaptPacketInHandler">
89     <argument ref="eventDispatcher" />
90   </bean>
91   <odl:notification-listener ref="naptPacketInHandler" />
92
93   <bean id="vpnFloatingIpHandler"
94         class="org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler">
95     <argument ref="dataBroker" />
96     <argument ref="mdsalUtils" />
97     <argument ref="vpnRpcService" />
98     <argument ref="bgpManager" />
99     <argument ref="fibRpcService" />
100     <argument ref="floatingIPListener" />
101     <argument ref="fibManager" />
102     <argument ref="odlArputilService" />
103     <argument ref="vpnManager" />
104   </bean>
105   <service ref="vpnFloatingIpHandler"
106            interface="org.opendaylight.netvirt.natservice.internal.FloatingIPHandler" />
107
108   <bean id="nAPTSwitchSelector"
109         class="org.opendaylight.netvirt.natservice.internal.NAPTSwitchSelector">
110     <argument ref="dataBroker" />
111   </bean>
112
113   <bean id="externalRoutersListener"
114         class="org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener"
115         init-method="init" destroy-method="close">
116     <argument ref="dataBroker" />
117     <argument ref="mdsalUtils" />
118     <argument ref="itmRpcService" />
119     <argument ref="odlInterfaceRpcService" />
120     <argument ref="idManagerService" />
121     <argument ref="naptManager" />
122     <argument ref="nAPTSwitchSelector" />
123     <argument ref="bgpManager" />
124     <argument ref="vpnRpcService" />
125     <argument ref="fibRpcService" />
126     <argument ref="sNATDefaultRouteProgrammer" />
127     <argument ref="naptEventHandler" />
128     <argument ref="naptPacketInHandler" />
129     <argument ref="fibManager" />
130   </bean>
131
132   <bean id="externalNetworksChangeListener"
133         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworksChangeListener"
134         init-method="init" destroy-method="close">
135     <argument ref="dataBroker" />
136     <argument ref="mdsalUtils" />
137     <argument ref="floatingIPListener" />
138     <argument ref="externalRoutersListener" />
139     <argument ref="odlInterfaceRpcService" />
140     <argument ref="naptManager" />
141     <argument ref="bgpManager" />
142     <argument ref="vpnRpcService" />
143     <argument ref="fibRpcService" />
144   </bean>
145
146   <bean id="naptFlowRemovedEventHandler"
147         class="org.opendaylight.netvirt.natservice.internal.NaptFlowRemovedEventHandler">
148     <argument ref="dataBroker" />
149     <argument ref="mdsalUtils" />
150     <argument ref="eventDispatcher" />
151     <argument ref="naptPacketInHandler" />
152     <argument ref="naptManager" />
153   </bean>
154   <odl:notification-listener ref="naptPacketInHandler" />
155
156   <bean id="interfaceStateEventListener"
157         class="org.opendaylight.netvirt.natservice.internal.InterfaceStateEventListener"
158         init-method="init" destroy-method="close">
159     <argument ref="dataBroker" />
160     <argument ref="mdsalUtils" />
161     <argument ref="floatingIPListener" />
162     <argument ref="naptManager" />
163     <argument ref="neutronvpnService" />
164   </bean>
165
166   <bean id="sNATDefaultRouteProgrammer"
167         class="org.opendaylight.netvirt.natservice.internal.SNATDefaultRouteProgrammer">
168     <argument ref="mdsalUtils" />
169   </bean>
170
171   <bean id="naptSwitchHA"
172         class="org.opendaylight.netvirt.natservice.internal.NaptSwitchHA">
173     <argument ref="dataBroker" />
174     <argument ref="mdsalUtils" />
175     <argument ref="externalRoutersListener" />
176     <argument ref="itmRpcService" />
177     <argument ref="odlInterfaceRpcService" />
178     <argument ref="idManagerService" />
179     <argument ref="nAPTSwitchSelector" />
180     <argument ref="bgpManager" />
181     <argument ref="vpnRpcService" />
182     <argument ref="fibRpcService" />
183   </bean>
184
185   <bean id="natNodeEventListener"
186         class="org.opendaylight.netvirt.natservice.internal.NatNodeEventListener"
187         init-method="init" destroy-method="close">
188     <argument ref="dataBroker" />
189   </bean>
190
191   <bean id="routerPortsListener"
192         class="org.opendaylight.netvirt.natservice.internal.RouterPortsListener"
193         init-method="init" destroy-method="close">
194     <argument ref="dataBroker" />
195   </bean>
196
197   <bean id="routerDpnChangeListener"
198         class="org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener"
199         init-method="init" destroy-method="close">
200     <argument ref="dataBroker" />
201     <argument ref="mdsalUtils" />
202     <argument ref="sNATDefaultRouteProgrammer" />
203     <argument ref="naptSwitchHA" />
204     <argument ref="idManagerService" />
205   </bean>
206
207   <bean id="routerToVpnListener"
208         class="org.opendaylight.netvirt.natservice.internal.RouterToVpnListener">
209     <argument ref="dataBroker" />
210     <argument ref="floatingIPListener" />
211     <argument ref="odlInterfaceRpcService" />
212     <argument ref="externalRoutersListener" />
213   </bean>
214   <odl:notification-listener ref="routerToVpnListener" />
215
216   <bean id="subnetGwMacChangeListener"
217         class="org.opendaylight.netvirt.natservice.internal.SubnetGwMacChangeListener"
218         init-method="start" destroy-method="close">
219     <argument ref="dataBroker" />
220     <argument ref="neutronvpnManager" />
221     <argument ref="externalNetworkGroupInstaller" />
222   </bean>
223
224   <bean id="externalNetworkGroupInstaller"
225         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkGroupInstaller">
226     <argument ref="dataBroker" />
227     <argument ref="mdsalUtils" />
228     <argument ref="elanService" />
229     <argument ref="idManagerService" />
230     <argument ref="odlInterfaceRpcService" />
231   </bean>
232
233 </blueprint>