SNAT implementation for DVR 55/57155/43
authorMichal Cmarada <mcmarada@cisco.com>
Thu, 28 Sep 2017 07:59:44 +0000 (09:59 +0200)
committerTomas Cechvala <tcechval@cisco.com>
Tue, 3 Oct 2017 07:36:18 +0000 (07:36 +0000)
commitcf70fd576253960ab918c5327dc8329dec591c2f
treeb7daa8fe635ea5a8847e91e3eb461f46e25eb863
parent78cd1051113f538b4bdaa7b39c707355f5a03938
SNAT implementation for DVR

The feature is implemented in VPP renderer.
There are two implementation of SNAT:
 - centralized
 - DVR

In centralized scenario, NAT is configured on one dedicated node.
The node is the one where BVI interface is configured. All static
entries and dynamic entries are on the same node.

In DVR scenario, NAT is configured on every node where endpoints
resode. Static entries on a node are significant only to local
endpoints. There is no support for dynamic NAT yet.

Change-Id: If3c0e80b0fb1c98b85a8c8d7cbd7c25000d33238
Signed-off-by: Tomas Cechvala <tcechval@cisco.com>
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
21 files changed:
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IidFactory.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/NeutronFloatingIpAware.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/rule/NeutronSecurityRuleAware.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/util/Utils.java
neutron-mapper/src/main/resources/startup.cfg
renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/AbstractInterfaceCommand.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/LoopbackCommand.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/NatInstanceCommand.java [new file with mode: 0644]
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/VhostUserCommand.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManager.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/FlatOverlayManager.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/nat/CentralizedNatImpl.java [new file with mode: 0644]
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/nat/DvrNatImpl.java [new file with mode: 0644]
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/nat/NatManager.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/nat/NatUtil.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/ForwardingManager.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManager.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/VppIidFactory.java
renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManagerTest.java
renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManagerTest.java