summaryrefslogtreecommitdiffstats
path: root/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2017-11-22 17:56:52 +0100
committerMarek Gradzki <mgradzki@cisco.com>2017-11-23 12:17:34 +0000
commit82d2da4853410c0e7c00f383c01760cc7f26f75e (patch)
tree2a5fdac137267d8a657eb6325a46909b8c78a731 /mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java
parent1715b92455356a52e01ff5c4f2a42fe5336b9088 (diff)
HC2VPP-259: add support for mpls swap-and-forward
Limitations: - only IPv4 next hop address - swap is supported only for the last label in the stack - only single outgoing label is supported. Change-Id: I9479e3d322561ed94683bd206e7e7852250d788c Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java')
-rw-r--r--mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java b/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java
index 54653b9c1..d93e0343c 100644
--- a/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java
+++ b/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/StaticLspCustomizer.java
@@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls._static.rev170310.StaticLspConfig.Operation.ImposeAndForward;
import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls._static.rev170310.StaticLspConfig.Operation.PopAndLookup;
+import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls._static.rev170310.StaticLspConfig.Operation.SwapAndForward;
import io.fd.hc2vpp.common.translate.util.NamingContext;
import io.fd.honeycomb.translate.MappingContext;
@@ -47,6 +48,7 @@ final class StaticLspCustomizer implements ListWriterCustomizer<StaticLsp, Stati
private final ImposeAndForwardWriter imposeAndForward;
private final MplsLookupWriter mplsLookup;
private final Ipv4LookupWriter ipv4Lookup;
+ private final MplsSwapWriter mplsSwap;
StaticLspCustomizer(@Nonnull final FutureJVppCore vppApi, @Nonnull NamingContext interfaceContext) {
checkNotNull(vppApi, "vppApi should not be null");
@@ -54,6 +56,7 @@ final class StaticLspCustomizer implements ListWriterCustomizer<StaticLsp, Stati
this.imposeAndForward = new ImposeAndForwardWriter(vppApi, interfaceContext);
this.mplsLookup = new MplsLookupWriter(vppApi);
this.ipv4Lookup = new Ipv4LookupWriter(vppApi);
+ this.mplsSwap = new MplsSwapWriter(vppApi, interfaceContext);
}
@Override
@@ -94,6 +97,8 @@ final class StaticLspCustomizer implements ListWriterCustomizer<StaticLsp, Stati
} else {
throw new IllegalArgumentException("Unsupported lookup type: " + type);
}
+ } else if (SwapAndForward.equals(operation)) {
+ mplsSwap.write(id, data, ctx, isAdd);
} else {
throw new IllegalArgumentException("Unsupported operation: " + operation);
}