fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmo-gprs/+/29207 )


Change subject: rlcmac: make logging category configurable
......................................................................

rlcmac: make logging category configurable

Change-Id: Icfef6de126304da81120f1d7b212992ead3409aa
---
M include/osmocom/gprs/rlcmac/gprs_rlcmac.h
M src/rlcmac/Makefile.am
M src/rlcmac/gprs_rlcmac.c
A src/rlcmac/misc.c
4 files changed, 79 insertions(+), 52 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/07/29207/1

diff --git a/include/osmocom/gprs/rlcmac/gprs_rlcmac.h 
b/include/osmocom/gprs/rlcmac/gprs_rlcmac.h
index f83a3f9..7163b7e 100644
--- a/include/osmocom/gprs/rlcmac/gprs_rlcmac.h
+++ b/include/osmocom/gprs/rlcmac/gprs_rlcmac.h
@@ -5376,3 +5376,5 @@
  int osmo_gprs_rlcmac_decode_ms_ra_cap(struct bitvec *vector, 
MS_Radio_Access_capability_t * data);
  int osmo_gprs_rlcmac_encode_ms_ra_cap(struct bitvec *vector, 
MS_Radio_Access_capability_t * data);
  int osmo_gprs_rlcmac_decode_egprs_pkt_ch_req(guint16 ra, 
EGPRS_PacketChannelRequest_t *data);
+
+void osmo_gprs_rlcmac_set_log_cat(int cat);
diff --git a/src/rlcmac/Makefile.am b/src/rlcmac/Makefile.am
index 51e9ec1..d484a6f 100644
--- a/src/rlcmac/Makefile.am
+++ b/src/rlcmac/Makefile.am
@@ -23,6 +23,7 @@

 libosmo_gprs_rlcmac_la_SOURCES = \
        gprs_rlcmac.c \
+       misc.c \
        $(NULL)

 libosmo_gprs_rlcmac_la_LDFLAGS = \
diff --git a/src/rlcmac/gprs_rlcmac.c b/src/rlcmac/gprs_rlcmac.c
index 80b399b..b0b7ca8 100644
--- a/src/rlcmac/gprs_rlcmac.c
+++ b/src/rlcmac/gprs_rlcmac.c
@@ -35,8 +35,7 @@
 #include <osmocom/csn1/csn1.h>
 #include <osmocom/gprs/rlcmac/gprs_rlcmac.h>

-/* FIXME: configurable logging category */
-#define DRLCMACDATA    DLGLOBAL
+extern int g_log_cat;

 /* Payload type as defined in TS 44.060 / 10.4.7 */
 #define PAYLOAD_TYPE_DATA              0
@@ -5377,12 +5376,12 @@

   if (payload_type == PAYLOAD_TYPE_DATA)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: DATA (0), not 
implemented\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: DATA (0), not implemented\n");
     return CSN_ERROR_GENERAL;
   }
   else if (payload_type == PAYLOAD_TYPE_RESERVED)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
     return CSN_ERROR_GENERAL;
   }

@@ -5484,7 +5483,7 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");

   if (ret > 0) {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "%s: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", msg_type_name, ret);
+    LOGP(g_log_cat, LOGL_NOTICE, "%s: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", msg_type_name, ret);
     ret = 0;
   }

@@ -5509,12 +5508,12 @@

   if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_DATA)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: DATA (0), not 
implemented\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: DATA (0), not implemented\n");
     return CSN_ERROR_GENERAL;
   }
   else if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_RESERVED)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
     return CSN_ERROR_GENERAL;
   }
   /* We can decode the message */
@@ -5696,7 +5695,7 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");
 
   if (ret > 0) {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "%s: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", msg_type_name, ret);
+    LOGP(g_log_cat, LOGL_NOTICE, "%s: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", msg_type_name, ret);
     ret = 0;
   }

@@ -5807,8 +5806,8 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");

   if (ret > 0 || ret == CSN_ERROR_NEED_MORE_BITS_TO_UNPACK) {
-    LOGP(DRLCMACDATA, LOGL_ERROR, "Failed to encode an Uplink block: not 
enough bits "
-                                  "in the output buffer (rc=%d)\n", ret);
+    LOGP(g_log_cat, LOGL_ERROR, "Failed to encode an Uplink block: not enough 
bits "
+                                "in the output buffer (rc=%d)\n", ret);
     ret = CSN_ERROR_NEED_MORE_BITS_TO_UNPACK;
   }

@@ -5828,12 +5827,12 @@

   if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_DATA)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: DATA (0), not 
implemented\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: DATA (0), not implemented\n");
     return CSN_ERROR_GENERAL;
   }
   else if (data->PAYLOAD_TYPE == PAYLOAD_TYPE_RESERVED)
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
     return CSN_ERROR_GENERAL;
   }
   /* We can encode the message */
@@ -6017,8 +6016,8 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");

   if (ret > 0 || ret == CSN_ERROR_NEED_MORE_BITS_TO_UNPACK) {
-    LOGP(DRLCMACDATA, LOGL_ERROR, "Failed to encode a Downlink block: not 
enough bits "
-                                  "in the output buffer (rc=%d)\n", ret);
+    LOGP(g_log_cat, LOGL_ERROR, "Failed to encode a Downlink block: not enough 
bits "
+                                "in the output buffer (rc=%d)\n", ret);
     ret = CSN_ERROR_NEED_MORE_BITS_TO_UNPACK;
   }

@@ -6039,25 +6038,25 @@
     data->CV = bitvec_read_field(vector, &readIndex, 4);
     data->SI = bitvec_read_field(vector, &readIndex, 1);
     data->R = bitvec_read_field(vector, &readIndex, 1);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "PAYLOAD_TYPE = %u ", 
(unsigned)(data->PAYLOAD_TYPE));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "CV = %u ", (unsigned)(data->CV));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "SI = %u ", (unsigned)(data->SI));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "R = %u ", (unsigned)(data->R));
+    LOGPC(g_log_cat, LOGL_NOTICE, "PAYLOAD_TYPE = %u ", 
(unsigned)(data->PAYLOAD_TYPE));
+    LOGPC(g_log_cat, LOGL_NOTICE, "CV = %u ", (unsigned)(data->CV));
+    LOGPC(g_log_cat, LOGL_NOTICE, "SI = %u ", (unsigned)(data->SI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "R = %u ", (unsigned)(data->R));
     // Octet 1
     data->spare = bitvec_read_field(vector, &readIndex, 1);
     data->PI = bitvec_read_field(vector, &readIndex, 1);
     data->TFI = bitvec_read_field(vector, &readIndex, 5);
     data->TI = bitvec_read_field(vector, &readIndex, 1);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "spare = %u ", (unsigned)(data->spare));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "PI = %u ", (unsigned)(data->PI));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "TFI = %u ", (unsigned)(data->TFI));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "TI = %u ", (unsigned)(data->TI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "spare = %u ", (unsigned)(data->spare));
+    LOGPC(g_log_cat, LOGL_NOTICE, "PI = %u ", (unsigned)(data->PI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "TFI = %u ", (unsigned)(data->TFI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "TI = %u ", (unsigned)(data->TI));

     // Octet 2
     data->BSN = bitvec_read_field(vector, &readIndex, 7);
     data->E_1 = bitvec_read_field(vector, &readIndex, 1);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "BSN = %u ", (unsigned)(data->BSN));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "E_1 = %u ", (unsigned)(data->E_1));
+    LOGPC(g_log_cat, LOGL_NOTICE, "BSN = %u ", (unsigned)(data->BSN));
+    LOGPC(g_log_cat, LOGL_NOTICE, "E_1 = %u ", (unsigned)(data->E_1));


     if (data->E_1 == 0) // Extension octet follows immediately
@@ -6069,37 +6068,37 @@
        data->LENGTH_INDICATOR[i] = bitvec_read_field(vector, &readIndex, 6);
        data->M[i] = bitvec_read_field(vector, &readIndex, 1);
        data->E[i] = bitvec_read_field(vector, &readIndex, 1);
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "LENGTH_INDICATOR[%u] = %u ", i, 
(unsigned)(data->LENGTH_INDICATOR[i]));
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "M[%u] = %u ", i, 
(unsigned)(data->M[i]));
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "E[%u] = %u ", i, 
(unsigned)(data->E[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "LENGTH_INDICATOR[%u] = %u ", i, 
(unsigned)(data->LENGTH_INDICATOR[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "M[%u] = %u ", i, 
(unsigned)(data->M[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "E[%u] = %u ", i, 
(unsigned)(data->E[i]));
         i++;
       } while((data->M[i-1] == 1)&&(data->E[i-1] == 0));
     }
     if (data->TI == 1) // TLLI field is present
     {
       data->TLLI = bitvec_read_field(vector, &readIndex, 32);
-      LOGPC(DRLCMACDATA, LOGL_NOTICE, "TLLI = %08x ", data->TLLI);
+      LOGPC(g_log_cat, LOGL_NOTICE, "TLLI = %08x ", data->TLLI);
       if (data->PI == 1) // PFI is present if TI field indicates presence of 
TLLI
       {
        data->PFI = bitvec_read_field(vector, &readIndex, 7);
        data->E_2 = bitvec_read_field(vector, &readIndex, 1);
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "PFI = %u ", (unsigned)(data->PFI));
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "E_2 = %u ", (unsigned)(data->E_2));
+        LOGPC(g_log_cat, LOGL_NOTICE, "PFI = %u ", (unsigned)(data->PFI));
+        LOGPC(g_log_cat, LOGL_NOTICE, "E_2 = %u ", (unsigned)(data->E_2));
       }
     }
     unsigned dataLen = 23 - readIndex/8;
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "DATA[%u] = ", dataLen);
+    LOGPC(g_log_cat, LOGL_NOTICE, "DATA[%u] = ", dataLen);
     assert(dataLen <= 20);
     for (i = 0; i < dataLen; i++)
     {
       data->RLC_DATA[i] = bitvec_read_field(vector, &readIndex, 8);
-      LOGPC(DRLCMACDATA, LOGL_NOTICE, "%02x", (unsigned)(data->RLC_DATA[i]));
+      LOGPC(g_log_cat, LOGL_NOTICE, "%02x", (unsigned)(data->RLC_DATA[i]));
     }
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "\n");
+    LOGPC(g_log_cat, LOGL_NOTICE, "\n");
   }
   else
   {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
+    LOGP(g_log_cat, LOGL_NOTICE, "Payload Type: RESERVED (3)\n");
     return;
   }
 }
@@ -6116,24 +6115,24 @@
     bitvec_write_field(vector, &writeIndex, data->RRBP, 2);
     bitvec_write_field(vector, &writeIndex, data->SP, 1);
     bitvec_write_field(vector, &writeIndex, data->USF, 3);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "PAYLOAD_TYPE = %u ", 
(unsigned)(data->PAYLOAD_TYPE));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "RRBP = %u ", (unsigned)(data->RRBP));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "SP = %u ", (unsigned)(data->SP));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "USF = %u ", (unsigned)(data->USF));
+    LOGPC(g_log_cat, LOGL_NOTICE, "PAYLOAD_TYPE = %u ", 
(unsigned)(data->PAYLOAD_TYPE));
+    LOGPC(g_log_cat, LOGL_NOTICE, "RRBP = %u ", (unsigned)(data->RRBP));
+    LOGPC(g_log_cat, LOGL_NOTICE, "SP = %u ", (unsigned)(data->SP));
+    LOGPC(g_log_cat, LOGL_NOTICE, "USF = %u ", (unsigned)(data->USF));

     // Octet 1
     bitvec_write_field(vector, &writeIndex, data->PR, 2);
     bitvec_write_field(vector, &writeIndex, data->TFI, 5);
     bitvec_write_field(vector, &writeIndex, data->FBI, 1);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "PR = %u ", (unsigned)(data->PR));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "TFI = %u ", (unsigned)(data->TFI));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "FBI = %u ", (unsigned)(data->FBI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "PR = %u ", (unsigned)(data->PR));
+    LOGPC(g_log_cat, LOGL_NOTICE, "TFI = %u ", (unsigned)(data->TFI));
+    LOGPC(g_log_cat, LOGL_NOTICE, "FBI = %u ", (unsigned)(data->FBI));

     // Octet 2
     bitvec_write_field(vector, &writeIndex, data->BSN, 7);
     bitvec_write_field(vector, &writeIndex, data->E_1, 1);
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "BSN = %u ", (unsigned)(data->BSN));
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "E_1 = %u ", (unsigned)(data->E_1));
+    LOGPC(g_log_cat, LOGL_NOTICE, "BSN = %u ", (unsigned)(data->BSN));
+    LOGPC(g_log_cat, LOGL_NOTICE, "E_1 = %u ", (unsigned)(data->E_1));

     // Octet 3 (optional)
     if (data->E_1 == 0)
@@ -6144,22 +6143,22 @@
        bitvec_write_field(vector, &writeIndex, data->LENGTH_INDICATOR[i], 6);
        bitvec_write_field(vector, &writeIndex, data->M[i], 1);
        bitvec_write_field(vector, &writeIndex, data->E[i], 1);
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "LENGTH_INDICATOR[%u] = %u ", i, 
(unsigned)(data->LENGTH_INDICATOR[i]));
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "M[%u] = %u ", i, 
(unsigned)(data->M[i]));
-        LOGPC(DRLCMACDATA, LOGL_NOTICE, "E[%u] = %u ", i, 
(unsigned)(data->E[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "LENGTH_INDICATOR[%u] = %u ", i, 
(unsigned)(data->LENGTH_INDICATOR[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "M[%u] = %u ", i, 
(unsigned)(data->M[i]));
+        LOGPC(g_log_cat, LOGL_NOTICE, "E[%u] = %u ", i, 
(unsigned)(data->E[i]));
         i++;
       }
       while ((data->M[i-1] == 1) && (data->E[i-1] == 0));
     }
     unsigned dataNumOctets = 23 - writeIndex/8;
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "DATA[%u] = ", dataNumOctets);
+    LOGPC(g_log_cat, LOGL_NOTICE, "DATA[%u] = ", dataNumOctets);
     assert(dataNumOctets <= 20);
     for (i = 0; i < dataNumOctets; i++)
     {
       bitvec_write_field(vector, &writeIndex, data->RLC_DATA[i], 8);
-      LOGPC(DRLCMACDATA, LOGL_NOTICE, "%02x", (unsigned)(data->RLC_DATA[i]));
+      LOGPC(g_log_cat, LOGL_NOTICE, "%02x", (unsigned)(data->RLC_DATA[i]));
     }
-    LOGPC(DRLCMACDATA, LOGL_NOTICE, "\n");
+    LOGPC(g_log_cat, LOGL_NOTICE, "\n");
   }
 }

@@ -6180,7 +6179,7 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");

   if (ret > 0) {
-    LOGP(DRLCMACDATA, LOGL_NOTICE, "RAcap: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", ret);
+    LOGP(g_log_cat, LOGL_NOTICE, "RAcap: Got %d remaining bits unhandled by 
decoder at the end of bitvec\n", ret);
     ret = 0;
   }
   return ret;
@@ -6200,8 +6199,8 @@
   LOGPC(DLCSN1, LOGL_INFO, "\n");

   if (ret > 0 || ret == CSN_ERROR_NEED_MORE_BITS_TO_UNPACK) {
-    LOGP(DRLCMACDATA, LOGL_ERROR, "Failed to encode MS RA Capability IE: not 
enough bits "
-                                  "in the output buffer (rc=%d)\n", ret);
+    LOGP(g_log_cat, LOGL_ERROR, "Failed to encode MS RA Capability IE: not 
enough bits "
+                                "in the output buffer (rc=%d)\n", ret);
     ret = CSN_ERROR_NEED_MORE_BITS_TO_UNPACK;
   }

diff --git a/src/rlcmac/misc.c b/src/rlcmac/misc.c
new file mode 100644
index 0000000..0aecbfd
--- /dev/null
+++ b/src/rlcmac/misc.c
@@ -0,0 +1,25 @@
+/*
+ * (C) 2022 by sysmocom - s.f.m.c. GmbH <[email protected]>
+ * Author: Vadim Yanitskiy <[email protected]>
+ *
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <osmocom/core/logging.h>
+
+int g_log_cat = DLGLOBAL;
+
+void osmo_gprs_rlcmac_set_log_cat(int cat)
+{
+       g_log_cat = cat;
+}

--
To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/29207
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: Icfef6de126304da81120f1d7b212992ead3409aa
Gerrit-Change-Number: 29207
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to