本文整理汇总了Java中org.onosproject.net.meter.Band类的典型用法代码示例。如果您正苦于以下问题:Java Band类的具体用法?Java Band怎么用?Java Band使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Band类属于org.onosproject.net.meter包,在下文中一共展示了Band类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: format
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
public String format(Object value) {
StringBuilder sb = new StringBuilder();
Collection<Band> bands = (Collection<Band>) value;
if (bands.isEmpty()) {
return "(No bands for this meter)";
}
// TODO: re-arrange band properties based on band type
for (Band b : bands) {
sb.append("Bytes: ")
.append(b.bytes())
.append(" Packets: ")
.append(b.packets())
.append(" Type: ")
.append(b.type())
.append(BREAK);
}
return sb.toString();
}
开发者ID:shlee89,项目名称:athena,代码行数:23,代码来源:MeterViewMessageHandler.java
示例2: buildMeters
import org.onosproject.net.meter.Band; //导入依赖的package包/类
private Collection<Meter> buildMeters(DeviceId deviceId,
List<OFMeterStats> entries) {
return entries.stream().map(stat -> {
DefaultMeter.Builder builder = DefaultMeter.builder();
Collection<Band> bands = buildBands(stat.getBandStats());
builder.forDevice(deviceId)
.withId(MeterId.meterId(stat.getMeterId()))
//FIXME: need to encode appId in meter id, but that makes
// things a little annoying for debugging
.fromApp(coreService.getAppId("org.onosproject.core"))
.withBands(bands);
DefaultMeter meter = builder.build();
meter.setState(MeterState.ADDED);
meter.setLife(stat.getDurationSec());
meter.setProcessedBytes(stat.getByteInCount().getValue());
meter.setProcessedPackets(stat.getPacketInCount().getValue());
meter.setReferenceCount(stat.getFlowCount());
// marks the meter as seen on the dataplane
pendingOperations.invalidate(stat.getMeterId());
return meter;
}).collect(Collectors.toSet());
}
开发者ID:shlee89,项目名称:athena,代码行数:24,代码来源:OpenFlowMeterProvider.java
示例3: activate
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Activate
public void activate() {
local = clusterService.getLocalNode().id();
meters = storageService.<MeterKey, MeterData>consistentMapBuilder()
.withName(METERSTORE)
.withSerializer(Serializer.using(Arrays.asList(KryoNamespaces.API),
MeterKey.class,
MeterData.class,
DefaultMeter.class,
DefaultBand.class,
Band.Type.class,
MeterState.class,
Meter.Unit.class,
MeterFailReason.class)).build();
meters.addListener(mapListener);
log.info("Started");
}
开发者ID:shlee89,项目名称:athena,代码行数:23,代码来源:DistributedMeterStore.java
示例4: execute
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
protected void execute() {
MeterService service = get(MeterService.class);
CoreService coreService = get(CoreService.class);
DeviceId deviceId = DeviceId.deviceId(uri);
Band band = DefaultBand.builder()
.ofType(Band.Type.DROP)
.withRate(500)
.build();
MeterRequest request = DefaultMeterRequest.builder()
.forDevice(deviceId)
.fromApp(coreService.registerApplication(appId))
.withUnit(Meter.Unit.KB_PER_SEC)
.withBands(Collections.singleton(band))
.add();
service.submit(request);
}
开发者ID:shlee89,项目名称:athena,代码行数:24,代码来源:AddMeter.java
示例5: encode
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
public ObjectNode encode(Band band, CodecContext context) {
checkNotNull(band, "Band cannot be null");
ObjectNode result = context.mapper().createObjectNode()
.put(TYPE, band.type().toString())
.put(RATE, band.rate())
.put(PACKETS, band.packets())
.put(BYTES, band.bytes())
.put(BURST_SIZE, band.burst());
if (band.dropPrecedence() != null) {
result.put(PREC, band.dropPrecedence());
}
return result;
}
开发者ID:shlee89,项目名称:athena,代码行数:18,代码来源:MeterBandCodec.java
示例6: testMeterEncode
import org.onosproject.net.meter.Band; //导入依赖的package包/类
/**
* Tests encoding of a Meter object.
*/
@Test
public void testMeterEncode() {
Band band1 = DefaultBand.builder()
.ofType(Band.Type.DROP)
.burstSize(10)
.withRate(10).build();
Band band2 = DefaultBand.builder()
.ofType(Band.Type.REMARK)
.burstSize(10)
.withRate(10)
.dropPrecedence((short) 10).build();
Meter meter = DefaultMeter.builder()
.fromApp(APP_ID)
.withId(MeterId.meterId(1L))
.forDevice(NetTestTools.did("d1"))
.withBands(ImmutableList.of(band1, band2))
.withUnit(Meter.Unit.KB_PER_SEC).build();
ObjectNode meterJson = meterCodec.encode(meter, context);
assertThat(meterJson, matchesMeter(meter));
}
开发者ID:shlee89,项目名称:athena,代码行数:26,代码来源:MeterCodecTest.java
示例7: testPerformMeterOperationDeviceIdMeterRemove
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Test
public void testPerformMeterOperationDeviceIdMeterRemove() {
DeviceId mockDeviceId = DeviceId.deviceId("netconf:1.2.3.4:830");
Band cbsBand = DefaultBand.builder()
.ofType(Band.Type.REMARK) //Committed - CIR & CBS
.withRate(37500L)
.burstSize(2000)
.dropPrecedence((short) 0)
.build();
Meter.Builder mBuilder = DefaultMeter.builder()
.forDevice(mockDeviceId)
.withId(MeterId.meterId(1))
.fromApp(new DefaultApplicationId(101, "unit.test"))
.burst()
.withBands(new HashSet<Band>() { { add(cbsBand); } });
MeterOperation meterOp = new MeterOperation(mBuilder.build(), Type.REMOVE);
meterProvider.performMeterOperation(mockDeviceId, meterOp);
//The NETCONF XML generated by this matches the pattern
// sampleXmlRegexEditConfigBwpGroup1
// in MockNetconfSession
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:26,代码来源:EA1000MeterProviderTest.java
示例8: buildMeters
import org.onosproject.net.meter.Band; //导入依赖的package包/类
private Collection<Meter> buildMeters(DeviceId deviceId,
List<OFMeterStats> entries) {
return entries.stream().map(stat -> {
DefaultMeter.Builder builder = DefaultMeter.builder();
Collection<Band> bands = buildBands(stat.getBandStats());
builder.forDevice(deviceId)
.withId(MeterId.meterId(stat.getMeterId()))
//FIXME: need to encode appId in meter id, but that makes
// things a little annoying for debugging
.fromApp(coreService.getAppId("org.onosproject.core"))
.withBands(bands);
DefaultMeter meter = builder.build();
meter.setState(MeterState.ADDED);
meter.setLife(stat.getDurationSec());
meter.setProcessedBytes(stat.getByteInCount().getValue());
meter.setProcessedPackets(stat.getPacketInCount().getValue());
if (stat.getVersion().getWireVersion() < OFVersion.OF_15.getWireVersion()) {
meter.setReferenceCount(stat.getFlowCount());
}
// marks the meter as seen on the dataplane
pendingOperations.invalidate(stat.getMeterId());
return meter;
}).collect(Collectors.toSet());
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:25,代码来源:OpenFlowMeterProvider.java
示例9: translate
import org.onosproject.net.meter.Band; //导入依赖的package包/类
/**
* Translates gRPC MeterRequest to {@link MeterRequest}.
*
* @param meterRequest gRPC message
* @return {@link MeterRequest}
*/
public static MeterRequest translate(MeterRequestProto meterRequest) {
DeviceId deviceid = DeviceId.deviceId(meterRequest.getDeviceId());
ApplicationId appId = translate(meterRequest.getApplicationId());
Meter.Unit unit = translate(meterRequest.getUnit());
boolean burst = meterRequest.getIsBurst();
Collection<Band> bands = translate(meterRequest.getBandsList());
MeterRequest.Type type = translate(meterRequest.getType());
if (type == MeterRequest.Type.ADD) {
return DefaultMeterRequest.builder()
.forDevice(deviceid)
.fromApp(appId)
.withUnit(unit)
.withBands(bands)
.add();
} else {
return DefaultMeterRequest.builder()
.forDevice(deviceid)
.fromApp(appId)
.withUnit(unit)
.withBands(bands)
.remove();
}
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:31,代码来源:MeterProtoTranslator.java
示例10: execute
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
protected void execute() {
MeterService service = get(MeterService.class);
CoreService coreService = get(CoreService.class);
DeviceId deviceId = DeviceId.deviceId(uri);
MeterId meterId = MeterId.meterId(Long.parseLong(meterIdstr, 16));
Band b = new DefaultBand(Band.Type.DROP, 0L, 0L, (short) 0);
MeterRequest.Builder builder = DefaultMeterRequest.builder()
.forDevice(deviceId)
.withBands(Collections.singleton(b))
.withUnit(Meter.Unit.PKTS_PER_SEC)
.fromApp(coreService.registerApplication(appId));
MeterRequest meterRequest = builder.remove();
service.withdraw(meterRequest, meterId);
log.info("Requested meter removal: {}", meterRequest.toString());
print("Requested meter removal: %s", meterRequest.toString());
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:22,代码来源:MeterRemoveCommand.java
示例11: band
import org.onosproject.net.meter.Band; //导入依赖的package包/类
private Band band(OFMeterBand ofMeterBand) {
DefaultBand.Builder builder = DefaultBand.builder();
if (ofMeterBand instanceof OFMeterBandDrop) {
OFMeterBandDrop ofMeterBandDrop = (OFMeterBandDrop) ofMeterBand;
builder.ofType(Band.Type.DROP)
.burstSize(ofMeterBandDrop.getBurstSize())
.withRate(ofMeterBandDrop.getRate());
} else if (ofMeterBand instanceof OFMeterBandDscpRemark) {
OFMeterBandDscpRemark ofMeterBandDscpRemark = (OFMeterBandDscpRemark) ofMeterBand;
builder.ofType(Band.Type.REMARK)
.burstSize(ofMeterBandDscpRemark.getBurstSize())
.withRate(ofMeterBandDscpRemark.getRate())
.dropPrecedence(ofMeterBandDscpRemark.getPrecLevel());
} else if (ofMeterBand instanceof OFMeterBandExperimenter) {
OFMeterBandExperimenter ofMeterBandExperimenter = (OFMeterBandExperimenter) ofMeterBand;
builder.ofType(Band.Type.EXPERIMENTAL)
.burstSize(ofMeterBandExperimenter.getBurstSize())
.withRate(ofMeterBandExperimenter.getRate());
}
return builder.build();
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:22,代码来源:DefaultOFSwitch.java
示例12: getBwProfileActionFromBand
import org.onosproject.net.meter.Band; //导入依赖的package包/类
private static BandwidthProfileAction getBwProfileActionFromBand(Band band) {
checkNotNull(band.type(),
"Could not obtain BW profile: Meter band type is null");
Action action = null;
if (band.type().equals(Band.Type.DROP)) {
action = Action.DISCARD;
} else if (band.type().equals(Band.Type.REMARK)) {
action = Action.REMARK;
}
checkNotNull(action,
"Could not obtain BW profile: Invalid meter band type");
BandwidthProfileAction.Builder actionBuilder = getBuilder(action);
if (band.type().equals(Band.Type.REMARK)) {
checkNotNull(band.dropPrecedence(),
"Could not obtain DSCP class from meter band");
actionBuilder.dscpClass(DscpClass.fromShort(band.dropPrecedence()));
}
return actionBuilder.build();
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:20,代码来源:BandwidthProfile.java
示例13: MockMeter
import org.onosproject.net.meter.Band; //导入依赖的package包/类
public MockMeter(DeviceId deviceId, int appId, long meterId, int id) {
this.deviceId = deviceId;
this.appId = new DefaultApplicationId(appId, String.valueOf(appId));
this.baseValue = id * 200;
this.meterId = MeterId.meterId(meterId);
Band band = DefaultBand.builder()
.ofType(Band.Type.REMARK)
.withRate(10)
.dropPrecedence((short) 20)
.burstSize(30).build();
this.bandList = new ArrayList<>();
this.bandList.add(band);
}
开发者ID:shlee89,项目名称:athena,代码行数:16,代码来源:MetersResourceTest.java
示例14: processMeterTable
import org.onosproject.net.meter.Band; //导入依赖的package包/类
protected void processMeterTable(boolean install) {
//Green meter : Pass all traffic
Band dropBand = DefaultBand.builder()
.ofType(Band.Type.DROP)
.withRate(0xFFFFFFFF) /* Max Rate */
.build();
MeterRequest.Builder ops = DefaultMeterRequest.builder()
.forDevice(deviceId)
.withBands(Collections.singletonList(dropBand))
.fromApp(appId);
Meter meter = meterService.submit(install ? ops.add() : ops.remove());
defaultMeterId = meter.id();
}
开发者ID:shlee89,项目名称:athena,代码行数:15,代码来源:CorsaPipelineV3.java
示例15: buildBands
import org.onosproject.net.meter.Band; //导入依赖的package包/类
private Collection<Band> buildBands(List<OFMeterBandStats> bandStats) {
return bandStats.stream().map(stat -> {
DefaultBand band = DefaultBand.builder().build();
band.setBytes(stat.getByteBandCount().getValue());
band.setPackets(stat.getPacketBandCount().getValue());
return band;
}).collect(Collectors.toSet());
}
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:OpenFlowMeterProvider.java
示例16: encode
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
public ObjectNode encode(Meter meter, CodecContext context) {
checkNotNull(meter, "Meter cannot be null");
ObjectNode result = context.mapper().createObjectNode()
.put(ID, meter.id().toString())
.put(LIFE, meter.life())
.put(PACKETS, meter.packetsSeen())
.put(BYTES, meter.bytesSeen())
.put(REFERENCE_COUNT, meter.referenceCount())
.put(UNIT, meter.unit().toString())
.put(BURST, meter.isBurst())
.put(DEVICE_ID, meter.deviceId().toString());
if (meter.appId() != null) {
result.put(APP_ID, meter.appId().toString());
}
if (meter.state() != null) {
result.put(STATE, meter.state().toString());
}
ArrayNode bands = context.mapper().createArrayNode();
meter.bands().forEach(band -> {
ObjectNode bandJson = context.codec(Band.class).encode(band, context);
bands.add(bandJson);
});
result.set(BANDS, bands);
return result;
}
开发者ID:shlee89,项目名称:athena,代码行数:30,代码来源:MeterCodec.java
示例17: decode
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Override
public Band decode(ObjectNode json, CodecContext context) {
if (json == null || !json.isObject()) {
return null;
}
// parse rate
long rate = nullIsIllegal(json.get(RATE), RATE + MISSING_MEMBER_MESSAGE).asLong();
// parse burst size
long burstSize = nullIsIllegal(json.get(BURST_SIZE), BURST_SIZE + MISSING_MEMBER_MESSAGE).asLong();
// parse precedence
Short precedence = null;
// parse band type
String typeStr = nullIsIllegal(json.get(TYPE), TYPE + MISSING_MEMBER_MESSAGE).asText();
Band.Type type;
switch (typeStr) {
case "DROP":
type = Band.Type.DROP;
break;
case "REMARK":
type = Band.Type.REMARK;
precedence = (short) nullIsIllegal(json.get(PREC), PREC + MISSING_MEMBER_MESSAGE).asInt();
break;
default:
log.warn("The requested type {} is not defined for band.", typeStr);
return null;
}
Band band = DefaultBand.builder()
.ofType(type)
.burstSize(burstSize)
.withRate(rate)
.dropPrecedence(precedence)
.build();
return band;
}
开发者ID:shlee89,项目名称:athena,代码行数:41,代码来源:MeterBandCodec.java
示例18: testMeterRequestDecode
import org.onosproject.net.meter.Band; //导入依赖的package包/类
/**
* Test decoding of a MeterRequest object.
*/
@Test
public void testMeterRequestDecode() throws IOException {
MeterRequest meterRequest = getMeterRequest("simple-meter-request.json");
checkCommonData(meterRequest);
assertThat(meterRequest.bands().size(), is(1));
Band band = meterRequest.bands().iterator().next();
assertThat(band.type().toString(), is("REMARK"));
assertThat(band.rate(), is(10L));
assertThat(band.dropPrecedence(), is((short) 20));
assertThat(band.burst(), is(30L));
}
开发者ID:shlee89,项目名称:athena,代码行数:16,代码来源:MeterRequestCodecTest.java
示例19: MockMeter
import org.onosproject.net.meter.Band; //导入依赖的package包/类
public MockMeter(DeviceId deviceId, int appId, long meterId, int id) {
this.deviceId = deviceId;
this.appId = new DefaultApplicationId(appId, String.valueOf(appId));
this.baseValue = id * 200L;
this.meterId = MeterId.meterId(meterId);
Band band = DefaultBand.builder()
.ofType(Band.Type.REMARK)
.withRate(10)
.dropPrecedence((short) 20)
.burstSize(30).build();
this.bandList = new ArrayList<>();
this.bandList.add(band);
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:16,代码来源:MetersResourceTest.java
示例20: testPerformMeterOperationDeviceIdMeterAdd
import org.onosproject.net.meter.Band; //导入依赖的package包/类
@Test
public void testPerformMeterOperationDeviceIdMeterAdd() {
DeviceId mockDeviceId = DeviceId.deviceId("netconf:1.2.3.4:830");
Band cbsBand = DefaultBand.builder()
.ofType(Band.Type.REMARK) //Committed - CIR & CBS
.withRate(37500L)
.burstSize(2000)
.dropPrecedence((short) 0)
.build();
Band ebsBand = DefaultBand.builder()
.ofType(Band.Type.DROP) //Excess - EIR & EBS
.withRate(50000L) //The rate at which we drop - for EA 1000 subtract CIR to get EIR
.burstSize(3000) //The burst rate to drop at
.build();
Meter.Builder mBuilder = DefaultMeter.builder()
.forDevice(mockDeviceId)
.withId(MeterId.meterId(1))
.fromApp(new DefaultApplicationId(101, "unit.test"))
.burst()
.withUnit(Unit.KB_PER_SEC)
.withBands(new HashSet<Band>() { { add(cbsBand); add(ebsBand); } });
MeterOperation meterOp = new MeterOperation(mBuilder.build(), Type.ADD);
meterProvider.performMeterOperation(mockDeviceId, meterOp);
//The NETCONF XML generated by this matches the pattern
// sampleXmlRegexEditConfigBwpGroup1
// in MockNetconfSession
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:33,代码来源:EA1000MeterProviderTest.java
注:本文中的org.onosproject.net.meter.Band类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论