diff options
Diffstat (limited to 'lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory')
5 files changed, 17 insertions, 10 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/EidTableWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/EidTableWriterFactory.java index 347e13001..9ffd04b8f 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/EidTableWriterFactory.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/EidTableWriterFactory.java @@ -65,7 +65,7 @@ public final class EidTableWriterFactory extends AbstractLispInfraFactoryBase im @Override public void init(final ModifiableWriterRegistryBuilder registry) { - registry.add(new GenericListWriter<>(VNI_TABLE_ID, new VniTableCustomizer(vppApi))); + registry.add(new GenericListWriter<>(VNI_TABLE_ID, new VniTableCustomizer(vppApi, lispStateCheckService))); registry.add(new GenericWriter<>(VRF_SUBTABLE_ID, new VrfSubtableCustomizer(vppApi))); registry.add(new GenericWriter<>(BRIDGE_DOMAIN_SUBTABLE_ID, diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LispWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LispWriterFactory.java index ed7d2122a..46cb9da7b 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LispWriterFactory.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LispWriterFactory.java @@ -30,6 +30,7 @@ import io.fd.honeycomb.translate.impl.write.GenericWriter; import io.fd.honeycomb.translate.write.WriterFactory; import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; import javax.annotation.Nonnull; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.Lisp; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.lisp.feature.data.grouping.LispFeatureData; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.map.register.grouping.MapRegister; @@ -50,21 +51,26 @@ public final class LispWriterFactory extends AbstractLispInfraFactoryBase implem @Override public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { - registry.add(new GenericWriter<>(LISP_INSTANCE_IDENTIFIER, new LispCustomizer(vppApi))); + // lisp must be enabled before interfaces + // because as a byproduct of enabling lisp, lisp_gpe interface is created + // and in scenario when vpp data are lost, it would end up calling + // sw_interface_set_flags for non existing interface index + registry.addBefore(new GenericWriter<>(LISP_INSTANCE_IDENTIFIER, new LispCustomizer(vppApi)), + InstanceIdentifier.create(Interfaces.class)); registry.addAfter(writer(LISP_FEATURE_IDENTIFIER.child(PitrCfg.class), - new PitrCfgCustomizer(vppApi)), LOCATOR_SET_ID); + new PitrCfgCustomizer(vppApi, lispStateCheckService)), LOCATOR_SET_ID); registry.add(writer(LISP_FEATURE_IDENTIFIER.child(MapRegister.class), - new MapRegisterCustomizer(vppApi))); + new MapRegisterCustomizer(vppApi, lispStateCheckService))); registry.add(writer(LISP_FEATURE_IDENTIFIER.child(MapRequestMode.class), - new MapRequestModeCustomizer(vppApi))); + new MapRequestModeCustomizer(vppApi, lispStateCheckService))); registry.add(writer(LISP_FEATURE_IDENTIFIER.child(PetrCfg.class), - new PetrCfgCustomizer(vppApi))); + new PetrCfgCustomizer(vppApi, lispStateCheckService))); registry.add(writer(LISP_FEATURE_IDENTIFIER.child(RlocProbe.class), - new RlocProbeCustomizer(vppApi))); + new RlocProbeCustomizer(vppApi, lispStateCheckService))); } } diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LocatorSetWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LocatorSetWriterFactory.java index cc173df60..7c02752f5 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LocatorSetWriterFactory.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/LocatorSetWriterFactory.java @@ -45,7 +45,8 @@ public final class LocatorSetWriterFactory extends AbstractLispInfraFactoryBase @Override public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { // LocatorSet must be written before eid table entries, because local mappings under eid-table are referencing it - registry.addBefore(new GenericListWriter<>(LOCATOR_SET_ID, new LocatorSetCustomizer(vppApi, locatorSetContext)), + registry.addBefore(new GenericListWriter<>(LOCATOR_SET_ID, + new LocatorSetCustomizer(vppApi, locatorSetContext, lispStateCheckService)), Arrays.asList(VRF_SUBTABLE_ID.child(LocalMappings.class).child(LocalMapping.class), BRIDGE_DOMAIN_SUBTABLE_ID.child(LocalMappings.class).child(LocalMapping.class))); diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapResolverWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapResolverWriterFactory.java index 11fe99d89..b60ee16fe 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapResolverWriterFactory.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapResolverWriterFactory.java @@ -38,6 +38,6 @@ public final class MapResolverWriterFactory extends AbstractLispInfraFactoryBase public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { registry.add(new GenericListWriter<>( LISP_CONFIG_IDENTIFIER.child(LispFeatureData.class).child(MapResolvers.class).child(MapResolver.class), - new MapResolverCustomizer(vppApi))); + new MapResolverCustomizer(vppApi, lispStateCheckService))); } } diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapServerWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapServerWriterFactory.java index fc0cc4d10..e18b2478f 100644 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapServerWriterFactory.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/write/factory/MapServerWriterFactory.java @@ -32,6 +32,6 @@ public class MapServerWriterFactory extends AbstractLispInfraFactoryBase impleme public void init(@Nonnull ModifiableWriterRegistryBuilder registry) { registry.add(new GenericListWriter<>( LISP_CONFIG_IDENTIFIER.child(LispFeatureData.class).child(MapServers.class).child(MapServer.class), - new MapServerCustomizer(vppApi))); + new MapServerCustomizer(vppApi, lispStateCheckService))); } } |