Router VNI as tun_id from Non-NAPT to NAPT
[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   <reference id="notificationPublishService"
24              interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" />
25
26
27   <odl:rpc-service id="idManagerService"
28                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
29   <odl:rpc-service id="odlInterfaceRpcService"
30                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService" />
31   <odl:rpc-service id="itmRpcService"
32                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService" />
33   <odl:rpc-service id="packetProcessingService"
34                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService" />
35   <odl:rpc-service id="neutronvpnService"
36                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.NeutronvpnService" />
37   <odl:rpc-service id="vpnRpcService"
38                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.vpn.rpc.rev160201.VpnRpcService" />
39   <odl:rpc-service id="fibRpcService"
40                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fib.rpc.rev160121.FibRpcService" />
41   <odl:rpc-service id="odlArputilService"
42                    interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.OdlArputilService" />
43   <odl:rpc-implementation ref="natRpcServiceImpl"/>
44
45   <bean id="subnetmapListener"
46         class="org.opendaylight.netvirt.natservice.internal.SubnetmapListener"
47         init-method="init" destroy-method="close">
48     <argument ref="dataBroker" />
49     <argument ref="externalNetworkGroupInstaller" />
50   </bean>
51
52   <bean id="floatingIPListener"
53         class="org.opendaylight.netvirt.natservice.internal.FloatingIPListener"
54         init-method="init" destroy-method="close">
55     <argument ref="dataBroker" />
56     <argument ref="mdsalUtils" />
57     <argument ref="odlInterfaceRpcService" />
58     <argument ref="blueprintBundleContext" />
59   </bean>
60
61   <bean id="externalNetworkListener"
62         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkListener"
63         init-method="init" destroy-method="close">
64     <argument ref="dataBroker" />
65     <argument ref="mdsalUtils" />
66   </bean>
67
68   <bean id="externalSubneVpnInstanceListener"
69         class="org.opendaylight.netvirt.natservice.internal.ExternalSubnetVpnInstanceListener"
70         init-method="init" destroy-method="close">
71     <argument ref="dataBroker" />
72     <argument ref="sNATDefaultRouteProgrammer" />
73     <argument ref="elanService" />
74     <argument ref="notificationPublishService" />
75   </bean>
76
77   <bean id="naptManager"
78         class="org.opendaylight.netvirt.natservice.internal.NaptManager">
79     <argument ref="dataBroker" />
80     <argument ref="idManagerService" />
81   </bean>
82
83   <bean id="naptEventHandler"
84         class="org.opendaylight.netvirt.natservice.internal.NaptEventHandler">
85     <argument ref="dataBroker" />
86     <argument ref="mdsalUtils" />
87     <argument ref="naptManager" />
88     <argument ref="packetProcessingService" />
89     <argument ref="odlInterfaceRpcService" />
90     <argument ref="interfaceManager" />
91   </bean>
92
93   <bean id="eventDispatcher"
94         class="org.opendaylight.netvirt.natservice.internal.EventDispatcher"
95         init-method="init">
96     <argument ref="naptEventHandler" />
97   </bean>
98
99   <bean id="naptPacketInHandler"
100         class="org.opendaylight.netvirt.natservice.internal.NaptPacketInHandler">
101     <argument ref="eventDispatcher" />
102   </bean>
103   <odl:notification-listener ref="naptPacketInHandler" />
104
105   <bean id="vpnFloatingIpHandler"
106         class="org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler">
107     <argument ref="dataBroker" />
108     <argument ref="mdsalUtils" />
109     <argument ref="vpnRpcService" />
110     <argument ref="bgpManager" />
111     <argument ref="fibRpcService" />
112     <argument ref="floatingIPListener" />
113     <argument ref="fibManager" />
114     <argument ref="odlArputilService" />
115     <argument ref="vpnManager" />
116     <argument ref="elanService" />
117     <argument ref="evpnDnatFlowProgrammer" />
118   </bean>
119   <service ref="vpnFloatingIpHandler"
120            interface="org.opendaylight.netvirt.natservice.internal.FloatingIPHandler" />
121
122   <bean id="nAPTSwitchSelector"
123         class="org.opendaylight.netvirt.natservice.internal.NAPTSwitchSelector">
124     <argument ref="dataBroker" />
125   </bean>
126
127   <bean id="externalRoutersListener"
128         class="org.opendaylight.netvirt.natservice.internal.ExternalRoutersListener"
129         init-method="init" destroy-method="close">
130     <argument ref="dataBroker" />
131     <argument ref="mdsalUtils" />
132     <argument ref="itmRpcService" />
133     <argument ref="odlInterfaceRpcService" />
134     <argument ref="idManagerService" />
135     <argument ref="naptManager" />
136     <argument ref="nAPTSwitchSelector" />
137     <argument ref="bgpManager" />
138     <argument ref="vpnRpcService" />
139     <argument ref="fibRpcService" />
140     <argument ref="sNATDefaultRouteProgrammer" />
141     <argument ref="naptEventHandler" />
142     <argument ref="naptPacketInHandler" />
143     <argument ref="fibManager" />
144     <argument ref="vpnManager"/>
145     <argument ref="evpnSnatFlowProgrammer"/>
146     <argument ref="neutronvpnManager" />
147   </bean>
148
149   <bean id="externalNetworksChangeListener"
150         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworksChangeListener"
151         init-method="init" destroy-method="close">
152     <argument ref="dataBroker" />
153     <argument ref="mdsalUtils" />
154     <argument ref="floatingIPListener" />
155     <argument ref="externalRoutersListener" />
156     <argument ref="odlInterfaceRpcService" />
157     <argument ref="naptManager" />
158     <argument ref="bgpManager" />
159     <argument ref="vpnRpcService" />
160     <argument ref="fibRpcService" />
161   </bean>
162
163   <bean id="naptFlowRemovedEventHandler"
164         class="org.opendaylight.netvirt.natservice.internal.NaptFlowRemovedEventHandler">
165     <argument ref="dataBroker" />
166     <argument ref="mdsalUtils" />
167     <argument ref="eventDispatcher" />
168     <argument ref="naptPacketInHandler" />
169     <argument ref="naptManager" />
170   </bean>
171   <odl:notification-listener ref="naptFlowRemovedEventHandler" />
172
173   <bean id="interfaceStateEventListener"
174         class="org.opendaylight.netvirt.natservice.internal.InterfaceStateEventListener"
175         init-method="init" destroy-method="close">
176     <argument ref="dataBroker" />
177     <argument ref="mdsalUtils" />
178     <argument ref="floatingIPListener" />
179     <argument ref="naptManager" />
180     <argument ref="neutronvpnService" />
181   </bean>
182
183   <bean id="sNATDefaultRouteProgrammer"
184         class="org.opendaylight.netvirt.natservice.internal.SNATDefaultRouteProgrammer">
185     <argument ref="mdsalUtils" />
186     <argument ref="dataBroker" />
187     <argument ref="idManagerService" />
188   </bean>
189
190   <bean id="naptSwitchHA"
191         class="org.opendaylight.netvirt.natservice.internal.NaptSwitchHA">
192     <argument ref="dataBroker" />
193     <argument ref="mdsalUtils" />
194     <argument ref="externalRoutersListener" />
195     <argument ref="itmRpcService" />
196     <argument ref="odlInterfaceRpcService" />
197     <argument ref="idManagerService" />
198     <argument ref="nAPTSwitchSelector" />
199     <argument ref="bgpManager" />
200     <argument ref="vpnRpcService" />
201     <argument ref="fibRpcService" />
202     <argument ref="fibManager" />
203     <argument ref="evpnNaptSwitchHA" />
204     <argument ref="neutronvpnManager" />
205   </bean>
206
207   <bean id="natNodeEventListener"
208         class="org.opendaylight.netvirt.natservice.internal.NatNodeEventListener"
209         init-method="init" destroy-method="close">
210     <argument ref="dataBroker" />
211   </bean>
212
213   <bean id="routerPortsListener"
214         class="org.opendaylight.netvirt.natservice.internal.RouterPortsListener"
215         init-method="init" destroy-method="close">
216     <argument ref="dataBroker" />
217   </bean>
218
219   <bean id="routerDpnChangeListener"
220         class="org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener"
221         init-method="init" destroy-method="close">
222     <argument ref="dataBroker" />
223     <argument ref="mdsalUtils" />
224     <argument ref="sNATDefaultRouteProgrammer" />
225     <argument ref="naptSwitchHA" />
226     <argument ref="idManagerService" />
227     <argument ref="externalNetworkGroupInstaller" />
228     <argument ref="neutronvpnManager" />
229   </bean>
230
231   <bean id="routerToVpnListener"
232         class="org.opendaylight.netvirt.natservice.internal.RouterToVpnListener">
233     <argument ref="dataBroker" />
234     <argument ref="floatingIPListener" />
235     <argument ref="odlInterfaceRpcService" />
236     <argument ref="externalRoutersListener" />
237   </bean>
238   <odl:notification-listener ref="routerToVpnListener" />
239
240   <bean id="subnetGwMacChangeListener"
241         class="org.opendaylight.netvirt.natservice.internal.SubnetGwMacChangeListener"
242         init-method="start" destroy-method="close">
243     <argument ref="dataBroker" />
244     <argument ref="neutronvpnManager" />
245     <argument ref="externalNetworkGroupInstaller" />
246   </bean>
247
248   <bean id="externalNetworkGroupInstaller"
249         class="org.opendaylight.netvirt.natservice.internal.ExternalNetworkGroupInstaller">
250     <argument ref="dataBroker" />
251     <argument ref="mdsalUtils" />
252     <argument ref="elanService" />
253     <argument ref="idManagerService" />
254     <argument ref="odlInterfaceRpcService" />
255   </bean>
256
257   <bean id="natRouterInterfaceListener"
258         class="org.opendaylight.netvirt.natservice.internal.NatRouterInterfaceListener"
259         init-method="init" destroy-method="close">
260     <argument ref="dataBroker" />
261     <argument ref="odlInterfaceRpcService" />
262   </bean>
263
264   <bean id="natInterfaceStateChangeListener"
265         class="org.opendaylight.netvirt.natservice.internal.NatInterfaceStateChangeListener"
266         init-method="init" destroy-method="close">
267     <argument ref="dataBroker" />
268     <argument ref="odlInterfaceRpcService" />
269   </bean>
270
271   <bean id="natTunnelInterfaceStateListener"
272         class="org.opendaylight.netvirt.natservice.internal.NatTunnelInterfaceStateListener"
273         init-method="init" destroy-method="close">
274     <argument ref="dataBroker" />
275     <argument ref="bgpManager" />
276     <argument ref="fibManager" />
277     <argument ref="sNATDefaultRouteProgrammer" />
278     <argument ref="naptSwitchHA" />
279     <argument ref="mdsalUtils" />
280     <argument ref="idManagerService" />
281     <argument ref="externalRoutersListener" />
282     <argument ref="odlInterfaceRpcService" />
283     <argument ref="floatingIPListener" />
284     <argument ref="fibRpcService" />
285   </bean>
286
287   <bean id="natRpcServiceImpl" class="org.opendaylight.netvirt.natservice.rpcservice.NatRpcServiceImpl">
288     <argument ref="dataBroker"/>
289     <argument ref="neutronvpnManager" />
290   </bean>
291
292   <service ref="natRpcServiceImpl"
293            interface="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rpc.rev170209.OdlNatRpcService"/>
294
295   <bean id="evpnSnatFlowProgrammer" class="org.opendaylight.netvirt.natservice.internal.EvpnSnatFlowProgrammer">
296     <argument ref="dataBroker" />
297     <argument ref="mdsalUtils" />
298     <argument ref="bgpManager" />
299     <argument ref="fibManager" />
300   </bean>
301
302   <bean id="evpnNaptSwitchHA" class="org.opendaylight.netvirt.natservice.internal.EvpnNaptSwitchHA">
303     <argument ref="dataBroker" />
304     <argument ref="mdsalUtils" />
305     <argument ref="evpnSnatFlowProgrammer" />
306     <argument ref="idManagerService" />
307   </bean>
308
309   <bean id="evpnDnatFlowProgrammer" class="org.opendaylight.netvirt.natservice.internal.EvpnDnatFlowProgrammer">
310     <argument ref="dataBroker" />
311     <argument ref="mdsalUtils" />
312     <argument ref="bgpManager" />
313     <argument ref="fibManager" />
314     <argument ref="fibRpcService" />
315     <argument ref="vpnManager" />
316     <argument ref="floatingIPListener" />
317   </bean>
318 </blueprint>