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


Java Port.number方法代码示例

本文整理汇总了Java中org.onosproject.net.Port.number方法的典型用法代码示例。如果您正苦于以下问题:Java Port.number方法的具体用法?Java Port.number怎么用?Java Port.number使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.onosproject.net.Port的用法示例。


在下文中一共展示了Port.number方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createConnectPoint

import org.onosproject.net.Port; //导入方法依赖的package包/类
private ConnectPoint createConnectPoint(String devicePortString) {
    String[] splitted = devicePortString.split("/");

    checkArgument(splitted.length == 2,
            "Connect point must be in \"deviceUri/portNumber\" format");

    DeviceId deviceId = DeviceId.deviceId(splitted[0]);
    DeviceService deviceService = get(DeviceService.class);

    List<Port> ports = deviceService.getPorts(deviceId);

    for (Port port : ports) {
        if (splitted[1].equals(port.number().name())) {
            return new ConnectPoint(deviceId, port.number());
        }
    }

    return null;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:20,代码来源:AddOpticalIntentCommand.java

示例2: loadSummary

import org.onosproject.net.Port; //导入方法依赖的package包/类
@Override
public Map<ConnectPoint, SummaryFlowEntryWithLoad> loadSummary(Device device) {
    checkPermission(STATISTIC_READ);

    Map<ConnectPoint, SummaryFlowEntryWithLoad> summaryLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);

    if (device == null) {
        return summaryLoad;
    }

    List<Port> ports = new ArrayList<>(deviceService.getPorts(device.id()));

    for (Port port : ports) {
        ConnectPoint cp = new ConnectPoint(device.id(), port.number());
        SummaryFlowEntryWithLoad sfe = loadSummaryPortInternal(cp);
        summaryLoad.put(cp, sfe);
    }

    return summaryLoad;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:21,代码来源:FlowStatisticManager.java

示例3: loadAllByType

import org.onosproject.net.Port; //导入方法依赖的package包/类
@Override
public Map<ConnectPoint, List<TypedFlowEntryWithLoad>> loadAllByType(Device device,
                                                              TypedStoredFlowEntry.FlowLiveType liveType,
                                                              Instruction.Type instType) {
    checkPermission(STATISTIC_READ);

    Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);

    if (device == null) {
        return allLoad;
    }

    List<Port> ports = new ArrayList<>(deviceService.getPorts(device.id()));

    for (Port port : ports) {
        ConnectPoint cp = new ConnectPoint(device.id(), port.number());
        List<TypedFlowEntryWithLoad> tfel = loadAllPortInternal(cp, liveType, instType);
        allLoad.put(cp, tfel);
    }

    return allLoad;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:23,代码来源:FlowStatisticManager.java

示例4: loadTopnByType

import org.onosproject.net.Port; //导入方法依赖的package包/类
@Override
public Map<ConnectPoint, List<TypedFlowEntryWithLoad>> loadTopnByType(Device device,
                                                               TypedStoredFlowEntry.FlowLiveType liveType,
                                                               Instruction.Type instType,
                                                               int topn) {
    checkPermission(STATISTIC_READ);

    Map<ConnectPoint, List<TypedFlowEntryWithLoad>> allLoad = new TreeMap<>(CONNECT_POINT_COMPARATOR);

    if (device == null) {
        return allLoad;
    }

    List<Port> ports = new ArrayList<>(deviceService.getPorts(device.id()));

    for (Port port : ports) {
        ConnectPoint cp = new ConnectPoint(device.id(), port.number());
        List<TypedFlowEntryWithLoad> tfel = loadTopnPortInternal(cp, liveType, instType, topn);
        allLoad.put(cp, tfel);
    }

    return allLoad;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:24,代码来源:FlowStatisticManager.java

示例5: getVxlanPortNumber

import org.onosproject.net.Port; //导入方法依赖的package包/类
private PortNumber getVxlanPortNumber(DeviceId deviceId) {
    Iterable<Port> ports = deviceService.getPorts(deviceId);
    Port vxlanPort = Sets.newHashSet(ports).stream()
            .filter(p ->!p.number().equals(PortNumber.LOCAL))
            .filter(p ->p.annotations().value(AnnotationKeys.PORT_NAME)
                    .startsWith(VXLANPORT_HEAD))
            .findFirst().get();
    return vxlanPort.number();
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:SfcFlowRuleInstallerImpl.java

示例6: getTunnelPort

import org.onosproject.net.Port; //导入方法依赖的package包/类
/**
 * Returns port number of vxlan tunnel.
 *
 * @param deviceId Target Device Id
 * @return PortNumber
 */
public PortNumber getTunnelPort(DeviceId deviceId) {
    Port port = deviceService.getPorts(deviceId).stream()
            .filter(p -> p.annotations().value(PORTNAME).equals(PORTNAME_PREFIX_TUNNEL))
            .findAny().orElse(null);

    if (port == null) {
        log.error("No TunnelPort was created.");
        return null;
    }
    return port.number();

}
 
开发者ID:shlee89,项目名称:athena,代码行数:19,代码来源:OpenstackRoutingRulePopulator.java

示例7: getPortForAnnotationPortName

import org.onosproject.net.Port; //导入方法依赖的package包/类
private PortNumber getPortForAnnotationPortName(DeviceId deviceId, String match) {
    Port port = deviceService.getPorts(deviceId).stream()
            .filter(p -> p.annotations().value(PORTNAME).equals(match))
            .findAny().orElse(null);

    checkNotNull(port, "port cannot be null");

    return port.number();
}
 
开发者ID:shlee89,项目名称:athena,代码行数:10,代码来源:OpenstackIcmpHandler.java

示例8: removeSwitchingRules

import org.onosproject.net.Port; //导入方法依赖的package包/类
/**
 * Remove flows rules for the removed VM.
 *
 * @param removedPort removedport info
 * @param openstackPortInfoMap openstackPortInfoMap
 */
public void removeSwitchingRules(Port removedPort, Map<String,
        OpenstackPortInfo> openstackPortInfoMap) {
    OpenstackPortInfo openstackPortInfo = openstackPortInfoMap
            .get(removedPort.annotations().value(PORT_NAME));

    DeviceId deviceId = openstackPortInfo.deviceId();
    Ip4Address vmIp = openstackPortInfo.ip();
    PortNumber portNumber = removedPort.number();
    long vni = openstackPortInfo.vni();

    removeFlowRuleForTunnelTag(deviceId, portNumber);
    removeFlowRuleForVMsInSameCnode(deviceId, vmIp, vni);
    removeFlowRuleForVMsInDiffrentCnode(removedPort, deviceId, vmIp, vni, openstackPortInfoMap);
}
 
开发者ID:shlee89,项目名称:athena,代码行数:21,代码来源:OpenstackSwitchingRulePopulator.java

示例9: getTunnelPort

import org.onosproject.net.Port; //导入方法依赖的package包/类
private PortNumber getTunnelPort(DeviceId deviceId) {
    Port port = deviceService.getPorts(deviceId).stream()
            .filter(p -> p.annotations().value(PORT_NAME).equals(
                    OpenstackSwitchingManager.PORTNAME_PREFIX_TUNNEL))
            .findAny().orElse(null);

    if (port == null) {
        log.error("No TunnelPort was created.");
        return null;
    }
    return port.number();
}
 
开发者ID:shlee89,项目名称:athena,代码行数:13,代码来源:OpenstackSwitchingRulePopulator.java

示例10: processPortLinks

import org.onosproject.net.Port; //导入方法依赖的package包/类
private void processPortLinks(Device device, Port port) {
    ConnectPoint connectPoint = new ConnectPoint(device.id(), port.number());
    for (Link link : linkService.getLinks(connectPoint)) {
        if (link.isDurable() && link.type() == OPTICAL) {
            processLink(link);
        }
    }
}
 
开发者ID:shlee89,项目名称:athena,代码行数:9,代码来源:OpticalLinkProvider.java

示例11: populateRouterMacVlanFilters

import org.onosproject.net.Port; //导入方法依赖的package包/类
/**
 * Creates a filtering objective to permit all untagged packets with a
 * dstMac corresponding to the router's MAC address. For those pipelines
 * that need to internally assign vlans to untagged packets, this method
 * provides per-subnet vlan-ids as metadata.
 * <p>
 * Note that the vlan assignment is only done by the master-instance for a switch.
 * However we send the filtering objective from slave-instances as well, so
 * that drivers can obtain other information (like Router MAC and IP).
 *
 * @param deviceId  the switch dpid for the router
 * @return true if operation succeeds
 */
public boolean populateRouterMacVlanFilters(DeviceId deviceId) {
    log.debug("Installing per-port filtering objective for untagged "
            + "packets in device {}", deviceId);

    MacAddress deviceMac;
    try {
        deviceMac = config.getDeviceMac(deviceId);
    } catch (DeviceConfigNotFoundException e) {
        log.warn(e.getMessage() + " Aborting populateRouterMacVlanFilters.");
        return false;
    }

    List<Port> devPorts = srManager.deviceService.getPorts(deviceId);
    if (devPorts != null && devPorts.size() == 0) {
        log.warn("Device {} ports not available. Unable to add MacVlan filters",
                 deviceId);
        return false;
    }
    int disabledPorts = 0, suppressedPorts = 0, filteredPorts = 0;
    for (Port port : devPorts) {
        ConnectPoint connectPoint = new ConnectPoint(deviceId, port.number());
        // TODO: Handles dynamic port events when we are ready for dynamic config
        SegmentRoutingAppConfig appConfig = srManager.cfgService
                .getConfig(srManager.appId, SegmentRoutingAppConfig.class);
        if (!port.isEnabled()) {
            disabledPorts++;
            continue;
        }
        if (appConfig != null && appConfig.suppressSubnet().contains(connectPoint)) {
            suppressedPorts++;
            continue;
        }
        Ip4Prefix portSubnet = config.getPortSubnet(deviceId, port.number());
        VlanId assignedVlan = (portSubnet == null)
                ? VlanId.vlanId(SegmentRoutingManager.ASSIGNED_VLAN_NO_SUBNET)
                : srManager.getSubnetAssignedVlanId(deviceId, portSubnet);

        FilteringObjective.Builder fob = DefaultFilteringObjective.builder();
        fob.withKey(Criteria.matchInPort(port.number()))
            .addCondition(Criteria.matchEthDst(deviceMac))
            .addCondition(Criteria.matchVlanId(VlanId.NONE))
            .withPriority(SegmentRoutingService.DEFAULT_PRIORITY);
        // vlan assignment is valid only if this instance is master
        if (srManager.mastershipService.isLocalMaster(deviceId)) {
            TrafficTreatment tt = DefaultTrafficTreatment.builder()
                    .pushVlan().setVlanId(assignedVlan).build();
            fob.withMeta(tt);
        }
        fob.permit().fromApp(srManager.appId);
        log.debug("Sending filtering objective for dev/port:{}/{}", deviceId, port);
        filteredPorts++;
        ObjectiveContext context = new DefaultObjectiveContext(
            (objective) -> log.debug("Filter for {} populated", connectPoint),
            (objective, error) ->
            log.warn("Failed to populate filter for {}: {}", connectPoint, error));
        srManager.flowObjectiveService.filter(deviceId, fob.add(context));
    }
    log.info("Filtering on dev:{}, disabledPorts:{}, suppressedPorts:{}, filteredPorts:{}",
              deviceId, disabledPorts, suppressedPorts, filteredPorts);
    // XXX With this check, there is a chance that not all the ports that
    // should be filtered actually get filtered as long as one of them does.
    // Note there is no PORT_UPDATED event that makes the port go from disabled
    // to enabled state, because the ports comes enabled from the switch.
    // Check ONOS core, where the port becoming available and being declared
    // enabled is possibly not atomic.
    return (filteredPorts > 0) ? true : false;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:81,代码来源:RoutingRulePopulator.java


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