diff options
Diffstat (limited to 'l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory')
5 files changed, 38 insertions, 18 deletions
diff --git a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv4WriterFactory.java b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv4WriterFactory.java index 536dab3f6..ed6ef5ece 100644 --- a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv4WriterFactory.java +++ b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/Ipv4WriterFactory.java @@ -24,8 +24,10 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.l3.write.ipv4.Ipv4AddressCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.Ipv4AddressValidator; import io.fd.hc2vpp.l3.write.ipv4.Ipv4Customizer; import io.fd.hc2vpp.l3.write.ipv4.Ipv4NeighbourCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.Ipv4NeighbourValidator; import io.fd.honeycomb.translate.impl.write.GenericListWriter; import io.fd.honeycomb.translate.impl.write.GenericWriter; import io.fd.honeycomb.translate.write.WriterFactory; @@ -60,11 +62,11 @@ public class Ipv4WriterFactory implements WriterFactory { ImmutableSet.of(IFC_ID, VPP_IFC_AUG_ID.child(Routing.class))); // Address(after Ipv4) = final InstanceIdentifier<Address> ipv4AddressId = ipv4Id.child(Address.class); - registry.addAfter(new GenericListWriter<>(ipv4AddressId, new Ipv4AddressCustomizer(jvpp, ifcNamingContext)), + registry.addAfter(new GenericListWriter<>(ipv4AddressId, new Ipv4AddressCustomizer(jvpp, ifcNamingContext), + new Ipv4AddressValidator(ifcNamingContext)), ipv4Id); // Neighbor(after ipv4Address) registry.addAfter(new GenericListWriter<>(ipv4Id.child(Neighbor.class), new Ipv4NeighbourCustomizer(jvpp, - ifcNamingContext)), ipv4AddressId); + ifcNamingContext), new Ipv4NeighbourValidator(ifcNamingContext)), ipv4AddressId); } - } 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 ad1a42cdf..2ed80a725 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 @@ -24,9 +24,12 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.l3.write.ipv6.Ipv6AddressCustomizer; +import io.fd.hc2vpp.l3.write.ipv6.Ipv6AddressValidator; import io.fd.hc2vpp.l3.write.ipv6.Ipv6Customizer; import io.fd.hc2vpp.l3.write.ipv6.Ipv6NeighbourCustomizer; +import io.fd.hc2vpp.l3.write.ipv6.Ipv6NeighbourValidator; import io.fd.hc2vpp.l3.write.ipv6.nd.NdProxyCustomizer; +import io.fd.hc2vpp.l3.write.ipv6.nd.NdProxyValidator; import io.fd.honeycomb.translate.impl.write.GenericListWriter; import io.fd.honeycomb.translate.impl.write.GenericWriter; import io.fd.honeycomb.translate.write.WriterFactory; @@ -68,14 +71,17 @@ public class Ipv6WriterFactory implements WriterFactory { final InstanceIdentifier<Address> ipv6AddressId = ipv6Id.child(Address.class); - registry.addAfter(new GenericListWriter<>(ipv6AddressId, new Ipv6AddressCustomizer(jvpp, ifcNamingContext)), + registry.addAfter(new GenericListWriter<>(ipv6AddressId, new Ipv6AddressCustomizer(jvpp, ifcNamingContext), + new Ipv6AddressValidator(ifcNamingContext)), ipv6Id); registry.addAfter(new GenericListWriter<>(ipv6Id.child(Neighbor.class), - new Ipv6NeighbourCustomizer(jvpp, ifcNamingContext)), ipv6AddressId); + new Ipv6NeighbourCustomizer(jvpp, ifcNamingContext), new Ipv6NeighbourValidator(ifcNamingContext)), + ipv6AddressId); // ND Proxy final InstanceIdentifier<NdProxy> ndProxyId = - ipv6Id.augmentation(NdProxyIp6Augmentation.class).child(NdProxies.class).child(NdProxy.class); - registry.addAfter(new GenericListWriter<>(ndProxyId, new NdProxyCustomizer(jvpp, ifcNamingContext)), ipv6Id); + ipv6Id.augmentation(NdProxyIp6Augmentation.class).child(NdProxies.class).child(NdProxy.class); + registry.addAfter(new GenericListWriter<>(ndProxyId, new NdProxyCustomizer(jvpp, ifcNamingContext), + new NdProxyValidator(ifcNamingContext)), ipv6Id); } } diff --git a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/ProxyArpWriterFactory.java b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/ProxyArpWriterFactory.java index 22109c3d4..b2c6c5cc8 100644 --- a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/ProxyArpWriterFactory.java +++ b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/ProxyArpWriterFactory.java @@ -21,7 +21,9 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.l3.write.ipv4.ProxyArpCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.ProxyArpValidator; import io.fd.hc2vpp.l3.write.ipv4.ProxyRangeCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.ProxyRangeValidator; import io.fd.honeycomb.translate.impl.write.GenericListWriter; import io.fd.honeycomb.translate.impl.write.GenericWriter; import io.fd.honeycomb.translate.write.WriterFactory; @@ -38,11 +40,11 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public final class ProxyArpWriterFactory implements WriterFactory { public static final InstanceIdentifier<ProxyRange> PROXY_RANGE_IID = - InstanceIdentifier.create(ProxyRanges.class).child(ProxyRange.class); + InstanceIdentifier.create(ProxyRanges.class).child(ProxyRange.class); private static final InstanceIdentifier<Interface> - IFC_ID = InstanceIdentifier.create(Interfaces.class).child(Interface.class); + IFC_ID = InstanceIdentifier.create(Interfaces.class).child(Interface.class); private static final InstanceIdentifier<ProxyArp> PROXY_ARP_IID = - IFC_ID.augmentation(ProxyArpInterfaceAugmentation.class).child(ProxyArp.class); + IFC_ID.augmentation(ProxyArpInterfaceAugmentation.class).child(ProxyArp.class); private final FutureJVppCore jvpp; private final NamingContext ifcNamingContext; @@ -58,13 +60,15 @@ public final class ProxyArpWriterFactory implements WriterFactory { public void init(final ModifiableWriterRegistryBuilder registry) { // proxy-arp // proxy-range = - registry.add(new GenericListWriter<>(PROXY_RANGE_IID, new ProxyRangeCustomizer(jvpp))); + registry.add( + new GenericListWriter<>(PROXY_RANGE_IID, new ProxyRangeCustomizer(jvpp), new ProxyRangeValidator())); // interfaces // interface // proxy-arp-interface-augmentation // proxy-arp = - registry.addAfter(new GenericWriter<>(PROXY_ARP_IID, new ProxyArpCustomizer(jvpp, ifcNamingContext)), - Sets.newHashSet(PROXY_RANGE_IID, IFC_ID)); + registry.addAfter(new GenericWriter<>(PROXY_ARP_IID, new ProxyArpCustomizer(jvpp, ifcNamingContext), + new ProxyArpValidator(ifcNamingContext)), + Sets.newHashSet(PROXY_RANGE_IID, IFC_ID)); } } diff --git a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv4WriterFactory.java b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv4WriterFactory.java index f5d7dc553..831b160be 100644 --- a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv4WriterFactory.java +++ b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv4WriterFactory.java @@ -25,7 +25,9 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.l3.write.ipv4.subinterface.SubInterfaceIpv4AddressCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.subinterface.SubInterfaceIpv4AddressValidator; import io.fd.hc2vpp.l3.write.ipv4.subinterface.SubInterfaceIpv4NeighbourCustomizer; +import io.fd.hc2vpp.l3.write.ipv4.subinterface.SubInterfaceIpv4NeighbourValidator; import io.fd.honeycomb.translate.impl.write.GenericListWriter; import io.fd.honeycomb.translate.write.WriterFactory; import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; @@ -38,7 +40,7 @@ import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.vlan.rev180319.su import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.vlan.rev180319.sub._interface.routing.attributes.Routing; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class SubInterfaceIpv4WriterFactory implements WriterFactory{ +public class SubInterfaceIpv4WriterFactory implements WriterFactory { @Inject private FutureJVppCore jvpp; @@ -55,11 +57,13 @@ public class SubInterfaceIpv4WriterFactory implements WriterFactory{ // Ipv4(handled after L2 and L2/rewrite is done) = final InstanceIdentifier<Address> ipv4SubifcAddressId = SUB_IFC_ID.child(Ipv4.class).child(Address.class); registry.addAfter(new GenericListWriter<>(ipv4SubifcAddressId, - new SubInterfaceIpv4AddressCustomizer(jvpp, ifcNamingContext)), + new SubInterfaceIpv4AddressCustomizer(jvpp, ifcNamingContext), + new SubInterfaceIpv4AddressValidator(ifcNamingContext)), ImmutableSet.of(rewriteId, SUB_IFC_ID.child(Routing.class))); final InstanceIdentifier<Neighbor> ipv4NeighborId = SUB_IFC_ID.child(Ipv4.class).child(Neighbor.class); registry.addAfter(new GenericListWriter<>(ipv4NeighborId, - new SubInterfaceIpv4NeighbourCustomizer(jvpp, ifcNamingContext)), rewriteId); + new SubInterfaceIpv4NeighbourCustomizer(jvpp, ifcNamingContext), + new SubInterfaceIpv4NeighbourValidator(ifcNamingContext)), rewriteId); } } diff --git a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv6WriterFactory.java b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv6WriterFactory.java index 4e1c6792e..a8a8e1ded 100644 --- a/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv6WriterFactory.java +++ b/l3/impl/src/main/java/io/fd/hc2vpp/l3/write/factory/SubInterfaceIpv6WriterFactory.java @@ -25,7 +25,9 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.l3.write.ipv6.subinterface.SubInterfaceIpv6AddressCustomizer; +import io.fd.hc2vpp.l3.write.ipv6.subinterface.SubInterfaceIpv6AddressValidator; import io.fd.hc2vpp.l3.write.ipv6.subinterface.SubInterfaceIpv6NeighbourCustomizer; +import io.fd.hc2vpp.l3.write.ipv6.subinterface.SubInterfaceIpv6NeighbourValidator; import io.fd.honeycomb.translate.impl.write.GenericListWriter; import io.fd.honeycomb.translate.write.WriterFactory; import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; @@ -56,12 +58,14 @@ public class SubInterfaceIpv6WriterFactory implements WriterFactory { ipv6SubifcAddressId = SUB_IFC_ID.child(Ipv6.class) .child(org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.vlan.rev180319.sub._interface.ip6.attributes.ipv6.Address.class); registry.addAfter(new GenericListWriter<>(ipv6SubifcAddressId, - new SubInterfaceIpv6AddressCustomizer(jvpp, ifcNamingContext)), ImmutableSet + new SubInterfaceIpv6AddressCustomizer(jvpp, ifcNamingContext), + new SubInterfaceIpv6AddressValidator(ifcNamingContext)), ImmutableSet .of(rewriteId, SUB_IFC_ID.child(Routing.class))); final InstanceIdentifier<org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.vlan.rev180319.sub._interface.ip6.attributes.ipv6.Neighbor> ipv6NeighborId = SUB_IFC_ID.child(Ipv6.class) .child(org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.vlan.rev180319.sub._interface.ip6.attributes.ipv6.Neighbor.class); registry.addAfter(new GenericListWriter<>(ipv6NeighborId, - new SubInterfaceIpv6NeighbourCustomizer(jvpp, ifcNamingContext)), rewriteId); + new SubInterfaceIpv6NeighbourCustomizer(jvpp, ifcNamingContext), + new SubInterfaceIpv6NeighbourValidator(ifcNamingContext)), rewriteId); } } |