Search in sources :

Example 6 with ElementsBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder in project openflowplugin by opendaylight.

the class MessageFactory method createHelloInput.

/**
 * Creates hello input.
 *
 * @param helloVersion openflow version for hello message to send to switch
 * @param helloXid     transaction id for hello message
 * @param versionOrder list of openflow version in order
 * @return HelloInput with elements (version bitmap)
 */
public static HelloInput createHelloInput(short helloVersion, long helloXid, List<Short> versionOrder) {
    HelloInputBuilder helloInputbuilder = prepareHelloInputBuilder(helloVersion, helloXid);
    if (versionOrder != null) {
        ElementsBuilder elementsBuilder = new ElementsBuilder();
        elementsBuilder.setType(HelloElementType.VERSIONBITMAP);
        int resultVersionListSize = 0;
        if (!versionOrder.isEmpty()) {
            resultVersionListSize = versionOrder.get(0) + 1;
        }
        List<Boolean> booleanList = new ArrayList<>(resultVersionListSize);
        int versionOrderIndex = versionOrder.size() - 1;
        while (versionOrderIndex >= 0) {
            short version = versionOrder.get(versionOrderIndex);
            if (version == booleanList.size()) {
                booleanList.add(true);
                versionOrderIndex--;
            } else {
                booleanList.add(false);
            }
        }
        elementsBuilder.setVersionBitmap(booleanList);
        List<Elements> elementList = Collections.singletonList(elementsBuilder.build());
        helloInputbuilder.setElements(elementList);
    }
    return helloInputbuilder.build();
}
Also used : ArrayList(java.util.ArrayList) ElementsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder) Elements(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.Elements) HelloInputBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder)

Example 7 with ElementsBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder in project openflowplugin by opendaylight.

the class HelloMessageFactoryTest method createElement.

private static List<Elements> createElement(int lengthInByte, int type) {
    final ElementsBuilder elementsBuilder = new ElementsBuilder();
    final List<Elements> elementsList = new ArrayList<>();
    List<Boolean> booleanList = new ArrayList<>();
    booleanList.add(true);
    booleanList.add(false);
    booleanList.add(false);
    booleanList.add(false);
    booleanList.add(true);
    int inSize = booleanList.size();
    for (int i = 1; i < lengthInByte * 8 - inSize + 1; i++) {
        booleanList.add(false);
    }
    elementsBuilder.setType(HelloElementType.forValue(type));
    elementsBuilder.setVersionBitmap(booleanList);
    elementsList.add(elementsBuilder.build());
    return elementsList;
}
Also used : ArrayList(java.util.ArrayList) ElementsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder) Elements(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.Elements)

Example 8 with ElementsBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder in project openflowplugin by opendaylight.

the class HelloInputMessageFactoryTest method createElement.

private static List<Elements> createElement(int lengthOfBitmap) {
    ElementsBuilder elementsBuilder = new ElementsBuilder();
    final List<Elements> elementsList = new ArrayList<>();
    List<Boolean> booleanList = new ArrayList<>();
    for (int i = 0; i < lengthOfBitmap; i++) {
        booleanList.add(true);
    }
    elementsBuilder.setType(HelloElementType.forValue(1));
    elementsBuilder.setVersionBitmap(booleanList);
    elementsList.add(elementsBuilder.build());
    return elementsList;
}
Also used : ArrayList(java.util.ArrayList) ElementsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder) Elements(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.Elements)

Aggregations

Elements (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.Elements)8 ElementsBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.hello.ElementsBuilder)8 ArrayList (java.util.ArrayList)7 Test (org.junit.Test)1 HelloInputBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder)1