+/*
+ * Copyright IBM Corporation, 2013. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
import java.util.ArrayList;
import java.util.List;
+import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
+import org.opendaylight.openflowplugin.openflow.md.util.OpenflowVersion;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter32;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter64;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.group.stats.BucketStats;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc._case.multipart.reply.group.desc.GroupDesc;
/**
* Class is an utility class for converting group related statistics messages coming from switch to MD-SAL
public class GroupStatsResponseConvertor {
public List<GroupStats> toSALGroupStatsList(
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats> allGroupStats){
- List<GroupStats> convertedSALGroups = new ArrayList<GroupStats>();
- for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats group: allGroupStats){
+ List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
+ .multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats> allGroupStats){
+ List<GroupStats> convertedSALGroups = new ArrayList<>();
+ for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
+ .multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats group: allGroupStats){
convertedSALGroups.add(toSALGroupStats(group));
}
return convertedSALGroups;
* @return GroupStats -- GroupStats defined in MD-SAL
*/
public GroupStats toSALGroupStats(
- org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.GroupStats groupStats){
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.
+ multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats groupStats){
GroupStatsBuilder salGroupStats = new GroupStatsBuilder();
time.setNanosecond(new Counter32(groupStats.getDurationNsec()));
salGroupStats.setDuration(time.build());
- salGroupStats.setGroupId(new GroupId(groupStats.getGroupId()));
+ salGroupStats.setGroupId(new GroupId(groupStats.getGroupId().getValue()));
salGroupStats.setPacketCount(new Counter64(groupStats.getPacketCount()));
salGroupStats.setRefCount(new Counter32(groupStats.getRefCount()));
salGroupStats.setKey(new GroupStatsKey(salGroupStats.getGroupId()));
}
public Buckets toSALBuckets(
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.group.stats.BucketStats> bucketStats ){
+ List<BucketStats> bucketStats ){
BucketsBuilder salBuckets = new BucketsBuilder();
- List<BucketCounter> allBucketStats = new ArrayList<BucketCounter>();
+ List<BucketCounter> allBucketStats = new ArrayList<>();
int bucketKey = 0;
- for( org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.group.stats.BucketStats bucketStat : bucketStats){
+ for(BucketStats bucketStat : bucketStats){
BucketCounterBuilder bucketCounter = new BucketCounterBuilder();
bucketCounter.setByteCount(new Counter64(bucketStat.getByteCount()));
bucketCounter.setPacketCount(new Counter64(bucketStat.getPacketCount()));
public List<GroupDescStats> toSALGroupDescStatsList(
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.
- multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc> allGroupDescStats){
+ List<GroupDesc> allGroupDescStats, OpenflowVersion ofVersion){
- List<GroupDescStats> convertedSALGroupsDesc = new ArrayList<GroupDescStats>();
- for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc.GroupDesc groupDesc: allGroupDescStats){
- convertedSALGroupsDesc.add(toSALGroupDescStats(groupDesc));
+ List<GroupDescStats> convertedSALGroupsDesc = new ArrayList<>();
+ for(GroupDesc groupDesc: allGroupDescStats){
+ convertedSALGroupsDesc.add(toSALGroupDescStats(groupDesc, ofVersion));
}
return convertedSALGroupsDesc;
/**
* Method convert GroupStats message from library to MD SAL defined GroupStats
* @param groupDesc GroupStats from library
+ * @param ofVersion current ofp version
* @return GroupStats -- GroupStats defined in MD-SAL
*/
- public GroupDescStats toSALGroupDescStats(GroupDesc groupDesc){
+ public GroupDescStats toSALGroupDescStats(GroupDesc groupDesc, OpenflowVersion ofVersion){
GroupDescStatsBuilder salGroupDescStats = new GroupDescStatsBuilder();
- salGroupDescStats.setBuckets(toSALBucketsDesc(groupDesc.getBucketsList()));
- salGroupDescStats.setGroupId(new GroupId(groupDesc.getGroupId()));
+ salGroupDescStats.setBuckets(toSALBucketsDesc(groupDesc.getBucketsList(), ofVersion));
+ salGroupDescStats.setGroupId(new GroupId(groupDesc.getGroupId().getValue()));
salGroupDescStats.setGroupType(GroupTypes.forValue(groupDesc.getType().getIntValue()));
salGroupDescStats.setKey(new GroupDescStatsKey(salGroupDescStats.getGroupId()));
}
public org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets toSALBucketsDesc(
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList> bucketDescStats ){
+ List<BucketsList> bucketDescStats, OpenflowVersion ofVersion ){
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<Bucket>();
+ List<Bucket> allBuckets = new ArrayList<>();
int bucketKey = 0;
- for( org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList bucketDetails : bucketDescStats){
+ for(BucketsList bucketDetails : bucketDescStats){
BucketBuilder bucketDesc = new BucketBuilder();
List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> convertedSalActions =
- ActionConvertor.toSALBucketActions (bucketDetails.getActionsList());
+ ActionConvertor.toMDSalActions (bucketDetails.getAction(), ofVersion,
+ ActionPath.GROUPDESCSTATSUPDATED_GROUPDESCSTATS_BUCKETS_BUCKET_ACTION);
- List<Action> actions = new ArrayList<Action>();
+ List<Action> actions = new ArrayList<>();
int actionKey = 0;
for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action : convertedSalActions){
ActionBuilder wrappedAction = new ActionBuilder();