diff options
Diffstat (limited to 'lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory')
5 files changed, 0 insertions, 453 deletions
diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/AbstractLispWriterFactoryBase.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/AbstractLispWriterFactoryBase.java deleted file mode 100644 index 366caf846..000000000 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/AbstractLispWriterFactoryBase.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.lisp.translate.write.factory; - -import static com.google.common.base.Preconditions.checkNotNull; - -import io.fd.honeycomb.lisp.context.util.EidMappingContext; -import io.fd.honeycomb.translate.vpp.util.NamingContext; -import javax.annotation.Nonnull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.Lisp; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; - - -/** - * Basic attributes for lisp writer factories - */ -abstract class AbstractLispWriterFactoryBase { - - protected final InstanceIdentifier<Lisp> lispInstanceIdentifier; - protected final FutureJVppCore vppApi; - protected NamingContext interfaceContext; - protected NamingContext locatorSetContext; - protected EidMappingContext localMappingContext; - protected EidMappingContext remoteMappingContext; - - protected AbstractLispWriterFactoryBase(@Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - NamingContext interfaceContext) { - this.lispInstanceIdentifier = checkNotNull(lispInstanceIdentifier, "Lisp identifier is null"); - this.vppApi = checkNotNull(vppApi, "VPP Api refference is null"); - this.interfaceContext = interfaceContext; - } - - protected AbstractLispWriterFactoryBase(@Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - NamingContext interfaceContext, - NamingContext locatorSetContext) { - this.lispInstanceIdentifier = checkNotNull(lispInstanceIdentifier, "Lisp identifier is null"); - this.vppApi = checkNotNull(vppApi, "VPP Api refference is null"); - this.interfaceContext = interfaceContext; - this.locatorSetContext = locatorSetContext; - } - - protected AbstractLispWriterFactoryBase(@Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - EidMappingContext localMappingContext, - EidMappingContext remoteMappingContext) { - this.lispInstanceIdentifier = checkNotNull(lispInstanceIdentifier, "Lisp identifier is null"); - this.vppApi = checkNotNull(vppApi, "VPP Api refference is null"); - this.localMappingContext = localMappingContext; - this.remoteMappingContext = remoteMappingContext; - } - - protected AbstractLispWriterFactoryBase(@Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - NamingContext interfaceContext, - NamingContext locatorSetContext, - EidMappingContext localMappingContext, - EidMappingContext remoteMappingContext) { - this.lispInstanceIdentifier = checkNotNull(lispInstanceIdentifier, "Lisp identifier is null"); - this.vppApi = checkNotNull(vppApi, "VPP Api refference is null"); - this.interfaceContext = interfaceContext; - this.locatorSetContext = locatorSetContext; - this.localMappingContext = localMappingContext; - this.remoteMappingContext = remoteMappingContext; - } - - protected AbstractLispWriterFactoryBase(@Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - NamingContext interfaceContext, - EidMappingContext localMappingContext, - EidMappingContext remoteMappingContext) { - this.lispInstanceIdentifier = checkNotNull(lispInstanceIdentifier, "Lisp identifier is null"); - this.vppApi = checkNotNull(vppApi, "VPP Api refference is null"); - this.interfaceContext = interfaceContext; - this.localMappingContext = localMappingContext; - this.remoteMappingContext = remoteMappingContext; - } -} diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LispWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LispWriterFactory.java deleted file mode 100755 index 055aa72b9..000000000 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LispWriterFactory.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.lisp.translate.write.factory; - - -import static com.google.common.base.Preconditions.checkNotNull; -import static io.fd.honeycomb.lisp.cfgattrs.LispConfiguration.ADJACENCIES_IDENTIFICATION_CONTEXT; -import static io.fd.honeycomb.lisp.cfgattrs.LispConfiguration.INTERFACE_CONTEXT; -import static io.fd.honeycomb.lisp.cfgattrs.LispConfiguration.LOCAL_MAPPING_CONTEXT; -import static io.fd.honeycomb.lisp.cfgattrs.LispConfiguration.LOCATOR_SET_CONTEXT; -import static io.fd.honeycomb.lisp.cfgattrs.LispConfiguration.REMOTE_MAPPING_CONTEXT; - -import com.google.inject.Inject; -import com.google.inject.name.Named; -import io.fd.honeycomb.lisp.context.util.AdjacenciesMappingContext; -import io.fd.honeycomb.lisp.context.util.EidMappingContext; -import io.fd.honeycomb.lisp.translate.write.LispCustomizer; -import io.fd.honeycomb.lisp.translate.write.PitrCfgCustomizer; -import io.fd.honeycomb.translate.impl.write.GenericWriter; -import io.fd.honeycomb.translate.vpp.util.NamingContext; -import io.fd.honeycomb.translate.write.WriterFactory; -import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; -import javax.annotation.Nonnull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.Lisp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.lisp.feature.data.grouping.LispFeatureData; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.pitr.cfg.grouping.PitrCfg; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - - -/** - * Initialize writers for {@link Lisp} - */ -public final class LispWriterFactory extends AbstractLispWriterFactoryBase implements WriterFactory { - - private final NamingContext bridgeDomainContext; - private final AdjacenciesMappingContext adjacenciesMappingContext; - - @Inject - public LispWriterFactory(final FutureJVppCore vppApi, - @Named(INTERFACE_CONTEXT) final NamingContext interfaceContext, - @Named(LOCATOR_SET_CONTEXT) final NamingContext locatorSetContext, - @Named("bridge-domain-context") final NamingContext bridgeDomainContext, - @Named(LOCAL_MAPPING_CONTEXT) final EidMappingContext localMappingContext, - @Named(REMOTE_MAPPING_CONTEXT) final EidMappingContext remoteMappingContext, - @Named(ADJACENCIES_IDENTIFICATION_CONTEXT) final AdjacenciesMappingContext adjacenciesMappingContext) { - super(InstanceIdentifier.create(Lisp.class), vppApi, interfaceContext, locatorSetContext, localMappingContext, - remoteMappingContext); - this.bridgeDomainContext = checkNotNull(bridgeDomainContext, "Bridge domain context cannot be null"); - this.adjacenciesMappingContext = - checkNotNull(adjacenciesMappingContext, "Adjacencies mapping context cannot be null"); - } - - @Override - public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { - registry.add(new GenericWriter<>(lispInstanceIdentifier, new LispCustomizer(vppApi))); - - VniTableWriterFactory.newInstance(lispInstanceIdentifier, vppApi, localMappingContext, remoteMappingContext, - bridgeDomainContext, adjacenciesMappingContext) - .init(registry); - LocatorSetsWriterFactory.newInstance(lispInstanceIdentifier, vppApi, interfaceContext, locatorSetContext) - .init(registry); - MapResolversWriterFactory.newInstance(lispInstanceIdentifier, vppApi).init(registry); - - registry.add(new GenericWriter<>(lispInstanceIdentifier.child(LispFeatureData.class).child(PitrCfg.class), - new PitrCfgCustomizer(vppApi))); - } -} diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LocatorSetsWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LocatorSetsWriterFactory.java deleted file mode 100755 index eabdfe27d..000000000 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/LocatorSetsWriterFactory.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.lisp.translate.write.factory; - -import io.fd.honeycomb.lisp.translate.write.InterfaceCustomizer; -import io.fd.honeycomb.lisp.translate.write.LocatorSetCustomizer; -import io.fd.honeycomb.translate.impl.write.GenericListWriter; -import io.fd.honeycomb.translate.vpp.util.NamingContext; -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.opendaylight.params.xml.ns.yang.lisp.rev161214.Lisp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.lisp.feature.data.grouping.LispFeatureData; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.locator.sets.grouping.LocatorSets; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.locator.sets.grouping.locator.sets.LocatorSet; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.locator.sets.grouping.locator.sets.locator.set.Interface; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; - - -/** - * Factory producing writers for {@code LocatorSets} - */ -final class LocatorSetsWriterFactory extends AbstractLispWriterFactoryBase implements WriterFactory { - - private LocatorSetsWriterFactory(final InstanceIdentifier<Lisp> lispInstanceIdentifier, - final FutureJVppCore vppApi, - final NamingContext interfaceContext, - final NamingContext locatorSetContext) { - super(lispInstanceIdentifier, vppApi, interfaceContext, locatorSetContext); - } - - public static LocatorSetsWriterFactory newInstance( - @Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - @Nonnull final NamingContext interfaceContext, - @Nonnull final NamingContext locatorSetContext) { - return new LocatorSetsWriterFactory(lispInstanceIdentifier, vppApi, interfaceContext, locatorSetContext); - } - - @Override - public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { - InstanceIdentifier<LocatorSet> locatorSetId = - lispInstanceIdentifier.child(LispFeatureData.class).child(LocatorSets.class).child(LocatorSet.class); - - registry.add(new GenericListWriter<>(locatorSetId, new LocatorSetCustomizer(vppApi, locatorSetContext))); - registry.add(new GenericListWriter<>(locatorSetId.child(Interface.class), - new InterfaceCustomizer(vppApi, interfaceContext))); - } -} diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/MapResolversWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/MapResolversWriterFactory.java deleted file mode 100755 index 0586f88cd..000000000 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/MapResolversWriterFactory.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.lisp.translate.write.factory; - - -import io.fd.honeycomb.lisp.translate.write.MapResolverCustomizer; -import io.fd.honeycomb.translate.impl.write.GenericListWriter; -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.opendaylight.params.xml.ns.yang.lisp.rev161214.Lisp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.lisp.feature.data.grouping.LispFeatureData; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.map.resolvers.grouping.MapResolvers; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.map.resolvers.grouping.map.resolvers.MapResolver; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; - - -/** - * Factory responsible for producing writers for {@code MapResolvers} - */ -final class MapResolversWriterFactory extends AbstractLispWriterFactoryBase implements WriterFactory { - - private MapResolversWriterFactory(final InstanceIdentifier<Lisp> lispInstanceIdentifier, - final FutureJVppCore vppApi) { - super(lispInstanceIdentifier, vppApi, null); - } - - public static MapResolversWriterFactory newInstance( - @Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi) { - return new MapResolversWriterFactory(lispInstanceIdentifier, vppApi); - } - - @Override - public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { - registry.add(new GenericListWriter<>( - lispInstanceIdentifier.child(LispFeatureData.class).child(MapResolvers.class).child(MapResolver.class), - new MapResolverCustomizer(vppApi))); - } -} diff --git a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/VniTableWriterFactory.java b/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/VniTableWriterFactory.java deleted file mode 100755 index 9e9152ce0..000000000 --- a/lisp/lisp2vpp/src/main/java/io/fd/honeycomb/lisp/translate/write/factory/VniTableWriterFactory.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.lisp.translate.write.factory; - -import static com.google.common.base.Preconditions.checkNotNull; - -import com.google.common.collect.ImmutableSet; -import io.fd.honeycomb.lisp.context.util.AdjacenciesMappingContext; -import io.fd.honeycomb.lisp.context.util.EidMappingContext; -import io.fd.honeycomb.lisp.translate.write.AdjacencyCustomizer; -import io.fd.honeycomb.lisp.translate.write.BridgeDomainSubtableCustomizer; -import io.fd.honeycomb.lisp.translate.write.LocalMappingCustomizer; -import io.fd.honeycomb.lisp.translate.write.RemoteMappingCustomizer; -import io.fd.honeycomb.lisp.translate.write.VniTableCustomizer; -import io.fd.honeycomb.lisp.translate.write.VrfSubtableCustomizer; -import io.fd.honeycomb.translate.impl.write.GenericListWriter; -import io.fd.honeycomb.translate.impl.write.GenericWriter; -import io.fd.honeycomb.translate.vpp.util.NamingContext; -import io.fd.honeycomb.translate.write.WriterFactory; -import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; -import javax.annotation.Nonnull; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.Lisp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.adjacencies.grouping.Adjacencies; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.adjacencies.grouping.adjacencies.Adjacency; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.adjacencies.grouping.adjacencies.adjacency.LocalEid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.adjacencies.grouping.adjacencies.adjacency.RemoteEid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.LocalMappings; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.RemoteMappings; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMapping; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.RemoteMapping; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.locator.list.negative.mapping.MapReply; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.locator.list.positive.mapping.Rlocs; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.locator.list.positive.mapping.rlocs.Locator; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.EidTable; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTable; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.VrfSubtable; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.lisp.feature.data.grouping.LispFeatureData; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - - -//TODO - HONEYCOMB-282 - refactor this and other factories for better readability - -/** - * Factory for producing writers for {@code EidTable} - */ -final class VniTableWriterFactory extends AbstractLispWriterFactoryBase implements WriterFactory { - - private final NamingContext bridgeDomainContext; - private final AdjacenciesMappingContext adjacenciesMappingContext; - - private VniTableWriterFactory(final InstanceIdentifier<Lisp> lispInstanceIdentifier, - final FutureJVppCore vppApi, - final EidMappingContext localMappingContext, - final EidMappingContext remoteMappingContext, - final NamingContext bridgeDomainContext, - final AdjacenciesMappingContext adjacenciesMappingContext) { - super(lispInstanceIdentifier, vppApi, localMappingContext, remoteMappingContext); - this.bridgeDomainContext = checkNotNull(bridgeDomainContext, "Bridge domain context cannot be null"); - this.adjacenciesMappingContext = - checkNotNull(adjacenciesMappingContext, "Adjacencies mapping context cannot be null"); - } - - public static VniTableWriterFactory newInstance( - @Nonnull final InstanceIdentifier<Lisp> lispInstanceIdentifier, - @Nonnull final FutureJVppCore vppApi, - @Nonnull final EidMappingContext localMappingContext, - @Nonnull final EidMappingContext remoteMappingContext, - @Nonnull final NamingContext bridgeDomainContext, - @Nonnull final AdjacenciesMappingContext adjacenciesMappingContext) { - return new VniTableWriterFactory(lispInstanceIdentifier, vppApi, localMappingContext, remoteMappingContext, - bridgeDomainContext, adjacenciesMappingContext); - } - - @Override - public void init(final ModifiableWriterRegistryBuilder registry) { - final InstanceIdentifier<VniTable> vniTableId = - lispInstanceIdentifier.child(LispFeatureData.class).child(EidTable.class).child(VniTable.class); - - final InstanceIdentifier<VrfSubtable> vrfSubtableId = vniTableId.child(VrfSubtable.class); - final InstanceIdentifier<BridgeDomainSubtable> bridgeDomainSubtableId = - vniTableId.child(BridgeDomainSubtable.class); - - registry.add(new GenericListWriter<>(vniTableId, new VniTableCustomizer(vppApi))); - - registry.add(new GenericWriter<>(vrfSubtableId, new VrfSubtableCustomizer(vppApi))); - registry.add(new GenericWriter<>(bridgeDomainSubtableId, - new BridgeDomainSubtableCustomizer(vppApi, bridgeDomainContext))); - - //VniTable - > VrfSubtable -> LocalMappings - > LocalMapping - final InstanceIdentifier<LocalMapping> localMappingSubtreeId = InstanceIdentifier.create(LocalMapping.class); - registry.subtreeAdd(ImmutableSet.of(localMappingSubtreeId - .child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.local.mapping.Eid.class)), - new GenericListWriter<>( - vrfSubtableId.child(LocalMappings.class).child(LocalMapping.class), - new LocalMappingCustomizer(vppApi, localMappingContext))); - //VniTable - > BridgeDomainSubtable -> LocalMappings - > LocalMapping - registry.subtreeAdd(ImmutableSet.of(localMappingSubtreeId - .child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.local.mapping.Eid.class)), - new GenericListWriter<>(bridgeDomainSubtableId.child(LocalMappings.class) - .child(LocalMapping.class), - new LocalMappingCustomizer(vppApi, localMappingContext))); - - //VniTable - > VrfSubtable -> RemoteMappings - > RemoteMapping - final InstanceIdentifier<RemoteMapping> remoteMappingSubtreeId = InstanceIdentifier.create(RemoteMapping.class); - registry.subtreeAdd(ImmutableSet.of(remoteMappingSubtreeId - .child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.Eid.class), - remoteMappingSubtreeId.child(Rlocs.class), - remoteMappingSubtreeId.child(Rlocs.class).child(Locator.class), - remoteMappingSubtreeId.child(MapReply.class)), - new GenericListWriter<>( - vrfSubtableId.child(RemoteMappings.class).child(RemoteMapping.class), - new RemoteMappingCustomizer(vppApi, remoteMappingContext))); - //VniTable - > BridgeDomainSubtable -> RemoteMappings - > RemoteMapping - registry.subtreeAdd(ImmutableSet.of(remoteMappingSubtreeId - .child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.Eid.class), - remoteMappingSubtreeId.child(Rlocs.class), - remoteMappingSubtreeId.child(Rlocs.class).child(Locator.class), - remoteMappingSubtreeId.child(MapReply.class)), - new GenericListWriter<>(bridgeDomainSubtableId.child(RemoteMappings.class) - .child(RemoteMapping.class), - new RemoteMappingCustomizer(vppApi, remoteMappingContext))); - - //VniTable - > VrfSubtable -> RemoteMappings - > RemoteMapping - > Adjacencies - > Adjacency - final InstanceIdentifier<Adjacency> adjacencySubtreeId = InstanceIdentifier.create(Adjacency.class); - registry.subtreeAdd(ImmutableSet.of(adjacencySubtreeId - .child(LocalEid.class), adjacencySubtreeId.child(RemoteEid.class)), - new GenericListWriter<>( - vrfSubtableId.child(RemoteMappings.class).child(RemoteMapping.class) - .child(Adjacencies.class).child(Adjacency.class), - new AdjacencyCustomizer(vppApi, localMappingContext, remoteMappingContext, - adjacenciesMappingContext))); - //VniTable - > BridgeDomainSubtable -> RemoteMappings - > RemoteMapping - > Adjacencies - > Adjacency - registry.subtreeAdd(ImmutableSet.of(adjacencySubtreeId - .child(LocalEid.class), adjacencySubtreeId.child(RemoteEid.class)), - new GenericListWriter<>( - bridgeDomainSubtableId.child(RemoteMappings.class) - .child(RemoteMapping.class) - .child(Adjacencies.class).child(Adjacency.class), - new AdjacencyCustomizer(vppApi, localMappingContext, remoteMappingContext, - adjacenciesMappingContext))); - } -} |