summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java')
-rw-r--r--lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java
index c9694c7a6..bceae832e 100644
--- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java
+++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/read/trait/MappingProducer.java
@@ -16,10 +16,14 @@
package io.fd.hc2vpp.lisp.translate.read.trait;
+import com.google.common.collect.ImmutableSet;
import io.fd.honeycomb.translate.write.WriteFailedException;
+import java.util.Set;
import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6Afi;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6PrefixAfi;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddressFamily;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.LocalMapping;
@@ -33,15 +37,21 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
*/
public interface MappingProducer {
+ Set<Class<? extends LispAddressFamily>> VRF_ALLOWED_ADDRESS_TYPES = ImmutableSet.of(
+ Ipv4Afi.class,
+ Ipv6Afi.class,
+ Ipv4PrefixAfi.class,
+ Ipv6PrefixAfi.class);
+
/**
- * Checks whether provided {@link LocalMapping} can be written under subtree idenfied by {@link InstanceIdentifier}
+ * Checks whether provided {@link LocalMapping} can be written under subtree identified by {@link InstanceIdentifier}
*/
default void checkAllowedCombination(@Nonnull final InstanceIdentifier<LocalMapping> identifier,
@Nonnull final LocalMapping data) throws WriteFailedException {
final Class<? extends LispAddressFamily> eidAddressType = data.getEid().getAddressType();
if (identifier.firstIdentifierOf(VrfSubtable.class) != null) {
- if (Ipv4Afi.class != eidAddressType && Ipv6Afi.class != eidAddressType) {
+ if (!VRF_ALLOWED_ADDRESS_TYPES.contains(eidAddressType)) {
throw new WriteFailedException.CreateFailedException(identifier, data,
new IllegalArgumentException("Only Ipv4/Ipv6 eid's are allowed for Vrf Subtable"));
}
@@ -58,7 +68,7 @@ public interface MappingProducer {
final Class<? extends LispAddressFamily> eidAddressType = data.getEid().getAddressType();
if (identifier.firstIdentifierOf(VrfSubtable.class) != null) {
- if (Ipv4Afi.class != eidAddressType && Ipv6Afi.class != eidAddressType) {
+ if (!VRF_ALLOWED_ADDRESS_TYPES.contains(eidAddressType)) {
throw new WriteFailedException.CreateFailedException(identifier, data,
new IllegalArgumentException("Only Ipv4/Ipv6 eid's are allowed for Vrf Subtable"));
}