tag = tlvHeader.removeShort();
tlv = findOptional(optionalParameters, tag);
if (tlv == null) {
// ok, got extra optional parameter not defined in SMPP spec
// will keep it as octets
tlv = new TLVOctets(tag);
registerExtraOptional(tlv);
}
length = tlvHeader.removeShort();
tlvBuf = buffer.removeBuffer(Data.TLV_HEADER_SIZE + length);
tlv.setData(tlvBuf);