workaround spurious algid

This commit is contained in:
Max 2022-01-26 14:16:53 -05:00
parent f31302bff7
commit 53490d0c8c
2 changed files with 25 additions and 0 deletions

View File

@ -283,6 +283,12 @@ p25p1_fdma::process_HDU(const bit_vector& A)
ess_keyid = ((HB[j+2] & 0x03) << 14) + (HB[j+3] << 8) + (HB[j+4] << 2) + (HB[j+5] >> 4); // 16 bit KeyId
vf_tgid = ((HB[j+5] & 0x0f) << 12) + (HB[j+6] << 6) + HB[j+7]; // 16 bit TGID
if (ess_algid == 0) { // workaround spurious algid
ess_algid = 128; // unenc
if (d_debug)
fprintf(stderr, "***HDU detected zero algid, msgq_id %d***\n", d_msgq_id);
}
if (d_debug >= 10) {
fprintf (stderr, "ESS: tgid=%d, mfid=%x, algid=%x, keyid=%x, mi=", vf_tgid, MFID, ess_algid, ess_keyid);
for (i = 0; i < 9; i++) {
@ -374,6 +380,12 @@ p25p1_fdma::process_LDU2(const bit_vector& A)
ess_algid = (HB[j ] << 2) + (HB[j+1] >> 4); // 8 bit AlgId
ess_keyid = ((HB[j+1] & 0x0f) << 12) + (HB[j+2] << 6) + HB[j+3]; // 16 bit KeyId
if (ess_algid == 0) { // workaround spurious algid
ess_algid = 128; // unenc
if (d_debug)
fprintf(stderr, "***LDU2 detected zero algid, msgq_id %d***\n", d_msgq_id);
}
if (d_debug >= 10) {
fprintf(stderr, "ESS: algid=%x, keyid=%x, mi=", ess_algid, ess_keyid);
for (int i = 0; i < 9; i++) {

View File

@ -206,6 +206,13 @@ void p25p2_tdma::handle_mac_ptt(const uint8_t byte_buf[], const unsigned int len
}
ess_algid = byte_buf[10];
ess_keyid = (byte_buf[11] << 8) + byte_buf[12];
if (ess_algid == 0) { // workaround spurious algid
ess_algid = 128; // unenc
if (d_debug)
fprintf(stderr, "***mac_ptt detected zero algid, msgq_id %d***\n", d_msgq_id);
}
if (d_debug >= 10) {
fprintf(stderr, ", algid=%x, keyid=%x, mi=", ess_algid, ess_keyid);
for (int i = 0; i < 9; i++) {
@ -455,6 +462,12 @@ void p25p2_tdma::handle_4V2V_ess(const uint8_t dibits[])
ess_algid = (ESS_B[0] << 2) + (ESS_B[1] >> 4);
ess_keyid = ((ESS_B[1] & 15) << 12) + (ESS_B[2] << 6) + ESS_B[3];
if (ess_algid == 0) { // workaround spurious algid
ess_algid = 128; // unenc
if (d_debug)
fprintf(stderr, "***burst detected zero algid, msgq_id %d***\n", d_msgq_id);
}
j = 0;
for (i = 0; i < 9;) {
ess_mi[i++] = (uint8_t) (ESS_B[j+4] << 2) + (ESS_B[j+5] >> 4);