docs: private void parseSegmentStartHeader(WsByteBuffer contextBuffer)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "parseSegmentStartHeader", contextBuffer);
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) JFapUtils.debugTraceWsByteBufferInfo(this, tc, contextBuffer, "contextBuffer");
  
        WsByteBuffer rawData = readData(contextBuffer, unparsedFirstSegment);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) JFapUtils.debugTraceWsByteBufferInfo(this, tc, rawData, "rawData");
        if (rawData != null)
        {
           segmentedTransmissionHeaderFields[primaryHeaderFields.priority].totalLength = rawData.getLong();                                                // D191832.1
           transmissionPayloadRemaining -= JFapChannelConstants.SIZEOF_SEGMENT_START_HEADER;
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "totalLenght: "+segmentedTransmissionHeaderFields[primaryHeaderFields.priority].totalLength);    // D191832.1
           if (segmentedTransmissionHeaderFields[primaryHeaderFields.priority].totalLength < 0)                                                            // D191832.1
           {
              throwable = new SIConnectionLostException(nls.getFormattedMessage("TRANSPARSER_PROTOCOLERROR_SICJ0053", new Object[] {connection.remoteHostAddress, connection.chainName}, "TRANSPARSER_PROTOCOLERROR_SICJ0053"));   // D226223
              // This FFDC was generated because our peer sent a the start of a segmented transmission
              // with a segment size greater than the size suggested by the transmission size field.
              FFDCFilter.processException(throwable, "com.ibm.ws.sib.jfapchannel.impl.InboundTransmissionParser", JFapChannelConstants.INBOUNDXMITPARSER_PARSESSHDR_01, getFormattedBytes(contextBuffer)); // D267629
              state = STATE_ERROR;
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Conversation lost after peer transmitted more data than initially indicated in first part of segmented transmission");
           }
           else
           {
              // begin D191832.1
              segmentedTransmissionHeaderFields[primaryHeaderFields.priority].segmentType = rawData.get();
              if (segmentedTransmissionHeaderFields[primaryHeaderFields.priority].segmentType < 0)
                 segmentedTransmissionHeaderFields[primaryHeaderFields.priority].segmentType += 256;
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "segmentType: "+segmentedTransmissionHeaderFields[primaryHeaderFields.priority].segmentType);
              // end D191832.1
              rawData.position(rawData.position()+3); // skip padding.
              transmissionPayloadDataLength = primaryHeaderFields.segmentLength -
                 (JFapChannelConstants.SIZEOF_PRIMARY_HEADER +
                  JFapChannelConstants.SIZEOF_CONVERSATION_HEADER +
                  JFapChannelConstants.SIZEOF_SEGMENT_START_HEADER);
              state = STATE_PARSE_SEGMENT_START_PAYLOAD;
           }
        }
        else
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "need more data");
           needMoreData = true;
        }
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "parseSegmentStartHeader");
     }