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

Java OFActionSetQueue类代码示例

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

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



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

示例1: sendOFGroupModDelMemberMsg

import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; //导入依赖的package包/类
protected void sendOFGroupModDelMemberMsg(IOFSwitch sw, OFPort destPort) {
	/* removes member port form the group*/
	OFBucket ofb = multicastGroup.removeMemberOFBucket(sw.getId(), destPort);
	/* prepares a modify object sends it to the switch */
	pushOFModifyGroup(sw);

	long queueId = -1;
	for (OFAction ofa:  ofb.getActions()){
		if (ofa.getType() == OFActionType.SET_QUEUE){
			OFActionSetQueue ofas = (OFActionSetQueue) ofa;
			queueId = ofas.getQueueId();
		}
	}
	/* removes queue using OVSDBContext on the switch */
	OVSDBContext ovsdbContext = mcObject.ovsdbChannelMap.get(sw.getId());
	ovsdbContext.deleteQueueOnPort(destPort, (int)queueId);
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:18,代码来源:MulticastTree.java


示例2: pushOFDeleteGroup

import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; //导入依赖的package包/类
protected void pushOFDeleteGroup(IOFSwitch sw) {
	
	/* Delete the queues attached to all the member ports*/
	long queueId = -1;
	OFPort ofp = null;
	ArrayList<OFBucket> ofBuckets = multicastGroup.getMemberOFBucketList(sw.getId());
	OVSDBContext ovsdbContext = mcObject.ovsdbChannelMap.get(sw.getId());
	for (OFBucket ofb : ofBuckets) {
		queueId = -1;
		ofp = null;
		for (OFAction ofa:  ofb.getActions()){
			if (ofa.getType() == OFActionType.SET_QUEUE){
				OFActionSetQueue ofas = (OFActionSetQueue) ofa;
				queueId = ofas.getQueueId();
				/* removes queue using OVSDBContext on the switch */
				
			}
			if (ofa.getType() == OFActionType.OUTPUT){
				OFActionOutput ofo = (OFActionOutput) ofa;
				ofp = ofo.getPort();
				/* removes queue using OVSDBContext on the switch */
				
			}
		}
		if (ofp != null && queueId != -1)
			ovsdbContext.deleteQueueOnPort(ofp, (int)queueId);
		else
			logger.error("pushOFDeleteGroup: unexpected actionset in group bucket");
	}
	
	/* Creates group flow with set queue option */
	OFFactory of13Factory = sw.getOFFactory();

	OFGroupDelete delGroup = of13Factory.buildGroupDelete()
			.setGroup(OFGroup.of(multicastGroup.ofGroupId))
			.setGroupType(OFGroupType.ALL)
			.build();
	sw.write(delGroup);
}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:40,代码来源:MulticastTree.java


示例3: addQoSOFBucketToGroup

import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; //导入依赖的package包/类
private void addQoSOFBucketToGroup(IOFSwitch sw, OFPort destPort, long bandwidth) {

		/* creates queue using OVSDBContext on the switch */
		OVSDBContext ovsdbContext = mcObject.ovsdbChannelMap.get(sw.getId());
		
		/* FIXME: hardcoded priority '1' for all flows */
		int queueId = ovsdbContext.createQueueOnPort(destPort, Long.toString(bandwidth), "1");
		
		OFFactory of13Factory = sw.getOFFactory();
		
		/* creates actions for the bucket */
		ArrayList<OFAction> actionList = new ArrayList<OFAction>();
		OFActions actions = of13Factory.actions();
		OFActionSetQueue setQueue = actions.buildSetQueue().setQueueId(queueId).build();
		actionList.add(setQueue);
		OFActionOutput output = actions.buildOutput()
				.setMaxLen(0xFFffFFff)
				.setPort(destPort).build();
		actionList.add(output);
		
		/* creates a bucket */
		OFBucket bucket = of13Factory.buildBucket()
				.setActions(actionList)
				.setWatchGroup(OFGroup.ANY)
				.setWatchPort(OFPort.ANY)
				.build();
		/* store the bucket in multicastGroup object */
		multicastGroup.addMemberOFBucket(sw.getId(), 
				destPort.getShortPortNumber(), bucket);
	}
 
开发者ID:hksoni,项目名称:SDN-Multicast,代码行数:31,代码来源:MulticastTree.java


示例4: buildActions

import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; //导入依赖的package包/类
private List<OFAction> buildActions(List<Instruction> treatments) {
    if (treatment == null) {
        return Collections.emptyList();
    }

    boolean tableFound = false;
    List<OFAction> actions = new LinkedList<>();
    for (Instruction i : treatments) {
        switch (i.type()) {
            case NOACTION:
                return Collections.emptyList();
            case L0MODIFICATION:
                actions.add(buildL0Modification(i));
                break;
            case L1MODIFICATION:
                actions.add(buildL1Modification(i));
                break;
            case L2MODIFICATION:
                actions.add(buildL2Modification(i));
                break;
            case L3MODIFICATION:
                actions.add(buildL3Modification(i));
                break;
            case L4MODIFICATION:
                actions.add(buildL4Modification(i));
                break;
            case OUTPUT:
                OutputInstruction out = (OutputInstruction) i;
                OFActionOutput.Builder action = factory().actions().buildOutput()
                        .setPort(OFPort.of((int) out.port().toLong()));
                if (out.port().equals(PortNumber.CONTROLLER)) {
                    action.setMaxLen(OFPCML_NO_BUFFER);
                }
                actions.add(action.build());
                break;
            case GROUP:
                GroupInstruction group = (GroupInstruction) i;
                OFActionGroup.Builder groupBuilder = factory().actions().buildGroup()
                        .setGroup(OFGroup.of(group.groupId().id()));
                actions.add(groupBuilder.build());
                break;
            case QUEUE:
                SetQueueInstruction queue = (SetQueueInstruction) i;
                OFActionSetQueue.Builder queueBuilder = factory().actions().buildSetQueue()
                        .setQueueId(queue.queueId());
                actions.add(queueBuilder.build());
                break;
            case TABLE:
                //FIXME: should not occur here.
                tableFound = true;
                break;
            case EXTENSION:
                actions.add(buildExtensionAction(((Instructions.ExtensionInstructionWrapper) i)
                        .extensionInstruction()));
                break;
            default:
                log.warn("Instruction type {} not yet implemented.", i.type());
        }
    }
    if (tableFound && actions.isEmpty()) {
        // handles the case where there are no actions, but there is
        // a goto instruction for the next table
        return Collections.emptyList();
    }
    return actions;
}
 
开发者ID:shlee89,项目名称:athena,代码行数:67,代码来源:FlowModBuilderVer13.java


示例5: buildActions

import org.projectfloodlight.openflow.protocol.action.OFActionSetQueue; //导入依赖的package包/类
private List<OFAction> buildActions(List<Instruction> treatments, Boolean immediateActions) {
    if (treatment == null) {
        return Collections.emptyList();
    }

    boolean tableFound = false;
    List<OFAction> actions = new LinkedList<>();

    //Meter action handling
    if (null != treatment.meters() && immediateActions) {
        treatment.meters().forEach(meterInstruction -> {
            OFAction meterAction = buildMeterAction(meterInstruction);
            actions.add(meterAction);
        });
    }

    for (Instruction i : treatments) {
        switch (i.type()) {
            case NOACTION:
                return Collections.emptyList();
            case L0MODIFICATION:
                actions.add(buildL0Modification(i));
                break;
            case L1MODIFICATION:
                actions.add(buildL1Modification(i));
                break;
            case L2MODIFICATION:
                actions.add(buildL2Modification(i));
                break;
            case L3MODIFICATION:
                actions.add(buildL3Modification(i));
                break;
            case L4MODIFICATION:
                actions.add(buildL4Modification(i));
                break;
            case OUTPUT:
                Instructions.OutputInstruction out = (Instructions.OutputInstruction) i;
                OFActionOutput.Builder action = factory().actions().buildOutput()
                        .setPort(OFPort.of((int) out.port().toLong()));
                if (out.port().equals(PortNumber.CONTROLLER)) {
                    action.setMaxLen(OFPCML_NO_BUFFER);
                }
                actions.add(action.build());
                break;
            case GROUP:
                Instructions.GroupInstruction group = (Instructions.GroupInstruction) i;
                OFActionGroup.Builder groupBuilder = factory().actions().buildGroup()
                        .setGroup(OFGroup.of(group.groupId().id()));
                actions.add(groupBuilder.build());
                break;
            case QUEUE:
                Instructions.SetQueueInstruction queue = (Instructions.SetQueueInstruction) i;
                OFActionSetQueue.Builder queueBuilder = factory().actions().buildSetQueue()
                        .setQueueId(queue.queueId());
                actions.add(queueBuilder.build());
                break;
            case TABLE:
                //FIXME: should not occur here.
                tableFound = true;
                break;
            case EXTENSION:
                actions.add(buildExtensionAction(((Instructions.ExtensionInstructionWrapper) i)
                        .extensionInstruction()));
                break;
            default:
                log.warn("Instruction type {} not yet implemented.", i.type());
        }
    }

    if (tableFound && actions.isEmpty()) {
        // handles the case where there are no actions, but there is
        // a goto instruction for the next table
        return Collections.emptyList();
    }
    return actions;
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:77,代码来源:FlowModBuilderVer15.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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