Search in sources :

Example 6 with NodeAttributes

use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.link.state.attribute.node.attributes._case.NodeAttributes in project bgpcep by opendaylight.

the class LinkstateGraphBuilder method getVertex.

/**
 * Create Vertex from the Node Attributes.
 *
 * @param na       Node Attributes
 * @param cvertex  Connected Vertex associated to this Vertex
 * @param as       As number
 *
 * @return New Vertex
 */
private static Vertex getVertex(final NodeAttributes na, final Uint64 id, final Uint32 as) {
    VertexBuilder builder = new VertexBuilder().setVertexId(id).setAsn(as);
    if (na.getIpv4RouterId() != null) {
        builder.setRouterId(new IpAddress(na.getIpv4RouterId()));
    }
    if (na.getIpv6RouterId() != null) {
        builder.setRouterId(new IpAddress(na.getIpv6RouterId()));
    }
    /*
         * Set Router Name with dynamic hostname (IS-IS) or IPv4 address in dot decimal format (OSPF)
         */
    if (na.getDynamicHostname() != null) {
        builder.setName(na.getDynamicHostname());
    } else {
        int key = id.intValue();
        builder.setName((key << 24 & 0xFF) + "." + (key << 16 & 0xFF) + "." + (key << 8 & 0xFF) + "." + (key & 0xFF));
    }
    if (na.getSrCapabilities() != null) {
        final SidLabelIndex labelIndex = na.getSrCapabilities().getSidLabelIndex();
        if (labelIndex instanceof LocalLabelCase) {
            builder.setSrgb(new SrgbBuilder().setLowerBound(((LocalLabelCase) labelIndex).getLocalLabel().getValue()).setRangeSize(na.getSrCapabilities().getRangeSize().getValue()).build());
        } else if (labelIndex instanceof SidCase) {
            builder.setSrgb(new SrgbBuilder().setLowerBound(((SidCase) labelIndex).getSid()).setRangeSize(na.getSrCapabilities().getRangeSize().getValue()).build());
        }
    }
    if (na.getNodeFlags() != null) {
        if (na.getNodeFlags().getAbr()) {
            builder.setVertexType(VertexType.Abr);
        }
        if (na.getNodeFlags().getExternal()) {
            builder.setVertexType(VertexType.AsbrOut);
        }
    } else {
        builder.setVertexType(VertexType.Standard);
    }
    return builder.build();
}
Also used : SrgbBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.vertex.SrgbBuilder) VertexBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.VertexBuilder) LocalLabelCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.sid.label.index.LocalLabelCase) SidLabelIndex(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.SidLabelIndex) IpAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress) SidCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.sid.label.index.SidCase)

Example 7 with NodeAttributes

use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.link.state.attribute.node.attributes._case.NodeAttributes in project bgpcep by opendaylight.

the class ProtocolUtil method ospfNodeAttributes.

private static org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.IgpNodeAttributes1 ospfNodeAttributes(final NodeIdentifier node, final NodeAttributes na) {
    final org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.ospf.node.attributes.TedBuilder tb = new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.ospf.node.attributes.TedBuilder();
    final OspfNodeAttributesBuilder ab = new OspfNodeAttributesBuilder();
    if (na != null) {
        if (na.getIpv4RouterId() != null) {
            tb.setTeRouterIdIpv4(na.getIpv4RouterId());
        }
        if (na.getIpv6RouterId() != null) {
            tb.setTeRouterIdIpv6(na.getIpv6RouterId());
        }
        if (na.getTopologyIdentifier() != null) {
            ab.setMultiTopologyId(nodeMultiTopology(na.getTopologyIdentifier()));
        }
        final CRouterIdentifier ri = node.getCRouterIdentifier();
        if (ri instanceof OspfPseudonodeCase) {
            final OspfPseudonode pn = ((OspfPseudonodeCase) ri).getOspfPseudonode();
            ab.setRouterType(new PseudonodeBuilder().setPseudonode(Empty.getInstance()).build());
            ab.setDrInterfaceId(pn.getLanInterface().getValue());
        } else if (ri instanceof OspfNodeCase && na.getNodeFlags() != null) {
            // TODO: what should we do with in.getOspfRouterId()?
            final NodeFlagBits nf = na.getNodeFlags();
            if (nf.getAbr() != null) {
                ab.setRouterType(new AbrBuilder().setAbr(nf.getAbr() ? Empty.getInstance() : null).build());
            } else if (nf.getExternal() != null) {
                ab.setRouterType(new InternalBuilder().setInternal(nf.getExternal() ? null : Empty.getInstance()).build());
            }
        }
    }
    ab.setTed(tb.build());
    return new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.IgpNodeAttributes1Builder().setOspfNodeAttributes(ab.build()).build();
}
Also used : OspfPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.ospf.pseudonode._case.OspfPseudonode) AbrBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.ospf.node.attributes.router.type.AbrBuilder) OspfNodeAttributesBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.OspfNodeAttributesBuilder) OspfNodeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.OspfNodeCase) InternalBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.ospf.node.attributes.router.type.InternalBuilder) CRouterIdentifier(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.CRouterIdentifier) NodeFlagBits(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.NodeFlagBits) IsisPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.isis.pseudonode._case.IsisPseudonode) OspfPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.ospf.pseudonode._case.OspfPseudonode) PseudonodeBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.ospf.topology.rev131021.ospf.node.attributes.ospf.node.attributes.router.type.PseudonodeBuilder) OspfPseudonodeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.OspfPseudonodeCase)

Example 8 with NodeAttributes

use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.link.state.attribute.node.attributes._case.NodeAttributes in project bgpcep by opendaylight.

the class ProtocolUtil method isisNodeAttributes.

private static org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.IgpNodeAttributes1 isisNodeAttributes(final NodeIdentifier node, final NodeAttributes na) {
    final org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.isis.node.attributes.isis.node.attributes.TedBuilder tb = new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.isis.node.attributes.isis.node.attributes.TedBuilder();
    final IsisNodeAttributesBuilder ab = new IsisNodeAttributesBuilder();
    if (na != null) {
        if (na.getIpv4RouterId() != null) {
            tb.setTeRouterIdIpv4(na.getIpv4RouterId());
        }
        if (na.getIpv6RouterId() != null) {
            tb.setTeRouterIdIpv6(na.getIpv6RouterId());
        }
        if (na.getTopologyIdentifier() != null) {
            ab.setMultiTopologyId(nodeMultiTopology(na.getTopologyIdentifier()));
        }
    }
    final CRouterIdentifier ri = node.getCRouterIdentifier();
    if (ri instanceof IsisPseudonodeCase) {
        final IsisPseudonode pn = ((IsisPseudonodeCase) ri).getIsisPseudonode();
        final IsoBuilder b = new IsoBuilder();
        final String systemId = UriBuilder.isoId(pn.getIsIsRouterIdentifier().getIsoSystemId());
        b.setIsoSystemId(new IsoSystemId(systemId));
        b.setIsoPseudonodeId(new IsoPseudonodeId(BaseEncoding.base16().encode(new byte[] { pn.getPsn().byteValue() })));
        ab.setIso(b.build());
        if (na != null) {
            ab.setNet(toIsoNetIds(na.getIsisAreaId(), systemId));
        }
    } else if (ri instanceof IsisNodeCase) {
        final IsisNode in = ((IsisNodeCase) ri).getIsisNode();
        final String systemId = UriBuilder.isoId(in.getIsoSystemId());
        ab.setIso(new IsoBuilder().setIsoSystemId(new IsoSystemId(systemId)).build());
        if (na != null) {
            ab.setNet(toIsoNetIds(na.getIsisAreaId(), systemId));
        }
    }
    ab.setTed(tb.build());
    return new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.IgpNodeAttributes1Builder().setIsisNodeAttributes(ab.build()).build();
}
Also used : IsoPseudonodeId(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.IsoPseudonodeId) IsisNode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.isis.node._case.IsisNode) CRouterIdentifier(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.CRouterIdentifier) IsisNodeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.IsisNodeCase) IsoSystemId(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.IsoSystemId) IsisNodeAttributesBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.isis.node.attributes.IsisNodeAttributesBuilder) IsisPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.isis.pseudonode._case.IsisPseudonode) OspfPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.ospf.pseudonode._case.OspfPseudonode) IsoBuilder(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.isis.topology.rev131021.isis.node.attributes.isis.node.attributes.IsoBuilder) IsisPseudonodeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.IsisPseudonodeCase) IsisPseudonode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.isis.pseudonode._case.IsisPseudonode)

Aggregations

NodeAttributes (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.link.state.attribute.node.attributes._case.NodeAttributes)5 ByteBuf (io.netty.buffer.ByteBuf)2 IpAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress)2 LinkStateAttribute (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.LinkStateAttribute)2 Attributes1 (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.routes.linkstate.routes.linkstate.route.Attributes1)2 CRouterIdentifier (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.CRouterIdentifier)2 IsisPseudonode (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.isis.pseudonode._case.IsisPseudonode)2 OspfPseudonode (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.ospf.pseudonode._case.OspfPseudonode)2 SidLabelIndex (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.SidLabelIndex)2 LocalLabelCase (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.sid.label.index.sid.label.index.LocalLabelCase)2 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1 DomainName (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.DomainName)1 Attributes1 (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.Attributes1)1 IsisAreaIdentifier (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.IsisAreaIdentifier)1 NodeFlagBits (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.NodeFlagBits)1 NodeCaseBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.object.type.NodeCaseBuilder)1 NodeAttributesCase (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.path.attribute.link.state.attribute.NodeAttributesCase)1 IsisNodeCase (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.IsisNodeCase)1 IsisPseudonodeCase (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.node.identifier.c.router.identifier.IsisPseudonodeCase)1