@ -683,10 +683,10 @@ void P25PacketData::dispatchToFNE(uint32_t peerId)
}
write_PDU_User ( peer . first , nullptr , status - > header , status - > extendedAddress , status - > pduUserData , true ) ;
if ( m_network - > m_debug ) {
// if (m_network->m_debug) {
LogDebug ( LOG_NET , " P25, srcPeer = %u, dstPeer = %u, duid = $%02X, srcId = %u, dstId = %u " ,
peerId , peer . first , DUID : : PDU , srcId , dstId ) ;
}
// }
i + + ;
}
@ -713,16 +713,16 @@ void P25PacketData::dispatchToFNE(uint32_t peerId)
}
write_PDU_User ( dstPeerId , peer . second , status - > header , status - > extendedAddress , status - > pduUserData ) ;
if ( m_network - > m_debug ) {
// if (m_network->m_debug) {
LogDebug ( LOG_NET , " P25, srcPeer = %u, dstPeer = %u, duid = $%02X, srcId = %u, dstId = %u " ,
peerId , dstPeerId , DUID : : PDU , srcId , dstId ) ;
}
// }
}
}
}
}
/* Helper to dispatch PDU user data back to the FNE network. */
/* Helper to dispatch PDU user data back to the local FNE network. (Will not transmit to external peers.) */
void P25PacketData : : dispatchUserFrameToFNE ( p25 : : data : : DataHeader & dataHeader , bool extendedAddress , uint8_t * pduUserData )
{
@ -759,19 +759,6 @@ void P25PacketData::dispatchUserFrameToFNE(p25::data::DataHeader& dataHeader, bo
}
m_network - > m_frameQueue - > flushQueue ( ) ;
}
// repeat traffic to external peers
if ( m_network - > m_host - > m_peerNetworks . size ( ) > 0U ) {
for ( auto peer : m_network - > m_host - > m_peerNetworks ) {
uint32_t dstPeerId = peer . second - > getPeerId ( ) ;
write_PDU_User ( dstPeerId , peer . second , dataHeader , extendedAddress , pduUserData ) ;
if ( m_network - > m_debug ) {
LogDebug ( LOG_NET , " P25, dstPeer = %u, duid = $%02X, srcId = %u, dstId = %u " ,
dstPeerId , DUID : : PDU , srcId , dstId ) ;
}
}
}
}
/* Helper used to process SNDCP control data from PDU data. */
@ -962,10 +949,11 @@ void P25PacketData::write_PDU_User(uint32_t peerId, network::PeerNetwork* peerNe
uint32_t blocksToFollow = dataHeader . getBlocksToFollow ( ) ;
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, peerId = %u, ack = %u, outbound = %u, fmt = $%02X, mfId = $%02X, sap = $%02X, fullMessage = %u, blocksToFollow = %u, padLength = %u, packetLength = %u, S = %u, n = %u, seqNo = %u, lastFragment = %u, hdrOffset = %u, llId = %u " ,
peerId , dataHeader . getAckNeeded ( ) , dataHeader . getOutbound ( ) , dataHeader . getFormat ( ) , dataHeader . getMFId ( ) , dataHeader . getSAP ( ) , dataHeader . getFullMessage ( ) ,
dataHeader . getBlocksToFollow ( ) , dataHeader . getPadLength ( ) , dataHeader . getPacketLength ( ) , dataHeader . getSynchronize ( ) , dataHeader . getNs ( ) , dataHeader . getFSN ( ) , dataHeader . getLastFragment ( ) ,
dataHeader . getHeaderOffset ( ) , dataHeader . getLLId ( ) ) ;
if ( m_network - > m_verbosePacketData )
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, peerId = %u, ack = %u, outbound = %u, fmt = $%02X, mfId = $%02X, sap = $%02X, fullMessage = %u, blocksToFollow = %u, padLength = %u, packetLength = %u, S = %u, n = %u, seqNo = %u, lastFragment = %u, hdrOffset = %u, llId = %u " ,
peerId , dataHeader . getAckNeeded ( ) , dataHeader . getOutbound ( ) , dataHeader . getFormat ( ) , dataHeader . getMFId ( ) , dataHeader . getSAP ( ) , dataHeader . getFullMessage ( ) ,
dataHeader . getBlocksToFollow ( ) , dataHeader . getPadLength ( ) , dataHeader . getPacketLength ( ) , dataHeader . getSynchronize ( ) , dataHeader . getNs ( ) , dataHeader . getFSN ( ) , dataHeader . getLastFragment ( ) ,
dataHeader . getHeaderOffset ( ) , dataHeader . getLLId ( ) ) ;
// generate the PDU header and 1/2 rate Trellis
dataHeader . encode ( buffer ) ;
@ -995,16 +983,18 @@ void P25PacketData::write_PDU_User(uint32_t peerId, network::PeerNetwork* peerNe
blocksToFollow - - ;
networkBlock + + ;
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, extended address, sap = $%02X, srcLlId = %u " ,
dataHeader . getEXSAP ( ) , dataHeader . getSrcLLId ( ) ) ;
if ( m_network - > m_verbosePacketData )
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, extended address, sap = $%02X, srcLlId = %u " ,
dataHeader . getEXSAP ( ) , dataHeader . getSrcLLId ( ) ) ;
}
// are we processing extended address data from the first block?
if ( ( dataHeader . getFormat ( ) = = PDUFormatType : : CONFIRMED ) & & ( dataHeader . getSAP ( ) = = PDUSAP : : EXT_ADDR ) & & extendedAddress ) {
dataHeader . encodeExtAddr ( pduUserData ) ;
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, sap = $%02X, srcLlId = %u " ,
dataHeader . getEXSAP ( ) , dataHeader . getSrcLLId ( ) ) ;
if ( m_network - > m_verbosePacketData )
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, sap = $%02X, srcLlId = %u " ,
dataHeader . getEXSAP ( ) , dataHeader . getSrcLLId ( ) ) ;
}
if ( dataHeader . getFormat ( ) ! = PDUFormatType : : AMBT ) {
@ -1022,9 +1012,10 @@ void P25PacketData::write_PDU_User(uint32_t peerId, network::PeerNetwork* peerNe
dataBlock . setSerialNo ( i ) ;
dataBlock . setData ( pduUserData + dataOffset ) ;
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, peerId = %u, block %u, fmt = $%02X, lastBlock = %u " ,
peerId , ( dataHeader . getFormat ( ) = = PDUFormatType : : CONFIRMED ) ? dataBlock . getSerialNo ( ) : i , dataBlock . getFormat ( ) ,
dataBlock . getLastBlock ( ) ) ;
if ( m_network - > m_verbosePacketData )
LogMessage ( LOG_NET , P25_PDU_STR " , OSP, peerId = %u, block %u, fmt = $%02X, lastBlock = %u " ,
peerId , ( dataHeader . getFormat ( ) = = PDUFormatType : : CONFIRMED ) ? dataBlock . getSerialNo ( ) : i , dataBlock . getFormat ( ) ,
dataBlock . getLastBlock ( ) ) ;
: : memset ( buffer , 0x00U , P25_PDU_FEC_LENGTH_BYTES ) ;
dataBlock . encode ( buffer ) ;