summaryrefslogtreecommitdiffstats
path: root/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java
diff options
context:
space:
mode:
authorJan Srnicek <jsrnicek@cisco.com>2017-05-15 14:41:25 +0200
committerMarek Gradzki <mgradzki@cisco.com>2017-05-15 13:12:49 +0000
commit400acf46ddab06a23a703f7d5b67cc4f5deeafe4 (patch)
tree5297889eafee26d3b3018f4461b10ed6bfaf9da4 /l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java
parent8e0b7b8b35c2efba5e48219318e6c5a8e48a6d4f (diff)
HC2VPP-151 - ip table reconfiguration while address present prevention
- fixed ordering - addresses must be written after vrf's - added check to prevent such scenario in multi-request scenario Change-Id: Idc233a8ac36fabef306339bfeec57bdc19b0f082 Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java')
-rw-r--r--l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java
index d9bee8177..1793450c4 100644
--- a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java
+++ b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv6WriterFactory.java
@@ -17,7 +17,9 @@
package io.fd.hc2vpp.l3.write.factory;
import static io.fd.hc2vpp.v3po.factory.InterfacesWriterFactory.IFC_ID;
+import static io.fd.hc2vpp.v3po.factory.InterfacesWriterFactory.VPP_IFC_AUG_ID;
+import com.google.common.collect.ImmutableSet;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import io.fd.hc2vpp.common.translate.util.NamingContext;
@@ -37,6 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev14061
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.Ipv6;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.ipv6.Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.ipv6.Neighbor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.interfaces._interface.Routing;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.nd.proxy.rev170315.NdProxyIp6Augmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.nd.proxy.rev170315.interfaces._interface.ipv6.NdProxies;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.nd.proxy.rev170315.interfaces._interface.ipv6.nd.proxies.NdProxy;
@@ -59,7 +62,9 @@ public class Ipv6WriterFactory implements WriterFactory {
// Ipv6(after interface) =
final InstanceIdentifier<Ipv6> ipv6Id = ifc1AugId.child(Ipv6.class);
- registry.addAfter(new GenericWriter<>(ipv6Id, new Ipv6Customizer(jvpp)), IFC_ID);
+ // changing ip table for interface that has ip address assigned is illegal action(internal vpp behaviour)
+ registry.addAfter(new GenericWriter<>(ipv6Id, new Ipv6Customizer(jvpp)), ImmutableSet
+ .of(IFC_ID, VPP_IFC_AUG_ID.child(Routing.class)));
final InstanceIdentifier<Address>
ipv6AddressId = ipv6Id.child(Address.class);