c u8数据类型 对应java_Java U8類代碼示例

import org.projectfloodlight.openflow.types.U8; //導入依賴的package包/類

@Override

public OFAction mapInstruction(OFFactory factory, ExtensionTreatment extensionTreatment) {

ExtensionTreatmentType type = extensionTreatment.type();

if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_SET_MPLS_TYPE.type())) {

short mplsType = ((Ofdpa3SetMplsType) extensionTreatment).mplsType();

return factory.actions().setField(factory.oxms().ofdpaMplsType(

U16.ofRaw(mplsType)));

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_SET_OVID.type())) {

// OFDPA requires isPresent bit set to 1 for OVID.

VlanId vlanId = ((Ofdpa3SetOvid) extensionTreatment).vlanId();

short mask = (short) 0x1000;

short oVid = (short) (mask | vlanId.toShort());

return factory.actions().setField(factory.oxms().ofdpaOvid(

U16.ofRaw(oVid)));

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_SET_MPLS_L2_PORT.type())) {

Integer mplsL2Port = ((Ofdpa3SetMplsL2Port) extensionTreatment).mplsL2Port();

/*

* 0x0000XXXX UNI Interface.

* 0x0002XXXX NNI Interface

*/

if ((mplsL2Port >= 0 && mplsL2Port <= 0x0000FFFF) ||

(mplsL2Port >= 0x00020000 && mplsL2Port <= 0x0002FFFF)) {

return factory.actions().setField(

factory.oxms().ofdpaMplsL2Port(U32.ofRaw(mplsL2Port))

);

}

throw new UnsupportedOperationException(

"Unexpected ExtensionTreatment: " + extensionTreatment.toString());

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_SET_QOS_INDEX.type())) {

Integer qosIndex = ((Ofdpa3SetQosIndex) extensionTreatment).qosIndex();

/*

* Qos index is a single byte [0...255]

*/

if (qosIndex >= 0 && qosIndex <= 255) {

return factory.actions().setField(

factory.oxms().ofdpaQosIndex(U8.ofRaw((byte) (qosIndex & 0xFF)))

);

}

throw new UnsupportedOperationException(

"Unexpected ExtensionTreatment: " + extensionTreatment.toString());

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_PUSH_L2_HEADER.type())) {

return factory.actions().ofdpaPushL2Header();

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_PUSH_CW.type())) {

return factory.actions().ofdpaPushCw();

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_POP_L2_HEADER.type())) {

return factory.actions().ofdpaPopL2Header();

} else if (type.equals(ExtensionTreatmentType.ExtensionTreatmentTypes.OFDPA_POP_CW.type())) {

return factory.actions().ofdpaPopCw();

}

throw new UnsupportedOperationException(

"Unexpected ExtensionTreatment: " + extensionTreatment.toString());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值