diff options
author | 2017-11-21 13:08:44 +0100 | |
---|---|---|
committer | 2017-11-23 12:17:34 +0000 | |
commit | 69a47bd63d00230a6eb80da1e6358865e2f62a9a (patch) | |
tree | e1a44262d74a8ed6234f951e1be0ca10cfbc8bd6 /mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java | |
parent | 547d7183710378faff73bf7ccc6bdba4c99f0445 (diff) |
HC2VPP-259: add support for mpls lookup
Translates pop-and-lookup operation of
/hc2vpp-ietf-routing:routing/hc2vpp-ietf-mpl:mpls/
hc2vpp-ietf-mpls-static:static-lsps/static-lsp
to mpls_route_add_del call.
Configuring mpls lookup-type,
as defined in vpp-mpls yang module,
is required.
Other lookup types (ipv4/ipv6) are not supported yet.
Change-Id: If0580c6db69ee6c5f22a32bde031dbb6f852420f
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java')
-rw-r--r-- | mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java b/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java index 014fd2636..918cc5cc6 100644 --- a/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java +++ b/mpls/impl/src/main/java/io/fd/hc2vpp/mpls/MplsWriterFactory.java @@ -37,22 +37,24 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls.rev170 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls.rev170702.interfaces.mpls.Interface; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.mpls.rev170702.routing.Mpls; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.Routing; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.mpls.rev171120.StaticLspVppLookupAugmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.mpls.rev171120.vpp.label.lookup.attributes.LabelLookup; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; final class MplsWriterFactory implements WriterFactory { private static final InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> - IFC_ID = - InstanceIdentifier.create(Interfaces.class).child( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface.class); + IFC_ID = + InstanceIdentifier.create(Interfaces.class).child( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface.class); private static final InstanceIdentifier<Routing> ROUTING_ID = InstanceIdentifier.create(Routing.class); private static final InstanceIdentifier<Mpls> MPLS_ID = ROUTING_ID.augmentation(Routing1.class).child(Mpls.class); private static final InstanceIdentifier<Interface> INTERFACE_ID = MPLS_ID.child(Interface.class); private static final InstanceIdentifier<StaticLsp> STATIC_LSP_ID = - MPLS_ID.augmentation(Mpls1.class).child(StaticLsps.class).child(StaticLsp.class); + MPLS_ID.augmentation(Mpls1.class).child(StaticLsps.class).child(StaticLsp.class); private static final InstanceIdentifier<Config> CONFIG_ID = InstanceIdentifier.create(StaticLsp.class).child - (Config.class); + (Config.class); @Inject @Named("interface-context") @@ -77,12 +79,12 @@ final class MplsWriterFactory implements WriterFactory { // /ietf-routing:routing/ietf-mpls:mpls/interface // First enable MPLS on interface, then configure it: registry.subtreeAddAfter( - ImmutableSet.of( - CONFIG_ID, - InstanceIdentifier.create(StaticLsp.class).child(Config.class).child(InSegment.class), - InstanceIdentifier.create(StaticLsp.class).child(Config.class).child(Paths.class) - ), - new GenericWriter<>(STATIC_LSP_ID, new StaticLspCustomizer(vppApi, ifcContext)), - INTERFACE_ID); + ImmutableSet + .of(CONFIG_ID, InstanceIdentifier.create(StaticLsp.class).child(Config.class).child(InSegment.class), + InstanceIdentifier.create(StaticLsp.class).child(Config.class).child(Paths.class), + InstanceIdentifier.create(StaticLsp.class).child(Config.class) + .augmentation(StaticLspVppLookupAugmentation.class).child(LabelLookup.class)), + new GenericWriter<>(STATIC_LSP_ID, new StaticLspCustomizer(vppApi, ifcContext)), + INTERFACE_ID); } } |