本文整理汇总了Java中org.projectfloodlight.openflow.protocol.OFActionType.OUTPUT属性的典型用法代码示例。如果您正苦于以下问题:Java OFActionType.OUTPUT属性的具体用法?Java OFActionType.OUTPUT怎么用?Java OFActionType.OUTPUT使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.projectfloodlight.openflow.protocol.OFActionType
的用法示例。
在下文中一共展示了OFActionType.OUTPUT属性的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: pushOFDeleteGroup
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);
}
示例2: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case COPY_TTL_OUT_VAL:
return OFActionType.COPY_TTL_OUT;
case COPY_TTL_IN_VAL:
return OFActionType.COPY_TTL_IN;
case SET_MPLS_TTL_VAL:
return OFActionType.SET_MPLS_TTL;
case DEC_MPLS_TTL_VAL:
return OFActionType.DEC_MPLS_TTL;
case PUSH_VLAN_VAL:
return OFActionType.PUSH_VLAN;
case POP_VLAN_VAL:
return OFActionType.POP_VLAN;
case PUSH_MPLS_VAL:
return OFActionType.PUSH_MPLS;
case POP_MPLS_VAL:
return OFActionType.POP_MPLS;
case SET_QUEUE_VAL:
return OFActionType.SET_QUEUE;
case GROUP_VAL:
return OFActionType.GROUP;
case SET_NW_TTL_VAL:
return OFActionType.SET_NW_TTL;
case DEC_NW_TTL_VAL:
return OFActionType.DEC_NW_TTL;
case SET_FIELD_VAL:
return OFActionType.SET_FIELD;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.2: " + val);
}
}
示例3: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case COPY_TTL_OUT_VAL:
return OFActionType.COPY_TTL_OUT;
case COPY_TTL_IN_VAL:
return OFActionType.COPY_TTL_IN;
case SET_MPLS_TTL_VAL:
return OFActionType.SET_MPLS_TTL;
case DEC_MPLS_TTL_VAL:
return OFActionType.DEC_MPLS_TTL;
case PUSH_VLAN_VAL:
return OFActionType.PUSH_VLAN;
case POP_VLAN_VAL:
return OFActionType.POP_VLAN;
case PUSH_MPLS_VAL:
return OFActionType.PUSH_MPLS;
case POP_MPLS_VAL:
return OFActionType.POP_MPLS;
case SET_QUEUE_VAL:
return OFActionType.SET_QUEUE;
case GROUP_VAL:
return OFActionType.GROUP;
case SET_NW_TTL_VAL:
return OFActionType.SET_NW_TTL;
case DEC_NW_TTL_VAL:
return OFActionType.DEC_NW_TTL;
case SET_FIELD_VAL:
return OFActionType.SET_FIELD;
case PUSH_PBB_VAL:
return OFActionType.PUSH_PBB;
case POP_PBB_VAL:
return OFActionType.POP_PBB;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.3: " + val);
}
}
示例4: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case SET_VLAN_VID_VAL:
return OFActionType.SET_VLAN_VID;
case SET_VLAN_PCP_VAL:
return OFActionType.SET_VLAN_PCP;
case STRIP_VLAN_VAL:
return OFActionType.STRIP_VLAN;
case SET_DL_SRC_VAL:
return OFActionType.SET_DL_SRC;
case SET_DL_DST_VAL:
return OFActionType.SET_DL_DST;
case SET_NW_SRC_VAL:
return OFActionType.SET_NW_SRC;
case SET_NW_DST_VAL:
return OFActionType.SET_NW_DST;
case SET_NW_TOS_VAL:
return OFActionType.SET_NW_TOS;
case SET_TP_SRC_VAL:
return OFActionType.SET_TP_SRC;
case SET_TP_DST_VAL:
return OFActionType.SET_TP_DST;
case ENQUEUE_VAL:
return OFActionType.ENQUEUE;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.0: " + val);
}
}
示例5: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case COPY_TTL_OUT_VAL:
return OFActionType.COPY_TTL_OUT;
case COPY_TTL_IN_VAL:
return OFActionType.COPY_TTL_IN;
case SET_MPLS_TTL_VAL:
return OFActionType.SET_MPLS_TTL;
case DEC_MPLS_TTL_VAL:
return OFActionType.DEC_MPLS_TTL;
case PUSH_VLAN_VAL:
return OFActionType.PUSH_VLAN;
case POP_VLAN_VAL:
return OFActionType.POP_VLAN;
case PUSH_MPLS_VAL:
return OFActionType.PUSH_MPLS;
case POP_MPLS_VAL:
return OFActionType.POP_MPLS;
case SET_QUEUE_VAL:
return OFActionType.SET_QUEUE;
case GROUP_VAL:
return OFActionType.GROUP;
case SET_NW_TTL_VAL:
return OFActionType.SET_NW_TTL;
case DEC_NW_TTL_VAL:
return OFActionType.DEC_NW_TTL;
case SET_FIELD_VAL:
return OFActionType.SET_FIELD;
case PUSH_PBB_VAL:
return OFActionType.PUSH_PBB;
case POP_PBB_VAL:
return OFActionType.POP_PBB;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.4: " + val);
}
}
示例6: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case SET_VLAN_VID_VAL:
return OFActionType.SET_VLAN_VID;
case SET_VLAN_PCP_VAL:
return OFActionType.SET_VLAN_PCP;
case SET_DL_SRC_VAL:
return OFActionType.SET_DL_SRC;
case SET_DL_DST_VAL:
return OFActionType.SET_DL_DST;
case SET_NW_SRC_VAL:
return OFActionType.SET_NW_SRC;
case SET_NW_DST_VAL:
return OFActionType.SET_NW_DST;
case SET_NW_TOS_VAL:
return OFActionType.SET_NW_TOS;
case SET_NW_ECN_VAL:
return OFActionType.SET_NW_ECN;
case SET_TP_SRC_VAL:
return OFActionType.SET_TP_SRC;
case SET_TP_DST_VAL:
return OFActionType.SET_TP_DST;
case COPY_TTL_OUT_VAL:
return OFActionType.COPY_TTL_OUT;
case COPY_TTL_IN_VAL:
return OFActionType.COPY_TTL_IN;
case SET_MPLS_LABEL_VAL:
return OFActionType.SET_MPLS_LABEL;
case SET_MPLS_TC_VAL:
return OFActionType.SET_MPLS_TC;
case SET_MPLS_TTL_VAL:
return OFActionType.SET_MPLS_TTL;
case DEC_MPLS_TTL_VAL:
return OFActionType.DEC_MPLS_TTL;
case PUSH_VLAN_VAL:
return OFActionType.PUSH_VLAN;
case POP_VLAN_VAL:
return OFActionType.POP_VLAN;
case PUSH_MPLS_VAL:
return OFActionType.PUSH_MPLS;
case POP_MPLS_VAL:
return OFActionType.POP_MPLS;
case SET_QUEUE_VAL:
return OFActionType.SET_QUEUE;
case GROUP_VAL:
return OFActionType.GROUP;
case SET_NW_TTL_VAL:
return OFActionType.SET_NW_TTL;
case DEC_NW_TTL_VAL:
return OFActionType.DEC_NW_TTL;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.1: " + val);
}
}
示例7: flowModEntryMatchesIntent
/**
* Tests if a FlowModEntry matches the given Intent.
*
* @param intent Intent to check.
* @param flowModEntry FlowModEntry to check.
* @return true, if flowModEntry matches intent.
*/
private boolean flowModEntryMatchesIntent(IIntent intent, FlowModEntry flowModEntry) {
OFFlowMod flowMod = flowModEntry.getFlowMod();
HostToHostIntent hintent = (HostToHostIntent) intent;
// Check if destination matches
byte[] mac = flowMod.getMatch().get(MatchField.ETH_DST).getBytes();
MacAddress macAddress = flowMod.getMatch().get(MatchField.ETH_DST);
if (!hintent.getDestination().mac().equals(onosMacAddress(macAddress))) {
return false;
}
// Check if module id matches
if (intent.getModuleId() != flowModEntry.getModuleId()) {
return false;
}
DeviceId deviceId = onosDeviceId(flowModEntry.getDpid());
PortNumber outputPort = null;
for (OFAction action : flowMod.getActions()) {
if (action.getType() == OFActionType.OUTPUT) {
outputPort = PortNumber.portNumber(((OFActionOutput) action).getPort().getPortNumber());
break;
}
}
PortNumber inputPort = onosPortNumber(flowMod.getMatch().get(MatchField.IN_PORT));
// Check if flow mod lies on path through topology
Path path = getIntentPath(intent);
Iterator<Link> iterator = path.links().iterator();
Link lastLink = null;
while (iterator.hasNext()) {
Link link = iterator.next();
// Ignore link from source host to first switch
if (link.src().elementId() instanceof HostId) {
lastLink = link;
continue;
}
if (link.src().deviceId().equals(deviceId)
&& link.src().port().equals(outputPort)
&& lastLink.dst().port().equals(inputPort)){
return true;
}
lastLink = link;
}
return false;
}
示例8: ofWireValue
public static OFActionType ofWireValue(short val) {
switch(val) {
case OUTPUT_VAL:
return OFActionType.OUTPUT;
case COPY_TTL_OUT_VAL:
return OFActionType.COPY_TTL_OUT;
case COPY_TTL_IN_VAL:
return OFActionType.COPY_TTL_IN;
case SET_MPLS_TTL_VAL:
return OFActionType.SET_MPLS_TTL;
case DEC_MPLS_TTL_VAL:
return OFActionType.DEC_MPLS_TTL;
case PUSH_VLAN_VAL:
return OFActionType.PUSH_VLAN;
case POP_VLAN_VAL:
return OFActionType.POP_VLAN;
case PUSH_MPLS_VAL:
return OFActionType.PUSH_MPLS;
case POP_MPLS_VAL:
return OFActionType.POP_MPLS;
case SET_QUEUE_VAL:
return OFActionType.SET_QUEUE;
case GROUP_VAL:
return OFActionType.GROUP;
case SET_NW_TTL_VAL:
return OFActionType.SET_NW_TTL;
case DEC_NW_TTL_VAL:
return OFActionType.DEC_NW_TTL;
case SET_FIELD_VAL:
return OFActionType.SET_FIELD;
case PUSH_PBB_VAL:
return OFActionType.PUSH_PBB;
case POP_PBB_VAL:
return OFActionType.POP_PBB;
case COPY_FIELD_VAL:
return OFActionType.COPY_FIELD;
case METER_VAL:
return OFActionType.METER;
case EXPERIMENTER_VAL:
return OFActionType.EXPERIMENTER;
default:
throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.5: " + val);
}
}