当前位置: 首页>>代码示例>>Java>>正文


Java Criterion类代码示例

本文整理汇总了Java中org.onosproject.net.flow.criteria.Criterion的典型用法代码示例。如果您正苦于以下问题:Java Criterion类的具体用法?Java Criterion怎么用?Java Criterion使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Criterion类属于org.onosproject.net.flow.criteria包,在下文中一共展示了Criterion类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildConnectivityDetails

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private void buildConnectivityDetails(ConnectivityIntent intent,
                                      StringBuilder sb) {
    Set<Criterion> criteria = intent.selector().criteria();
    List<Instruction> instructions = intent.treatment().allInstructions();
    List<Constraint> constraints = intent.constraints();

    if (!criteria.isEmpty()) {
        sb.append("Selector: ").append(criteria);
    }
    if (!instructions.isEmpty()) {
        sb.append("Treatment: ").append(instructions);
    }
    if (constraints != null && !constraints.isEmpty()) {
        sb.append("Constraints: ").append(constraints);
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:17,代码来源:IntentViewMessageHandler.java

示例2: processSpecific

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private Collection<FlowRule> processSpecific(ForwardingObjective fwd) {
    log.debug("Processing specific forwarding objective");
    TrafficSelector selector = fwd.selector();
    EthTypeCriterion ethType =
            (EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
    if (ethType != null) {
        short et = ethType.ethType().toShort();
        if (et == Ethernet.TYPE_IPV4) {
            return processSpecificRoute(fwd);
        } else if (et == Ethernet.TYPE_VLAN) {
            /* The ForwardingObjective must specify VLAN ethtype in order to use the Transit Circuit */
            return processSpecificSwitch(fwd);
        }
    }

    fail(fwd, ObjectiveError.UNSUPPORTED);
    return ImmutableSet.of();
}
 
开发者ID:shlee89,项目名称:athena,代码行数:19,代码来源:AbstractCorsaPipeline.java

示例3: processSpecificSwitch

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
@Override
protected Collection<FlowRule> processSpecificSwitch(ForwardingObjective fwd) {
    TrafficSelector filteredSelector =
            DefaultTrafficSelector.builder()
                    .matchInPort(
                            ((PortCriterion) fwd.selector().getCriterion(Criterion.Type.IN_PORT)).port())
                    .matchVlanId(
                            ((VlanIdCriterion) fwd.selector().getCriterion(Criterion.Type.VLAN_VID)).vlanId())
                    .build();

    Builder ruleBuilder = DefaultFlowRule.builder()
            .fromApp(fwd.appId())
            .withPriority(fwd.priority())
            .forDevice(deviceId)
            .withSelector(filteredSelector)
            .withTreatment(fwd.treatment())
            .forTable(VLAN_CIRCUIT_TABLE);

    if (fwd.permanent()) {
        ruleBuilder.makePermanent();
    } else {
        ruleBuilder.makeTemporary(fwd.timeout());
    }

    return Collections.singletonList(ruleBuilder.build());
}
 
开发者ID:shlee89,项目名称:athena,代码行数:27,代码来源:CorsaPipelineV3.java

示例4: testForwardingObjectiveEncode

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
/**
 * Tests encoding of a ForwardingObjective object.
 */
@Test
public void testForwardingObjectiveEncode() {

    Criterion criterion1 = Criteria.matchVlanId(VlanId.ANY);
    Criterion criterion2 = Criteria.matchEthType((short) 0x8844);
    TrafficSelector selector = DefaultTrafficSelector.builder()
            .add(criterion1)
            .add(criterion2)
            .build();

    ForwardingObjective forwardingObj = DefaultForwardingObjective.builder()
            .makePermanent()
            .fromApp(APP_ID)
            .withPriority(60)
            .withFlag(ForwardingObjective.Flag.SPECIFIC)
            .nextStep(1)
            .withSelector(selector)
            .add();

    ObjectNode forwardingObjJson = forwardingObjectiveCodec.encode(forwardingObj, context);
    assertThat(forwardingObjJson, matchesForwardingObjective(forwardingObj));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:26,代码来源:ForwardingObjectiveCodecTest.java

示例5: cleanAllFlowRules

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private void cleanAllFlowRules() {
    Iterable<Device> deviceList = deviceService.getAvailableDevices();

    for (Device d : deviceList) {
        DeviceId id = d.id();
        log.trace("Searching for flow rules to remove from: " + id);
        for (FlowEntry r : flowRuleService.getFlowEntries(id)) {
            boolean match = false;
            for (Instruction i : r.treatment().allInstructions()) {
                if (i.type() == Instruction.Type.OUTPUT) {
                    OutputInstruction oi = (OutputInstruction) i;
                    // if the flow has matching src and dst
                    for (Criterion cr : r.selector().criteria()) {
                        if (cr.type() == Criterion.Type.ETH_DST || cr.type() == Criterion.Type.ETH_SRC) {
                                    match = true;
                        }
                    }
                }
            }
            if (match) {
                log.trace("Removed flow rule from device: " + id);
                flowRuleService.removeFlowRules((FlowRule) r);
            }
        }
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:27,代码来源:SimpleLoadBalancer.java

示例6: testTrafficSelectorEncode

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
/**
 * Tests encoding of a traffic selector object.
 */
@Test
public void testTrafficSelectorEncode() {

    Criterion inPort = Criteria.matchInPort(PortNumber.portNumber(0));
    Criterion ethSrc = Criteria.matchEthSrc(MacAddress.valueOf("11:22:33:44:55:66"));
    Criterion ethDst = Criteria.matchEthDst(MacAddress.valueOf("44:55:66:77:88:99"));
    Criterion ethType = Criteria.matchEthType(Ethernet.TYPE_IPV4);

    TrafficSelector.Builder sBuilder = DefaultTrafficSelector.builder();
    TrafficSelector selector = sBuilder
            .add(inPort)
            .add(ethSrc)
            .add(ethDst)
            .add(ethType)
            .build();

    ObjectNode selectorJson = trafficSelectorCodec.encode(selector, context);
    assertThat(selectorJson, TrafficSelectorJsonMatcher.matchesTrafficSelector(selector));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:23,代码来源:TrafficSelectorCodecTest.java

示例7: encodeCriterion

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
@Override
public ObjectNode encodeCriterion(ObjectNode root, Criterion criterion) {
    OduSignalId oduSignalId = ((OduSignalIdCriterion) criterion).oduSignalId();
    ObjectNode child = root.putObject(CriterionCodec.ODU_SIGNAL_ID);

    child.put(CriterionCodec.TRIBUTARY_PORT_NUMBER, oduSignalId.tributaryPortNumber());
    child.put(CriterionCodec.TRIBUTARY_SLOT_LEN, oduSignalId.tributarySlotLength());
    child.put(CriterionCodec.TRIBUTARY_SLOT_BITMAP, HexString.toHexString(oduSignalId.tributarySlotBitmap()));

    return root;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:12,代码来源:EncodeCriterionCodecHelper.java

示例8: matchOchSignalTypeTest

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
/**
 * Tests Och signal type criterion.
 */
@Test
public void matchOchSignalTypeTest() {
    Criterion criterion = Criteria.matchOchSignalType(OchSignalType.FIXED_GRID);
    ObjectNode result = criterionCodec.encode(criterion, context);
    assertThat(result, matchesCriterion(criterion));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:CriterionCodecTest.java

示例9: isSupportedEthDstObjective

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private boolean isSupportedEthDstObjective(ForwardingObjective fwd) {
    TrafficSelector selector = fwd.selector();
    EthCriterion ethDst = (EthCriterion) selector
            .getCriterion(Criterion.Type.ETH_DST);
    VlanIdCriterion vlanId = (VlanIdCriterion) selector
            .getCriterion(Criterion.Type.VLAN_VID);
    return !(ethDst == null && vlanId == null);
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:Ofdpa2Pipeline.java

示例10: readIpDstFromSelector

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
protected static IpPrefix readIpDstFromSelector(TrafficSelector selector) {
    if (selector == null) {
        return null;
    }
    Criterion criterion = selector.getCriterion(Criterion.Type.IPV4_DST);
    return (criterion == null) ? null : ((IPCriterion) criterion).ip();
}
 
开发者ID:shlee89,项目名称:athena,代码行数:8,代码来源:Ofdpa2Pipeline.java

示例11: isSupportedEthTypeObjective

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private boolean isSupportedEthTypeObjective(ForwardingObjective fwd) {
    TrafficSelector selector = fwd.selector();
    EthTypeCriterion ethType = (EthTypeCriterion) selector
            .getCriterion(Criterion.Type.ETH_TYPE);
    if ((ethType == null) ||
            ((ethType.ethType().toShort() != Ethernet.TYPE_IPV4) &&
                    (ethType.ethType().toShort() != Ethernet.MPLS_UNICAST))) {
        return false;
    }
    return true;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:12,代码来源:SpringOpenTTP.java

示例12: isSupportedEthDstObjective

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private boolean isSupportedEthDstObjective(ForwardingObjective fwd) {
    TrafficSelector selector = fwd.selector();
    EthCriterion ethDst = (EthCriterion) selector
            .getCriterion(Criterion.Type.ETH_DST);
    VlanIdCriterion vlanId = (VlanIdCriterion) selector
            .getCriterion(Criterion.Type.VLAN_VID);
    if (ethDst == null && vlanId == null) {
        return false;
    }
    return true;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:12,代码来源:SpringOpenTTP.java

示例13: matchIPv6NDTargetLinkLayerAddressTest

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
/**
 * Tests IPV6 TLL criterion.
 */
@Test
public void matchIPv6NDTargetLinkLayerAddressTest() {
    Criterion criterion = Criteria.matchIPv6NDTargetLinkLayerAddress(mac1);
    ObjectNode result = criterionCodec.encode(criterion, context);
    assertThat(result, matchesCriterion(criterion));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:CriterionCodecTest.java

示例14: processVersatile

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
private Collection<FlowRule> processVersatile(ForwardingObjective fwd) {
    log.debug("Processing versatile forwarding objective");
    TrafficSelector selector = fwd.selector();
    TrafficTreatment treatment = fwd.treatment();
    Collection<FlowRule> flowrules = new ArrayList<FlowRule>();

    // first add this rule for basic single-table operation
    // or non-ARP related multi-table operation
    FlowRule rule = DefaultFlowRule.builder()
            .forDevice(deviceId)
            .withSelector(selector)
            .withTreatment(treatment)
            .withPriority(fwd.priority())
            .fromApp(fwd.appId())
            .makePermanent()
            .forTable(ACL_TABLE).build();
    flowrules.add(rule);

    EthTypeCriterion ethType =
            (EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
    if (ethType == null) {
        log.warn("No ethType in versatile forwarding obj. Not processing further.");
        return flowrules;
    }

    // now deal with possible mix of ARP with filtering objectives
    // in multi-table scenarios
    if (ethType.ethType().toShort() == Ethernet.TYPE_ARP) {
        if (filters.isEmpty()) {
            pendingVersatiles.add(fwd);
            return flowrules;
        }
        for (Filter filter : filters) {
            flowrules.addAll(processVersatilesWithFilters(filter, fwd));
        }
    }
    return flowrules;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:39,代码来源:PicaPipeline.java

示例15: matchVlanIdTest

import org.onosproject.net.flow.criteria.Criterion; //导入依赖的package包/类
/**
 * Tests VLAN Id criterion.
 */
@Test
public void matchVlanIdTest() {
    Criterion criterion = Criteria.matchVlanId(VlanId.ANY);
    ObjectNode result = criterionCodec.encode(criterion, context);
    assertThat(result, matchesCriterion(criterion));
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:CriterionCodecTest.java


注:本文中的org.onosproject.net.flow.criteria.Criterion类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。