Vadim Yanitskiy has uploaded this change for review. ( 
https://gerrit.osmocom.org/13877


Change subject: common/oml.c: introduce and use both LOGPFOH and DEBUGPFOH
......................................................................

common/oml.c: introduce and use both LOGPFOH and DEBUGPFOH

Change-Id: I9e9d6ccb88c9c9d35b2ce5778fa2580382704089
---
M src/common/oml.c
1 file changed, 44 insertions(+), 51 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/77/13877/1

diff --git a/src/common/oml.c b/src/common/oml.c
index de7a0e7..f288078 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -49,6 +49,9 @@
 #include <osmo-bts/signal.h>
 #include <osmo-bts/phy_link.h>

+#define LOGPFOH(ss, lvl, foh, fmt, args ...) LOGP(ss, lvl, "%s: " fmt, 
abis_nm_dump_foh(foh), ## args)
+#define DEBUGPFOH(ss, foh, fmt, args ...) LOGPFOH(ss, LOGL_DEBUG, foh, fmt, ## 
args)
+
 static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg);

 static struct tlv_definition abis_nm_att_tlvdef_ipa_local = {};
@@ -534,14 +537,12 @@
        if (!foh || !bts)
                return -EINVAL;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx GET ATTR\n");
+       DEBUGPFOH(DOML, foh, "Rx GET ATTR\n");

        /* Determine which OML object is addressed */
        mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst);
        if (!mo) {
-               LOGP(DOML, LOGL_ERROR, "%s Get Attributes for unknown Object 
Instance\n",
-                    abis_nm_dump_foh(foh));
+               LOGPFOH(DOML, LOGL_ERROR, foh, "Get Attributes for unknown 
Object Instance\n");
                return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN);
        }

@@ -558,7 +559,7 @@

        rc = oml_tx_attr_resp(mo, TLVP_VAL(&tp, NM_ATT_LIST_REQ_ATTR), 
TLVP_LEN(&tp, NM_ATT_LIST_REQ_ATTR));
        if (rc < 0) {
-               LOGP(DOML, LOGL_ERROR, "responding to O&M Get Attributes 
message with NACK 0%x\n", -rc);
+               LOGPFOH(DOML, LOGL_ERROR, foh, "Responding to O&M Get 
Attributes message with NACK 0%x\n", -rc);
                return oml_fom_ack_nack(msg, -rc);
        }

@@ -573,8 +574,7 @@
        int rc, i;
        const uint8_t *payload;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx SET BTS ATTR\n");
+       DEBUGPFOH(DOML, foh, "Rx SET BTS ATTR\n");

        rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));
        if (rc < 0) {
@@ -590,7 +590,8 @@
                        oml_tx_failure_event_rep(&bts->mo, 
OSMO_EVT_WARN_SW_WARN,
                                                 "Given ARFCN %u is not 
supported",
                                                 arfcn);
-                       LOGP(DOML, LOGL_NOTICE, "Given ARFCN %d is not 
supported.\n", arfcn);
+                       /* FIXME: use proper format specifier for uint16_t */
+                       LOGPFOH(DOML, LOGL_ERROR, foh, "Given ARFCN %d is not 
supported.\n", arfcn);
                        return oml_fom_ack_nack(msg, NM_NACK_FREQ_NOTAVAIL);
                }
        }
@@ -637,8 +638,8 @@

                switch (val[0]) {
                case 0xFF: /* Osmocom specific Extension of TS 12.21 */
-                       LOGP(DOML, LOGL_NOTICE, "WARNING: Radio Link Timeout "
-                            "explicitly disabled, only use this for lab 
testing!\n");
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "WARNING: Radio Link 
Timeout "
+                               "explicitly disabled, only use this for lab 
testing!\n");
                        bts->radio_link_timeout = -1;
                        break;
                case 0x01: /* Based on uplink SACCH (radio link timeout) */
@@ -650,7 +651,7 @@
                        /* fall-through */
                case 0x02: /* Based on RXLEV/RXQUAL measurements */
                default:
-                       LOGP(DOML, LOGL_NOTICE, "Given Conn. Failure Criterion "
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "Given Conn. Failure 
Criterion "
                                "not supported. Please use criterion 0x01 with "
                                "RADIO_LINK_TIMEOUT value of 4..64\n");
                        return oml_fom_ack_nack(msg, NM_NACK_PARAM_RANGE);
@@ -664,15 +665,15 @@
                        uint32_t t200_ms = payload[i] * abis_nm_t200_ms[i];
 #if 0
                        bts->t200_ms[i] = t200_ms;
-                       DEBUGP(DOML, "T200[%u]: OML=%u, mult=%u => %u ms\n",
-                               i, payload[i], abis_nm_t200_mult[i],
-                               bts->t200_ms[i]);
+                       DEBUGPFOH(DOML, foh, "T200[%u]: OML=%u, mult=%u => %u 
ms\n",
+                                 i, payload[i], abis_nm_t200_mult[i],
+                                 bts->t200_ms[i]);
 #else
                        /* we'd rather use the 1s/2s (long) defaults by
                         * libosmocore, as we appear to have some bug(s)
                         * related to handling T200 expiration in
                         * libosmogsm lapd(m) code? */
-                       LOGP(DOML, LOGL_NOTICE, "Ignoring T200[%u] (%u ms) "
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "Ignoring T200[%u] (%u 
ms) "
                                "as sent by BSC due to suspected LAPDm bug!\n",
                                i, t200_ms);
 #endif
@@ -713,8 +714,7 @@
        if (TLVP_PRES_LEN(&tp, NM_ATT_BTS_AIR_TIMER, 1)) {
                uint8_t t3105 = *TLVP_VAL(&tp, NM_ATT_BTS_AIR_TIMER);
                if (t3105 == 0) {
-                       LOGP(DOML, LOGL_NOTICE,
-                               "T3105 must have a value != 0.\n");
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "T3105 must have a 
value != 0.\n");
                        return oml_fom_ack_nack(msg, NM_NACK_PARAM_RANGE);
                }
                bts->t3105_ms = t3105 * 10;
@@ -743,8 +743,7 @@
        struct tlv_parsed tp, *tp_merged;
        int rc;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx SET RADIO CARRIER ATTR\n");
+       DEBUGPFOH(DOML, foh, "Rx SET RADIO CARRIER ATTR\n");

        rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));
        if (rc < 0) {
@@ -774,8 +773,8 @@
        /* 9.4.47 RF Max Power Reduction */
        if (TLVP_PRES_LEN(&tp, NM_ATT_RF_MAXPOWR_R, 1)) {
                trx->max_power_red = *TLVP_VAL(&tp, NM_ATT_RF_MAXPOWR_R) * 2;
-               LOGP(DOML, LOGL_INFO, "Set RF Max Power Reduction = %d dBm\n",
-                    trx->max_power_red);
+               LOGPFOH(DOML, LOGL_INFO, foh, "Set RF Max Power Reduction to "
+                       "%d dBm\n", trx->max_power_red);
        }
        /* 9.4.5 ARFCN List */
 #if 0
@@ -792,7 +791,7 @@
                        if (arfcn > 1024)
                                return oml_fom_ack_nack(msg, 
NM_NACK_FREQ_NOTAVAIL);
                        trx->arfcn_list[i] = arfcn;
-                       LOGP(DOML, LOGL_INFO, " ARFCN list = %d\n", 
trx->arfcn_list[i]);
+                       LOGPFOH(DOML, LOGL_INFO, foh, " ARFCN list = %d\n", 
trx->arfcn_list[i]);
                }
                trx->arfcn_num = length;
        } else
@@ -804,7 +803,7 @@
                uint16_t length = TLVP_LEN(&tp, NM_ATT_ARFCN_LIST);
                uint16_t arfcn;
                if (length != 2) {
-                       LOGP(DOML, LOGL_ERROR, "Expecting only one ARFCN, "
+                       LOGPFOH(DOML, LOGL_ERROR, foh, "Expecting only one 
ARFCN, "
                                "because hopping not supported\n");
                        return oml_fom_ack_nack(msg, 
NM_NACK_MSGINCONSIST_PHYSCFG);
                }
@@ -816,8 +815,7 @@
                                                 OSMO_EVT_WARN_SW_WARN,
                                                 "Given ARFCN %u is 
unsupported",
                                                 arfcn);
-                       LOGP(DOML, LOGL_NOTICE,
-                            "Given ARFCN %u is unsupported.\n", arfcn);
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "Given ARFCN %u is 
unsupported.\n", arfcn);
                        return oml_fom_ack_nack(msg, NM_NACK_FREQ_NOTAVAIL);
                }
                trx->arfcn = arfcn;
@@ -915,8 +913,7 @@
        struct tlv_parsed tp, *tp_merged;
        int rc;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx SET CHAN ATTR\n");
+       DEBUGPFOH(DOML, foh, "Rx SET CHAN ATTR\n");

        rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));
        if (rc < 0) {
@@ -929,13 +926,13 @@
        /* 9.4.21 HSN... */
        /* 9.4.27 MAIO */
        if (TLVP_PRESENT(&tp, NM_ATT_HSN) || TLVP_PRESENT(&tp, NM_ATT_MAIO)) {
-               LOGP(DOML, LOGL_NOTICE, "SET CHAN ATTR: Frequency hopping not 
supported.\n");
+               LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Frequency 
hopping not supported.\n");
                return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP);
        }

        /* 9.4.52 Starting Time */
        if (TLVP_PRESENT(&tp, NM_ATT_START_TIME)) {
-               LOGP(DOML, LOGL_NOTICE, "SET CHAN ATTR: Starting time not 
supported.\n");
+               LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Starting time 
not supported.\n");
                return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP);
        }

@@ -946,7 +943,7 @@
        /* Call into BTS driver to check attribute values */
        rc = bts_model_check_oml(bts, foh->msg_type, ts->mo.nm_attr, tp_merged, 
ts);
        if (rc < 0) {
-               LOGP(DOML, LOGL_ERROR, "SET CHAN ATTR: invalid attribute value, 
rc=%d\n", rc);
+               LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: invalid 
attribute value, rc=%d\n", rc);
                talloc_free(tp_merged);
                /* Send NACK */
                return oml_fom_ack_nack(msg, -rc);
@@ -962,9 +959,9 @@
                ts->pchan = abis_nm_pchan4chcomb(comb);
                rc = conf_lchans(ts);
                if (rc < 0) {
-                       LOGP(DOML, LOGL_ERROR, "SET CHAN ATTR: invalid Chan 
Comb 0x%x"
-                            " (pchan=%s, conf_lchans()->%d)\n",
-                            comb, gsm_pchan_name(ts->pchan), rc);
+                       LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: invalid 
Chan Comb 0x%x"
+                               " (pchan=%s, conf_lchans()->%d)\n",
+                               comb, gsm_pchan_name(ts->pchan), rc);
                        talloc_free(tp_merged);
                        /* Send NACK */
                        return oml_fom_ack_nack(msg, -rc);
@@ -980,7 +977,7 @@
                /* If there is no TSC specified, use the BCC */
                ts->tsc = BSIC2BCC(bts->bsic);
        }
-       LOGP(DOML, LOGL_INFO, "%s SET CHAN ATTR (TSC=%u pchan=%s)\n",
+       LOGPFOH(DOML, LOGL_INFO, foh, "%s SET CHAN ATTR (TSC=%u pchan=%s)\n",
                gsm_abis_mo_name(&ts->mo), ts->tsc, gsm_pchan_name(ts->pchan));

        /* call into BTS driver to apply new attributes to hardware */
@@ -994,8 +991,7 @@
        struct gsm_abis_mo *mo;
        void *obj;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx OPSTART\n");
+       DEBUGPFOH(DOML, foh, "Rx OPSTART\n");

        /* Step 1: Resolve MO by obj_class/obj_inst */
        mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst);
@@ -1005,7 +1001,7 @@

        /* Step 2: Do some global dependency/consistency checking */
        if (mo->nm_state.operational == NM_OPSTATE_ENABLED) {
-               DEBUGP(DOML, "... automatic ACK, OP state already was 
Enabled\n");
+               DEBUGPFOH(DOML, foh, "... automatic ACK, OP state already was 
Enabled\n");
                return oml_mo_opstart_ack(mo);
        }

@@ -1022,17 +1018,16 @@
        void *obj;
        int rc;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx CHG ADM STATE\n");
+       DEBUGPFOH(DOML, foh, "Rx CHG ADM STATE\n");

        rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));
        if (rc < 0) {
-               LOGP(DOML, LOGL_ERROR, "Rx CHG ADM STATE: error during TLV 
parse\n");
+               LOGPFOH(DOML, LOGL_ERROR, foh, "Rx CHG ADM STATE: error during 
TLV parse\n");
                return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);
        }

        if (!TLVP_PRESENT(&tp, NM_ATT_ADM_STATE)) {
-               LOGP(DOML, LOGL_ERROR, "Rx CHG ADM STATE: no ADM state 
attribute\n");
+               LOGPFOH(DOML, LOGL_ERROR, foh, "Rx CHG ADM STATE: no ADM state 
attribute\n");
                return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);
        }

@@ -1046,9 +1041,8 @@

        /* Step 2: Do some global dependency/consistency checking */
        if (mo->nm_state.administrative == adm_state)
-               LOGP(DOML, LOGL_NOTICE,
-                    "ADM state already was %s\n",
-                    get_value_string(abis_nm_adm_state_names, adm_state));
+               LOGPFOH(DOML, LOGL_NOTICE, foh, "ADM state already was %s\n",
+                       get_value_string(abis_nm_adm_state_names, adm_state));

        /* Step 3: Ask BTS driver to apply the state chg */
        return bts_model_chg_adm_state(bts, mo, obj, adm_state);
@@ -1099,10 +1093,10 @@
                if (oh->mdisc == ABIS_OM_MDISC_FOM && oh->data[0] == 
NM_MT_GET_ATTR &&
                    msgb_l3len(msg) == oh->length + 3) {
                        /* work-around a bug present in OsmoBSC before February 
2019 */
-                       DEBUGP(DOML, "GET ATTR with off-by-3 length: Fixing up 
for OS#3799\n");
+                       DEBUGPFOH(DOML, foh, "GET ATTR with off-by-3 length: 
Fixing up for OS#3799\n");
                        oh->length += 3;
                } else {
-                       LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous 
bytes at end: %s\n",
+                       LOGPFOH(DOML, LOGL_NOTICE, foh, "OML message with %u 
extraneous bytes at end: %s\n",
                                msgb_l3len(msg) - oh->length, 
msgb_hexdump(msg));
                        /* remove extra bytes at end */
                        msgb_l3trim(msg, oh->length);
@@ -1307,8 +1301,7 @@
        void *obj;
        int rc;

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx IPA SET ATTR\n");
+       DEBUGPFOH(DOML, foh, "Rx IPA SET ATTR\n");

        rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));
        if (rc < 0) {
@@ -1415,12 +1408,12 @@

        ret = oml_tlv_parse(&tp, foh->data, oh->length - sizeof(*foh));
        if (ret < 0) {
-               LOGP(DOML, LOGL_ERROR, "TLV parse error %d\n", ret);
+               LOGPFOH(DOML, LOGL_ERROR, foh, "TLV parse error %d\n", ret);
                return oml_fom_ack_nack(msg, NM_NACK_BTSNR_UNKN);
        }

-       abis_nm_debugp_foh(DOML, foh);
-       DEBUGPC(DOML, "Rx IPACCESS(0x%02x): ", foh->msg_type);
+       /* FIXME: fix missing \n */
+       DEBUGPFOH(DOML, foh, "Rx IPACCESS(0x%02x): ", foh->msg_type);

        switch (foh->msg_type) {
        case NM_MT_IPACC_RSL_CONNECT:

--
To view, visit https://gerrit.osmocom.org/13877
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e9d6ccb88c9c9d35b2ce5778fa2580382704089
Gerrit-Change-Number: 13877
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <[email protected]>

Reply via email to