pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-bts/+/32196 )

Change subject: nm: Drop NM_EV_SETATTR_{ACK/NACK}
......................................................................

nm: Drop NM_EV_SETATTR_{ACK/NACK}

Simply return error codes from lower layer implementations, and do
the OML handling in the common NM TS 12.21 FSMs.

As a result, we simplify the logic in the lower layers.

Change-Id: I281c07bb5ad88ee03542f092141cebe036d10aee
---
M include/osmo-bts/bts_model.h
M include/osmo-bts/nm_common_fsm.h
M src/common/nm_bb_transc_fsm.c
M src/common/nm_bts_fsm.c
M src/common/nm_bts_sm_fsm.c
M src/common/nm_channel_fsm.c
M src/common/nm_common_fsm.c
M src/common/nm_radio_carrier_fsm.c
M src/osmo-bts-lc15/oml.c
M src/osmo-bts-oc2g/oml.c
M src/osmo-bts-octphy/l1_oml.c
M src/osmo-bts-omldummy/bts_model.c
M src/osmo-bts-sysmo/oml.c
M src/osmo-bts-trx/l1_if.c
M src/osmo-bts-virtual/bts_model.c
M tests/stubs.c
16 files changed, 69 insertions(+), 138 deletions(-)

Approvals:
  laforge: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h
index ef93fda..23a36ad 100644
--- a/include/osmo-bts/bts_model.h
+++ b/include/osmo-bts/bts_model.h
@@ -20,7 +20,7 @@
                        struct tlv_parsed *old_attr, struct tlv_parsed 
*new_attr,
                        void *obj);

-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int obj_kind, void *obj);

 int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo,
diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h
index 2363779..fddc76e 100644
--- a/include/osmo-bts/nm_common_fsm.h
+++ b/include/osmo-bts/nm_common_fsm.h
@@ -31,8 +31,6 @@
 enum nm_fsm_events {
        NM_EV_SW_ACT,
        NM_EV_RX_SETATTR, /* data: struct nm_fsm_ev_setattr_data */
-       NM_EV_SETATTR_ACK, /* data: struct nm_fsm_ev_setattr_data */
-       NM_EV_SETATTR_NACK, /* data: struct nm_fsm_ev_setattr_data */
        NM_EV_OPSTART_ACK,
        NM_EV_OPSTART_NACK,
        NM_EV_SHUTDOWN_START,
@@ -51,9 +49,8 @@
 extern const struct value_string nm_fsm_event_names[];

 struct nm_fsm_ev_setattr_data {
-       struct msgb *msg;
+       const struct msgb *msg;
        struct tlv_parsed *tp;
-       int cause; /* set in NM_EV_SETATTR_(N)ACK */
 };


diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c
index 82ef89d..32cbaea 100644
--- a/src/common/nm_bb_transc_fsm.c
+++ b/src/common/nm_bb_transc_fsm.c
@@ -122,13 +122,15 @@
        struct nm_fsm_ev_setattr_data *setattr_data;
        bool phy_state_connected;
        bool rsl_link_connected;
+       int rc;

        switch (event) {
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
+       case NM_EV_RX_SETATTR:
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               bb_transc->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               rc = bts_model_apply_oml(trx->bts, setattr_data->msg, 
setattr_data->tp,
+                                        NM_OC_BASEB_TRANSC, bb_transc);
+               bb_transc->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                bb_transc->mo.opstart_success = true;
@@ -245,8 +247,7 @@
        },
        [NM_BBTRANSC_ST_OP_DISABLED_OFFLINE] = {
                .in_event_mask =
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
+                       X(NM_EV_RX_SETATTR) |
                        X(NM_EV_OPSTART_ACK) |
                        X(NM_EV_OPSTART_NACK) |
                        X(NM_EV_RSL_UP) |
diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c
index 8ff57fe..4fabbcd 100644
--- a/src/common/nm_bts_fsm.c
+++ b/src/common/nm_bts_fsm.c
@@ -118,13 +118,8 @@
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
                rc = bts_model_apply_oml(bts, setattr_data->msg, 
setattr_data->tp,
                                         NM_OC_BTS, bts);
-               (void)rc;
-               break;
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
-               setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               bts->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               bts->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                bts->mo.opstart_success = true;
@@ -186,8 +181,6 @@
        [NM_BTS_ST_OP_DISABLED_OFFLINE] = {
                .in_event_mask =
                        X(NM_EV_RX_SETATTR) |
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
                        X(NM_EV_OPSTART_ACK) |
                        X(NM_EV_OPSTART_NACK),
                .out_state_mask =
diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c
index 66c4077..708656f 100644
--- a/src/common/nm_bts_sm_fsm.c
+++ b/src/common/nm_bts_sm_fsm.c
@@ -86,13 +86,15 @@
 {
        struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;
        struct nm_fsm_ev_setattr_data *setattr_data;
+       int rc;

        switch (event) {
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
+       case NM_EV_RX_SETATTR:
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               site_mgr->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               /* No bts_model_apply_oml() needed yet for site_mgr obj yet: */
+               rc = 0;
+               site_mgr->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                site_mgr->mo.opstart_success = true;
@@ -153,8 +155,7 @@
        },
        [NM_BTS_SM_ST_OP_DISABLED_OFFLINE] = {
                .in_event_mask =
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
+                       X(NM_EV_RX_SETATTR) |
                        X(NM_EV_OPSTART_ACK) |
                        X(NM_EV_OPSTART_NACK),
                .out_state_mask =
diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c
index 557d5b9..a2cf807 100644
--- a/src/common/nm_channel_fsm.c
+++ b/src/common/nm_channel_fsm.c
@@ -101,13 +101,8 @@
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
                rc = bts_model_apply_oml(ts->trx->bts, setattr_data->msg, 
setattr_data->tp,
                                         NM_OC_CHANNEL, ts);
-               (void)rc;
-               break;
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
-               setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               ts->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               ts->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                 LOGPFSML(fi, LOGL_NOTICE, "BSC trying to activate TS while 
still in avail=dependency. "
@@ -152,13 +147,8 @@
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
                rc = bts_model_apply_oml(ts->trx->bts, setattr_data->msg, 
setattr_data->tp,
                                         NM_OC_CHANNEL, ts);
-               (void)rc;
-               break;
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
-               setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               ts->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               ts->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                ts->mo.opstart_success = true;
@@ -235,8 +225,6 @@
        [NM_CHAN_ST_OP_DISABLED_DEPENDENCY] = {
                .in_event_mask =
                        X(NM_EV_RX_SETATTR) |
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
                        X(NM_EV_OPSTART_ACK) |  /* backward compatibility, 
buggy BSC */
                        X(NM_EV_OPSTART_NACK) |
                        X(NM_EV_BBTRANSC_ENABLED) |
@@ -254,8 +242,6 @@
        [NM_CHAN_ST_OP_DISABLED_OFFLINE] = {
                .in_event_mask =
                        X(NM_EV_RX_SETATTR) |
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
                        X(NM_EV_OPSTART_ACK) |
                        X(NM_EV_OPSTART_NACK) |
                        X(NM_EV_BBTRANSC_DISABLED) |
diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c
index 6a8d3d1..5298e4d 100644
--- a/src/common/nm_common_fsm.c
+++ b/src/common/nm_common_fsm.c
@@ -25,9 +25,7 @@

 const struct value_string nm_fsm_event_names[] = {
        { NM_EV_SW_ACT, "SW_ACT" },
-       { NM_EV_SETATTR_ACK, "RX_SETATTR" },
-       { NM_EV_SETATTR_ACK, "SETATTR_ACK" },
-       { NM_EV_SETATTR_NACK, "SETATTR_NACK" },
+       { NM_EV_RX_SETATTR, "RX_SETATTR" },
        { NM_EV_OPSTART_ACK, "OPSTART_ACK" },
        { NM_EV_OPSTART_NACK, "OPSTART_NACK" },
        { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" },
diff --git a/src/common/nm_radio_carrier_fsm.c 
b/src/common/nm_radio_carrier_fsm.c
index 587847f..40bccb5 100644
--- a/src/common/nm_radio_carrier_fsm.c
+++ b/src/common/nm_radio_carrier_fsm.c
@@ -110,13 +110,8 @@
                setattr_data = (struct nm_fsm_ev_setattr_data *)data;
                rc = bts_model_apply_oml(trx->bts, setattr_data->msg, 
setattr_data->tp,
                                         NM_OC_RADIO_CARRIER, trx);
-               (void)rc;
-               break;
-       case NM_EV_SETATTR_ACK:
-       case NM_EV_SETATTR_NACK:
-               setattr_data = (struct nm_fsm_ev_setattr_data *)data;
-               trx->mo.setattr_success = setattr_data->cause == 0;
-               oml_fom_ack_nack_copy_msg(setattr_data->msg, 
setattr_data->cause);
+               trx->mo.setattr_success = rc == 0;
+               oml_fom_ack_nack_copy_msg(setattr_data->msg, rc);
                break;
        case NM_EV_OPSTART_ACK:
                trx->mo.opstart_success = true;
@@ -227,8 +222,6 @@
        [NM_RCARRIER_ST_OP_DISABLED_OFFLINE] = {
                .in_event_mask =
                        X(NM_EV_RX_SETATTR) |
-                       X(NM_EV_SETATTR_ACK) |
-                       X(NM_EV_SETATTR_NACK) |
                        X(NM_EV_OPSTART_ACK) |
                        X(NM_EV_OPSTART_NACK) |
                        X(NM_EV_RSL_UP) |
diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c
index 9502765..ad2653b 100644
--- a/src/osmo-bts-lc15/oml.c
+++ b/src/osmo-bts-lc15/oml.c
@@ -1801,16 +1801,10 @@
 }

 /* callback from OML */
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
-       int rc;
        struct gsm_bts_trx *trx;
        struct lc15l1_hdl *fl1h;

@@ -1856,10 +1850,7 @@
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
-       return rc;
+       return 0;
 }

 /* callback from OML */
diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c
index 40c1c85..6e42154 100644
--- a/src/osmo-bts-oc2g/oml.c
+++ b/src/osmo-bts-oc2g/oml.c
@@ -1810,16 +1810,10 @@
 }

 /* callback from OML */
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
-       int rc;
        struct gsm_bts_trx *trx;
        struct oc2gl1_hdl *fl1h;
        uint8_t cell_size;
@@ -1861,10 +1855,7 @@
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
-       return rc;
+       return 0;
 }

 /* callback from OML */
diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c
index 8ffd1ac..6b3148c 100644
--- a/src/osmo-bts-octphy/l1_oml.c
+++ b/src/osmo-bts-octphy/l1_oml.c
@@ -1742,30 +1742,20 @@
 }

 /* callback from OML */
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
-       int rc;
        struct gsm_bts_trx *trx;

        switch (foh->msg_type) {
        case NM_MT_SET_RADIO_ATTR:
                trx = obj;
-               /*struct octphy_hdl *fl1h = trx_octphy_hdl(trx); */
                power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL);
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
-       return rc;
+       return 0;
 }


diff --git a/src/osmo-bts-omldummy/bts_model.c 
b/src/osmo-bts-omldummy/bts_model.c
index af358b6..18f1b2c 100644
--- a/src/osmo-bts-omldummy/bts_model.c
+++ b/src/osmo-bts-omldummy/bts_model.c
@@ -93,32 +93,27 @@
        return 0;
 }

-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
        int rc;

        switch (foh->msg_type) {
        case NM_MT_SET_BTS_ATTR:
-               ev_data.cause =  vbts_set_bts(obj);
+               rc = vbts_set_bts(obj);
                break;
        case NM_MT_SET_RADIO_ATTR:
-               ev_data.cause = vbts_set_trx(obj);
+               rc = vbts_set_trx(obj);
                break;
        case NM_MT_SET_CHAN_ATTR:
-               ev_data.cause = vbts_set_ts(obj);
+               rc = vbts_set_ts(obj);
+               break;
+       default:
+               rc = 0;
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
        return rc;
 }

diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index 12b50bf..89f990c 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -1714,16 +1714,10 @@
 }

 /* callback from OML */
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
-       int rc;
        struct gsm_bts_trx *trx;
        struct femtol1_hdl *fl1h;

@@ -1738,10 +1732,7 @@
                break;
        }
 
-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
-       return rc;
+       return 0;
 }

 /* callback from OML */
diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c
index 1834cf5..bf8c75e 100644
--- a/src/osmo-bts-trx/l1_if.c
+++ b/src/osmo-bts-trx/l1_if.c
@@ -548,32 +548,27 @@
 }

 /* callback from OML */
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
        int rc;

        switch (foh->msg_type) {
        case NM_MT_SET_BTS_ATTR:
-               ev_data.cause = trx_set_bts(obj);
+               rc = trx_set_bts(obj);
                break;
        case NM_MT_SET_RADIO_ATTR:
-               ev_data.cause = trx_set_trx(obj);
+               rc = trx_set_trx(obj);
                break;
        case NM_MT_SET_CHAN_ATTR:
-               ev_data.cause = trx_set_ts(obj);
+               rc = trx_set_ts(obj);
+               break;
+       default:
+               rc = 0;
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
        return rc;
 }

diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c
index 477ffb3..7461ce6 100644
--- a/src/osmo-bts-virtual/bts_model.c
+++ b/src/osmo-bts-virtual/bts_model.c
@@ -128,32 +128,27 @@
        return 0;
 }

-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 {
        struct abis_om_fom_hdr *foh = msgb_l3(msg);
-       struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, 
&foh->obj_inst);
-       struct nm_fsm_ev_setattr_data ev_data = {
-               .msg = msg,
-               .cause = 0,
-       };
        int rc;

        switch (foh->msg_type) {
        case NM_MT_SET_BTS_ATTR:
-               ev_data.cause = vbts_set_bts(obj);
+               rc = vbts_set_bts(obj);
                break;
        case NM_MT_SET_RADIO_ATTR:
-               ev_data.cause = vbts_set_trx(obj);
+               rc = vbts_set_trx(obj);
                break;
        case NM_MT_SET_CHAN_ATTR:
-               ev_data.cause = vbts_set_ts(obj);
+               rc = vbts_set_ts(obj);
+               break;
+       default:
+               rc = 0;
                break;
        }

-       rc = osmo_fsm_inst_dispatch(mo->fi,
-                                   ev_data.cause == 0 ? NM_EV_SETATTR_ACK : 
NM_EV_SETATTR_NACK,
-                                   &ev_data);
        return rc;
 }

diff --git a/tests/stubs.c b/tests/stubs.c
index b24dfc9..d05703c 100644
--- a/tests/stubs.c
+++ b/tests/stubs.c
@@ -18,7 +18,7 @@
 { return 0; }
 int bts_model_trx_init(struct gsm_bts_trx *trx)
 { return 0; }
-int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+int bts_model_apply_oml(struct gsm_bts *bts, const struct msgb *msg,
                        struct tlv_parsed *new_attr, int kind, void *obj)
 { return 0; }


--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32196
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I281c07bb5ad88ee03542f092141cebe036d10aee
Gerrit-Change-Number: 32196
Gerrit-PatchSet: 6
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to