Fix trailing newline mess with LOGP(C) in rlcmac/csn1
Output was incorrect before this patch. LOPC was being called without having any initial LOGP, and trailing newline was usually missing at the end. Since csnDecoder/encoder functions are recursive, it's difficult to handle logging state in a coherent way inside them. Let's better simply control start/end of logging related topics in the callers of those functions, and simply use LOGPC everywhere in csn1.cpp. Change-Id: I50da7560939fac360b7545e2a6bfaf45ed0c4832
This commit is contained in:
parent
3ff1a3c6d5
commit
ac2b866426
|
@ -114,8 +114,9 @@ static const struct value_string csn1_error_names[] = {
|
|||
static gint16 ProcessError_impl(const char *file, int line, unsigned readIndex,
|
||||
const char* sz, gint16 err, const CSN_DESCR* pDescr)
|
||||
{
|
||||
/* Don't add trailing newline, top caller is responsible for appending it */
|
||||
if (err != CSN_OK)
|
||||
LOGPSRC(DCSN1, LOGL_ERROR, file, line, "%s: error %s (%d) at %s (idx %d)\n",
|
||||
LOGPSRC(DCSN1, LOGL_ERROR, file, line, "%s: error %s (%d) at %s (idx %d)",
|
||||
sz, get_value_string(csn1_error_names, err), err,
|
||||
pDescr ? pDescr->sz : "-", readIndex);
|
||||
return err;
|
||||
|
|
|
@ -4825,11 +4825,15 @@ int decode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data)
|
|||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
|
||||
return CSN_ERROR_GENERAL;
|
||||
}
|
||||
|
||||
data->NrOfBits = 23 * 8;
|
||||
csnStreamInit(&ar, 0, data->NrOfBits);
|
||||
readIndex += 6;
|
||||
data->u.MESSAGE_TYPE = bitvec_read_field(vector, &readIndex, 6);
|
||||
readIndex = 0;
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere, so we need to start the log somewhere... */
|
||||
LOGP(DCSN1, LOGL_INFO, "csnStreamDecoder (type=%d): ", data->u.MESSAGE_TYPE);
|
||||
switch (data->u.MESSAGE_TYPE)
|
||||
{
|
||||
case MT_PACKET_CELL_CHANGE_FAILURE:
|
||||
|
@ -4913,6 +4917,10 @@ int decode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data)
|
|||
break;
|
||||
}
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere without trailing
|
||||
newline, so as a caller we are responisble for submitting it */
|
||||
LOGPC(DCSN1, LOGL_INFO, "\n");
|
||||
|
||||
if (ret > 0) {
|
||||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Got %d remaining bits unhandled by decoder at the end of bitvec\n", ret);
|
||||
ret = 0;
|
||||
|
@ -4983,6 +4991,9 @@ int decode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data)
|
|||
|
||||
csnStreamInit(&ar, bit_offset, bit_length);
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere, so we need to start the log somewhere... */
|
||||
LOGP(DCSN1, LOGL_INFO, "csnStreamDecoder (type=%d): ", data->u.MESSAGE_TYPE);
|
||||
|
||||
switch (data->u.MESSAGE_TYPE)
|
||||
{
|
||||
case MT_PACKET_ACCESS_REJECT:
|
||||
|
@ -5115,6 +5126,10 @@ int decode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data)
|
|||
break;
|
||||
}
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere without trailing
|
||||
newline, so as a caller we are responisble for submitting it */
|
||||
LOGPC(DCSN1, LOGL_INFO, "\n");
|
||||
|
||||
if (ret > 0) {
|
||||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Got %d remaining bits unhandled by decoder at the end of bitvec\n", ret);
|
||||
ret = 0;
|
||||
|
@ -5133,6 +5148,9 @@ int encode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data)
|
|||
data->NrOfBits = 23 * 8;
|
||||
csnStreamInit(&ar, 0, data->NrOfBits);
|
||||
writeIndex = 0;
|
||||
|
||||
/* recursive csnStreamEncoder call uses LOGPC everywhere, so we need to start the log somewhere... */
|
||||
LOGP(DCSN1, LOGL_INFO, "csnStreamEncoder (type=%d): ", data->u.MESSAGE_TYPE);
|
||||
switch (data->u.MESSAGE_TYPE)
|
||||
{
|
||||
case MT_PACKET_CELL_CHANGE_FAILURE:
|
||||
|
@ -5216,6 +5234,10 @@ int encode_gsm_rlcmac_uplink(bitvec * vector, RlcMacUplink_t * data)
|
|||
break;
|
||||
}
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere without trailing
|
||||
newline, so as a caller we are responisble for submitting it */
|
||||
LOGPC(DCSN1, LOGL_INFO, "\n");
|
||||
|
||||
if (ret > 0) {
|
||||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Got %d remaining bits unhandled by encoder at the end of bitvec\n", ret);
|
||||
ret = 0;
|
||||
|
@ -5283,6 +5305,9 @@ int encode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data)
|
|||
|
||||
csnStreamInit(&ar, bit_offset, bit_length);
|
||||
|
||||
|
||||
/* recursive csnStreamEncoder call uses LOGPC everywhere, so we need to start the log somewhere... */
|
||||
LOGP(DCSN1, LOGL_INFO, "csnStreamEncoder (type=%d): ", data->u.MESSAGE_TYPE);
|
||||
switch (data->u.MESSAGE_TYPE)
|
||||
{
|
||||
case MT_PACKET_ACCESS_REJECT:
|
||||
|
@ -5415,6 +5440,10 @@ int encode_gsm_rlcmac_downlink(bitvec * vector, RlcMacDownlink_t * data)
|
|||
break;
|
||||
}
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere without trailing
|
||||
newline, so as a caller we are responisble for submitting it */
|
||||
LOGPC(DCSN1, LOGL_INFO, "\n");
|
||||
|
||||
if (ret > 0) {
|
||||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Got %d remaining bits unhandled by encoder at the end of bitvec\n", ret);
|
||||
ret = 0;
|
||||
|
@ -5566,8 +5595,15 @@ int decode_gsm_ra_cap(bitvec * vector, MS_Radio_Access_capability_t *data)
|
|||
unsigned readIndex = 0;
|
||||
|
||||
csnStreamInit(&ar, 0, 8 * vector->data_len);
|
||||
|
||||
/* recursive csnStreamEncoder call uses LOGPC everywhere, so we need to start the log somewhere... */
|
||||
LOGP(DCSN1, LOGL_INFO, "csnStreamEncoder (RAcap): ");
|
||||
ret = csnStreamDecoder(&ar, CSNDESCR(MS_Radio_Access_capability_t), vector, readIndex, data);
|
||||
|
||||
/* recursive csnStreamDecoder call uses LOGPC everywhere without trailing
|
||||
newline, so as a caller we are responisble for submitting it */
|
||||
LOGPC(DCSN1, LOGL_INFO, "\n");
|
||||
|
||||
if (ret > 0) {
|
||||
LOGP(DRLCMACDATA, LOGL_NOTICE, "Got %d remaining bits unhandled by decoder at the end of bitvec\n", ret);
|
||||
ret = 0;
|
||||
|
|
Loading…
Reference in New Issue