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

Java NodeRef类代码示例

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

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



NodeRef类属于org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819包,在下文中一共展示了NodeRef类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: installGroupOnDpn

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private void installGroupOnDpn(long groupId, BigInteger dpnId, String groupName, List<BucketInfo> bucketsInfo,
                                 String nextHopKey, GroupTypes groupType) {
    NodeRef nodeRef = FibUtil.buildNodeRef(dpnId);
    Buckets buckets = FibUtil.buildBuckets(bucketsInfo);
    GroupRef groupRef = new GroupRef(FibUtil.buildGroupInstanceIdentifier(groupId, dpnId));
    AddGroupInput input = new AddGroupInputBuilder().setNode(nodeRef).setGroupId(new GroupId(groupId))
            .setBuckets(buckets).setGroupRef(groupRef).setGroupType(groupType)
            .setGroupName(groupName).build();
    Future<RpcResult<AddGroupOutput>> groupStats = salGroupService.addGroup(input);
    RpcResult<AddGroupOutput> rpcResult = null;
    try {
        rpcResult = groupStats.get();
        if (rpcResult != null && rpcResult.isSuccessful()) {
            LOG.info("Group {} with key {} has been successfully installed directly on dpn {}.", groupId,
                    nextHopKey, dpnId);
        } else {
            LOG.error("Unable to install group {} with key {} directly on dpn {} due to {}.", groupId, nextHopKey,
                    dpnId, rpcResult != null ? rpcResult.getErrors() : null);
        }
    } catch (InterruptedException | ExecutionException e) {
        LOG.error("Error while installing group {} directly on dpn {}", groupId, dpnId);
    }
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:24,代码来源:NexthopManager.java


示例2: transmitRtrAdvertisement

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public boolean transmitRtrAdvertisement(Ipv6RtrAdvertType raType, VirtualPort routerPort,
                                        List<NodeConnectorRef> outportList, RouterSolicitationPacket rsPdu) {
    RouterAdvertisementPacketBuilder raPacket = new RouterAdvertisementPacketBuilder();
    updateRAResponse(raType, rsPdu, raPacket, routerPort);
    // Serialize the response packet
    byte[] txPayload = fillRouterAdvertisementPacket(raPacket.build());
    for (NodeConnectorRef outport: outportList) {
        InstanceIdentifier<Node> outNode = outport.getValue().firstIdentifierOf(Node.class);
        TransmitPacketInput input = new TransmitPacketInputBuilder().setPayload(txPayload)
                .setNode(new NodeRef(outNode))
                .setEgress(outport).build();
        LOG.debug("Transmitting the Router Advt packet out {}", outport);
        JdkFutures.addErrorLogging(packetService.transmitPacket(input), LOG, "transmitPacket");
    }
    return true;
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:17,代码来源:Ipv6RouterAdvt.java


示例3: sendPacketOut

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private void sendPacketOut(byte[] payload, NodeConnectorRef egress) {
	if (egress == null) {
		LOG.info("Egress is null");
		return;
	}

	InstanceIdentifier<Node> egressNodePath = getNodePath(egress.getValue());

	TransmitPacketInput input = new TransmitPacketInputBuilder() //
			.setPayload(payload) //
			.setNode(new NodeRef(egressNodePath)) //
			.setEgress(egress) //
			.build();

	Future<RpcResult<Void>> future = packetService.transmitPacket(input);
	JdkFutureAdapters.listenInPoolThread(future);
}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:18,代码来源:TunnellingConnectivityManager.java


示例4: deleteFibEntry

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
/**
 * Delete fib entry.
 *
 * @param withdraws
 *            the withdraws
 */
private synchronized void deleteFibEntry(Collection<AtriumFibUpdate> withdraws) {

	for (AtriumFibUpdate update : withdraws) {
		AtriumFibEntry entry = update.entry();
		NodeRef nodeRef = new NodeRef(
				InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(deviceId)).build());

		ForwardingObjectiveBuilder forwardingObjBuilder = generateRibForwardingObj(entry.prefix(), null);
		if (forwardingObjBuilder != null) {
			ForwardInputBuilder inputBuilder = new ForwardInputBuilder();
			forwardingObjBuilder.setOperation(Operation.Remove);
			inputBuilder.setNode(nodeRef);
			inputBuilder.setForwardingObjective(forwardingObjBuilder.build());
			LOG.info("Invoking forward objective in DIDM for fibEntry delete");
			LOG.info("FIB Entry: " + forwardingObjBuilder.build());
			flowObjectivesService.forward(inputBuilder.build());
			FibDataModelWriter.deleteFib(update, dataBroker);

		} else {
			continue;
		}
	}

}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:31,代码来源:Bgprouter.java


示例5: addArpFlowToController

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public void addArpFlowToController(NodeId dpnId) {

		NodeRef nodeRef = new NodeRef(
				InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(dpnId)).build());

		ForwardingObjectiveBuilder fwdObjBuilder = new ForwardingObjectiveBuilder();
		fwdObjBuilder.setOperation(Operation.Add);
		fwdObjBuilder.setFlag(Flag.Versatile);
		MatchBuilder matchBuilder = new MatchBuilder();
		EthernetMatch etherMatch = AtriumUtils.getEtherMatch(Bgprouter.ARP_ETH_TYPE);
		matchBuilder.setEthernetMatch(etherMatch);

		ActionData puntAction = new ActionData(ActionUtils.punt_to_controller, new String[] { null });

		fwdObjBuilder.setMatch(matchBuilder.build());
		List<Action> actions = new ArrayList<>();
		actions.add(puntAction.buildAction());
		fwdObjBuilder.setAction(actions);

		ForwardInputBuilder forwardInputBuilderSrc = new ForwardInputBuilder();
		forwardInputBuilderSrc.setNode(nodeRef);
		forwardInputBuilderSrc.setForwardingObjective(fwdObjBuilder.build());
		flowObjectivesService.forward(forwardInputBuilderSrc.build());

	}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:26,代码来源:Bgprouter.java


示例6: sendArpResponse

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public ListenableFuture<RpcResult<Void>> sendArpResponse(ArpMessageAddress senderAddress,
		ArpMessageAddress receiverAddress, InstanceIdentifier<NodeConnector> egressNc, Header8021q vlan) {
	checkNotNull(senderAddress);
	checkNotNull(receiverAddress);
	checkNotNull(egressNc);
	final Ethernet arpFrame = createArpFrame(senderAddress, receiverAddress, vlan);
	byte[] arpFrameAsBytes;
	try {
		arpFrameAsBytes = arpFrame.serialize();
	} catch (PacketException e) {
		LOG.warn("Serializition of ARP packet is not successful.", e);
		if (LOG.isDebugEnabled()) {
			LOG.debug("ARP packet: {}", ArpUtils.getArpFrameToStringFormat(arpFrame));
		}
		return Futures.immediateFailedFuture(e);
	}
	// Generate packet with destination switch and port
	LOG.debug("Egress for ARP packetOut: " + new NodeConnectorRef(egressNc).toString());
	TransmitPacketInput packet = new TransmitPacketInputBuilder().setEgress(new NodeConnectorRef(egressNc))
			.setNode(new NodeRef(egressNc.firstIdentifierOf(Node.class))).setPayload(arpFrameAsBytes).build();
	if (LOG.isTraceEnabled()) {
		LOG.trace("Sending ARP RESPONSE \n{}", ArpUtils.getArpFrameToStringFormat(arpFrame));
	}
	Future<RpcResult<Void>> futureTransmitPacketResult = packetProcessingService.transmitPacket(packet);
	return JdkFutureAdapters.listenInPoolThread(futureTransmitPacketResult);
}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:27,代码来源:ArpSender.java


示例7: onPacketReceived

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
@Override
public void onPacketReceived(PacketReceived notification) {
    NodeConnectorRef ingressNodeConnectorRef = notification.getIngress();
    NodeRef ingressNodeRef = InventoryUtils.getNodeRef(ingressNodeConnectorRef);
    // NodeConnectorId ingressNodeConnectorId = InventoryUtils.getNodeConnectorId(ingressNodeConnectorRef);
    NodeId ingressNodeId = InventoryUtils.getNodeId(ingressNodeConnectorRef);

    // Useful to create it beforehand
    NodeConnectorId floodNodeConnectorId = InventoryUtils.getNodeConnectorId(ingressNodeId, FLOOD_PORT_NUMBER);
    NodeConnectorRef floodNodeConnectorRef = InventoryUtils.getNodeConnectorRef(floodNodeConnectorId);

    //Ignore LLDP packets, or you will be in big trouble
    byte[] etherTypeRaw = PacketParsingUtils.extractEtherType(notification.getPayload());
    int etherType = (0x0000ffff & ByteBuffer.wrap(etherTypeRaw).getShort());
    if (etherType == 0x88cc) {
        return;
    }

    // Flood packet
    packetOut(ingressNodeRef, floodNodeConnectorRef, notification.getPayload());
}
 
开发者ID:sdnhub,项目名称:SDNHub_Opendaylight_Tutorial,代码行数:22,代码来源:TutorialACL.java


示例8: nodeAdded

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public NodeUpdated nodeAdded(ConnectionAdapter connectionAdapter) {
    NodeUpdatedBuilder builder = new NodeUpdatedBuilder();
    BigInteger datapathId = this.connectionRegistry.getDatapathID(connectionAdapter);
    builder.setId(nodeIdFromDatapathId(datapathId));
    InstanceIdentifier<Node> identifier = identifierFromDatapathId(datapathId);
    builder.setNodeRef(new NodeRef(identifier));

    FlowCapableNodeUpdatedBuilder builder2 = new FlowCapableNodeUpdatedBuilder();
    try {
        builder2.setIpAddress(getIpAddressOf(connectionAdapter));
    } catch (Exception e) {
        LOG.warn("IP address of the node cannot be obtained.");
    }
    GetFeaturesOutput features = this.connectionRegistry.getFeaturesOutput(connectionAdapter);

    builder2.setSwitchFeatures(swFeaturesUtil.buildSwitchFeatures(features));
    builder.addAugmentation(FlowCapableNodeUpdated.class, builder2.build());

    return builder.build();
}
 
开发者ID:fp7-netide,项目名称:Engine,代码行数:21,代码来源:ShimSwitchConnectionHandlerImpl.java


示例9: getJoinTopicInputArgument

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private JoinTopicInput getJoinTopicInputArgument(final InstanceIdentifier<?> path) {
    final NodeRef nodeRef = new NodeRef(path);
    final JoinTopicInput jti =
            new JoinTopicInputBuilder()
                    .setNode(nodeRef.getValue())
                    .setTopicId(topicId)
                    .setNotificationPattern(notificationPattern)
                    .build();
    return jti;
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:11,代码来源:EventSourceTopic.java


示例10: getDisJoinTopicInputArgument

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private DisJoinTopicInput getDisJoinTopicInputArgument(final InstanceIdentifier<?> eventSourceNodeId){
    final NodeRef nodeRef = new NodeRef(eventSourceNodeId);
    final DisJoinTopicInput dji = new DisJoinTopicInputBuilder()
            .setNode(nodeRef.getValue())
            .setTopicId(topicId)
            .build();
    return dji;
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:9,代码来源:EventSourceTopic.java


示例11: pollDirectStatisticsForAllNodes

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private void pollDirectStatisticsForAllNodes() {
    LOG.trace("Polling direct statistics from nodes");

    for (Entry<BigInteger, ConcurrentMap<String, QosAlertPortData>> entry : qosAlertDpnPortNumberMap.entrySet()) {
        BigInteger dpn = entry.getKey();
        LOG.trace("Polling DPN ID {}", dpn);
        GetNodeConnectorStatisticsInputBuilder input = new GetNodeConnectorStatisticsInputBuilder()
                .setNode(new NodeRef(InstanceIdentifier.builder(Nodes.class)
                        .child(Node.class, new NodeKey(new NodeId(IfmConstants.OF_URI_PREFIX + dpn))).build()))
                .setStoreStats(false);
        Future<RpcResult<GetNodeConnectorStatisticsOutput>> rpcResultFuture =
                odlDirectStatisticsService.getNodeConnectorStatistics(input.build());

        RpcResult<GetNodeConnectorStatisticsOutput> rpcResult = null;
        try {
            rpcResult = rpcResultFuture.get();
        } catch (InterruptedException | ExecutionException e) {
            LOG.error("Exception {} occurred with node {} Direct-Statistics get", e, dpn);
        }
        if (rpcResult != null && rpcResult.isSuccessful() && rpcResult.getResult() != null) {

            GetNodeConnectorStatisticsOutput nodeConnectorStatisticsOutput = rpcResult.getResult();

            List<NodeConnectorStatisticsAndPortNumberMap> nodeConnectorStatisticsAndPortNumberMapList =
                    nodeConnectorStatisticsOutput.getNodeConnectorStatisticsAndPortNumberMap();

            ConcurrentMap<String, QosAlertPortData> portDataMap = entry.getValue();
            for (NodeConnectorStatisticsAndPortNumberMap stats : nodeConnectorStatisticsAndPortNumberMapList) {
                QosAlertPortData portData = portDataMap.get(stats.getNodeConnectorId().getValue());
                if (portData != null) {
                    portData.updatePortStatistics(stats);
                }
            }
        } else {
            LOG.error("Direct-Statistics not available for node {}", dpn);
        }

    }
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:40,代码来源:QosAlertManager.java


示例12: transmitNeighborSolicitation

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public boolean transmitNeighborSolicitation(BigInteger dpnId, NodeConnectorRef nodeRef,
                                            MacAddress srcMacAddress, Ipv6Address srcIpv6Address,
                                            Ipv6Address targetIpv6Address) {
    byte[] txPayload = frameNeighborSolicitationRequest(srcMacAddress, srcIpv6Address, targetIpv6Address);
    NodeConnectorRef nodeConnectorRef = MDSALUtil.getNodeConnRef(dpnId, "0xfffffffd");
    TransmitPacketInput input = new TransmitPacketInputBuilder().setPayload(txPayload)
            .setNode(new NodeRef(InstanceIdentifier.builder(Nodes.class)
                    .child(Node.class, new NodeKey(new NodeId("openflow:" + dpnId))).toInstance()))
            .setEgress(nodeRef).setIngress(nodeConnectorRef).build();

    // Tx the packet out of the controller.
    LOG.debug("Transmitting the Neighbor Solicitation packet out on {}", dpnId);
    JdkFutures.addErrorLogging(packetService.transmitPacket(input), LOG, "transmitPacket");
    return true;
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:16,代码来源:Ipv6NeighborSolicitation.java


示例13: getNodeConnectorStatisticsInputBuilder

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
private GetNodeConnectorStatisticsInput getNodeConnectorStatisticsInputBuilder(NodeId nodeId,
        NodeConnectorId nodeConnectorId) {
    NodeRef nodeRef = new NodeRef(
            InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(nodeId)).toInstance());
    GetNodeConnectorStatisticsInputBuilder nodeConnectorBuilder =
            new GetNodeConnectorStatisticsInputBuilder().setNode(nodeRef).setNodeConnectorId(nodeConnectorId);
    GetNodeConnectorStatisticsInput gncsi = nodeConnectorBuilder.build();
    return gncsi;
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:10,代码来源:CounterRetriever.java


示例14: getSwitchFlowCountersDirect

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public CounterResultDataStructure getSwitchFlowCountersDirect(BigInteger dpId, Match match, short tableId) {
    NodeRef nodeRef = new NodeRef(InstanceIdentifier.builder(Nodes.class)
            .child(Node.class, new NodeKey(new NodeId(CountersUtils.getNodeId(dpId)))).toInstance());
    GetFlowStatisticsInputBuilder gfsib = new GetFlowStatisticsInputBuilder();
    gfsib.setNode(nodeRef);
    gfsib.setMatch(match);
    gfsib.setStoreStats(false);

    Future<RpcResult<GetFlowStatisticsOutput>> rpcResultFuture =
            odlDirectStatsService.getFlowStatistics(gfsib.build());
    RpcResult<GetFlowStatisticsOutput> rpcResult = null;
    try {
        rpcResult = rpcResultFuture.get();
    } catch (InterruptedException | ExecutionException e) {
        counters.failedGettingFlowCounters.inc();
        LOG.warn("Unable to retrieve flow counters for match {}", match);
        return null;
    }

    if (rpcResult != null && rpcResult.isSuccessful() && rpcResult.getResult() != null) {
        GetFlowStatisticsOutput flowStatsOutput = rpcResult.getResult();
        return createSwitchFlowResultMapDirect(flowStatsOutput);
    } else {
        counters.failedGettingFlowCounters.inc();
        LOG.warn("Unable to retrieve flow counters for match {}", match);
        return null;
    }
}
 
开发者ID:opendaylight,项目名称:netvirt,代码行数:29,代码来源:CounterRetriever.java


示例15: notifySwitchAvailable

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
/**
 * Pushes the flow rules for forwarding BGP TCP packets to controller. It is
 * called when switches are connected and available.
 */
public void notifySwitchAvailable() {

	checkNotNull(flowObjectivesService, "FlowObjectivesService in DIDM not initialized");

	checkNotNull(bgpSpeaker);
	NodeRef nodeRef = new NodeRef(InstanceIdentifier.builder(Nodes.class)
			.child(Node.class, new NodeKey(bgpSpeaker.getAttachmentDpId())).build());

	// Adding slight delay so that flow objective can identify the device
	// and register
	try {
		Thread.sleep(2000);
	} catch (Exception ex) {

	}

	// For BGP_PORT Source
	ForwardingObjective forwardingObjSrc = generateForwardingObjective(true);

	ForwardInputBuilder forwardInputBuilderSrc = new ForwardInputBuilder();
	forwardInputBuilderSrc.setNode(nodeRef);
	forwardInputBuilderSrc.setForwardingObjective(forwardingObjSrc);
	flowObjectivesService.forward(forwardInputBuilderSrc.build());

	// For BGP_PORT Dest
	ForwardingObjective forwardingObjDest = generateForwardingObjective(false);

	ForwardInputBuilder forwardInputBuilderDest = new ForwardInputBuilder();
	forwardInputBuilderDest.setNode(nodeRef);
	forwardInputBuilderDest.setForwardingObjective(forwardingObjDest);
	flowObjectivesService.forward(forwardInputBuilderDest.build());

	LOG.info("Punt to controller for BGP packets sent");

}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:40,代码来源:TunnellingConnectivityManager.java


示例16: installFlows

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
/**
 * Install flows.
 *
 * @param entriesToInstall
 *            the entries to install
 */
private void installFlows(Map<AtriumFibEntry, Integer> entriesToInstall) {

	checkNotNull(flowObjectivesService, "FlowObjectives Service not initialized");

	for (Map.Entry<AtriumFibEntry, Integer> entry : entriesToInstall.entrySet()) {
		AtriumFibEntry fibEntry = entry.getKey();
		Integer nextId = entry.getValue();

		ForwardingObjectiveBuilder forwardingObjBuilder = generateRibForwardingObj(fibEntry.prefix(), nextId);
		NodeRef nodeRef = new NodeRef(
				InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(deviceId)).build());

		if (forwardingObjBuilder != null) {
			ForwardInputBuilder inputBuilder = new ForwardInputBuilder();
			forwardingObjBuilder.setOperation(Operation.Add);
			inputBuilder.setNode(nodeRef);
			inputBuilder.setForwardingObjective(forwardingObjBuilder.build());
			LOG.info("Invoking forward objective in DIDM for fibEntry update");
			LOG.info("FIB Entry: " + forwardingObjBuilder.build());
			try {
				Future<RpcResult<Void>> result = flowObjectivesService.forward(inputBuilder.build());
				RpcResult<Void> rpcResult = result.get();
				if (rpcResult.isSuccessful()) {
					LOG.info("FibEntry update sent to flowObjective");
				} else {
					LOG.info("Failed to send FibEntry to flowObjective");
				}
			} catch (Exception ex) {
				LOG.info("", ex);
			}
		} else {
			continue;
		}
	}
}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:42,代码来源:Bgprouter.java


示例17: processIntfFilters

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
/**
 * Process intf filters.
 *
 * @param install
 *            the install
 * @param intfs
 *            the intfs
 */
private void processIntfFilters(boolean install, Set<AtriumInterface> intfs) {
	LOG.info("Processing {} router interfaces", intfs.size());
	for (AtriumInterface intf : intfs) {
		NodeConnector connector = intf.connectPoint();
		if (connector == null) {
			continue;
		}
		String dpn = AtriumUtils.getDpnFromNodeConnectorId(connector.getId());
		BigInteger dpnId = new BigInteger(dpn);
		LOG.info("DpnId: " + deviceId);
		NodeId routerId = AtriumUtils.buildDpnNodeId(dpnId);
		LOG.info("RouterId: " + routerId);
		if (!routerId.equals(deviceId)) {
			// Ignore interfaces if they are not on the router switch
			continue;
		}

		NodeRef nodeRef = new NodeRef(
				InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(deviceId)).build());

		FilterObjectiveBuilder filterObjBuilder = gnerateFilterObjectiveBuilder(intf);

		FilterInputBuilder filterBuilder = new FilterInputBuilder();
		filterBuilder.setFilterObjective(filterObjBuilder.build());
		filterBuilder.setNode(nodeRef);
		LOG.info("Invoking filter objective with values: " + filterBuilder.build());
		flowObjectivesService.filter(filterBuilder.build());
	}

}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:39,代码来源:Bgprouter.java


示例18: addIcmpFlowToController

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
public void addIcmpFlowToController(NodeId dpnId) {

		NodeRef nodeRef = new NodeRef(
				InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(dpnId)).build());

		ForwardingObjectiveBuilder fwdObjBuilder = new ForwardingObjectiveBuilder();
		fwdObjBuilder.setOperation(Operation.Add);
		fwdObjBuilder.setFlag(Flag.Versatile);
		MatchBuilder matchBuilder = new MatchBuilder();

		// set Ethernet type - IPv4
		EthernetMatch etherMatch = AtriumUtils.getEtherMatch(Bgprouter.IPV4_ETH_TYPE);
		matchBuilder.setEthernetMatch(etherMatch);

		// Ip type Match
		IpMatch ipMatch = AtriumUtils.getIcmpIpMatchType();
		matchBuilder.setIpMatch(ipMatch);

		ActionData puntAction = new ActionData(ActionUtils.punt_to_controller, new String[] { null });

		fwdObjBuilder.setMatch(matchBuilder.build());
		List<Action> actions = new ArrayList<>();
		actions.add(puntAction.buildAction());
		fwdObjBuilder.setAction(actions);

		ForwardInputBuilder forwardInputBuilderSrc = new ForwardInputBuilder();
		forwardInputBuilderSrc.setNode(nodeRef);
		forwardInputBuilderSrc.setForwardingObjective(fwdObjBuilder.build());
		flowObjectivesService.forward(forwardInputBuilderSrc.build());

	}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:32,代码来源:Bgprouter.java


示例19: sendArp

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
/**
 * Sends ARP Request as packet-out from the given port (node connector).
 *
 * @param senderAddress
 *            the addresses used in sender part of ARP packet
 * @param tpa
 *            the target protocol address, in this case IPv4 address for
 *            which MAC should be discovered
 * @param egressNc
 *            the path to node connector from where the ARP packet will be
 *            sent
 * @return future result about success of packet-out
 */
public ListenableFuture<RpcResult<Void>> sendArp(ArpMessageAddress senderAddress, Ipv4Address tpa,
		InstanceIdentifier<NodeConnector> egressNc) {
	checkNotNull(senderAddress);
	checkNotNull(tpa);
	checkNotNull(egressNc);
	final Ethernet arpFrame = createArpFrame(senderAddress, tpa);
	byte[] arpFrameAsBytes;
	try {
		arpFrameAsBytes = arpFrame.serialize();
	} catch (PacketException e) {
		LOG.warn("Serializition of ARP packet is not successful.", e);
		if (LOG.isDebugEnabled()) {
			LOG.debug("ARP packet: {}", ArpUtils.getArpFrameToStringFormat(arpFrame));
		}
		return Futures.immediateFailedFuture(e);
	}
	// Generate packet with destination switch and port

	TransmitPacketInput packet = new TransmitPacketInputBuilder().setEgress(new NodeConnectorRef(egressNc))
			.setNode(new NodeRef(egressNc.firstIdentifierOf(Node.class))).setPayload(arpFrameAsBytes).build();
	if (LOG.isTraceEnabled()) {
		LOG.trace("Sending ARP REQUEST \n{}", ArpUtils.getArpFrameToStringFormat(arpFrame));
	}
	Future<RpcResult<Void>> futureTransmitPacketResult = packetProcessingService.transmitPacket(packet);
	return JdkFutureAdapters.listenInPoolThread(futureTransmitPacketResult);
}
 
开发者ID:onfsdn,项目名称:atrium-odl,代码行数:40,代码来源:ArpSender.java


示例20: createNodeRefTest

import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; //导入依赖的package包/类
@Test
public void createNodeRefTest() throws Exception {
    NodeKey mockNodeKey = mock(NodeKey.class);
    InstanceIdentifier<?> iid = InstanceIdentifier.builder(Nodes.class).child(Node.class, mockNodeKey).build();
    NodeRef nodeRef = new NodeRef(iid);
    assertEquals(nodeRef, IidFactory.createNodeRef(iid));
}
 
开发者ID:opendaylight,项目名称:nic,代码行数:8,代码来源:IidFactoryTest.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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