@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * (int) (xid ^ (xid >>> 32)); result = prime * result + ((code == null) ? 0 : code.hashCode()); result = prime * result + ((data == null) ? 0 : data.hashCode()); return result; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; OFBadPropertyErrorMsgVer14 other = (OFBadPropertyErrorMsgVer14) obj; if (xid != other.xid) return false; if (code == null) { if (other.code != null) return false; } else if (!code.equals(other.code)) return false; if (data == null) { if (other.data != null) return false; } else if (!data.equals(other.data)) return false; return true; }
@Override public OFBadPropertyErrorMsg readFrom(ChannelBuffer bb) throws OFParseError { int start = bb.readerIndex(); // fixed value property version == 5 byte version = bb.readByte(); if (version != (byte) 0x5) throw new OFParseError("Wrong version: Expected=OFVersion.OF_14(5), got=" + version); // fixed value property type == 1 byte type = bb.readByte(); if (type != (byte) 0x1) throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got=" + type); int length = U16.f(bb.readShort()); if (length < MINIMUM_LENGTH) throw new OFParseError( "Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length); if (bb.readableBytes() + (bb.readerIndex() - start) < length) { // Buffer does not have all data yet bb.readerIndex(start); return null; } if (logger.isTraceEnabled()) logger.trace("readFrom - length={}", length); long xid = U32.f(bb.readInt()); // fixed value property errType == 14 short errType = bb.readShort(); if (errType != (short) 0xe) throw new OFParseError( "Wrong errType: Expected=OFErrorType.BAD_PROPERTY(14), got=" + errType); OFBadPropertyCode code = OFBadPropertyCodeSerializerVer14.readFrom(bb); OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_14); OFBadPropertyErrorMsgVer14 badPropertyErrorMsgVer14 = new OFBadPropertyErrorMsgVer14(xid, code, data); if (logger.isTraceEnabled()) logger.trace("readFrom - read={}", badPropertyErrorMsgVer14); return badPropertyErrorMsgVer14; }
@Override public OFFlowModFailedErrorMsg readFrom(ByteBuf bb) throws OFParseError { int start = bb.readerIndex(); // fixed value property version == 1 byte version = bb.readByte(); if (version != (byte) 0x1) throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got=" + version); // fixed value property type == 1 byte type = bb.readByte(); if (type != (byte) 0x1) throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got=" + type); int length = U16.f(bb.readShort()); if (length < MINIMUM_LENGTH) throw new OFParseError( "Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length); if (bb.readableBytes() + (bb.readerIndex() - start) < length) { // Buffer does not have all data yet bb.readerIndex(start); return null; } if (logger.isTraceEnabled()) logger.trace("readFrom - length={}", length); long xid = U32.f(bb.readInt()); // fixed value property errType == 3 short errType = bb.readShort(); if (errType != (short) 0x3) throw new OFParseError( "Wrong errType: Expected=OFErrorType.FLOW_MOD_FAILED(3), got=" + errType); OFFlowModFailedCode code = OFFlowModFailedCodeSerializerVer10.readFrom(bb); OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10); OFFlowModFailedErrorMsgVer10 flowModFailedErrorMsgVer10 = new OFFlowModFailedErrorMsgVer10(xid, code, data); if (logger.isTraceEnabled()) logger.trace("readFrom - read={}", flowModFailedErrorMsgVer10); return flowModFailedErrorMsgVer10; }