• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java Band类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ParseData类代码示例发布时间:2022-05-16
下一篇:
Java CacheLoadingException类代码示例发布时间:2022-05-16
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap