summaryrefslogtreecommitdiffstats
path: root/routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write
diff options
context:
space:
mode:
authorMichal Cmarada <michal.cmarada@pantheon.tech>2018-06-08 11:54:53 +0200
committerMichal Cmarada <michal.cmarada@pantheon.tech>2018-06-08 11:54:53 +0200
commit887fb8a181146390bccb6eaf5caeb0a84659c750 (patch)
treebe6ea451e14ea62894feb837bb1e731260e803da /routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write
parent36f90b9d6f6912303222b9bf26ebb3d87b19aac4 (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')
-rw-r--r--routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizer.java2
-rw-r--r--routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/RoutingWriterFactory.java2
-rw-r--r--routing/routing-impl/src/main/java/io/fd/hc2vpp/routing/write/factory/FibTableRequest.java101
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;
- }
-}