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


Java AttachmentPoint.getPort方法代码示例

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


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

示例1: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		addLinkUtilsToMap(pathLinks, bandwidth);
		Link l = null;
		HashSet<OFPort> ports = null;

		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:44,代码来源:QoSLBMulticastTree.java

示例2: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
	public void removeMemberFromTheTree(AttachmentPoint ap) {

//		short pbranchNodeShortNumber = 0;
		IOFSwitch nodeSW = null;
		ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
		ArrayList<Link> links = new ArrayList<>();
		DatapathId nodeId = ap.getSw();
		OFPort memberPort = ap.getPort();

		HashSet<OFPort> memPorts = null;
		Link upl = null;
		/* node id can not be null, it should be at least srcAP id*/
		while(nodeId.getLong() != sourceAP.getSw().getLong()) {
			memPorts = memberPorts.get(nodeId.getLong());
//			pbranchNodeShortNumber = memberPort.getShortPortNumber();
			memPorts.remove(memberPort);
			if (memPorts.size() != 0) {
				break;
			}
			if(upl != null)
				links.add(upl);
			deleteDpIds.add(nodeId);
			upl = treeUpink.get(nodeId.getLong());
			nodeId = upl.getSrc();
			memberPort = upl.getSrcPort();

		}
		removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
		String dids = "[";
		int l = ap.getSw().toString().length();
		for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
			DatapathId d = itr.next();
			dids += d.toString().substring(l-2) + ", ";
		}
		if (nodeId.getLong() != ap.getSw().getLong()) {
			dids += nodeId.toString().substring(l-2);
		}
		dids += " ]";
		logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

		nodeSW = switchService.getSwitch(nodeId);
		if (nodeId.getLong() == sourceAP.getSw().getLong()) {
			memPorts = memberPorts.get(sourceAP.getSw().getLong());
			memPorts.remove(memberPort);
			if (memPorts.size() == 0) {
				sendOFFlowModDropMulticastStream(nodeSW, false);
				pushOFDeleteGroup(nodeSW);
				memberPorts.remove(sourceAP.getSw().getLong());
//				logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP + 
//						" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
			} else{
				sendOFGroupModDelMemberMsg(nodeSW, memberPort);
//				logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP + 
//						" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
			}
		} else {
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP + 
//					" Group Member deleted 2 from datapath id " + nodeId.toString());
		}
		
		ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
		for ( ;iter.hasPrevious();) {
			nodeId= iter.previous();
			nodeSW = switchService.getSwitch(nodeId);
			sendOFFlowModDelForGroup(nodeSW);
			pushOFDeleteGroup(nodeSW);
			treeUpink.remove(nodeId.getLong());
			memberPorts.remove(nodeId.getLong());
//			logger.info("QoSLBMulticastTree:Group:"+this.multicastGroup.groupIP + 
//					" Group Flow deleted 2 from datapath id " + nodeId.toString());
		}
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:75,代码来源:QoSLBMulticastTree.java

示例3: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		Link l = null;
		HashSet<OFPort> ports = null;
		
		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:43,代码来源:ShortestPathTreeLB.java

示例4: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
public void removeMemberFromTheTree(AttachmentPoint ap) {


	IOFSwitch nodeSW = null;
	ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
	DatapathId nodeId = ap.getSw();
	OFPort memberPort = ap.getPort();
	ArrayList<Link> links = new ArrayList<>();
	HashSet<OFPort> memPorts = null;
	Link upl = null;
	/* node id can not be null, it should be at least srcAP id*/
	while(nodeId.getLong() != sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(nodeId.getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() != 0) {
			break;
		}
		if(upl != null)
			links.add(upl);
		deleteDpIds.add(nodeId);
		upl = treeUpink.get(nodeId.getLong());
		nodeId = upl.getSrc();
		memberPort = upl.getSrcPort();

	}
	removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
			
	String dids = "[";
	int l = ap.getSw().toString().length();
	for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
		DatapathId d = itr.next();
		dids += d.toString().substring(l-2) + ", ";
	}
	if (nodeId.getLong() != ap.getSw().getLong()) {
		dids += nodeId.toString().substring(l-2);
	}
	dids += " ]";
	logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

	nodeSW = switchService.getSwitch(nodeId);
	if (nodeId.getLong() == sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(sourceAP.getSw().getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() == 0) {
			sendOFFlowModDropMulticastStream(nodeSW, false);
			pushOFDeleteGroup(nodeSW);
			memberPorts.remove(sourceAP.getSw().getLong());
			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP + 
					" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
		} else{
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
			logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP + 
					" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
		}
	} else {
		sendOFGroupModDelMemberMsg(nodeSW, memberPort);
		logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP + 
				" Group Member deleted 2 from datapath id " + nodeId.toString());
	}
	
	ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
	for ( ;iter.hasPrevious();) {
		nodeId= iter.previous();
		nodeSW = switchService.getSwitch(nodeId);
		sendOFFlowModDelForGroup(nodeSW);
		pushOFDeleteGroup(nodeSW);
		treeUpink.remove(nodeId.getLong());
		memberPorts.remove(nodeId.getLong());
		logger.info("ShortestPathTreeLB:Group:"+this.multicastGroup.groupIP + 
				" Group Flow deleted 2 from datapath id " + nodeId.toString());
	}
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:74,代码来源:ShortestPathTreeLB.java

示例5: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		Link l = null;
		HashSet<OFPort> ports = null;
		
		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:43,代码来源:DynamicGreedySteinerTree.java

示例6: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
public void removeMemberFromTheTree(AttachmentPoint ap) {


	IOFSwitch nodeSW = null;
	ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
	DatapathId nodeId = ap.getSw();
	OFPort memberPort = ap.getPort();
	ArrayList<Link> links = new ArrayList<>();
	HashSet<OFPort> memPorts = null;
	Link upl = null;
	/* node id can not be null, it should be at least srcAP id*/
	while(nodeId.getLong() != sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(nodeId.getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() != 0) {
			break;
		}
		if(upl != null)
			links.add(upl);
		deleteDpIds.add(nodeId);
		upl = treeUpink.get(nodeId.getLong());
		nodeId = upl.getSrc();
		memberPort = upl.getSrcPort();

	}
	removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
			
	String dids = "[";
	int l = ap.getSw().toString().length();
	for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
		DatapathId d = itr.next();
		dids += d.toString().substring(l-2) + ", ";
	}
	if (nodeId.getLong() != ap.getSw().getLong()) {
		dids += nodeId.toString().substring(l-2);
	}
	dids += " ]";
	logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

	nodeSW = switchService.getSwitch(nodeId);
	if (nodeId.getLong() == sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(sourceAP.getSw().getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() == 0) {
			sendOFFlowModDropMulticastStream(nodeSW, false);
			pushOFDeleteGroup(nodeSW);
			memberPorts.remove(sourceAP.getSw().getLong());
			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP + 
					" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
		} else{
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
			logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP + 
					" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
		}
	} else {
		sendOFGroupModDelMemberMsg(nodeSW, memberPort);
		logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP + 
				" Group Member deleted 2 from datapath id " + nodeId.toString());
	}
	
	ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
	for ( ;iter.hasPrevious();) {
		nodeId= iter.previous();
		nodeSW = switchService.getSwitch(nodeId);
		sendOFFlowModDelForGroup(nodeSW);
		pushOFDeleteGroup(nodeSW);
		treeUpink.remove(nodeId.getLong());
		memberPorts.remove(nodeId.getLong());
		logger.info("DynamicGreedySteinerTree:Group:"+this.multicastGroup.groupIP + 
				" Group Flow deleted 2 from datapath id " + nodeId.toString());
	}
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:74,代码来源:DynamicGreedySteinerTree.java

示例7: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		addLinkUtilsToMap(pathLinks, bandwidth);
		Link l = null;
		HashSet<OFPort> ports = null;

		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:44,代码来源:QoSLBNBCMulticastTree.java

示例8: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
	public void removeMemberFromTheTree(AttachmentPoint ap) {

//		short pbranchNodeShortNumber = 0;
		IOFSwitch nodeSW = null;
		ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
		ArrayList<Link> links = new ArrayList<>();
		DatapathId nodeId = ap.getSw();
		OFPort memberPort = ap.getPort();

		HashSet<OFPort> memPorts = null;
		Link upl = null;
		/* node id can not be null, it should be at least srcAP id*/
		while(nodeId.getLong() != sourceAP.getSw().getLong()) {
			memPorts = memberPorts.get(nodeId.getLong());
//			pbranchNodeShortNumber = memberPort.getShortPortNumber();
			memPorts.remove(memberPort);
			if (memPorts.size() != 0) {
				break;
			}
			if(upl != null)
				links.add(upl);
			deleteDpIds.add(nodeId);
			upl = treeUpink.get(nodeId.getLong());
			nodeId = upl.getSrc();
			memberPort = upl.getSrcPort();

		}
		removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
		String dids = "[";
		int l = ap.getSw().toString().length();
		for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
			DatapathId d = itr.next();
			dids += d.toString().substring(l-2) + ", ";
		}
		if (nodeId.getLong() != ap.getSw().getLong()) {
			dids += nodeId.toString().substring(l-2);
		}
		dids += " ]";
		logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

		nodeSW = switchService.getSwitch(nodeId);
		if (nodeId.getLong() == sourceAP.getSw().getLong()) {
			memPorts = memberPorts.get(sourceAP.getSw().getLong());
			memPorts.remove(memberPort);
			if (memPorts.size() == 0) {
				sendOFFlowModDropMulticastStream(nodeSW, false);
				pushOFDeleteGroup(nodeSW);
				memberPorts.remove(sourceAP.getSw().getLong());
//				logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP + 
//						" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
			} else{
				sendOFGroupModDelMemberMsg(nodeSW, memberPort);
//				logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP + 
//						" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
			}
		} else {
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP + 
//					" Group Member deleted 2 from datapath id " + nodeId.toString());
		}
		
		ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
		for ( ;iter.hasPrevious();) {
			nodeId= iter.previous();
			nodeSW = switchService.getSwitch(nodeId);
			sendOFFlowModDelForGroup(nodeSW);
			pushOFDeleteGroup(nodeSW);
			treeUpink.remove(nodeId.getLong());
			memberPorts.remove(nodeId.getLong());
//			logger.info("QoSLBNBCMulticastTree:Group:"+this.multicastGroup.groupIP + 
//					" Group Flow deleted 2 from datapath id " + nodeId.toString());
		}
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:75,代码来源:QoSLBNBCMulticastTree.java

示例9: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		Link l = null;
		HashSet<OFPort> ports = null;
		
		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:43,代码来源:LBMulticastTree.java

示例10: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
public void removeMemberFromTheTree(AttachmentPoint ap) {


	IOFSwitch nodeSW = null;
	ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
	DatapathId nodeId = ap.getSw();
	OFPort memberPort = ap.getPort();
	ArrayList<Link> links = new ArrayList<>();
	HashSet<OFPort> memPorts = null;
	Link upl = null;
	/* node id can not be null, it should be at least srcAP id*/
	while(nodeId.getLong() != sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(nodeId.getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() != 0) {
			break;
		}
		if(upl != null)
			links.add(upl);
		deleteDpIds.add(nodeId);
		upl = treeUpink.get(nodeId.getLong());
		nodeId = upl.getSrc();
		memberPort = upl.getSrcPort();

	}
	removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
			
	String dids = "[";
	int l = ap.getSw().toString().length();
	for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
		DatapathId d = itr.next();
		dids += d.toString().substring(l-2) + ", ";
	}
	if (nodeId.getLong() != ap.getSw().getLong()) {
		dids += nodeId.toString().substring(l-2);
	}
	dids += " ]";
	logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

	nodeSW = switchService.getSwitch(nodeId);
	if (nodeId.getLong() == sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(sourceAP.getSw().getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() == 0) {
			sendOFFlowModDropMulticastStream(nodeSW, false);
			pushOFDeleteGroup(nodeSW);
			memberPorts.remove(sourceAP.getSw().getLong());
			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP + 
					" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
		} else{
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
			logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP + 
					" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
		}
	} else {
		sendOFGroupModDelMemberMsg(nodeSW, memberPort);
		logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP + 
				" Group Member deleted 2 from datapath id " + nodeId.toString());
	}
	
	ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
	for ( ;iter.hasPrevious();) {
		nodeId= iter.previous();
		nodeSW = switchService.getSwitch(nodeId);
		sendOFFlowModDelForGroup(nodeSW);
		pushOFDeleteGroup(nodeSW);
		treeUpink.remove(nodeId.getLong());
		memberPorts.remove(nodeId.getLong());
		logger.info("LBMulticastTree:Group:"+this.multicastGroup.groupIP + 
				" Group Flow deleted 2 from datapath id " + nodeId.toString());
	}
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:74,代码来源:LBMulticastTree.java

示例11: pushQoSFlowForTreePath

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
private void pushQoSFlowForTreePath(Path p, AttachmentPoint destAp, long bandwidth) {
		ArrayList<Link> pathLinks = p.getPathLinks();
		Link l = null;
		HashSet<OFPort> ports = null;
		
		for (Iterator<Link> it = pathLinks.iterator(); it.hasNext();){
			Link uplink = it.next();
			treeUpink.put(uplink.getDst().getLong(), uplink);
		}
				
		if (p.getPathLength() != 0) {
			super.sendOFGroupAddMsg(destAp.getSw(), destAp.getPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(destAp.getPort());
			memberPorts.put(destAp.getSw().getLong(), ports);
//			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP+ " group add 1 " + destAp.getSw().toString() );
		}
		
		Iterator<Link> iter = pathLinks.iterator();
		int size = pathLinks.size();
		for (int i = 0; i < size-1; i++) {
			l = iter.next();
			super.sendOFGroupAddMsg(l.getSrc(), l.getSrcPort(), bandwidth);
			ports = new HashSet<>();
			ports.add(l.getSrcPort());
			memberPorts.put(l.getSrc().getLong(), ports);
//			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP+ " group add 2 " + l.getSrc().toString());
		}
		
		OFPort ofp = p.getEndNodePort();
		HashSet<OFPort> mems = memberPorts.get(p.getEndNodeId().getLong());
		if (mems == null) {
			mems = new HashSet<>();
			super.sendOFGroupAddMsg(p.getEndNodeId(), ofp, bandwidth);
			memberPorts.put(p.getEndNodeId().getLong(), mems);
//			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP+ " group add 3 " + p.getEndNodeId().toString());
		} else {
			super.sendOFGroupModAddMemberMsg(p.getEndNodeId(), ofp, bandwidth);
//			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP+ " group member add " + p.getEndNodeId().toString());
		}
		mems.add(ofp);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:43,代码来源:DSTWithNBC.java

示例12: removeMemberFromTheTree

import net.floodlightcontroller.devicemanager.internal.AttachmentPoint; //导入方法依赖的package包/类
@Override
public void removeMemberFromTheTree(AttachmentPoint ap) {


	IOFSwitch nodeSW = null;
	ArrayList<DatapathId> deleteDpIds = new ArrayList<>();
	DatapathId nodeId = ap.getSw();
	OFPort memberPort = ap.getPort();
	ArrayList<Link> links = new ArrayList<>();
	HashSet<OFPort> memPorts = null;
	Link upl = null;
	/* node id can not be null, it should be at least srcAP id*/
	while(nodeId.getLong() != sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(nodeId.getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() != 0) {
			break;
		}
		if(upl != null)
			links.add(upl);
		deleteDpIds.add(nodeId);
		upl = treeUpink.get(nodeId.getLong());
		nodeId = upl.getSrc();
		memberPort = upl.getSrcPort();

	}
	removeLinkUtilsToMap(links, this.multicastGroup.bandwidth);
			
	String dids = "[";
	int l = ap.getSw().toString().length();
	for (ListIterator<DatapathId> itr = deleteDpIds.listIterator() ; itr.hasNext() ;) {
		DatapathId d = itr.next();
		dids += d.toString().substring(l-2) + ", ";
	}
	if (nodeId.getLong() != ap.getSw().getLong()) {
		dids += nodeId.toString().substring(l-2);
	}
	dids += " ]";
	logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP + " Delete Path " + dids);

	nodeSW = switchService.getSwitch(nodeId);
	if (nodeId.getLong() == sourceAP.getSw().getLong()) {
		memPorts = memberPorts.get(sourceAP.getSw().getLong());
		memPorts.remove(memberPort);
		if (memPorts.size() == 0) {
			sendOFFlowModDropMulticastStream(nodeSW, false);
			pushOFDeleteGroup(nodeSW);
			memberPorts.remove(sourceAP.getSw().getLong());
			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP + 
					" Group Flow deleted 1 from datapath id " + sourceAP.getSw().toString());
		} else{
			sendOFGroupModDelMemberMsg(nodeSW, memberPort);
			logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP + 
					" Group Member deleted 1 from datapath id " + sourceAP.getSw().toString());
		}
	} else {
		sendOFGroupModDelMemberMsg(nodeSW, memberPort);
		logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP + 
				" Group Member deleted 2 from datapath id " + nodeId.toString());
	}
	
	ListIterator<DatapathId> iter = deleteDpIds.listIterator(deleteDpIds.size());
	for ( ;iter.hasPrevious();) {
		nodeId= iter.previous();
		nodeSW = switchService.getSwitch(nodeId);
		sendOFFlowModDelForGroup(nodeSW);
		pushOFDeleteGroup(nodeSW);
		treeUpink.remove(nodeId.getLong());
		memberPorts.remove(nodeId.getLong());
		logger.info("DSTWithNBC:Group:"+this.multicastGroup.groupIP + 
				" Group Flow deleted 2 from datapath id " + nodeId.toString());
	}
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:74,代码来源:DSTWithNBC.java


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