529cbf442bb6c4fa67dd12ae119f07737c58cdc2
[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   <odl:rpc-implementation ref="natRpcServiceImpl"/>
41
42   <bean id="subnetmapListener"
43         class="org.opendaylight.netvirt.natservice.internal.SubnetmapListener"
44         init-method="init" destroy-method="close">
45     <argument ref="dataBroker" />
46     <argument ref="externalNetworkGroupInstaller" />
47   </bean>
48
49   <bean id="floatingIPListener"
50         class="org.opendaylight.netvirt.natservice.internal.FloatingIPListener"
51         init-method="init" destroy-method="close">
52     <argument ref="dataBroker" />
53     <argument ref="mdsalUtils" />
54     <argument ref="odlInterfaceRpcService" />
55     <argument ref="idManagerService" />
56     <argument ref="blueprintBundleContext" />
57   </bean>
58
59   <bean id="externalNetworkListener"
60         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkListener"
61         init-method="init" destroy-method="close">
62     <argument ref="dataBroker" />
63     <argument ref="mdsalUtils" />
64   </bean>
65
66   <bean id="naptManager"
67         class="org.opendaylight.netvirt.natservice.internal.NaptManager">
68     <argument ref="dataBroker" />
69     <argument ref="idManagerService" />
70   </bean>
71
72   <bean id="naptEventHandler"
73         class="org.opendaylight.netvirt.natservice.internal.NaptEventHandler">
74     <argument ref="dataBroker" />
75     <argument ref="mdsalUtils" />
76     <argument ref="naptManager" />
77     <argument ref="packetProcessingService" />
78     <argument ref="odlInterfaceRpcService" />
79     <argument ref="interfaceManager" />
80   </bean>
81
82   <bean id="eventDispatcher"
83         class="org.opendaylight.netvirt.natservice.internal.EventDispatcher"
84         init-method="init">
85     <argument ref="naptEventHandler" />
86   </bean>
87
88   <bean id="naptPacketInHandler"
89         class="org.opendaylight.netvirt.natservice.internal.NaptPacketInHandler">
90     <argument ref="eventDispatcher" />
91   </bean>
92   <odl:notification-listener ref="naptPacketInHandler" />
93
94   <bean id="vpnFloatingIpHandler"
95         class="org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler">
96     <argument ref="dataBroker" />
97     <argument ref="mdsalUtils" />
98     <argument ref="vpnRpcService" />
99     <argument ref="bgpManager" />
100     <argument ref="fibRpcService" />
101     <argument ref="floatingIPListener" />
102     <argument ref="fibManager" />
103     <argument ref="odlArputilService" />
104     <argument ref="vpnManager" />
105     <argument ref="elanService" />
106   </bean>
107   <service ref="vpnFloatingIpHandler"
108            interface="org.opendaylight.netvirt.natservice.internal.FloatingIPHandler" />
109
110   <bean id="nAPTSwitchSelector"
111         class="org.opendaylight.netvirt.natservice.internal.NAPTSwitchSelector">
112     <argument ref="dataBroker" />
113   </bean>
114
115   <bean id="externalRoutersListener"
116         class="org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener"
117         init-method="init" destroy-method="close">
118     <argument ref="dataBroker" />
119     <argument ref="mdsalUtils" />
120     <argument ref="itmRpcService" />
121     <argument ref="odlInterfaceRpcService" />
122     <argument ref="idManagerService" />
123     <argument ref="naptManager" />
124     <argument ref="nAPTSwitchSelector" />
125     <argument ref="bgpManager" />
126     <argument ref="vpnRpcService" />
127     <argument ref="fibRpcService" />
128     <argument ref="sNATDefaultRouteProgrammer" />
129     <argument ref="naptEventHandler" />
130     <argument ref="naptPacketInHandler" />
131     <argument ref="fibManager" />
132     <argument ref="vpnManager"/>
133   </bean>
134
135   <bean id="externalNetworksChangeListener"
136         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworksChangeListener"
137         init-method="init" destroy-method="close">
138     <argument ref="dataBroker" />
139     <argument ref="mdsalUtils" />
140     <argument ref="floatingIPListener" />
141     <argument ref="externalRoutersListener" />
142     <argument ref="odlInterfaceRpcService" />
143     <argument ref="naptManager" />
144     <argument ref="bgpManager" />
145     <argument ref="vpnRpcService" />
146     <argument ref="fibRpcService" />
147   </bean>
148
149   <bean id="naptFlowRemovedEventHandler"
150         class="org.opendaylight.netvirt.natservice.internal.NaptFlowRemovedEventHandler">
151     <argument ref="dataBroker" />
152     <argument ref="mdsalUtils" />
153     <argument ref="eventDispatcher" />
154     <argument ref="naptPacketInHandler" />
155     <argument ref="naptManager" />
156   </bean>
157   <odl:notification-listener ref="naptFlowRemovedEventHandler" />
158
159   <bean id="interfaceStateEventListener"
160         class="org.opendaylight.netvirt.natservice.internal.InterfaceStateEventListener"
161         init-method="init" destroy-method="close">
162     <argument ref="dataBroker" />
163     <argument ref="mdsalUtils" />
164     <argument ref="floatingIPListener" />
165     <argument ref="naptManager" />
166     <argument ref="neutronvpnService" />
167   </bean>
168
169   <bean id="sNATDefaultRouteProgrammer"
170         class="org.opendaylight.netvirt.natservice.internal.SNATDefaultRouteProgrammer">
171     <argument ref="mdsalUtils" />
172   </bean>
173
174   <bean id="naptSwitchHA"
175         class="org.opendaylight.netvirt.natservice.internal.NaptSwitchHA">
176     <argument ref="dataBroker" />
177     <argument ref="mdsalUtils" />
178     <argument ref="externalRoutersListener" />
179     <argument ref="itmRpcService" />
180     <argument ref="odlInterfaceRpcService" />
181     <argument ref="idManagerService" />
182     <argument ref="nAPTSwitchSelector" />
183     <argument ref="bgpManager" />
184     <argument ref="vpnRpcService" />
185     <argument ref="fibRpcService" />
186     <argument ref="fibManager" />
187   </bean>
188
189   <bean id="natNodeEventListener"
190         class="org.opendaylight.netvirt.natservice.internal.NatNodeEventListener"
191         init-method="init" destroy-method="close">
192     <argument ref="dataBroker" />
193   </bean>
194
195   <bean id="routerPortsListener"
196         class="org.opendaylight.netvirt.natservice.internal.RouterPortsListener"
197         init-method="init" destroy-method="close">
198     <argument ref="dataBroker" />
199   </bean>
200
201   <bean id="routerDpnChangeListener"
202         class="org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener"
203         init-method="init" destroy-method="close">
204     <argument ref="dataBroker" />
205     <argument ref="mdsalUtils" />
206     <argument ref="sNATDefaultRouteProgrammer" />
207     <argument ref="naptSwitchHA" />
208     <argument ref="idManagerService" />
209     <argument ref="externalNetworkGroupInstaller" />
210   </bean>
211
212   <bean id="routerToVpnListener"
213         class="org.opendaylight.netvirt.natservice.internal.RouterToVpnListener">
214     <argument ref="dataBroker" />
215     <argument ref="floatingIPListener" />
216     <argument ref="odlInterfaceRpcService" />
217     <argument ref="externalRoutersListener" />
218   </bean>
219   <odl:notification-listener ref="routerToVpnListener" />
220
221   <bean id="subnetGwMacChangeListener"
222         class="org.opendaylight.netvirt.natservice.internal.SubnetGwMacChangeListener"
223         init-method="start" destroy-method="close">
224     <argument ref="dataBroker" />
225     <argument ref="neutronvpnManager" />
226     <argument ref="externalNetworkGroupInstaller" />
227   </bean>
228
229   <bean id="externalNetworkGroupInstaller"
230         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkGroupInstaller">
231     <argument ref="dataBroker" />
232     <argument ref="mdsalUtils" />
233     <argument ref="elanService" />
234     <argument ref="idManagerService" />
235     <argument ref="odlInterfaceRpcService" />
236   </bean>
237
238   <bean id="natRouterInterfaceListener"
239         class="org.opendaylight.netvirt.natservice.internal.NatRouterInterfaceListener"
240         init-method="init" destroy-method="close">
241     <argument ref="dataBroker" />
242     <argument ref="odlInterfaceRpcService" />
243   </bean>
244
245   <bean id="natInterfaceStateChangeListener"
246         class="org.opendaylight.netvirt.natservice.internal.NatInterfaceStateChangeListener"
247         init-method="init" destroy-method="close">
248     <argument ref="dataBroker" />
249     <argument ref="odlInterfaceRpcService" />
250   </bean>
251
252   <bean id="natTunnelInterfaceStateListener"
253         class="org.opendaylight.netvirt.natservice.internal.NatTunnelInterfaceStateListener"
254         init-method="init" destroy-method="close">
255     <argument ref="dataBroker" />
256     <argument ref="bgpManager" />
257     <argument ref="fibManager" />
258     <argument ref="sNATDefaultRouteProgrammer" />
259     <argument ref="naptSwitchHA" />
260     <argument ref="mdsalUtils" />
261     <argument ref="idManagerService" />
262     <argument ref="externalRoutersListener" />
263     <argument ref="odlInterfaceRpcService" />
264     <argument ref="floatingIPListener" />
265     <argument ref="fibRpcService" />
266   </bean>
267
268   <bean id="natRpcServiceImpl" class="org.opendaylight.netvirt.natservice.rpcservice.NatRpcServiceImpl">
269     <argument ref="dataBroker"/>
270     <argument ref="neutronvpnManager" />
271   </bean>
272   <service ref="natRpcServiceImpl"
273            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rpc.rev170209.OdlNatRpcService"/>
274 </blueprint>