diff options
author | Michal Cmarada <michal.cmarada@pantheon.tech> | 2018-06-08 11:54:53 +0200 |
---|---|---|
committer | Michal Cmarada <michal.cmarada@pantheon.tech> | 2018-06-08 11:54:53 +0200 |
commit | 887fb8a181146390bccb6eaf5caeb0a84659c750 (patch) | |
tree | be6ea451e14ea62894feb837bb1e731260e803da /routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write | |
parent | 36f90b9d6f6912303222b9bf26ebb3d87b19aac4 (diff) |
HC2VPP-317 - Implement FIB table management support
changes:
- Added new custom model vpp-fib-table-management
- allows management of IPv4 and IPv6 Fib tables for VPP
Change-Id: I3647dd659dbefabab233eacef666c3835e69320d
Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
Diffstat (limited to 'routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write')
3 files changed, 2 insertions, 103 deletions
diff --git a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizer.java b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizer.java index 326b6f873..b68a503be 100644 --- a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizer.java +++ b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizer.java @@ -20,7 +20,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import io.fd.hc2vpp.common.translate.util.NamingContext; -import io.fd.hc2vpp.routing.services.FibTableService; +import io.fd.hc2vpp.fib.management.services.FibTableService; import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.read.ReadFailedException; import io.fd.honeycomb.translate.spi.write.ListWriterCustomizer; diff --git a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/RoutingWriterFactory.java b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/RoutingWriterFactory.java index cd3c4d275..4af6f5579 100644 --- a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/RoutingWriterFactory.java +++ b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/RoutingWriterFactory.java @@ -25,11 +25,11 @@ import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.hc2vpp.common.translate.util.MultiNamingContext; import io.fd.hc2vpp.common.translate.util.NamingContext; +import io.fd.hc2vpp.fib.management.services.FibTableService; import io.fd.hc2vpp.routing.Ipv4RoutingNodes; import io.fd.hc2vpp.routing.Ipv6RoutingNodes; import io.fd.hc2vpp.routing.RoutingConfiguration; import io.fd.hc2vpp.routing.RoutingIIds; -import io.fd.hc2vpp.routing.services.FibTableService; import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager; import io.fd.honeycomb.translate.impl.write.GenericWriter; import io.fd.honeycomb.translate.write.WriterFactory; diff --git a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/factory/FibTableRequest.java b/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/factory/FibTableRequest.java deleted file mode 100644 index 5a471de35..000000000 --- a/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/factory/FibTableRequest.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2018 Bell Canada, Pantheon Technologies 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.hc2vpp.routing.write.factory; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import io.fd.hc2vpp.common.translate.util.AddressTranslator; -import io.fd.hc2vpp.common.translate.util.JvppReplyConsumer; -import io.fd.honeycomb.translate.ModificationCache; -import io.fd.honeycomb.translate.write.WriteFailedException; -import io.fd.vpp.jvpp.core.dto.IpTableAddDel; -import io.fd.vpp.jvpp.core.future.FutureJVppCore; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class FibTableRequest implements AddressTranslator, JvppReplyConsumer { - - private final ModificationCache modificationCache; - private static final Logger LOG = LoggerFactory.getLogger(FibTableRequest.class); - - private final FutureJVppCore api; - /** - * FIB table Name - */ - private String fibName; - - /** - * FIB table id to be installed - */ - private int fibTable; - - /** - * Whether to write IPv6 fib table or IPv4 - */ - private boolean isIpv6; - - public FibTableRequest(FutureJVppCore api, ModificationCache modificationCache) { - this.api = api; - this.modificationCache = modificationCache; - } - - public void checkValid() { - checkNotNull(getFibName(), "Fib table name not set"); - checkArgument(!getFibName().isEmpty(), "Fib table name must not be empty"); - } - - public void write(InstanceIdentifier<?> identifier) throws WriteFailedException { - IpTableAddDel tableAddDel = new IpTableAddDel(); - try { - tableAddDel.tableId = getFibTable(); - tableAddDel.isIpv6 = (booleanToByte(isIpv6())); - tableAddDel.isAdd = (booleanToByte(true)); - tableAddDel.name = getFibName().getBytes(); - getReplyForWrite(api.ipTableAddDel(tableAddDel).toCompletableFuture(), identifier); - } catch (Exception ex) { - LOG.error("Error writing fib table. fibTable: {}, api: {}, cache: {}, id: {}", tableAddDel, api, - modificationCache, identifier); - throw new WriteFailedException(identifier, ex); - } - } - - public int getFibTable() { - return fibTable; - } - - public void setFibTable(int fibTable) { - this.fibTable = fibTable; - } - - public boolean isIpv6() { - return isIpv6; - } - - public void setIpv6(boolean ipv6) { - isIpv6 = ipv6; - } - - public String getFibName() { - return fibName; - } - - public void setFibName(String fibName) { - this.fibName = fibName; - } -} |