lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

April 2023

  • 1 participants
  • 2252 discussions
[M] Change in libosmocore[master]: codec: add SID classification functions per GSM 06.31 & 06.81
by laforge 04 Apr '23

04 Apr '23
Attention is currently required from: falconia, pespin, fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32183 ) Change subject: codec: add SID classification functions per GSM 06.31 & 06.81 ...................................................................... Patch Set 2: (1 comment) File include/osmocom/codec/codec.h: https://gerrit.osmocom.org/c/libosmocore/+/32183/comment/a26858fb_0ef8d164 PS1, Line 85: etsi_sid_class > > @pespin - then how come none of the protocol constant definitions in <osmocom/gsm/protocol/gsm_XX_ […] pespin is correct in that they predate our naming conventions. In fact, they likely even predate libosmocore. Originally in 2008 we had all of the code in openbsc.git, and then we simply copied it to libosmocore.git when we needed them on the OsmocomBB side, without thinking much about it. meanwhile we do have naming rules (which should also be documented in the wiki). For a few #defines in some gsm/protocol/foo.h file I don't care too much about it (almost no source file will include them), but in terms of symbol naming of public API functions polluting the global namespace it is a concern. The lack of a proper hierarchical namespace is one of the sad historic parts of C... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie91a52c6f04689082d8004311517d8ce0c544916 Gerrit-Change-Number: 32183 Gerrit-PatchSet: 2 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Apr 2023 20:11:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: falconia <falcon(a)freecalypso.org> Comment-In-Reply-To: pespin <pespin(a)sysmocom.de> Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: comment
1 0
0 0
[S] Change in libosmocore[master]: include/osmocom/gsm/protocol: add gsm_06_31.h
by laforge 04 Apr '23

04 Apr '23
Attention is currently required from: falconia, pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32197 ) Change subject: include/osmocom/gsm/protocol: add gsm_06_31.h ...................................................................... Patch Set 1: Code-Review+1 (1 comment) Patchset: PS1: for osmocom/gsm/protocol I think even without an OSMO_ prefix this is fine. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If004b668778d3d9cf6cd998b3af2dbfa83691529 Gerrit-Change-Number: 32197 Gerrit-PatchSet: 1 Gerrit-Owner: falconia <falcon(a)freecalypso.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: falconia <falcon(a)freecalypso.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Apr 2023 20:08:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmo-bts[master]: bts_model_apply_oml(): Drop unneded code
by pespin 04 Apr '23

04 Apr '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32195 ) Change subject: bts_model_apply_oml(): Drop unneded code ...................................................................... bts_model_apply_oml(): Drop unneded code Calls to bts_model_apply_oml() are done only for BTS, RCARRIER and RCHANNEL NM Objects in their respective Rx code paths (and they will be moved to respective FSMs in follow up patches). This function is never called with any of the GPRS NM objects. These NM Objectes have the NM_MT_IPACC_SET_ATTR msg ACKED/NACKED in its own path: oml_ipa_set_attr() rc = oml_ipa_mo_set_attr() return oml_fom_ack_nack(msg, rc); Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 --- 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 7 files changed, 20 insertions(+), 56 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index d702da7..1842008 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1814,14 +1814,6 @@ struct gsm_bts_trx *trx; struct lc15l1_hdl *fl1h; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_RADIO_ATTR: trx = obj; diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index dfcb4a6..98c2fbc 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1824,14 +1824,6 @@ struct oc2gl1_hdl *fl1h; uint8_t cell_size; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_RADIO_ATTR: trx = obj; diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 1e64e8d..01e3d56 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1754,14 +1754,6 @@ int rc; struct gsm_bts_trx *trx; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_RADIO_ATTR: trx = obj; diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index 46fa84b..7fb58f7 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -104,14 +104,6 @@ }; int rc; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: ev_data.cause = vbts_set_bts(obj); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 4be222c..67e1275 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1727,14 +1727,6 @@ struct gsm_bts_trx *trx; struct femtol1_hdl *fl1h; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_RADIO_ATTR: trx = obj; diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 5f800ae..4989bcc 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -559,14 +559,6 @@ }; int rc; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: ev_data.cause = trx_set_bts(obj); diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 64e2f8d..57e5304 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -139,14 +139,6 @@ }; int rc; - /* TODO: NM Object without FSM: */ - switch (foh->obj_class) { - case NM_OC_GPRS_NSE: - case NM_OC_GPRS_CELL: - case NM_OC_GPRS_NSVC: - return oml_fom_ack_nack(ev_data.msg, ev_data.cause); - } - switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: ev_data.cause = vbts_set_bts(obj); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 Gerrit-Change-Number: 32195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-bts[master]: bts_model_apply_oml(): Drop unneded code
by pespin 04 Apr '23

04 Apr '23
Attention is currently required from: laforge. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32195 ) Change subject: bts_model_apply_oml(): Drop unneded code ...................................................................... Patch Set 3: (1 comment) Patchset: PS3: Readding +2 after fixing description. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 Gerrit-Change-Number: 32195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 04 Apr 2023 18:30:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[M] Change in osmo-bts[master]: bts_model_apply_oml(): Drop unneded code
by pespin 04 Apr '23

04 Apr '23
Attention is currently required from: laforge. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32195 ) Change subject: bts_model_apply_oml(): Drop unneded code ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 Gerrit-Change-Number: 32195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Comment-Date: Tue, 04 Apr 2023 18:29:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[L] Change in osmo-bts[master]: WIP: Introduce NM FSM for GPRS NSE object
by pespin 04 Apr '23

04 Apr '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/32213 ) Change subject: WIP: Introduce NM FSM for GPRS NSE object ...................................................................... WIP: Introduce NM FSM for GPRS NSE object TODO: we are not copying the content of IPA Set ATTR in the IP Set ATTR ACK we are sending back. Furthermore, osmo-bsc doesn't seem to expect that ACK but something else... Change-Id: I01eadc63214a2eb5e1bce455c7e5b62bd41905ea --- M include/osmo-bts/bts.h M include/osmo-bts/nm_common_fsm.h M src/common/Makefile.am M src/common/bts.c M src/common/nm_bts_sm_fsm.c A src/common/nm_gprs_nse_fsm.c M src/common/oml.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 14 files changed, 382 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/13/32213/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 2d0eec7..bbf5dc4 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -136,6 +136,13 @@ struct gsm_abis_mo mo; }; +/* GPRS NSE; ip.access specific NM Object */ +struct gsm_gprs_nse { + struct gsm_abis_mo mo; + uint16_t nsei; + uint8_t timer[7]; +}; + /* Struct that holds one OML-Address (Address of the BSC) */ struct bsc_oml_host { struct llist_head list; @@ -224,11 +231,7 @@ /* Not entirely sure how ip.access specific this is */ struct { - struct { - struct gsm_abis_mo mo; - uint16_t nsei; - uint8_t timer[7]; - } nse; + struct gsm_gprs_nse nse; struct { struct gsm_abis_mo mo; uint16_t bvci; @@ -396,6 +399,11 @@ return (struct gsm_bts *)container_of(site_mgr, struct gsm_bts, site_mgr); } +static inline struct gsm_bts *gsm_gprs_nse_get_bts(struct gsm_gprs_nse *nse) +{ + return (struct gsm_bts *)container_of(nse, struct gsm_bts, gprs.nse); +} + struct gsm_bts *gsm_bts_alloc(void *talloc_ctx, uint8_t bts_num); struct gsm_bts *gsm_bts_num(const struct gsm_network *net, int num); diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 22a4be0..9264eea 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -94,3 +94,12 @@ NM_CHAN_ST_OP_ENABLED, }; extern struct osmo_fsm nm_chan_fsm; + +/* GPRS NSE */ +enum nm_gprs_nse_op_fsm_states { + NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED, + NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY, + NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE, + NM_GPRS_NSE_ST_OP_ENABLED, +}; +extern struct osmo_fsm nm_gprs_nse_fsm; diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 99f9924..cb5ff50 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -61,6 +61,7 @@ nm_bts_fsm.c \ nm_bb_transc_fsm.c \ nm_channel_fsm.c \ + nm_gprs_nse_fsm.c \ nm_radio_carrier_fsm.c \ probes.d \ $(NULL) diff --git a/src/common/bts.c b/src/common/bts.c index de27ad8..b37db03 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -261,16 +261,19 @@ osmo_fsm_inst_update_id_f(bts->mo.fi, "bts%d", bts->nr); gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); + bts->gprs.nse.mo.fi = osmo_fsm_inst_alloc(&nm_gprs_nse_fsm, bts, &bts->gprs.nse, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts->gprs.nse.mo.fi, "bts%d", bts->nr); + gsm_mo_init(&bts->gprs.nse.mo, bts, NM_OC_GPRS_NSE, bts->nr, 0xff, 0xff); + memcpy(&bts->gprs.nse.timer, bts_nse_timer_default, + sizeof(bts->gprs.nse.timer)); + for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { bts->gprs.nsvc[i].bts = bts; bts->gprs.nsvc[i].id = i; gsm_mo_init(&bts->gprs.nsvc[i].mo, bts, NM_OC_GPRS_NSVC, bts->nr, i, 0xff); } - memcpy(&bts->gprs.nse.timer, bts_nse_timer_default, - sizeof(bts->gprs.nse.timer)); - gsm_mo_init(&bts->gprs.nse.mo, bts, NM_OC_GPRS_NSE, - bts->nr, 0xff, 0xff); memcpy(&bts->gprs.cell.timer, bts_cell_timer_default, sizeof(bts->gprs.cell.timer)); gsm_mo_init(&bts->gprs.cell.mo, bts, NM_OC_GPRS_CELL, @@ -372,9 +375,9 @@ /* Start with the site manager */ oml_mo_state_init(&bts->site_mgr.mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); oml_mo_state_init(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_init(&bts->gprs.nse.mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); /* set BTS attr to dependency */ - oml_mo_state_init(&bts->gprs.nse.mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); oml_mo_state_init(&bts->gprs.cell.mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); oml_mo_state_init(&bts->gprs.nsvc[0].mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); oml_mo_state_init(&bts->gprs.nsvc[1].mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); @@ -446,12 +449,12 @@ LOGP(DOML, LOGL_INFO, "Main link established, sending NM Status.\n"); - /* BTS SITE MGR becomes Offline (tx SW ACT Report), BTS is DEPENDENCY */ + /* BTS SITE MGR becomes Offline (tx SW ACT Report), BTS, NSE is DEPENDENCY */ osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SW_ACT, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SW_ACT, NULL); + osmo_fsm_inst_dispatch(bts->gprs.nse.mo.fi, NM_EV_SW_ACT, NULL); /* those should all be in DEPENDENCY */ - oml_tx_state_changed(&bts->gprs.nse.mo); oml_tx_state_changed(&bts->gprs.cell.mo); oml_tx_state_changed(&bts->gprs.nsvc[0].mo); oml_tx_state_changed(&bts->gprs.nsvc[1].mo); diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 42649b5..1dc45f6 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -45,6 +45,7 @@ static void ev_dispatch_children(struct gsm_bts_sm *site_mgr, uint32_t event) { struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); + osmo_fsm_inst_dispatch(bts->gprs.nse.mo.fi, event, NULL); osmo_fsm_inst_dispatch(bts->mo.fi, event, NULL); } diff --git a/src/common/nm_gprs_nse_fsm.c b/src/common/nm_gprs_nse_fsm.c new file mode 100644 index 0000000..7361f11 --- /dev/null +++ b/src/common/nm_gprs_nse_fsm.c @@ -0,0 +1,282 @@ +/* NM GPRS NSE FSM */ + +/* (C) 2023 by sysmocom - s.m.f.c. GmbH <info(a)sysmocom.de> + * Author: Pau Espin Pedrol <pespin(a)sysmocom.de> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 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. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <errno.h> +#include <unistd.h> +#include <inttypes.h> + +#include <osmocom/core/fsm.h> +#include <osmocom/core/tdef.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> + +#include <osmo-bts/logging.h> +#include <osmo-bts/gsm_data.h> +#include <osmo-bts/bts_model.h> +#include <osmo-bts/bts.h> +#include <osmo-bts/rsl.h> +#include <osmo-bts/nm_common_fsm.h> +#include <osmo-bts/phy_link.h> +#include <osmo-bts/cbch.h> + +#define X(s) (1 << (s)) + +#define nm_gprs_nse_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +static void ev_dispatch_children(struct gsm_gprs_nse *nse, uint32_t event) +{ + /* TODO: once we have FSMs for GPRS Cell and GPRS NSVC: */ +#if 0 + struct gsm_bts *bts = gsm_gprs_nse_get_bts(nse); + osmo_fsm_inst_dispatch(bts->gprs.cell.mo.fi, event, NULL); + if (bts->gprs.nsvc[0].fi) + osmo_fsm_inst_dispatch(bts->gprs.nsvc[0].fi, event, NULL); + if (bts->gprs.nsvc[1].fi) + osmo_fsm_inst_dispatch(bts->gprs.nsvc[1].fi, event, NULL); +#endif +} + +/* Can the TS be enabled (OPSTARTed)? aka should it stay in "Disabled Dependency" state? */ +static bool nse_can_be_enabled(struct gsm_gprs_nse *nse) +{ + struct gsm_bts *bts = gsm_gprs_nse_get_bts(nse); + return bts->mo.nm_state.operational == NM_OPSTATE_ENABLED; +} + + +////////////////////////// +// FSM STATE ACTIONS +////////////////////////// + +static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + /* Reset state here: */ + + nse->mo.setattr_success = false; + nse->mo.opstart_success = false; + oml_mo_state_chg(&nse->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); +} + +static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + switch (event) { + case NM_EV_SW_ACT: + oml_mo_tx_sw_act_rep(&nse->mo); + if (nse_can_be_enabled(nse)) + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE); + else + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY); + return; + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_dependency_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + nse->mo.setattr_success = false; + nse->mo.opstart_success = false; + oml_mo_state_chg(&nse->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY, -1); +} + +static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts *bts = gsm_gprs_nse_get_bts(nse); + struct nm_fsm_ev_setattr_data *setattr_data; + int rc; + + switch (event) { + case NM_EV_RX_SETATTR: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + rc = bts_model_apply_oml(bts, setattr_data->msg, + &nse->mo, nse); + nse->mo.setattr_success = rc == 0; + oml_mo_fom_ack_nack(&nse->mo, + ((struct abis_om_fom_hdr *)msgb_l3(setattr_data->msg))->msg_type, + rc); + break; + case NM_EV_RX_OPSTART: + if (!nse->mo.setattr_success) { + oml_mo_opstart_nack(&nse->mo, NM_NACK_CANT_PERFORM); + return; + } + bts_model_opstart(bts, &nse->mo, nse); + break; + case NM_EV_OPSTART_ACK: + nse->mo.opstart_success = true; + oml_mo_opstart_ack(&nse->mo); + nm_gprs_nse_fsm_state_chg(fi, NM_CHAN_ST_OP_ENABLED); + return; + case NM_EV_OPSTART_NACK: + nse->mo.opstart_success = false; + oml_mo_opstart_nack(&nse->mo, (int)(intptr_t)data); + return; + default: + OSMO_ASSERT(0); + } +} + +static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + nse->mo.opstart_success = false; + oml_mo_state_chg(&nse->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); +} + +static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + struct gsm_bts *bts = gsm_gprs_nse_get_bts(nse); + struct nm_fsm_ev_setattr_data *setattr_data; + int rc; + + switch (event) { + case NM_EV_RX_SETATTR: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + rc = bts_model_apply_oml(bts, setattr_data->msg, &nse->mo, bts); + nse->mo.setattr_success = rc == 0; + oml_mo_fom_ack_nack(&nse->mo, + ((struct abis_om_fom_hdr *)msgb_l3(setattr_data->msg))->msg_type, + rc); + break; + case NM_EV_RX_OPSTART: + if (!nse->mo.setattr_success) { + oml_mo_opstart_nack(&nse->mo, NM_NACK_CANT_PERFORM); + return; + } + bts_model_opstart(bts, &nse->mo, bts); + break; + case NM_EV_OPSTART_ACK: + nse->mo.opstart_success = true; + oml_mo_opstart_ack(&nse->mo); + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED); + break; /* check statechg below */ + case NM_EV_OPSTART_NACK: + nse->mo.opstart_success = false; + oml_mo_opstart_nack(&nse->mo, (int)(intptr_t)data); + return; + default: + OSMO_ASSERT(0); + } +} + +static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + oml_mo_state_chg(&nse->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); +} + +static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ +} + +static void nm_gprs_nse_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_gprs_nse *nse = (struct gsm_gprs_nse *)fi->priv; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&nse->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + ev_dispatch_children(nse, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(nse, event); + nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED); + break; + default: + OSMO_ASSERT(false); + } +} + +static struct osmo_fsm_state nm_gprs_nse_fsm_states[] = { + [NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED] = { + .in_event_mask = + X(NM_EV_SW_ACT), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY) | + X(NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE), + .name = "DISABLED_NOTINSTALLED", + .onenter = st_op_disabled_notinstalled_on_enter, + .action = st_op_disabled_notinstalled, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_DEPENDENCY] = { + .in_event_mask = + X(NM_EV_RX_SETATTR) | + X(NM_EV_RX_OPSTART) | /* backward compatibility, buggy BSC */ + X(NM_EV_OPSTART_ACK) | /* backward compatibility, buggy BSC */ + X(NM_EV_OPSTART_NACK), /* backward compatibility, buggy BSC */ + .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | + X(NM_CHAN_ST_OP_ENABLED), /* backward compatibility, buggy BSC */ + .name = "DISABLED_DEPENDENCY", + .onenter = st_op_disabled_dependency_on_enter, + .action = st_op_disabled_dependency, + }, + [NM_GPRS_NSE_ST_OP_DISABLED_OFFLINE] = { + .in_event_mask = + X(NM_EV_RX_SETATTR) | + X(NM_EV_RX_OPSTART) | + X(NM_EV_OPSTART_ACK) | + X(NM_EV_OPSTART_NACK), + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED) | + X(NM_GPRS_NSE_ST_OP_ENABLED), + .name = "DISABLED_OFFLINE", + .onenter = st_op_disabled_offline_on_enter, + .action = st_op_disabled_offline, + }, + [NM_GPRS_NSE_ST_OP_ENABLED] = { + .in_event_mask = 0, + .out_state_mask = + X(NM_GPRS_NSE_ST_OP_DISABLED_NOTINSTALLED), + .name = "ENABLED", + .onenter = st_op_enabled_on_enter, + .action = st_op_enabled, + }, +}; + +struct osmo_fsm nm_gprs_nse_fsm = { + .name = "NM_GPRS_NSE_OP", + .states = nm_gprs_nse_fsm_states, + .num_states = ARRAY_SIZE(nm_gprs_nse_fsm_states), + .event_names = nm_fsm_event_names, + .allstate_action = nm_gprs_nse_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), + .log_subsys = DOML, +}; + +static __attribute__((constructor)) void nm_gprs_nse_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nm_gprs_nse_fsm) == 0); +} diff --git a/src/common/oml.c b/src/common/oml.c index 846bb23..1482811 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1087,7 +1087,7 @@ if (!mo->fi) { /* Some NM objets still don't have FSMs implemented, such as - * NM_OC_GPRS_NSE, NM_OC_GPRS_CELL or NM_OC_GPRS_NSVC. For those, don't go through FSM: + * NM_OC_GPRS_CELL or NM_OC_GPRS_NSVC. For those, don't go through FSM: */ return bts_model_opstart(bts, mo, obj); } @@ -1248,16 +1248,21 @@ * manufacturer related messages */ -static int oml_ipa_mo_set_attr_nse(void *obj, const struct tlv_parsed *tp) +static int oml_ipa_mo_set_attr_nse(void *obj, + const struct msgb *msg, + const struct tlv_parsed *tp) { - struct gsm_bts *bts = container_of(obj, struct gsm_bts, gprs.nse); + struct gsm_gprs_nse *nse = obj; + struct gsm_bts *bts = gsm_gprs_nse_get_bts(nse); + struct nm_fsm_ev_setattr_data ev_data; + int rc; if (TLVP_PRES_LEN(tp, NM_ATT_IPACC_NSEI, 2)) - bts->gprs.nse.nsei = + nse->nsei = ntohs(tlvp_val16_unal(tp, NM_ATT_IPACC_NSEI)); if (TLVP_PRES_LEN(tp, NM_ATT_IPACC_NS_CFG, 7)) { - memcpy(&bts->gprs.nse.timer, + memcpy(&nse->timer, TLVP_VAL(tp, NM_ATT_IPACC_NS_CFG), 7); } @@ -1266,6 +1271,13 @@ TLVP_VAL(tp, NM_ATT_IPACC_BSSGP_CFG), 11); } + ev_data = (struct nm_fsm_ev_setattr_data){ + .msg = msg, + }; + rc = osmo_fsm_inst_dispatch(nse->mo.fi, NM_EV_RX_SETATTR, &ev_data); + if (rc < 0) + return NM_NACK_CANT_PERFORM; + osmo_signal_dispatch(SS_GLOBAL, S_NEW_NSE_ATTR, bts); return 0; @@ -1411,28 +1423,6 @@ return 0; } -static int oml_ipa_mo_set_attr(struct gsm_bts *bts, const struct gsm_abis_mo *mo, - void *obj, const struct tlv_parsed *tp) -{ - int rc; - - switch (mo->obj_class) { - case NM_OC_GPRS_NSE: - rc = oml_ipa_mo_set_attr_nse(obj, tp); - break; - case NM_OC_GPRS_CELL: - rc = oml_ipa_mo_set_attr_cell(obj, tp); - break; - case NM_OC_GPRS_NSVC: - rc = oml_ipa_mo_set_attr_nsvc(obj, tp); - break; - default: - rc = NM_NACK_OBJINST_UNKN; - } - - return rc; -} - static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_fom_hdr *foh = msgb_l3(msg); @@ -1459,18 +1449,37 @@ if (!mo || !obj) return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN); - rc = oml_ipa_mo_set_attr(bts, mo, obj, &tp); - if (rc == 0) { - /* Success: replace old MO attributes with new */ - /* merge existing MO attributes with new attributes */ - tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); - talloc_set_name_const(tp_merged, "oml_ipa_attr"); - osmo_tlvp_merge(tp_merged, &tp); - talloc_free(mo->nm_attr); - mo->nm_attr = tp_merged; + + switch (mo->obj_class) { + case NM_OC_GPRS_NSE: + rc = oml_ipa_mo_set_attr_nse(obj, msg, &tp); + break; + case NM_OC_GPRS_CELL: + rc = oml_ipa_mo_set_attr_cell(obj, &tp); + break; + case NM_OC_GPRS_NSVC: + rc = oml_ipa_mo_set_attr_nsvc(obj, &tp); + break; + default: + rc = NM_NACK_OBJINST_UNKN; } - return oml_fom_ack_nack(msg, rc); + if (rc < 0) + return oml_fom_ack_nack(msg, rc); + + /* Success: replace old MO attributes with new */ + /* merge existing MO attributes with new attributes */ + tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); + talloc_set_name_const(tp_merged, "oml_ipa_attr"); + osmo_tlvp_merge(tp_merged, &tp); + talloc_free(mo->nm_attr); + mo->nm_attr = tp_merged; + + /* These are not yet handled through NM FSM: */ + if (mo->obj_class == NM_OC_GPRS_CELL || + mo->obj_class == NM_OC_GPRS_NSVC) + return oml_fom_ack_nack(msg, rc); + return rc; } static int rx_oml_ipa_rsl_connect(struct gsm_bts_trx *trx, struct msgb *msg, diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index bfaf5ba..d6b3e77 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1871,6 +1871,7 @@ case NM_OC_SITE_MANAGER: case NM_OC_BTS: case NM_OC_BASEB_TRANSC: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_RADIO_CARRIER: @@ -1881,7 +1882,6 @@ ts = (struct gsm_bts_trx_ts*) obj; rc = ts_opstart(ts); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index e580b5a..d200263 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1876,6 +1876,7 @@ case NM_OC_SITE_MANAGER: case NM_OC_BTS: case NM_OC_BASEB_TRANSC: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_RADIO_CARRIER: @@ -1886,7 +1887,6 @@ ts = (struct gsm_bts_trx_ts*) obj; rc = ts_opstart(ts); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 79c5a9a..ef25a27 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1775,6 +1775,7 @@ case NM_OC_SITE_MANAGER: case NM_OC_BTS: case NM_OC_BASEB_TRANSC: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_RADIO_CARRIER: @@ -1785,7 +1786,6 @@ ts = (struct gsm_bts_trx_ts*) obj; rc = ts_connect_as(ts, ts->pchan, pchan_act_compl_cb, NULL); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index b9be5ff..04c4ab9 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -128,9 +128,9 @@ case NM_OC_BASEB_TRANSC: case NM_OC_RADIO_CARRIER: case NM_OC_CHANNEL: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 3faf1da..87d849d 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1751,6 +1751,7 @@ case NM_OC_SITE_MANAGER: case NM_OC_BTS: case NM_OC_BASEB_TRANSC: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_RADIO_CARRIER: @@ -1761,7 +1762,6 @@ ts = (struct gsm_bts_trx_ts*) obj; rc = ts_opstart(ts); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index a135479..bf8393c 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -584,6 +584,7 @@ case NM_OC_BTS: case NM_OC_BASEB_TRANSC: case NM_OC_CHANNEL: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; case NM_OC_RADIO_CARRIER: @@ -591,7 +592,6 @@ trx = (struct gsm_bts_trx *) obj; rc = trx_init(trx); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index b9f060c..a69e1d8 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -163,9 +163,9 @@ case NM_OC_RADIO_CARRIER: case NM_OC_BASEB_TRANSC: case NM_OC_CHANNEL: + case NM_OC_GPRS_NSE: rc = osmo_fsm_inst_dispatch(mo->fi, NM_EV_OPSTART_ACK, NULL); break; - case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01eadc63214a2eb5e1bce455c7e5b62bd41905ea Gerrit-Change-Number: 32213 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in osmo-bts[master]: nm: Drop NM_EV_SETATTR_{ACK/NACK}
by pespin 04 Apr '23

04 Apr '23
Attention is currently required from: pespin. Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/32196 to look at the new patch set (#3). 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, 80 insertions(+), 130 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/32196/3 -- 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: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in osmo-bts[master]: bts_model_apply_oml(): Drop unneded code
by pespin 04 Apr '23

04 Apr '23
Attention is currently required from: laforge, pespin. Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/32195 to look at the new patch set (#3). Change subject: bts_model_apply_oml(): Drop unneded code ...................................................................... bts_model_apply_oml(): Drop unneded code Calls to bts_model_apply_oml() are done only for BTS, RCARRIER and RCHANNEL NM Objects in their respective Rx code paths (and they will be moved to respective FSMs in follow up patches). This function is never called with any of the GPRS NM objects. These NM Objectes have the NM_MT_IPACC_SET_ATTR msg ACKED/NACKED in its own path: oml_ipa_set_attr() rc = oml_ipa_mo_set_attr() return oml_fom_ack_nack(msg, rc); Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 --- 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 7 files changed, 20 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/95/32195/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a0d38a122f50ffe749ebc4f1cc11235ca516586 Gerrit-Change-Number: 32195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in osmo-bts[master]: oml: Get rid of unused tlv_parsed param in bts_model_apply_oml()
by pespin 04 Apr '23

04 Apr '23
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/32203 to look at the new patch set (#2). Change subject: oml: Get rid of unused tlv_parsed param in bts_model_apply_oml() ...................................................................... oml: Get rid of unused tlv_parsed param in bts_model_apply_oml() This way we simplify the common lower level interface. It can be added in the future again if it is really required at any point to pass/use specific TLV values in the device-specific code. Change-Id: I64c6c6834e277b1d75a97d6f408e7e1b7ca85832 --- 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_channel_fsm.c M src/common/nm_radio_carrier_fsm.c M src/common/oml.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 15 files changed, 27 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/32203/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I64c6c6834e277b1d75a97d6f408e7e1b7ca85832 Gerrit-Change-Number: 32203 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in osmo-bts[master]: bts_model_apply_oml(): Improve definition of parameter
by pespin 04 Apr '23

04 Apr '23
Attention is currently required from: pespin. Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/32204 to look at the new patch set (#3). Change subject: bts_model_apply_oml(): Improve definition of parameter ...................................................................... bts_model_apply_oml(): Improve definition of parameter The param is usually called obj_class, but here it is called kind. In any case, change the param to pass the related struct gsm_abis_mo (which still contains mo->obj_class), similar to what's done in other bts_model functions such as bts_model_opstart(). Change-Id: Ife2e98a791455d5f7e7052356d559af2f1d4d185 --- M include/osmo-bts/bts_model.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_channel_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 13 files changed, 38 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/32204/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ife2e98a791455d5f7e7052356d559af2f1d4d185 Gerrit-Change-Number: 32204 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • ...
  • 226
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.