Search in sources :

Example 11 with BucketId

use of org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId in project openflowplugin by opendaylight.

the class Activator method createBuckets.

private static BucketsBuilder createBuckets() {
    List<Action> actionList = new ArrayList<>();
    actionList.add(new ActionBuilder().setOrder(0).setAction(new PopVlanActionCaseBuilder().setPopVlanAction(new PopVlanActionBuilder().build()).build()).build());
    BucketBuilder bucketBuilder = new BucketBuilder();
    bucketBuilder.setBucketId(new BucketId(12L));
    bucketBuilder.setAction(actionList);
    List<Bucket> bucketList = new ArrayList<>();
    bucketList.add(bucketBuilder.build());
    actionList = new ArrayList<>();
    SetFieldCaseBuilder setFieldCaseBuilder = new SetFieldCaseBuilder();
    setFieldCaseBuilder.setSetField(new SetFieldBuilder().setLayer3Match(new Ipv4MatchBuilder().setIpv4Source(new Ipv4Prefix("10.0.1.0/32")).build()).build());
    actionList.add(new ActionBuilder().setAction(setFieldCaseBuilder.build()).setOrder(0).build());
    setFieldCaseBuilder = new SetFieldCaseBuilder();
    setFieldCaseBuilder.setSetField(new SetFieldBuilder().setLayer3Match(new Ipv4MatchBuilder().setIpv4Destination(new Ipv4Prefix("10.0.10.0/32")).build()).build());
    actionList.add(new ActionBuilder().setAction(setFieldCaseBuilder.build()).setOrder(0).build());
    bucketBuilder = new BucketBuilder();
    bucketBuilder.setBucketId(new BucketId(13L));
    bucketBuilder.setAction(actionList);
    bucketList.add(bucketBuilder.build());
    BucketsBuilder bucketsBuilder = new BucketsBuilder();
    bucketsBuilder.setBucket(bucketList);
    return bucketsBuilder;
}
Also used : Ipv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder) Action(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action) SetFieldCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder) PopVlanActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.pop.vlan.action._case.PopVlanActionBuilder) GroupActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder) PopVlanActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.pop.vlan.action._case.PopVlanActionBuilder) ActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder) ArrayList(java.util.ArrayList) BucketsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder) BucketId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId) SetFieldBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder) BucketBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder) Bucket(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket) PopVlanActionCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCaseBuilder) Ipv4Prefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix)

Example 12 with BucketId

use of org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId in project openflowplugin by opendaylight.

the class MultipartReplyGroupDescDeserializer method deserialize.

@Override
public MultipartReplyBody deserialize(ByteBuf message) {
    final MultipartReplyGroupDescBuilder builder = new MultipartReplyGroupDescBuilder();
    final List<GroupDescStats> items = new ArrayList<>();
    while (message.readableBytes() > 0) {
        final int itemLength = message.readUnsignedShort();
        final GroupDescStatsBuilder itemBuilder = new GroupDescStatsBuilder().setGroupType(GroupTypes.forValue(message.readUnsignedByte()));
        message.skipBytes(PADDING_IN_GROUP_DESC_HEADER);
        itemBuilder.setGroupId(new GroupId(message.readUnsignedInt()));
        itemBuilder.setKey(new GroupDescStatsKey(itemBuilder.getGroupId()));
        final List<Bucket> subItems = new ArrayList<>();
        int actualLength = GROUP_DESC_HEADER_LENGTH;
        long bucketKey = 0;
        while (actualLength < itemLength) {
            final int bucketsLength = message.readUnsignedShort();
            final BucketBuilder bucketBuilder = new BucketBuilder().setBucketId(new BucketId(bucketKey)).setKey(new BucketKey(new BucketId(bucketKey))).setWeight(message.readUnsignedShort()).setWatchPort(message.readUnsignedInt()).setWatchGroup(message.readUnsignedInt());
            message.skipBytes(PADDING_IN_BUCKETS_HEADER);
            final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actions = new ArrayList<>();
            final int startIndex = message.readerIndex();
            final int bucketLength = bucketsLength - BUCKETS_HEADER_LENGTH;
            int offset = 0;
            while (message.readerIndex() - startIndex < bucketLength) {
                actions.add(new ActionBuilder().setKey(new ActionKey(offset)).setOrder(offset).setAction(ActionUtil.readAction(EncodeConstants.OF13_VERSION_ID, message, registry, ActionPath.GROUP_DESC_STATS_UPDATED_BUCKET_ACTION)).build());
                offset++;
            }
            bucketBuilder.setAction(actions);
            subItems.add(bucketBuilder.build());
            bucketKey++;
            actualLength += bucketsLength;
        }
        items.add(itemBuilder.setBuckets(new BucketsBuilder().setBucket(subItems).build()).build());
    }
    return builder.setGroupDescStats(items).build();
}
Also used : ActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder) GroupDescStatsKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsKey) GroupDescStatsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsBuilder) BucketKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey) ArrayList(java.util.ArrayList) BucketsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder) BucketId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId) BucketBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder) GroupDescStats(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats) ActionKey(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey) GroupId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId) Bucket(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket) MultipartReplyGroupDescBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.multipart.reply.multipart.reply.body.MultipartReplyGroupDescBuilder)

Example 13 with BucketId

use of org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId in project openflowplugin by opendaylight.

the class GroupDescStatsResponseConvertor method toSALBucketsDesc.

private org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets toSALBucketsDesc(List<BucketsList> bucketDescStats, short version) {
    final ActionResponseConvertorData data = new ActionResponseConvertorData(version);
    data.setActionPath(ActionPath.GROUP_DESC_STATS_UPDATED_BUCKET_ACTION);
    org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder salBucketsDesc = new org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder();
    List<Bucket> allBuckets = new ArrayList<>();
    int bucketKey = 0;
    for (BucketsList bucketDetails : bucketDescStats) {
        BucketBuilder bucketDesc = new BucketBuilder();
        final Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action>> convertedSalActions = getConvertorExecutor().convert(bucketDetails.getAction(), data);
        if (convertedSalActions.isPresent()) {
            List<Action> actions = new ArrayList<>();
            int actionKey = 0;
            for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action : convertedSalActions.get()) {
                ActionBuilder wrappedAction = new ActionBuilder();
                wrappedAction.setAction(action);
                wrappedAction.setKey(new ActionKey(actionKey));
                wrappedAction.setOrder(actionKey);
                actions.add(wrappedAction.build());
                actionKey++;
            }
            bucketDesc.setAction(actions);
        } else {
            bucketDesc.setAction(Collections.emptyList());
        }
        bucketDesc.setWeight(bucketDetails.getWeight());
        bucketDesc.setWatchPort(bucketDetails.getWatchPort().getValue());
        bucketDesc.setWatchGroup(bucketDetails.getWatchGroup());
        BucketId bucketId = new BucketId((long) bucketKey);
        bucketDesc.setBucketId(bucketId);
        bucketDesc.setKey(new BucketKey(bucketId));
        bucketKey++;
        allBuckets.add(bucketDesc.build());
    }
    salBucketsDesc.setBucket(allBuckets);
    return salBucketsDesc.build();
}
Also used : Action(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action) ActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder) BucketKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey) ArrayList(java.util.ArrayList) BucketId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId) BucketBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder) ArrayList(java.util.ArrayList) BucketsList(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList) List(java.util.List) ActionKey(org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey) Bucket(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket) ActionResponseConvertorData(org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData) BucketsList(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList)

Example 14 with BucketId

use of org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId in project openflowplugin by opendaylight.

the class OpenflowPluginBulkGroupTransactionProvider method createTestGroup.

private GroupBuilder createTestGroup(String actionType, String groupType, String groupmod, String strId) {
    // Sample data , committing to DataStore
    GroupBuilder group = new GroupBuilder();
    BucketBuilder bucket = new BucketBuilder();
    bucket.setBucketId(new BucketId((long) 12));
    bucket.setKey(new BucketKey(new BucketId((long) 12)));
    if (groupType == null) {
        groupType = "g1";
    }
    if (actionType == null) {
        actionType = "a1";
    }
    switch(groupType) {
        case "g1":
            group.setGroupType(GroupTypes.GroupSelect);
            break;
        case "g2":
            group.setGroupType(GroupTypes.GroupAll);
            break;
        case "g3":
            group.setGroupType(GroupTypes.GroupIndirect);
            break;
        case "g4":
            group.setGroupType(GroupTypes.GroupFf);
            break;
        default:
            break;
    }
    switch(actionType) {
        case "a1":
            bucket.setAction(createPopVlanAction());
            break;
        case "a2":
            bucket.setAction(createPushVlanAction());
            break;
        case "a3":
            bucket.setAction(createPushMplsAction());
            break;
        case "a4":
            bucket.setAction(createPopMplsAction());
            break;
        case "a5":
            bucket.setAction(createPopPbbAction());
            break;
        case "a6":
        case "a7":
            bucket.setAction(createPushPbbAction());
            break;
        case "a8":
            bucket.setAction(createCopyTtlInAction());
            break;
        case "a9":
            bucket.setAction(createCopyTtlOutAction());
            break;
        case "a10":
            bucket.setAction(createDecMplsTtlAction());
            break;
        case "a14":
            bucket.setAction(createGroupAction());
            break;
        case "a29":
            bucket.setAction(createNonAppyPushVlanAction());
            break;
        default:
            break;
    }
    if ("add".equals(groupmod)) {
        bucket.setWatchGroup((long) 14);
        bucket.setWatchPort((long) 1234);
        bucket.setWeight(50);
    } else {
        bucket.setWatchGroup((long) 13);
        bucket.setWatchPort((long) 134);
        bucket.setWeight(30);
    }
    long id = Long.parseLong(strId);
    GroupKey key = new GroupKey(new GroupId(id));
    group.setKey(key);
    // group.setInstall(false);
    group.setGroupId(new GroupId(id));
    group.setGroupName(originalGroupName);
    group.setBarrier(false);
    BucketsBuilder value = new BucketsBuilder();
    List<Bucket> value1 = new ArrayList<>();
    value1.add(bucket.build());
    value.setBucket(value1);
    group.setBuckets(value.build());
    return group;
}
Also used : BucketBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder) Bucket(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket) GroupBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder) BucketKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey) GroupKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey) ArrayList(java.util.ArrayList) BucketsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder) BucketId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId) GroupId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId)

Example 15 with BucketId

use of org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId in project openflowplugin by opendaylight.

the class OpenflowpluginGroupTestCommandProvider method createTestGroup.

private GroupBuilder createTestGroup(String actionType, String groupType, String groupMod) {
    // Sample data , committing to DataStore
    GroupBuilder group = new GroupBuilder();
    BucketBuilder bucket = new BucketBuilder();
    bucket.setBucketId(new BucketId((long) 12));
    bucket.setKey(new BucketKey(new BucketId((long) 12)));
    if (groupType == null) {
        groupType = "g1";
    }
    if (actionType == null) {
        actionType = "a1";
    }
    switch(groupType) {
        case "g1":
            group.setGroupType(GroupTypes.GroupSelect);
            break;
        case "g2":
            group.setGroupType(GroupTypes.GroupAll);
            break;
        case "g3":
            group.setGroupType(GroupTypes.GroupIndirect);
            break;
        case "g4":
            group.setGroupType(GroupTypes.GroupFf);
            break;
        default:
            break;
    }
    switch(actionType) {
        case "a1":
            bucket.setAction(createPopVlanAction());
            break;
        case "a2":
            bucket.setAction(createPushVlanAction());
            break;
        case "a3":
            bucket.setAction(createPushMplsAction());
            break;
        case "a4":
            bucket.setAction(createPopMplsAction());
            break;
        case "a5":
            bucket.setAction(createPopPbbAction());
            break;
        case "a6":
        case "a7":
            bucket.setAction(createPushPbbAction());
            break;
        case "a8":
            bucket.setAction(createCopyTtlInAction());
            break;
        case "a9":
            bucket.setAction(createCopyTtlOutAction());
            break;
        case "a10":
            bucket.setAction(createDecMplsTtlAction());
            break;
        case "a11":
            bucket.setAction(createDecNwTtlAction());
            break;
        case "a12":
            bucket.setAction(createSetQueueAction());
            break;
        case "a13":
            bucket.setAction(createSetNwTtlAction());
            break;
        case "a14":
            bucket.setAction(createGroupAction());
            break;
        case "a15":
            bucket.setAction(createSetMplsTtlAction());
            break;
        case "a16":
            bucket.setAction(createFloodOutputAction());
            break;
        case "a17":
            bucket.setAction(createAllOutputAction());
            break;
        case "a18":
            bucket.setAction(createNormalOutputAction());
            break;
        case "a19":
            bucket.setAction(creatTableOutputAction());
            break;
        case "a20":
            bucket.setAction(createControllerAction());
            break;
        case "a21":
            bucket.setAction(createLocalOutputAction());
            break;
        case "a22":
            bucket.setAction(createAnyOutputAction());
            break;
        case "a23":
            bucket.setAction(createInportOutputAction());
            break;
        case "a24":
            bucket.setAction(null);
            break;
        case "a25":
            bucket.setAction(createNonAppyOutputAction());
            break;
        case "a26":
            bucket.setAction(createNonAppyPushMplsAction());
            break;
        case "a27":
            bucket.setAction(createNonAppyPushPbbAction());
            break;
        case "a28":
            bucket.setAction(createNonAppyPushVlanAction());
            break;
        default:
            break;
    }
    if ("add".equals(groupMod)) {
        bucket.setWatchGroup((long) 14);
        bucket.setWatchPort((long) 1234);
        bucket.setWeight(50);
    } else {
        bucket.setWatchGroup((long) 13);
        bucket.setWatchPort((long) 134);
        bucket.setWeight(30);
    }
    long id = 1;
    GroupKey key = new GroupKey(new GroupId(id));
    group.setKey(key);
    // group.setInstall(false);
    group.setGroupId(new GroupId(id));
    group.setGroupName(ORIGINAL_GROUP_NAME);
    group.setBarrier(false);
    BucketsBuilder value = new BucketsBuilder();
    List<Bucket> value1 = new ArrayList<>();
    value1.add(bucket.build());
    value.setBucket(value1);
    group.setBuckets(value.build());
    testGroup = group.build();
    return group;
}
Also used : BucketBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder) Bucket(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket) GroupBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder) BucketKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey) GroupKey(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey) ArrayList(java.util.ArrayList) BucketsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder) BucketId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId) GroupId(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId)

Aggregations

Bucket (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket)27 ArrayList (java.util.ArrayList)25 Action (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action)11 Group (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group)11 ActionGroup (org.opendaylight.genius.mdsalutil.actions.ActionGroup)10 BucketId (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId)10 BigInteger (java.math.BigInteger)8 BucketBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder)8 BucketsBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder)7 GroupId (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId)5 InterfaceInfo (org.opendaylight.genius.interfacemanager.globals.InterfaceInfo)4 ActionBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder)4 BucketKey (org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketKey)4 WriteTransaction (org.opendaylight.controller.md.sal.binding.api.WriteTransaction)3 ReadFailedException (org.opendaylight.controller.md.sal.common.api.data.ReadFailedException)3 EtreeInstance (org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstance)3 Counter64 (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter64)2 GroupActionBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder)2 ActionKey (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey)2 InterfaceChildEntry (org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406._interface.child.info._interface.parent.entry.InterfaceChildEntry)2