- this commit needs this one to be merged https://git.opendaylight.org/gerrit/12381
Change-Id: Idb01266d87c45d9894b513b6299d9c1da07a5615
Signed-off-by: Martin Bobak <mbobak@cisco.com>
DscpRemark dscpRemark = (DscpRemark) meterBandHeader.getBandType();
meterBandDscpRemarkBuilder.setBurstSize(dscpRemark.getDscpRemarkBurstSize());
meterBandDscpRemarkBuilder.setRate(dscpRemark.getDscpRemarkRate());
- meterBandDscpRemarkBuilder.setPrecLevel(dscpRemark.getPercLevel());
+ meterBandDscpRemarkBuilder.setPrecLevel(dscpRemark.getPrecLevel());
dscpCaseBuilder.setMeterBandDscpRemark(meterBandDscpRemarkBuilder.build());
meterBandItem = dscpCaseBuilder.build();
bandsB = new BandsBuilder();
import java.util.ArrayList;
import java.util.List;
-
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.meter.types.rev130918.BandId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DropBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DscpRemarkBuilder;
/**
* Class is an utility class for converting group related statistics messages coming from switch to MD-SAL
* messages.
- * @author avishnoi@in.ibm.com
*
+ * @author avishnoi@in.ibm.com
*/
public class MeterStatsResponseConvertor {
/**
* Method converts list of OF Meter Stats to SAL Meter Stats.
+ *
* @param allMeterStats
* @return List of MeterStats
*/
public List<MeterStats> toSALMeterStatsList(
List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
- .multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats> allMeterStats){
+ .multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats> allMeterStats) {
List<MeterStats> convertedSALMeters = new ArrayList<MeterStats>();
- for(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.
- multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats meter: allMeterStats){
+ for (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.
+ multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats meter : allMeterStats) {
convertedSALMeters.add(toSALMeterStats(meter));
}
return convertedSALMeters;
-
+
}
-
+
/**
- * Method convert MeterStats message from library to MD SAL defined MeterStats
+ * Method convert MeterStats message from library to MD SAL defined MeterStats
+ *
* @param meterStats MeterStats from library
* @return MeterStats -- MeterStats defined in MD-SAL
*/
public MeterStats toSALMeterStats(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply
- .multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats meterStats){
-
+ .multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats meterStats) {
+
MeterStatsBuilder salMeterStats = new MeterStatsBuilder();
salMeterStats.setByteInCount(new Counter64(meterStats.getByteInCount()));
-
+
DurationBuilder time = new DurationBuilder();
time.setSecond(new Counter32(meterStats.getDurationSec()));
time.setNanosecond(new Counter32(meterStats.getDurationNsec()));
salMeterStats.setDuration(time.build());
-
+
salMeterStats.setFlowCount(new Counter32(meterStats.getFlowCount()));
salMeterStats.setMeterId(new MeterId(meterStats.getMeterId().getValue()));
salMeterStats.setPacketInCount(new Counter64(meterStats.getPacketInCount()));
salMeterStats.setKey(new MeterStatsKey(salMeterStats.getMeterId()));
-
+
List<MeterBandStats> allMeterBandStats = meterStats.getMeterBandStats();
-
+
MeterBandStatsBuilder meterBandStatsBuilder = new MeterBandStatsBuilder();
List<BandStat> listAllBandStats = new ArrayList<BandStat>();
int bandKey = 0;
- for(MeterBandStats meterBandStats : allMeterBandStats){
- BandStatBuilder bandStatBuilder = new BandStatBuilder();
+ for (MeterBandStats meterBandStats : allMeterBandStats) {
+ BandStatBuilder bandStatBuilder = new BandStatBuilder();
bandStatBuilder.setByteBandCount(new Counter64(meterBandStats.getByteBandCount()));
bandStatBuilder.setPacketBandCount(new Counter64(meterBandStats.getPacketBandCount()));
BandId bandId = new BandId((long) bandKey);
salMeterStats.setMeterBandStats(meterBandStatsBuilder.build());
return salMeterStats.build();
}
-
+
/**
- * Method convert list of OF Meter config Stats to SAL Meter Config stats
+ * Method convert list of OF Meter config Stats to SAL Meter Config stats
+ *
* @param allMeterConfigs
* @return list of MeterConfigStats
*/
- public List<MeterConfigStats> toSALMeterConfigList(List<MeterConfig> allMeterConfigs){
-
+ public List<MeterConfigStats> toSALMeterConfigList(List<MeterConfig> allMeterConfigs) {
+
List<MeterConfigStats> listMeterConfigStats = new ArrayList<MeterConfigStats>();
- for( MeterConfig meterConfig : allMeterConfigs){
+ for (MeterConfig meterConfig : allMeterConfigs) {
MeterConfigStatsBuilder meterConfigStatsBuilder = new MeterConfigStatsBuilder();
meterConfigStatsBuilder.setMeterId(new MeterId(meterConfig.getMeterId().getValue()));
meterConfigStatsBuilder.setKey(new MeterConfigStatsKey(meterConfigStatsBuilder.getMeterId()));
-
+
MeterBandHeadersBuilder meterBandHeadersBuilder = new MeterBandHeadersBuilder();
List<Bands> bands = meterConfig.getBands();
-
+
+ MeterFlags meterFlags = new MeterFlags(meterConfig.getFlags().isOFPMFBURST(),
+ meterConfig.getFlags().isOFPMFKBPS(),
+ meterConfig.getFlags().isOFPMFPKTPS(),
+ meterConfig.getFlags().isOFPMFSTATS());
+ meterConfigStatsBuilder.setFlags(meterFlags);
List<MeterBandHeader> listBandHeaders = new ArrayList<MeterBandHeader>();
- int bandKey=0;
- for(Bands band : bands){
+ int bandKey = 0;
+ for (Bands band : bands) {
MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder();
- if(band.getMeterBand() instanceof MeterBandDropCase){
- MeterBandDropCase dropCaseBand = (MeterBandDropCase)band.getMeterBand();
+ if (band.getMeterBand() instanceof MeterBandDropCase) {
+ MeterBandDropCase dropCaseBand = (MeterBandDropCase) band.getMeterBand();
MeterBandDrop dropBand = dropCaseBand.getMeterBandDrop();
DropBuilder dropBuilder = new DropBuilder();
dropBuilder.setDropBurstSize(dropBand.getBurstSize());
dropBuilder.setDropRate(dropBand.getRate());
meterBandHeaderBuilder.setBandType(dropBuilder.build());
-
+
meterBandHeaderBuilder.setBandBurstSize(dropBand.getBurstSize());
meterBandHeaderBuilder.setBandRate(dropBand.getRate());
- BandId bandId = new BandId((long)bandKey);
+ BandId bandId = new BandId((long) bandKey);
meterBandHeaderBuilder.setKey(new MeterBandHeaderKey(bandId));
meterBandHeaderBuilder.setBandId(bandId);
-
+
MeterBandTypesBuilder meterBandTypesBuilder = new MeterBandTypesBuilder();
- meterBandTypesBuilder.setFlags(new MeterBandType(true,false,false));
+ meterBandTypesBuilder.setFlags(new MeterBandType(true, false, false));
meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesBuilder.build());
-
+
listBandHeaders.add(meterBandHeaderBuilder.build());
- }else if (band.getMeterBand() instanceof MeterBandDscpRemarkCase){
- MeterBandDscpRemarkCase dscpRemarkCaseBand = (MeterBandDscpRemarkCase)band.getMeterBand();
+ } else if (band.getMeterBand() instanceof MeterBandDscpRemarkCase) {
+ MeterBandDscpRemarkCase dscpRemarkCaseBand = (MeterBandDscpRemarkCase) band.getMeterBand();
MeterBandDscpRemark dscpRemarkBand = dscpRemarkCaseBand.getMeterBandDscpRemark();
DscpRemarkBuilder dscpRemarkBuilder = new DscpRemarkBuilder();
dscpRemarkBuilder.setDscpRemarkBurstSize(dscpRemarkBand.getBurstSize());
dscpRemarkBuilder.setDscpRemarkRate(dscpRemarkBand.getRate());
+ dscpRemarkBuilder.setPrecLevel(dscpRemarkBand.getPrecLevel());
meterBandHeaderBuilder.setBandType(dscpRemarkBuilder.build());
-
+
meterBandHeaderBuilder.setBandBurstSize(dscpRemarkBand.getBurstSize());
meterBandHeaderBuilder.setBandRate(dscpRemarkBand.getRate());
- BandId bandId = new BandId((long)bandKey);
+ BandId bandId = new BandId((long) bandKey);
meterBandHeaderBuilder.setKey(new MeterBandHeaderKey(bandId));
meterBandHeaderBuilder.setBandId(bandId);
-
+
MeterBandTypesBuilder meterBandTypesBuilder = new MeterBandTypesBuilder();
- meterBandTypesBuilder.setFlags(new MeterBandType(false,true,false));
+ meterBandTypesBuilder.setFlags(new MeterBandType(false, true, false));
meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesBuilder.build());
-
listBandHeaders.add(meterBandHeaderBuilder.build());
-
- }else if (band.getMeterBand() instanceof MeterBandExperimenterCase){
- MeterBandExperimenterCase experimenterCaseBand = (MeterBandExperimenterCase)band.getMeterBand();
+
+ } else if (band.getMeterBand() instanceof MeterBandExperimenterCase) {
+ MeterBandExperimenterCase experimenterCaseBand = (MeterBandExperimenterCase) band.getMeterBand();
MeterBandExperimenter experimenterBand = experimenterCaseBand.getMeterBandExperimenter();
ExperimenterBuilder experimenterBuilder = new ExperimenterBuilder();
experimenterBuilder.setExperimenterBurstSize(experimenterBand.getBurstSize());
experimenterBuilder.setExperimenterRate(experimenterBand.getRate());
meterBandHeaderBuilder.setBandType(experimenterBuilder.build());
-
+
meterBandHeaderBuilder.setBandBurstSize(experimenterBand.getBurstSize());
meterBandHeaderBuilder.setBandRate(experimenterBand.getRate());
- BandId bandId = new BandId((long)bandKey);
+ BandId bandId = new BandId((long) bandKey);
meterBandHeaderBuilder.setKey(new MeterBandHeaderKey(bandId));
meterBandHeaderBuilder.setBandId(bandId);
-
+
MeterBandTypesBuilder meterBandTypesBuilder = new MeterBandTypesBuilder();
- meterBandTypesBuilder.setFlags(new MeterBandType(false,false,true));
+ meterBandTypesBuilder.setFlags(new MeterBandType(false, false, true));
meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesBuilder.build());
listBandHeaders.add(meterBandHeaderBuilder.build());
-
+
}
bandKey++;
}
meterConfigStatsBuilder.setMeterBandHeaders(meterBandHeadersBuilder.build());
listMeterConfigStats.add(meterConfigStatsBuilder.build());
}
-
+
return listMeterConfigStats;
}
}
DscpRemarkBuilder dscp = new DscpRemarkBuilder();
dscp.setDscpRemarkBurstSize(DSCP_REMARK_BURST_SIZE);
dscp.setDscpRemarkRate(DSCP_REMARK_RATE);
- dscp.setPercLevel(DSCP_PERC_LEVEL);
+ dscp.setPrecLevel(DSCP_PERC_LEVEL);
DscpRemark dscpRemark = dscp.build();
meterBandHeaderBuilder1.setBandType(dscpRemark);
meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build());
dscp.setDscpRemarkBurstSize(DSCP_REMARK_BURST_SIZE);
dscp.setDscpRemarkRate(DSCP_REMARK_RATE);
- dscp.setPercLevel(DSCP_PERC_LEVEL);
+ dscp.setPrecLevel(DSCP_PERC_LEVEL);
DscpRemark dscpRemark = dscp.build();
meterBandHeaderBuilder1.setBandType(dscpRemark);
meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build());
DscpRemarkBuilder dscp = new DscpRemarkBuilder();
dscp.setDscpRemarkBurstSize(11L);
dscp.setDscpRemarkRate(21L);
- dscp.setPercLevel((short) 1);
+ dscp.setPrecLevel((short) 1);
DscpRemark dscpRemark = dscp.build();
meterBandHeaderBuilder1.setBandType(dscpRemark);
meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build());
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.math.BigInteger;
import java.util.ArrayList;
int cnt = 0;
for (MeterConfigStats meterConfigStats: meterConfigs){
assertEquals(new Long(cnt), meterConfigStats.getMeterId().getValue());
+ assertTrue(meterConfigStats.getFlags().isMeterBurst());
+ assertFalse(meterConfigStats.getFlags().isMeterKbps());
+ assertTrue(meterConfigStats.getFlags().isMeterPktps());
+ assertFalse(meterConfigStats.getFlags().isMeterStats());
+
cnt++;
}
}
import java.math.BigInteger;\r
import java.util.ArrayList;\r
import java.util.List;\r
-\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.mockito.Mock;\r
import org.mockito.MockitoAnnotations;\r
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
-import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;\r
import org.opendaylight.openflowplugin.api.openflow.md.core.ConnectionConductor;\r
+import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;\r
import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterConfigStatsUpdated;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterStatisticsUpdated;\r
\r
/**\r
* @author michal.polkorab\r
- *\r
*/\r
public class MultipartReplyTranslatorFifthTest {\r
\r
- @Mock SwitchConnectionDistinguisher cookie;\r
- @Mock SessionContext sc;\r
- @Mock ConnectionConductor conductor;\r
- @Mock GetFeaturesOutput features;\r
+ @Mock\r
+ SwitchConnectionDistinguisher cookie;\r
+ @Mock\r
+ SessionContext sc;\r
+ @Mock\r
+ ConnectionConductor conductor;\r
+ @Mock\r
+ GetFeaturesOutput features;\r
\r
MultipartReplyTranslator translator = new MultipartReplyTranslator();\r
\r
caseBuilder.setMultipartReplyMeter(meterBuilder.build());\r
mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
MultipartReplyMessage message = mpBuilder.build();\r
- \r
+\r
List<DataObject> list = translator.translate(cookie, sc, message);\r
\r
Assert.assertEquals("Wrong list size", 1, list.size());\r
caseBuilder.setMultipartReplyMeter(meterBuilder.build());\r
mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
MultipartReplyMessage message = mpBuilder.build();\r
- \r
+\r
List<DataObject> list = translator.translate(cookie, sc, message);\r
\r
Assert.assertEquals("Wrong list size", 1, list.size());\r
Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
Assert.assertEquals("Wrong group stats size", 2, statUpdate.getMeterStats().size());\r
org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply\r
- .MeterStats stat = statUpdate.getMeterStats().get(0);\r
+ .MeterStats stat = statUpdate.getMeterStats().get(0);\r
Assert.assertEquals("Wrong meter-id", 15, stat.getMeterId().getValue().intValue());\r
Assert.assertEquals("Wrong flow count", 16, stat.getFlowCount().getValue().intValue());\r
Assert.assertEquals("Wrong packet in count", 17, stat.getPacketInCount().getValue().intValue());\r
caseBuilder.setMultipartReplyMeterConfig(meterBuilder.build());\r
mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
MultipartReplyMessage message = mpBuilder.build();\r
- \r
+\r
List<DataObject> list = translator.translate(cookie, sc, message);\r
\r
Assert.assertEquals("Wrong list size", 1, list.size());\r
caseBuilder.setMultipartReplyMeterConfig(meterBuilder.build());\r
mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
MultipartReplyMessage message = mpBuilder.build();\r
- \r
+\r
List<DataObject> list = translator.translate(cookie, sc, message);\r
\r
Assert.assertEquals("Wrong list size", 1, list.size());\r
Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
Assert.assertEquals("Wrong meter config stats size", 2, statUpdate.getMeterConfigStats().size());\r
MeterConfigStats stat = statUpdate.getMeterConfigStats().get(0);\r
- // TODO: fix implementation - add flags creation\r
-// Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterBurst());\r
-// Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterPktps());\r
-// Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterKbps());\r
-// Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterStats());\r
+ Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterBurst());\r
+ Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterPktps());\r
+ Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterKbps());\r
+ Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterStats());\r
Assert.assertEquals("Wrong meter-id", 20, stat.getMeterId().getValue().intValue());\r
Assert.assertEquals("Wrong bands size", 2, stat.getMeterBandHeaders().getMeterBandHeader().size());\r
MeterBandHeader header = stat.getMeterBandHeaders().getMeterBandHeader().get(0);\r
Assert.assertEquals("Wrong flag", true, header.getMeterBandTypes().getFlags().isOfpmbtDscpRemark());\r
Assert.assertEquals("Wrong flag", false, header.getMeterBandTypes().getFlags().isOfpmbtExperimenter());\r
stat = statUpdate.getMeterConfigStats().get(1);\r
- // TODO: fix implementation - add flags creation\r
-// Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterBurst());\r
-// Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterPktps());\r
-// Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterKbps());\r
-// Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterStats());\r
+ Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterBurst());\r
+ Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterPktps());\r
+ Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterKbps());\r
+ Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterStats());\r
Assert.assertEquals("Wrong meter-id", 26, stat.getMeterId().getValue().intValue());\r
Assert.assertEquals("Wrong bands size", 0, stat.getMeterBandHeaders().getMeterBandHeader().size());\r
}\r
bandHeader.setBandBurstSize((long) 444);
DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder();
dscpRemark.setDscpRemarkBurstSize((long) 5);
- dscpRemark.setPercLevel((short) 1);
+ dscpRemark.setPrecLevel((short) 1);
dscpRemark.setDscpRemarkRate((long) 12);
bandHeader.setBandType(dscpRemark.build());
MeterBandTypesBuilder bandTypes = new MeterBandTypesBuilder();
bandHeader.setBandBurstSize((long) 444);
DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder();
dscpRemark.setDscpRemarkBurstSize((long) 5);
- dscpRemark.setPercLevel((short) 1);
+ dscpRemark.setPrecLevel((short) 1);
dscpRemark.setDscpRemarkRate((long) 12);
bandHeader.setBandType(dscpRemark.build());
MeterBandTypesBuilder bandTypes = new MeterBandTypesBuilder();