当前位置: 首页>>代码示例>>Java>>正文


Java PathAttrNlriDetailsLocalRib类代码示例

本文整理汇总了Java中org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib的典型用法代码示例。如果您正苦于以下问题:Java PathAttrNlriDetailsLocalRib类的具体用法?Java PathAttrNlriDetailsLocalRib怎么用?Java PathAttrNlriDetailsLocalRib使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


PathAttrNlriDetailsLocalRib类属于org.onosproject.bgpio.protocol.linkstate包,在下文中一共展示了PathAttrNlriDetailsLocalRib类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: comparePeerDetails

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * Compares EBGP over IBGP, BGP identifier value and peer address.
 *
 * @param pathNlriDetails1 PathAttrNlriDetailsLocalRib object1
 * @param pathNlriDetails2 PathAttrNlriDetailsLocalRib object2
 * @return object which as EBGP over IBGP, lowest BGP identifier value and lowest peer address
 */
int comparePeerDetails(PathAttrNlriDetailsLocalRib pathNlriDetails1, PathAttrNlriDetailsLocalRib pathNlriDetails2) {
    // consider EBGP over IBGP
    if (pathNlriDetails1.isLocalRibIbgpSession() != pathNlriDetails2.isLocalRibIbgpSession()) {
        if (pathNlriDetails1 == null || pathNlriDetails1.isLocalRibIbgpSession()) {
            return -1;
        }
        if (pathNlriDetails2 == null || pathNlriDetails2.isLocalRibIbgpSession()) {
            return 1;
        }
    }
    // prefer lowest BGP identifier value.
    if (pathNlriDetails1.localRibIdentifier() != pathNlriDetails2.localRibIdentifier()) {
        return ((Integer) pathNlriDetails2.localRibIdentifier())
                .compareTo(pathNlriDetails1.localRibIdentifier());
    }
    //prefer lowest peer address
    if (pathNlriDetails1.localRibIpAddress() != pathNlriDetails2.localRibIpAddress()) {
        return pathNlriDetails2.localRibIpAddress().compareTo(pathNlriDetails1.localRibIpAddress());
    }
    return 0;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:29,代码来源:BgpSelectionAlgo.java

示例2: comparePeerDetails

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * Compares EBGP over IBGP, BGP identifier value and peer address.
 *
 * @param pathNlriDetails1 PathAttrNlriDetailsLocalRib object1
 * @param pathNlriDetails2 PathAttrNlriDetailsLocalRib object2
 * @return object which as EBGP over IBGP, lowest BGP identifier value and lowest peer address
 */
private int comparePeerDetails(PathAttrNlriDetailsLocalRib pathNlriDetails1,
                               PathAttrNlriDetailsLocalRib pathNlriDetails2) {
    // consider EBGP over IBGP
    if (pathNlriDetails1.isLocalRibIbgpSession() != pathNlriDetails2.isLocalRibIbgpSession()) {
        if (pathNlriDetails1.isLocalRibIbgpSession()) {
            return -1;
        }
        if (pathNlriDetails2.isLocalRibIbgpSession()) {
            return 1;
        }
    }
    // prefer lowest BGP identifier value.
    if (pathNlriDetails1.localRibIdentifier() != pathNlriDetails2.localRibIdentifier()) {
        return Integer.compare(pathNlriDetails2.localRibIdentifier(),
                               pathNlriDetails1.localRibIdentifier());
    }
    //prefer lowest peer address
    if (pathNlriDetails1.localRibIpAddress() != pathNlriDetails2.localRibIpAddress()) {
        return pathNlriDetails2.localRibIpAddress().compareTo(pathNlriDetails1.localRibIpAddress());
    }
    return 0;
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:30,代码来源:BgpSelectionAlgo.java

示例3: displayPrefix

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
private void displayPrefix() {
    try {
        this.bgpController = get(BgpController.class);
        bgpLocalRib = bgpController.bgpLocalRib();
        Map<BgpPrefixLSIdentifier, PathAttrNlriDetailsLocalRib> prefixmap = bgpLocalRib.prefixTree();
        Set<BgpPrefixLSIdentifier> prefixkeySet = prefixmap.keySet();
        for (BgpPrefixLSIdentifier prefix : prefixkeySet) {
            pathAttrNlriDetailsLocalRib = prefixmap.get(prefix);
            pathAttrNlriDetails = pathAttrNlriDetailsLocalRib.localRibNlridetails();
            print("No of entries = %d", prefixmap.size());
            System.out.print(pathAttrNlriDetailsLocalRib.toString());

        }


    } catch (Exception e) {
        log.debug("Error occurred while displaying BGP prefixes: {}", e.getMessage());

    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:21,代码来源:BgpLocalRibDisplay.java

示例4: displayVpnNodes

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
private void displayVpnNodes() {
    try {
        this.bgpController = get(BgpController.class);
        bgpLocalRib = bgpController.bgpLocalRib();
        Map<RouteDistinguisher, Map<BgpNodeLSIdentifier, PathAttrNlriDetailsLocalRib>> vpnNode =
                bgpLocalRib.vpnNodeTree();
        Set<RouteDistinguisher> vpnNodekeySet = vpnNode.keySet();
        for (RouteDistinguisher vpnNodes : vpnNodekeySet) {
            boolean invalidProcess = true;
            if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnNodes.hashCode()) {
                invalidProcess = false;
                displayNodes();
            }
            if (invalidProcess) {
                print("%s\n", "Id " + vpnId + "does not exist...!!!");
            }
        }
    } catch (Exception e) {
        log.debug("Error occurred while displaying BGP nodes based on VPN : {}", e.getMessage());
    }

}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:23,代码来源:BgpLocalRibDisplay.java

示例5: displayVpnLinks

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
private void displayVpnLinks() {
    try {
        this.bgpController = get(BgpController.class);
        bgpLocalRib = bgpController.bgpLocalRib();
        Map<RouteDistinguisher, Map<BgpLinkLSIdentifier, PathAttrNlriDetailsLocalRib>> vpnLink =
                bgpLocalRib.vpnLinkTree();
        Set<RouteDistinguisher> vpnLinkkeySet = vpnLink.keySet();
        for (RouteDistinguisher vpnLinks : vpnLinkkeySet) {
            boolean invalidProcess = true;
            if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnLinks.hashCode()) {
                invalidProcess = false;
                displayLinks();
            }
            if (invalidProcess) {
                print("%s\n", "Id " + vpnId + "does not exist...!!!");
            }
        }
    } catch (Exception e) {
        log.debug("Error occurred while displaying BGP links based on VPN : {}", e.getMessage());
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:22,代码来源:BgpLocalRibDisplay.java

示例6: displayVpnPrefix

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
private void displayVpnPrefix() {
    try {
        this.bgpController = get(BgpController.class);
        bgpLocalRib = bgpController.bgpLocalRib();
        Map<RouteDistinguisher, Map<BgpPrefixLSIdentifier, PathAttrNlriDetailsLocalRib>> vpnPrefix =
                bgpLocalRib.vpnPrefixTree();
        Set<RouteDistinguisher> vpnPrefixkeySet = vpnPrefix.keySet();
        for (RouteDistinguisher vpnprefixId : vpnPrefixkeySet) {
            boolean invalidProcess = true;
            if (vpnId != null && Integer.parseInt(vpnId.trim()) == vpnprefixId.hashCode()) {
                invalidProcess = false;
                displayPrefix();
            }
            if (invalidProcess) {
                print("%s\n", "Id " + vpnId + "does not exist...!!!");
            }
        }
    } catch (Exception e) {
        log.debug("Error occurred while displaying BGP prefixes based on VPN : {}", e.getMessage());
    }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:22,代码来源:BgpLocalRibDisplay.java

示例7: compare

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
@Override
public int compare(PathAttrNlriDetailsLocalRib pathNlriDetails1, PathAttrNlriDetailsLocalRib pathNlriDetails2) {
    if (pathNlriDetails1 == null) {
        return -1;
    }
    if (pathNlriDetails2 == null) {
        return 1;
    }
    if (pathNlriDetails1.equals(pathNlriDetails2)) {
        return 0;
    }

    List<BgpValueType> o1 = pathNlriDetails1.localRibNlridetails().pathAttributes();
    List<BgpValueType> o2 = pathNlriDetails2.localRibNlridetails().pathAttributes();
    ListIterator<BgpValueType> listIteratorObj1 = o1.listIterator();
    ListIterator<BgpValueType> listIteratorObj2 = o2.listIterator();
    storeAttr(listIteratorObj1, listIteratorObj2);

    // prefer attribute with higher local preference
    if (obj1LocPref != null || obj2LocPref != null && (obj1LocPref != null && !obj1LocPref.equals(obj2LocPref))) {
        return compareLocalPref(obj1LocPref, obj2LocPref);
    }

    // prefer attribute with shortest Aspath
    if (!obj1Aspath.equals(obj2Aspath)) {
        Integer obj1Size = countASSize(obj1Aspath);
        Integer obj2Size = countASSize(obj2Aspath);
        if (obj1Size != obj2Size) {
            return compareAsPath(obj1Size, obj2Size);
        }
    }

    // prefer attribute with lowest origin type
    if (!obj1Origin.equals(obj2Origin)) {
        return compareOrigin(obj1Origin, obj2Origin);
    }

    // prefer attribute with lowest MED
    if (obj1Med != null || obj2Med != null && (obj1Med != null && !obj1Med.equals(obj2Med))) {
        return compareMed(obj1Med, obj2Med);
    }

    if ((pathNlriDetails1 != null || pathNlriDetails2 != null) && (pathNlriDetails1 != null && !pathNlriDetails1
                    .equals(pathNlriDetails2))) {
        return comparePeerDetails(pathNlriDetails1, pathNlriDetails2);
    }
    return 0;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:49,代码来源:BgpSelectionAlgo.java

示例8: selectionProcessNode

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * Selection process for local RIB node.
 *
 * @param nlri NLRI to update
 * @param isVpnRib true if VPN  local RIB, otherwise false
 * @throws BgpParseException throws BGP parse exception
 */
public void selectionProcessNode(BgpLSNlri nlri, boolean isVpnRib) throws BgpParseException {
    BgpPeerImpl peer;
    BgpSessionInfo sessionInfo;
    int decisionResult;
    boolean containsKey;

    BgpNodeLSIdentifier nodeLsIdentifier = ((BgpNodeLSNlriVer4) nlri).getLocalNodeDescriptors();

    if (nodeTree.containsKey(nodeLsIdentifier)) {
        for (BgpNodeListener l : bgpController.listener()) {
            l.deleteNode((BgpNodeLSNlriVer4) nlri);
        }
        log.debug("Local RIB delete node: {}", nodeLsIdentifier.toString());
        nodeTree.remove(nodeLsIdentifier);
    }

    for (BgpId bgpId : bgpController.connectedPeers().keySet()) {
        peer = (BgpPeerImpl) (bgpController.getPeer(bgpId));

        if (nodeTree.containsKey(nodeLsIdentifier)) {
            containsKey = (!isVpnRib) ? (peer.adjacencyRib().nodeTree().containsKey(nodeLsIdentifier)) :
                                        (peer.vpnAdjacencyRib().nodeTree().containsKey(nodeLsIdentifier));

            if (!containsKey) {
                continue;
            }
            sessionInfo = peer.sessionInfo();
            PathAttrNlriDetailsLocalRib detailsLocRib = new PathAttrNlriDetailsLocalRib(
                                                            sessionInfo.remoteBgpId().ipAddress(),
                                                            sessionInfo.remoteBgpIdentifier(),
                                                            sessionInfo.remoteBgpASNum(),
                                                            sessionInfo.isIbgpSession(),
                                                            (!isVpnRib) ?
                                                            (peer.adjacencyRib().nodeTree()
                                                                                .get(nodeLsIdentifier)) :
                                                            (peer.vpnAdjacencyRib().nodeTree()
                                                                                    .get(nodeLsIdentifier)));
            BgpSelectionAlgo selectionAlgo = new BgpSelectionAlgo();
            decisionResult = selectionAlgo.compare(nodeTree.get(nodeLsIdentifier), detailsLocRib);
            if (decisionResult < 0) {
                nodeTree.replace(nodeLsIdentifier, detailsLocRib);
                log.debug("Local RIB node updated: {}", detailsLocRib.toString());
            }
        } else {
            if (!isVpnRib) {
                if (peer.adjacencyRib().nodeTree().containsKey(nodeLsIdentifier)) {
                    add(peer.sessionInfo(), nlri, peer.adjacencyRib().nodeTree().get(nodeLsIdentifier));
                }
            } else {
                if (peer.vpnAdjacencyRib().nodeTree().containsKey(nodeLsIdentifier)) {
                    add(peer.sessionInfo(), nlri, peer.vpnAdjacencyRib().nodeTree().get(nodeLsIdentifier));
                }
            }
        }
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:64,代码来源:BgpLocalRibImpl.java

示例9: selectionProcessLink

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * Selection process for local RIB link.
 *
 * @param nlri NLRI to update
 * @param isVpnRib true if VPN local RIB, otherwise false
 * @throws BgpParseException BGP parse exception
 */
public void selectionProcessLink(BgpLSNlri nlri, boolean isVpnRib) throws BgpParseException {
    BgpPeerImpl peer;
    BgpSessionInfo sessionInfo;
    int decisionResult;
    boolean containsKey;

    BgpLinkLSIdentifier linkLsIdentifier = ((BgpLinkLsNlriVer4) nlri).getLinkIdentifier();

    if (linkTree.containsKey(linkLsIdentifier)) {
        log.debug("Local RIB remove link: {}", linkLsIdentifier.toString());
        for (BgpLinkListener l : bgpController.linkListener()) {
            l.deleteLink((BgpLinkLsNlriVer4) nlri);
        }
        linkTree.remove(linkLsIdentifier);
    }

    for (BgpId bgpId : bgpController.connectedPeers().keySet()) {
        peer = (BgpPeerImpl) (bgpController.getPeer(bgpId));

        if (linkTree.containsKey(linkLsIdentifier)) {

            containsKey = (!isVpnRib) ? (peer.adjacencyRib().linkTree().containsKey(linkLsIdentifier)) :
                                        (peer.vpnAdjacencyRib().linkTree().containsKey(linkLsIdentifier));

            if (!containsKey) {
                continue;
            }

            sessionInfo = peer.sessionInfo();

            PathAttrNlriDetailsLocalRib detailsLocRib = new PathAttrNlriDetailsLocalRib(
                                                        sessionInfo.remoteBgpId().ipAddress(),
                                                        sessionInfo.remoteBgpIdentifier(),
                                                        sessionInfo.remoteBgpASNum(),
                                                        sessionInfo.isIbgpSession(),
                                                        ((!isVpnRib) ?
                                                        (peer.adjacencyRib().linkTree().get(linkLsIdentifier)) :
                                                        (peer.vpnAdjacencyRib().linkTree()
                                                                               .get(linkLsIdentifier))));

            BgpSelectionAlgo selectionAlgo = new BgpSelectionAlgo();
            decisionResult = selectionAlgo.compare(linkTree.get(linkLsIdentifier), detailsLocRib);
            if (decisionResult < 0) {
                linkTree.replace(linkLsIdentifier, detailsLocRib);
                log.debug("Local RIB link updated: {}", detailsLocRib.toString());
            }
        } else {
            if (!isVpnRib) {
                if (peer.adjacencyRib().linkTree().containsKey(linkLsIdentifier)) {
                    add(peer.sessionInfo(), nlri, peer.adjacencyRib().linkTree().get(linkLsIdentifier));
                }
            } else {
                if (peer.vpnAdjacencyRib().linkTree().containsKey(linkLsIdentifier)) {
                    add(peer.sessionInfo(), nlri, peer.vpnAdjacencyRib().linkTree().get(linkLsIdentifier));
                }
            }
        }
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:67,代码来源:BgpLocalRibImpl.java

示例10: selectionProcessPrefix

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * Selection process for local RIB prefix.
 *
 * @param nlri NLRI to update
 * @param isVpnRib true if VPN local RIB, otherwise false
 * @throws BgpParseException BGP parse exception
 */
public void selectionProcessPrefix(BgpLSNlri nlri, boolean isVpnRib) throws BgpParseException {
    BgpPeerImpl peer;
    BgpSessionInfo sessionInfo;
    int decisionResult;
    boolean containsKey;

    BgpPrefixLSIdentifier prefixIdentifier = ((BgpPrefixIPv4LSNlriVer4) nlri).getPrefixIdentifier();
    if (prefixTree.containsKey(prefixIdentifier)) {
        log.debug("Local RIB remove prefix: {}", prefixIdentifier.toString());
        prefixTree.remove(prefixIdentifier);
    }

    for (BgpId bgpId : bgpController.connectedPeers().keySet()) {
        peer = (BgpPeerImpl) (bgpController.getPeer(bgpId));

        if (prefixTree.containsKey(prefixIdentifier)) {

            containsKey = (!isVpnRib) ? (peer.adjacencyRib().prefixTree().containsKey(prefixIdentifier)) :
                                        (peer.vpnAdjacencyRib().prefixTree().containsKey(prefixIdentifier));
            if (!containsKey) {
                continue;
            }
            sessionInfo = peer.sessionInfo();

            PathAttrNlriDetailsLocalRib detailsLocRib = new PathAttrNlriDetailsLocalRib(
                                                            sessionInfo.remoteBgpId().ipAddress(),
                                                            sessionInfo.remoteBgpIdentifier(),
                                                            sessionInfo.remoteBgpASNum(),
                                                            sessionInfo.isIbgpSession(),
                                                            ((!isVpnRib) ?
                                                            (peer.adjacencyRib().prefixTree()
                                                                                .get(prefixIdentifier)) :
                                                            (peer.vpnAdjacencyRib().prefixTree()
                                                                                   .get(prefixIdentifier))));

            BgpSelectionAlgo selectionAlgo = new BgpSelectionAlgo();
            decisionResult = selectionAlgo.compare(prefixTree.get(prefixIdentifier), detailsLocRib);
            if (decisionResult < 0) {
                prefixTree.replace(prefixIdentifier, detailsLocRib);
                log.debug("local RIB prefix updated: {}", detailsLocRib.toString());
            }
        } else {
                if (!isVpnRib) {
                    if (peer.adjacencyRib().prefixTree().containsKey(prefixIdentifier)) {
                        add(peer.sessionInfo(), nlri, peer.adjacencyRib().prefixTree().get(prefixIdentifier));
                } else {
                    if (peer.vpnAdjacencyRib().prefixTree().containsKey(prefixIdentifier)) {
                        add(peer.sessionInfo(), nlri, peer.vpnAdjacencyRib().prefixTree().get(prefixIdentifier));
                    }
                }
            }
        }
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:62,代码来源:BgpLocalRibImpl.java

示例11: selectionAlgoTest1

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * firstPathAttribute and secondPathAttribute has same AS count and firstPathAttribute
 * has shortest Origin value than secondPathAttribute.
 */
@Test
public void selectionAlgoTest1() throws BgpParseException {
    byte[] peerIp = new byte[] {0x0a, 0x0a, 0x0a, 0x0a };
    LinkedList<BgpValueType> pathAttributes1 = new LinkedList<>();
    BgpValueType pathAttribute1;
    //origin with IGP
    byte[] origin = new byte[] {0x40, 0x01, 0x01, 0x00 };
    ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute1 = Origin.read(buffer);
    pathAttributes1.add(pathAttribute1);
    //AsPath with AS_SEQ with one AS
    byte[] asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xea };
    buffer.writeBytes(asPath);
    pathAttribute1 = AsPath.read(buffer);
    pathAttributes1.add(pathAttribute1);

    IpAddress ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    int bgpId = 168427777;
    short locRibAsNum = 100;
    boolean isIbgp = false;
    PathAttrNlriDetails attrList1 = new PathAttrNlriDetails();
    attrList1.setIdentifier(0);
    attrList1.setPathAttribute(pathAttributes1);
    attrList1.setProtocolID(ProtocolType.ISIS_LEVEL_ONE);
    PathAttrNlriDetailsLocalRib list1 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList1);

    peerIp = new byte[] {0x0b, 0x0b, 0x0b, 0x0b };
    LinkedList<BgpValueType> pathAttributes2 = new LinkedList<>();
    BgpValueType pathAttribute2;
    //origin with INCOMPLETE
    origin = new byte[] {0x40, 0x01, 0x01, 0x02 };
    buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute2 = Origin.read(buffer);
    pathAttributes2.add(pathAttribute2);
    //AsPath with AS_SEQ with one AS
    asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute2 = AsPath.read(buffer);
    pathAttributes2.add(pathAttribute2);

    ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    bgpId = 536936448;
    locRibAsNum = 200;
    isIbgp = true;
    PathAttrNlriDetails attrList2 = new PathAttrNlriDetails();
    attrList2.setIdentifier(0);
    attrList2.setPathAttribute(pathAttributes2);
    attrList2.setProtocolID(ProtocolType.OSPF_V2);
    PathAttrNlriDetailsLocalRib list2 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList2);
    BgpSelectionAlgo algo = new BgpSelectionAlgo();
    int result = algo.compare(list1, list2);
    assertThat(result, is(1));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:64,代码来源:BgpSelectionAlgoTest.java

示例12: selectionAlgoTest2

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * firstPathAttribute has 1 AS count and secondPathAttribute has 2 AS count
 * and firstPathAttribute has shortest Origin value than secondPathAttribute.
 */
@Test
public void selectionAlgoTest2() throws BgpParseException {

    byte[] peerIp = new byte[] {0x0a, 0x0a, 0x0a, 0x0a };
    LinkedList<BgpValueType> pathAttributes1 = new LinkedList<>();
    BgpValueType pathAttribute1;
    byte[] origin = new byte[] {0x40, 0x01, 0x01, 0x00 };
    ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute1 = Origin.read(buffer);
    pathAttributes1.add(pathAttribute1);
    byte[] asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute1 = AsPath.read(buffer);
    pathAttributes1.add(pathAttribute1);

    IpAddress ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    int bgpId = 168427777;
    short locRibAsNum = 100;
    boolean isIbgp = false;
    PathAttrNlriDetails attrList1 = new PathAttrNlriDetails();
    attrList1.setIdentifier(0);
    attrList1.setPathAttribute(pathAttributes1);
    attrList1.setProtocolID(ProtocolType.ISIS_LEVEL_ONE);
    PathAttrNlriDetailsLocalRib list1 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList1);

    peerIp = new byte[] {0x0b, 0x0b, 0x0b, 0x0b };
    LinkedList<BgpValueType> pathAttributes2 = new LinkedList<>();
    BgpValueType pathAttribute2;
    origin = new byte[] {0x40, 0x01, 0x01, 0x02 };
    buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute2 = Origin.read(buffer);
    pathAttributes2.add(pathAttribute2);
    asPath = new byte[] {0x40, 0x02, 0x08, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xea, 0x02, 0x01, (byte) 0xfd, (byte) 0xea };
    buffer.writeBytes(asPath);
    pathAttribute2 = AsPath.read(buffer);
    pathAttributes2.add(pathAttribute2);

    ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    bgpId = 536936448;
    locRibAsNum = 200;
    isIbgp = true;
    PathAttrNlriDetails attrList2 = new PathAttrNlriDetails();
    attrList2.setIdentifier(0);
    attrList2.setPathAttribute(pathAttributes2);
    attrList2.setProtocolID(ProtocolType.OSPF_V2);
    PathAttrNlriDetailsLocalRib list2 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList2);
    BgpSelectionAlgo algo = new BgpSelectionAlgo();
    int result = algo.compare(list1, list2);
    assertThat(result, is(-1));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:61,代码来源:BgpSelectionAlgoTest.java

示例13: selectionAlgoTest3

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * firstPathAttribute and secondPathAttribute has same AS value
 * and firstPathAttribute has shortest Origin value than secondPathAttribute.
 */
@Test
public void selectionAlgoTest3() throws BgpParseException {

    byte[] peerIp = new byte[] {0x0a, 0x0a, 0x0a, 0x0a };
    LinkedList<BgpValueType> pathAttributes1 = new LinkedList<>();
    BgpValueType pathAttribute1;
    byte[] origin = new byte[] {0x40, 0x01, 0x01, 0x00 };
    ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute1 = Origin.read(buffer);
    pathAttributes1.add(pathAttribute1);
    byte[] asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute1 = AsPath.read(buffer);
    pathAttributes1.add(pathAttribute1);

    IpAddress ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    int bgpId = 168427777;
    short locRibAsNum = 100;
    boolean isIbgp = false;
    PathAttrNlriDetails attrList1 = new PathAttrNlriDetails();
    attrList1.setIdentifier(0);
    attrList1.setPathAttribute(pathAttributes1);
    attrList1.setProtocolID(ProtocolType.ISIS_LEVEL_ONE);
    PathAttrNlriDetailsLocalRib list1 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList1);

    peerIp = new byte[] {0x0b, 0x0b, 0x0b, 0x0b };
    LinkedList<BgpValueType> pathAttributes2 = new LinkedList<>();
    BgpValueType pathAttribute2;
    origin = new byte[] {0x40, 0x01, 0x01, 0x02 };
    buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute2 = Origin.read(buffer);
    pathAttributes2.add(pathAttribute2);
    asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute2 = AsPath.read(buffer);
    pathAttributes2.add(pathAttribute2);

    ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    bgpId = 536936448;
    locRibAsNum = 200;
    isIbgp = true;
    PathAttrNlriDetails attrList2 = new PathAttrNlriDetails();
    attrList2.setIdentifier(0);
    attrList2.setPathAttribute(pathAttributes2);
    attrList2.setProtocolID(ProtocolType.OSPF_V2);
    PathAttrNlriDetailsLocalRib list2 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList2);
    BgpSelectionAlgo algo = new BgpSelectionAlgo();
    int result = algo.compare(list1, list2);
    assertThat(result, is(1));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:61,代码来源:BgpSelectionAlgoTest.java

示例14: selectionAlgoTest4

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * firstPathAttribute has lowest med than secondPathAttribute.
 */
@Test
public void selectionAlgoTest4() throws BgpParseException {

    byte[] peerIp = new byte[] {0x0a, 0x0a, 0x0a, 0x0a };
    LinkedList<BgpValueType> pathAttributes1 = new LinkedList<>();
    BgpValueType pathAttribute1;
    byte[] origin = new byte[] {0x40, 0x01, 0x01, 0x00 };
    ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute1 = Origin.read(buffer);
    pathAttributes1.add(pathAttribute1);
    byte[] med = new byte[] {(byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00,
            0x00 };
    buffer.writeBytes(med);
    pathAttribute1 = Med.read(buffer);
    pathAttributes1.add(pathAttribute1);
    byte[] asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute1 = AsPath.read(buffer);
    pathAttributes1.add(pathAttribute1);

    IpAddress ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    int bgpId = 168427777;
    short locRibAsNum = 100;
    boolean isIbgp = false;
    PathAttrNlriDetails attrList1 = new PathAttrNlriDetails();
    attrList1.setIdentifier(0);
    attrList1.setPathAttribute(pathAttributes1);
    attrList1.setProtocolID(ProtocolType.ISIS_LEVEL_ONE);
    PathAttrNlriDetailsLocalRib list1 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList1);

    peerIp = new byte[] {0x0b, 0x0b, 0x0b, 0x0b };
    LinkedList<BgpValueType> pathAttributes2 = new LinkedList<>();
    BgpValueType pathAttribute2;
    origin = new byte[] {0x40, 0x01, 0x01, 0x02 };
    buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(origin);
    pathAttribute2 = Origin.read(buffer);
    pathAttributes2.add(pathAttribute2);
    med = new byte[] {(byte) 0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01 };
    buffer.writeBytes(med);
    pathAttribute2 = Med.read(buffer);
    pathAttributes2.add(pathAttribute2);
    asPath = new byte[] {0x40, 0x02, 0x04, 0x02, 0x01, (byte) 0xfd,
            (byte) 0xe9 };
    buffer.writeBytes(asPath);
    pathAttribute2 = AsPath.read(buffer);
    pathAttributes2.add(pathAttribute2);

    ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    bgpId = 536936448;
    locRibAsNum = 200;
    isIbgp = true;
    PathAttrNlriDetails attrList2 = new PathAttrNlriDetails();
    attrList2.setIdentifier(0);
    attrList2.setPathAttribute(pathAttributes2);
    attrList2.setProtocolID(ProtocolType.OSPF_V2);
    PathAttrNlriDetailsLocalRib list2 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList2);
    BgpSelectionAlgo algo = new BgpSelectionAlgo();
    int result = algo.compare(list1, list2);
    assertThat(result, is(1));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:69,代码来源:BgpSelectionAlgoTest.java

示例15: selectionAlgoTest5

import org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib; //导入依赖的package包/类
/**
 * secondPathAttribute has higher local preference than firstPathAttribute.
 */
@Test
public void selectionAlgoTest5() throws BgpParseException {

    byte[] peerIp = new byte[] {0x0a, 0x0a, 0x0a, 0x0a };
    LinkedList<BgpValueType> pathAttributes1 = new LinkedList<>();
    BgpValueType pathAttribute1;
    byte[] locPref = new byte[] {(byte) 0x00, 0x05, 0x04, 0x00, 0x00,
            0x00, 0x01 };
    ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(locPref);
    pathAttribute1 = LocalPref.read(buffer);
    pathAttributes1.add(pathAttribute1);

    IpAddress ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    int bgpId = 168427777;
    short locRibAsNum = 100;
    boolean isIbgp = false;
    PathAttrNlriDetails attrList1 = new PathAttrNlriDetails();
    attrList1.setIdentifier(0);
    attrList1.setPathAttribute(pathAttributes1);
    attrList1.setProtocolID(ProtocolType.ISIS_LEVEL_ONE);
    PathAttrNlriDetailsLocalRib list1 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList1);

    peerIp = new byte[] {0x0b, 0x0b, 0x0b, 0x0b };
    LinkedList<BgpValueType> pathAttributes2 = new LinkedList<>();
    BgpValueType pathAttribute2;
    locPref = new byte[] {(byte) 0x00, 0x05, 0x04, 0x00, 0x00, 0x00, 0x0a };
    buffer = ChannelBuffers.dynamicBuffer();
    buffer.writeBytes(locPref);
    pathAttribute2 = LocalPref.read(buffer);
    pathAttributes2.add(pathAttribute2);

    ipAddress = IpAddress.valueOf(Version.INET, peerIp);
    bgpId = 536936448;
    locRibAsNum = 200;
    isIbgp = true;
    PathAttrNlriDetails attrList2 = new PathAttrNlriDetails();
    attrList2.setIdentifier(0);
    attrList2.setPathAttribute(pathAttributes2);
    attrList2.setProtocolID(ProtocolType.OSPF_V2);
    PathAttrNlriDetailsLocalRib list2 = new PathAttrNlriDetailsLocalRib(
            ipAddress, bgpId, locRibAsNum, isIbgp, attrList2);
    BgpSelectionAlgo algo = new BgpSelectionAlgo();
    int result = algo.compare(list1, list2);
    assertThat(result, is(-1));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:51,代码来源:BgpSelectionAlgoTest.java


注:本文中的org.onosproject.bgpio.protocol.linkstate.PathAttrNlriDetailsLocalRib类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。