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


Java OFFlowModFailedErrorMsg类代码示例

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


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

示例1: processOFError

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
@Override
void processOFError(OFChannelHandler h, OFErrorMsg m)
        throws IOException, SwitchStateException {
    // if we get here, then the error message is for something else
    if (m.getErrType() == OFErrorType.BAD_REQUEST &&
            ((OFBadRequestErrorMsg) m).getCode() ==
            OFBadRequestCode.EPERM) {
        // We are the master controller and the switch returned
        // a permission error. This is a likely indicator that
        // the switch thinks we are slave. Reassert our
        // role
        // FIXME: this could be really bad during role transitions
        // if two controllers are master (even if its only for
        // a brief period). We might need to see if these errors
        // persist before we reassert

        h.sw.reassertRole();
    } else if (m.getErrType() == OFErrorType.FLOW_MOD_FAILED &&
            ((OFFlowModFailedErrorMsg) m).getCode() ==
            OFFlowModFailedCode.ALL_TABLES_FULL) {
        h.sw.setTableFull(true);
    } else {
        logError(h, m);
    }
    h.dispatchMessage(m);
}
 
开发者ID:shlee89,项目名称:athena,代码行数:27,代码来源:OFChannelHandler.java

示例2: processOFError

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
@Override
void processOFError(OFErrorMsg m) {
	// role changer will ignore the error if it isn't for it
	boolean didHandle = roleChanger.deliverError(m);
	if (didHandle)
		return;
	if ((m.getErrType() == OFErrorType.BAD_REQUEST) &&
			(((OFBadRequestErrorMsg)m).getCode() == OFBadRequestCode.EPERM)) {
		// We are the master controller and the switch returned
		// a permission error. This is a likely indicator that
		// the switch thinks we are slave. Reassert our
		// role
		// FIXME: this could be really bad during role transitions
		// if two controllers are master (even if its only for
		// a brief period). We might need to see if these errors
		// persist before we reassert
		switchManagerCounters.epermErrorWhileSwitchIsMaster.increment();
		log.warn("Received permission error from switch {} while" +
				"being master. Reasserting master role.",
				getSwitchInfoString());
		reassertRole(OFControllerRole.ROLE_MASTER);
	}
	else if ((m.getErrType() == OFErrorType.FLOW_MOD_FAILED) &&
			(((OFFlowModFailedErrorMsg)m).getCode() == OFFlowModFailedCode.ALL_TABLES_FULL)) {
		sw.setTableFull(true);
	}
	else {
		logError(m);
	}
	dispatchMessage(m);
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:32,代码来源:OFSwitchHandshakeHandler.java

示例3: processOFError

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
@LogMessageDoc(level="WARN",
		message="Received permission error from switch {} while" +
				"being master. Reasserting master role.",
				explanation="The switch has denied an operation likely " +
						"indicating inconsistent controller roles",
						recommendation="This situation can occurs transiently during role" +
								" changes. If, however, the condition persists or happens" +
								" frequently this indicates a role inconsistency. " +
								LogMessageDoc.CHECK_CONTROLLER )
@Override
void processOFError(OFErrorMsg m) {
	// role changer will ignore the error if it isn't for it
	boolean didHandle = roleChanger.deliverError(m);
	if (didHandle)
		return;
	if ((m.getErrType() == OFErrorType.BAD_REQUEST) &&
			(((OFBadRequestErrorMsg)m).getCode() == OFBadRequestCode.EPERM)) {
		// We are the master controller and the switch returned
		// a permission error. This is a likely indicator that
		// the switch thinks we are slave. Reassert our
		// role
		// FIXME: this could be really bad during role transitions
		// if two controllers are master (even if its only for
		// a brief period). We might need to see if these errors
		// persist before we reassert
		switchManagerCounters.epermErrorWhileSwitchIsMaster.increment();
		log.warn("Received permission error from switch {} while" +
				"being master. Reasserting master role.",
				getSwitchInfoString());
		reassertRole(OFControllerRole.ROLE_MASTER);
	}
	else if ((m.getErrType() == OFErrorType.FLOW_MOD_FAILED) &&
			(((OFFlowModFailedErrorMsg)m).getCode() == OFFlowModFailedCode.ALL_TABLES_FULL)) {
		sw.setTableFull(true);
	}
	else {
		logError(m);
	}
	dispatchMessage(m);
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:41,代码来源:OFSwitchHandshakeHandler.java

示例4: processOFError

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
@Override
void processOFError(OFChannelHandler h, OFErrorMsg m)
        throws IOException, SwitchStateException {
    // if we get here, then the error message is for something else
    if (m.getErrType() == OFErrorType.BAD_REQUEST &&
            (((OFBadRequestErrorMsg) m).getCode() ==
               OFBadRequestCode.EPERM ||
            ((OFBadRequestErrorMsg) m).getCode() ==
               OFBadRequestCode.IS_SLAVE)) {
        // We are the master controller and the switch returned
        // a permission error. This is a likely indicator that
        // the switch thinks we are slave. Reassert our
        // role
        // FIXME: this could be really bad during role transitions
        // if two controllers are master (even if its only for
        // a brief period). We might need to see if these errors
        // persist before we reassert

        h.sw.reassertRole();
    } else if (m.getErrType() == OFErrorType.FLOW_MOD_FAILED &&
            ((OFFlowModFailedErrorMsg) m).getCode() ==
            OFFlowModFailedCode.ALL_TABLES_FULL) {
        h.sw.setTableFull(true);
    } else {
        logError(h, m);
    }
    h.dispatchMessage(m);
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:29,代码来源:OFChannelHandler.java

示例5: processOFError

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
@LogMessageDoc(level = "WARN",
        message = "Received permission error from switch {} while" +
                "being master. Reasserting master role.",
        explanation = "The switch has denied an operation likely " +
                "indicating inconsistent controller roles",
        recommendation = "This situation can occurs transiently during role" +
                " changes. If, however, the condition persists or happens" +
                " frequently this indicates a role inconsistency. " +
                LogMessageDoc.CHECK_CONTROLLER)
@Override
void processOFError(OFChannelHandler h, OFErrorMsg m)
        throws IOException, SwitchStateException {
    // first check if the error msg is in response to a role-request
    // message
    RoleRecvStatus rrstatus = h.roleChanger.deliverError(m);
    if (rrstatus != RoleRecvStatus.OTHER_EXPECTATION) {
        // rolechanger has handled the error message - we are done
        return;
    }

    // if we get here, then the error message is for something else
    if (m.getErrType() == OFErrorType.BAD_REQUEST &&
            ((OFBadRequestErrorMsg) m).getCode() ==
            OFBadRequestCode.EPERM) {
        // We are the master controller and the switch returned
        // a permission error. This is a likely indicator that
        // the switch thinks we are slave. Reassert our
        // role
        // FIXME: this could be really bad during role transitions
        // if two controllers are master (even if its only for
        // a brief period). We might need to see if these errors
        // persist before we reassert
        h.counters.epermErrorWhileSwitchIsMaster.updateCounterWithFlush();
        log.warn("Received permission error from switch {} while" +
                "being master. Reasserting master role.",
                h.getSwitchInfoString());
        // h.controller.reassertRole(h, Role.MASTER);
        // XXX S reassert in role changer or reconsider if all this
        // stuff is really needed
    } else if (m.getErrType() == OFErrorType.FLOW_MOD_FAILED &&
            ((OFFlowModFailedErrorMsg) m).getCode() ==
            OFFlowModFailedCode.ALL_TABLES_FULL) {
        h.sw.setTableFull(true);
    } else {
        logError(h, m);
    }
    h.dispatchMessage(m);
}
 
开发者ID:opennetworkinglab,项目名称:spring-open,代码行数:49,代码来源:OFChannelHandler.java

示例6: handleErrorMsg

import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg; //导入依赖的package包/类
private void handleErrorMsg(DeviceId deviceId, OFMessage msg) {
    InternalCacheEntry entry = pendingBatches.getIfPresent(msg.getXid());
    OFErrorMsg error = (OFErrorMsg) msg;
    OFMessage ofMessage = null;
    switch (error.getErrType()) {
        case BAD_ACTION:
            OFBadActionErrorMsg baErrorMsg = (OFBadActionErrorMsg) error;
            if (baErrorMsg.getData().getParsedMessage().isPresent()) {
                ofMessage = baErrorMsg.getData().getParsedMessage().get();
            }
            break;
        case BAD_INSTRUCTION:
            OFBadInstructionErrorMsg biErrorMsg = (OFBadInstructionErrorMsg) error;
            if (biErrorMsg.getData().getParsedMessage().isPresent()) {
                ofMessage = biErrorMsg.getData().getParsedMessage().get();
            }
            break;
        case BAD_MATCH:
            OFBadMatchErrorMsg bmErrorMsg = (OFBadMatchErrorMsg) error;
            if (bmErrorMsg.getData().getParsedMessage().isPresent()) {
                ofMessage = bmErrorMsg.getData().getParsedMessage().get();
            }
            break;
        case FLOW_MOD_FAILED:
            OFFlowModFailedErrorMsg fmFailed = (OFFlowModFailedErrorMsg) error;
            if (fmFailed.getData().getParsedMessage().isPresent()) {
                ofMessage = fmFailed.getData().getParsedMessage().get();
            }
            break;
        default:
            // Do nothing.
            return;
        }

        if (ofMessage != null) {

            if (entry != null)  {
                OFFlowMod ofFlowMod = (OFFlowMod) ofMessage;
                entry.appendFailure(new FlowEntryBuilder(deviceId, ofFlowMod, getDriver(deviceId)).build());
            } else {
              log.error("No matching batch for this error: {}", error);
            }

        } else {

            U64 cookieId = readCookieIdFromOFErrorMsg(error, msg.getVersion());

            if (cookieId != null) {
                long flowId = cookieId.getValue();

                if (entry != null) {
                    for (FlowRuleBatchEntry fbEntry : entry.operation.getOperations()) {
                        if (fbEntry.target().id().value() == flowId) {
                            entry.appendFailure(fbEntry.target());
                            break;
                        }
                    }
                } else {
                    log.error("No matching batch for this error: {}", error);
                }

            } else {
                log.error("Flow installation failed but switch " +
                        "didn't tell us which one.");
            }
        }
}
 
开发者ID:opennetworkinglab,项目名称:onos,代码行数:68,代码来源:OpenFlowRuleProvider.java


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