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 -----
  • November
  • 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

September 2023

  • 1 participants
  • 1947 discussions
[M] Change in libosmo-gprs[master]: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment do...
by pespin 05 Sep '23

05 Sep '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email ) Change subject: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF ...................................................................... tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF This also fixes a memcpy writing out of bounds reported by Coverity CID#323120 in gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(), due to the difference of size between struct gprs_rlcmac_ul_tbf_allocation and struct gprs_rlcmac_dl_tbf_allocation. While fixing it, actually properly implement passing of the 1 only interesting TS to the tbf_ul_ass_fsm at that point in time. Change-Id: I89b15982b73f00599183981142495d7b9befbb78 --- M include/osmocom/gprs/rlcmac/rlcmac_enc.h M include/osmocom/gprs/rlcmac/tbf_dl.h M include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h M src/rlcmac/rlcmac_enc.c M src/rlcmac/sched.c M src/rlcmac/tbf_dl.c M src/rlcmac/tbf_ul_ass_fsm.c M tests/rlcmac/rlcmac_prim_test.err 8 files changed, 47 insertions(+), 24 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/rlcmac/rlcmac_enc.h b/include/osmocom/gprs/rlcmac/rlcmac_enc.h index 298d364..1ed02be 100644 --- a/include/osmocom/gprs/rlcmac/rlcmac_enc.h +++ b/include/osmocom/gprs/rlcmac/rlcmac_enc.h @@ -47,6 +47,6 @@ void gprs_rlcmac_enc_prepare_pkt_resource_req(RlcMacUplink_t *block, struct gprs_rlcmac_ul_tbf *ul_tbf, enum gprs_rlcmac_access_type acc_type); -void gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(RlcMacUplink_t *block, const struct gprs_rlcmac_dl_tbf *dl_tbf); +void gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(RlcMacUplink_t *block, const struct gprs_rlcmac_dl_tbf *dl_tbf, bool chan_req); void gprs_rlcmac_enc_prepare_pkt_ctrl_ack(RlcMacUplink_t *block, uint32_t tlli); diff --git a/include/osmocom/gprs/rlcmac/tbf_dl.h b/include/osmocom/gprs/rlcmac/tbf_dl.h index fe0b2ef..fc75972 100644 --- a/include/osmocom/gprs/rlcmac/tbf_dl.h +++ b/include/osmocom/gprs/rlcmac/tbf_dl.h @@ -45,7 +45,7 @@ int gprs_rlcmac_dl_tbf_configure_l1ctl(struct gprs_rlcmac_dl_tbf *dl_tbf); -struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf); +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn); int gprs_rlcmac_dl_tbf_rcv_data_block(struct gprs_rlcmac_dl_tbf *dl_tbf, const struct gprs_rlcmac_rlc_data_info *rlc, diff --git a/include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h b/include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h index ea9e521..ad32471 100644 --- a/include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h +++ b/include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h @@ -82,7 +82,7 @@ int gprs_rlcmac_tbf_ul_ass_start(struct gprs_rlcmac_ul_tbf *ul_tbf, enum gprs_rlcmac_tbf_ul_ass_type type); int gprs_rlcmac_tbf_ul_ass_start_from_releasing_ul_tbf(struct gprs_rlcmac_ul_tbf *ul_tbf, struct gprs_rlcmac_ul_tbf *old_ul_tbf); -int gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(struct gprs_rlcmac_ul_tbf *ul_tbf, const struct gprs_rlcmac_dl_tbf *dl_tbf); +int gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(struct gprs_rlcmac_ul_tbf *ul_tbf, const struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn); bool gprs_rlcmac_tbf_ul_ass_pending(struct gprs_rlcmac_ul_tbf *ul_tbf); bool gprs_rlcmac_tbf_ul_ass_match_rach_req(struct gprs_rlcmac_ul_tbf *ul_tbf, uint8_t ra); diff --git a/src/rlcmac/rlcmac_enc.c b/src/rlcmac/rlcmac_enc.c index d8cd61e..dec2fa6 100644 --- a/src/rlcmac/rlcmac_enc.c +++ b/src/rlcmac/rlcmac_enc.c @@ -384,11 +384,9 @@ /* TODO: fill cqr from info stored probably in the gre object. */ } -void gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(RlcMacUplink_t *block, const struct gprs_rlcmac_dl_tbf *dl_tbf) +void gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(RlcMacUplink_t *block, const struct gprs_rlcmac_dl_tbf *dl_tbf, bool chan_req) { Packet_Downlink_Ack_Nack_t *ack = &block->u.Packet_Downlink_Ack_Nack; - struct gprs_rlcmac_entity *gre = dl_tbf->tbf.gre; - int rc; memset(block, 0, sizeof(*block)); ack->MESSAGE_TYPE = OSMO_GPRS_RLCMAC_UL_MSGT_PACKET_DOWNLINK_ACK_NACK; @@ -398,9 +396,7 @@ ack->DOWNLINK_TFI = dl_tbf->cur_alloc.dl_tfi; gprs_rlcmac_enc_prepare_pkt_ack_nack_desc_gprs(&ack->Ack_Nack_Description, dl_tbf); - /* Channel Request Description. Request a UL-TBF if we have UL data - * queued to send and no active UL BF (TS 44.060 8.1.2.5) */ - if (!gre->ul_tbf && gprs_rlcmac_entity_have_tx_data_queued(gre)) { + if (chan_req) { Channel_Request_Description_t *chan_req = &ack->Channel_Request_Description; ack->Exist_Channel_Request_Description = 1; chan_req->PEAK_THROUGHPUT_CLASS = 0; /* TODO */ @@ -408,11 +404,6 @@ chan_req->RLC_MODE = GPRS_RLCMAC_RLC_MODE_ACKNOWLEDGED; chan_req->LLC_PDU_TYPE = GPRS_RLCMAC_LLC_PDU_TYPE_ACKNOWLEDGED; chan_req->RLC_OCTET_COUNT = 0; /* TODO */ - - gre->ul_tbf = gprs_rlcmac_ul_tbf_alloc(gre); - rc = gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(gre->ul_tbf, dl_tbf); - if (rc < 0) - LOGPTBFDL(dl_tbf, LOGL_ERROR, "Failed starting assignment of requested UL TBF (%d)\n", rc); } else { ack->Exist_Channel_Request_Description = 0; } diff --git a/src/rlcmac/sched.c b/src/rlcmac/sched.c index 6af2b6a..faa9ff1 100644 --- a/src/rlcmac/sched.c +++ b/src/rlcmac/sched.c @@ -175,7 +175,7 @@ if (tbfs->poll_dl_ack_final_ack) { LOGRLCMAC(LOGL_DEBUG, "(ts=%u,fn=%u,usf=%u) Tx DL ACK/NACK FinalAck=1\n", bi->ts, bi->fn, bi->usf); - msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack_final_ack); + msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack_final_ack, bi->ts); if (msg) return msg; } @@ -237,7 +237,7 @@ if (tbfs->poll_dl_ack) { LOGRLCMAC(LOGL_DEBUG, "(ts=%u,fn=%u,usf=%u) Tx DL ACK/NACK\n", bi->ts, bi->fn, bi->usf); - msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack); + msg = gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(tbfs->poll_dl_ack, bi->ts); if (msg) return msg; } diff --git a/src/rlcmac/tbf_dl.c b/src/rlcmac/tbf_dl.c index a7f0ea9..b8d37a8 100644 --- a/src/rlcmac/tbf_dl.c +++ b/src/rlcmac/tbf_dl.c @@ -160,11 +160,13 @@ return gprs_rlcmac_prim_call_down_cb(rlcmac_prim); } -struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf) +struct msgb *gprs_rlcmac_dl_tbf_create_pkt_dl_ack_nack(struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn) { struct msgb *msg; struct bitvec bv; RlcMacUplink_t ul_block; + bool chan_req = false; + struct gprs_rlcmac_entity *gre = dl_tbf->tbf.gre; int rc; OSMO_ASSERT(dl_tbf); @@ -173,6 +175,17 @@ if (!msg) return NULL; + /* Channel Request Description. Request a UL-TBF if we have UL data + * queued to send and no active UL TBF (TS 44.060 8.1.2.5) */ + if (!gre->ul_tbf && gprs_rlcmac_entity_have_tx_data_queued(gre)) { + gre->ul_tbf = gprs_rlcmac_ul_tbf_alloc(gre); + rc = gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(gre->ul_tbf, dl_tbf, tn); + if (rc < 0) + LOGPTBFDL(dl_tbf, LOGL_ERROR, "Failed starting assignment of requested UL TBF (%d)\n", rc); + else + chan_req = true; + } + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ bv = (struct bitvec){ .data = msgb_put(msg, GSM_MACBLOCK_LEN), @@ -180,7 +193,7 @@ }; bitvec_unhex(&bv, GPRS_RLCMAC_DUMMY_VEC); - gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(&ul_block, dl_tbf); + gprs_rlcmac_enc_prepare_pkt_downlink_ack_nack(&ul_block, dl_tbf, chan_req); rc = osmo_gprs_rlcmac_encode_uplink(&bv, &ul_block); if (rc < 0) { LOGPTBFDL(dl_tbf, LOGL_ERROR, "Encoding of Packet Downlink ACK/NACK failed (%d)\n", rc); diff --git a/src/rlcmac/tbf_ul_ass_fsm.c b/src/rlcmac/tbf_ul_ass_fsm.c index 0f0f9ee..5587ddb 100644 --- a/src/rlcmac/tbf_ul_ass_fsm.c +++ b/src/rlcmac/tbf_ul_ass_fsm.c @@ -680,14 +680,17 @@ /* A DL-TBF requested a UL TBF over DL ACK/NACK, wait to receive Pkt Ul Ass for * it, aka switch the FSM to trigger the 2hpase directly (tx Pkt Res Req) */ -int gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(struct gprs_rlcmac_ul_tbf *ul_tbf, const struct gprs_rlcmac_dl_tbf *dl_tbf) +int gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(struct gprs_rlcmac_ul_tbf *ul_tbf, const struct gprs_rlcmac_dl_tbf *dl_tbf, uint8_t tn) { int rc; ul_tbf->ul_ass_fsm.dl_tbf = dl_tbf; - /* FIXME: Ideally this should only be the TS where the PKT UL ASS was received... */ - ul_tbf->ul_ass_fsm.phase1_alloc.num_ts = dl_tbf->cur_alloc.num_ts; - memcpy(&ul_tbf->ul_ass_fsm.phase1_alloc.ts[0], &dl_tbf->cur_alloc.ts[0], - sizeof(ul_tbf->ul_ass_fsm.phase1_alloc.ts)); + + /* The TS where the PKT UL ASS is to be received is the one where the DL + * ACK/NACK was sent in the DL TBF (control TS): */ + ul_tbf->ul_ass_fsm.phase1_alloc.num_ts = 1; + ul_tbf->ul_ass_fsm.phase1_alloc.ts[tn].allocated = true; + ul_tbf->ul_ass_fsm.phase1_alloc.ts[tn].usf = 0xff; + rc = osmo_fsm_inst_dispatch(ul_tbf->ul_ass_fsm.fi, GPRS_RLCMAC_TBF_UL_ASS_EV_START_FROM_DL_TBF, NULL); diff --git a/tests/rlcmac/rlcmac_prim_test.err b/tests/rlcmac/rlcmac_prim_test.err index 95dc475..41773b2 100644 --- a/tests/rlcmac/rlcmac_prim_test.err +++ b/tests/rlcmac/rlcmac_prim_test.err @@ -950,13 +950,13 @@ DLGLOBAL DEBUG GRE(00000001) Enqueueing LLC-PDU len=14 SAPI=GMM radio_prio=1 DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_RTS.indication DLGLOBAL DEBUG (ts=7,fn=21,usf=0) Tx DL ACK/NACK FinalAck=1 -DLGLOBAL DEBUG TBF(DL:NR-0:TLLI-00000001) - SSN 1, V(N): "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIR" R=Received I=Invalid, FINAL_ACK=1 DLGLOBAL INFO UL_TBF{NEW}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Allocated DLGLOBAL INFO UL_TBF_ASS{IDLE}: Received Event START_FROM_DL_TBF DLGLOBAL INFO UL_TBF{NEW}: Received Event UL_ASS_START DLGLOBAL INFO UL_TBF{NEW}: state_chg to ASSIGN DLGLOBAL INFO UL_TBF_ASS{IDLE}: state_chg to WAIT_PKT_UL_ASS +DLGLOBAL DEBUG TBF(DL:NR-0:TLLI-00000001) - SSN 1, V(N): "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIR" R=Received I=Invalid, FINAL_ACK=1 DLGLOBAL INFO TBF(DL:NR-0:TLLI-00000001) Starting T3192 (0 ms) DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL DEBUG Rx from lower layers: L1CTL-PDCH_DATA.indication -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I89b15982b73f00599183981142495d7b9befbb78 Gerrit-Change-Number: 34313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in libosmo-gprs[master]: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment do...
by pespin 05 Sep '23

05 Sep '23
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email ) Change subject: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I89b15982b73f00599183981142495d7b9befbb78 Gerrit-Change-Number: 34313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 12:32:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmocore[master]: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES
by pespin 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email ) Change subject: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 Gerrit-Change-Number: 34315 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 12:17:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last"
by pespin 05 Sep '23

05 Sep '23
Attention is currently required from: fixeria. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email ) Change subject: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 Gerrit-Change-Number: 34314 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 12:16:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmocore[master]: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES
by fixeria 05 Sep '23

05 Sep '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email ) Change subject: gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES ...................................................................... gsm_12_21.h: add flags for NM_ATT_IPACC_SUPP_FEATURES Change-Id: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 --- M include/osmocom/gsm/protocol/gsm_12_21.h M src/gsm/abis_nm.c M src/gsm/libosmogsm.map 3 files changed, 203 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/34315/1 diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h index 9cc0aa8..1339362 100644 --- a/include/osmocom/gsm/protocol/gsm_12_21.h +++ b/include/osmocom/gsm/protocol/gsm_12_21.h @@ -775,6 +775,98 @@ NM_IPAC_EIE_BTS_ID = 0x25, }; +/*! ip.access support flags for NM_IPAC_EIE_FREQ_BANDS */ +#define NM_IPAC_F_FREQ_BAND_PGSM (1 << 0) +#define NM_IPAC_F_FREQ_BAND_EGSM (1 << 1) +#define NM_IPAC_F_FREQ_BAND_RGSM (1 << 2) +#define NM_IPAC_F_FREQ_BAND_DCS (1 << 3) +#define NM_IPAC_F_FREQ_BAND_PCS (1 << 4) +#define NM_IPAC_F_FREQ_BAND_850 (1 << 5) +#define NM_IPAC_F_FREQ_BAND_480 (1 << 6) +#define NM_IPAC_F_FREQ_BAND_450 (1 << 7) + +/*! ip.access support flags for NM_IPAC_EIE_CIPH_ALGOS */ +#define NM_IPAC_F_CIPH_ALGO_A51 (1 << 0) +#define NM_IPAC_F_CIPH_ALGO_A52 (1 << 1) +#define NM_IPAC_F_CIPH_ALGO_A53 (1 << 2) +#define NM_IPAC_F_CIPH_ALGO_A54 (1 << 3) +#define NM_IPAC_F_CIPH_ALGO_A55 (1 << 4) +#define NM_IPAC_F_CIPH_ALGO_A56 (1 << 5) +#define NM_IPAC_F_CIPH_ALGO_A57 (1 << 6) +#define NM_IPAC_F_CIPH_ALGO_A58 (1 << 7) + +/*! ip.access support flags for NM_IPAC_EIE_CHAN_TYPES (1st octet) */ +#define NM_IPAC_F_CHANT_TCHF (1 << 0) +#define NM_IPAC_F_CHANT_TCHH (1 << 1) +#define NM_IPAC_F_CHANT_SDCCH8 (1 << 2) +#define NM_IPAC_F_CHANT_BCCH (1 << 3) +#define NM_IPAC_F_CHANT_BCCH_SDCCH4 (1 << 4) +#define NM_IPAC_F_CHANT_BCH (1 << 5) +#define NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH (1 << 6) +#define NM_IPAC_F_CHANT_SDCCH8_CBCH (1 << 7) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_TYPES (2nd octet) */ +#define NM_IPAC_F_CHANT_PCCHF (1 << 8) +#define NM_IPAC_F_CHANT_TCHF_PDCHF (1 << 9) +#define NM_IPAC_F_CHANT_TCHH_PDCHH (1 << 10) +#define NM_IPAC_F_CHANT_TCHF_TCHH (1 << 11) + +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (speech codecs) */ +#define NM_IPAC_F_CHANM_SPEECH_FS (1 << 0) +#define NM_IPAC_F_CHANM_SPEECH_EFS (1 << 1) +#define NM_IPAC_F_CHANM_SPEECH_AFS (1 << 2) +#define NM_IPAC_F_CHANM_SPEECH_HS (1 << 3) +#define NM_IPAC_F_CHANM_SPEECH_AHS (1 << 4) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (CSD non-transparent) */ +#define NM_IPAC_F_CHANM_CSD_NT_4k8 (1 << 8) +#define NM_IPAC_F_CHANM_CSD_NT_9k6 (1 << 9) +#define NM_IPAC_F_CHANM_CSD_NT_14k4 (1 << 10) +/*! ip.access support flags for NM_IPAC_EIE_CHAN_MODES (CSD transparent) */ +#define NM_IPAC_F_CHANM_CSD_T_1200_75 (1 << 16) +#define NM_IPAC_F_CHANM_CSD_T_600 (1 << 17) +#define NM_IPAC_F_CHANM_CSD_T_1k2 (1 << 18) +#define NM_IPAC_F_CHANM_CSD_T_2k4 (1 << 19) +#define NM_IPAC_F_CHANM_CSD_T_4k8 (1 << 20) +#define NM_IPAC_F_CHANM_CSD_T_9k6 (1 << 21) +#define NM_IPAC_F_CHANM_CSD_T_14k4 (1 << 22) + +/*! ip.access support flags for NM_IPAC_EIE_GPRS_CODING (GPRS) */ +#define NM_IPAC_F_GPRS_CODING_CS1 (1 << 0) +#define NM_IPAC_F_GPRS_CODING_CS2 (1 << 1) +#define NM_IPAC_F_GPRS_CODING_CS3 (1 << 2) +#define NM_IPAC_F_GPRS_CODING_CS4 (1 << 3) +/*! ip.access support flags for NM_IPAC_EIE_GPRS_CODING (EGPRS) */ +#define NM_IPAC_F_GPRS_CODING_MCS1 (1 << 7) +#define NM_IPAC_F_GPRS_CODING_MCS2 (1 << 8) +#define NM_IPAC_F_GPRS_CODING_MCS3 (1 << 9) +#define NM_IPAC_F_GPRS_CODING_MCS4 (1 << 10) +#define NM_IPAC_F_GPRS_CODING_MCS5 (1 << 11) +#define NM_IPAC_F_GPRS_CODING_MCS6 (1 << 12) +#define NM_IPAC_F_GPRS_CODING_MCS7 (1 << 13) +#define NM_IPAC_F_GPRS_CODING_MCS8 (1 << 14) +#define NM_IPAC_F_GPRS_CODING_MCS9 (1 << 15) + +/*! ip.access support flags for NM_IPAC_EIE_RTP_FEATURES */ +#define NM_IPAC_F_RTP_FEAT_COMPR_CONTROL (1 << 0) /* RTP Compression Control */ +#define NM_IPAC_F_RTP_FEAT_IR_8k (1 << 1) /* IR 8 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_16k (1 << 2) /* IR 16 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_32k (1 << 3) /* IR 32 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_IR_64k (1 << 4) /* IR 64 kbit/s */ +#define NM_IPAC_F_RTP_FEAT_MULTIPLEX_RTP (1 << 6) /* RTP Multiplexing */ +#define NM_IPAC_F_RTP_FEAT_MULTIPLEX_SRTP (1 << 7) /* SRTP Multiplexing */ + +/*! ip.access support flags for NM_IPAC_EIE_RSL_FEATURES */ +#define NM_IPAC_F_RSL_FEAT_PHYSICAL_CONTEXT (1 << 0) +#define NM_IPAC_F_RSL_FEAT_DYN_PDCH_ACT (1 << 1) +#define NM_IPAC_F_RSL_FEAT_RTP_PT2 (1 << 2) + +extern const struct value_string abis_nm_ipacc_freq_band_desc[]; +extern const struct value_string abis_nm_ipacc_ciph_algo_desc[]; +extern const struct value_string abis_nm_ipacc_chant_desc[]; +extern const struct value_string abis_nm_ipacc_chanm_desc[]; +extern const struct value_string abis_nm_ipacc_gprs_coding_desc[]; +extern const struct value_string abis_nm_ipacc_rtp_feat_desc[]; +extern const struct value_string abis_nm_ipacc_rsl_feat_desc[]; + /*! ip.access NWL BCCH information type */ enum ipac_bcch_info_type { IPAC_BINF_RXLEV = (1 << 8), diff --git a/src/gsm/abis_nm.c b/src/gsm/abis_nm.c index 38cd194..8059fc8 100644 --- a/src/gsm/abis_nm.c +++ b/src/gsm/abis_nm.c @@ -707,6 +707,100 @@ /* FIXME: bounds check */ }; +const struct value_string abis_nm_ipacc_freq_band_desc[] = { + { NM_IPAC_F_FREQ_BAND_PGSM, "P-GSM" }, + { NM_IPAC_F_FREQ_BAND_EGSM, "E-GSM" }, + { NM_IPAC_F_FREQ_BAND_RGSM, "R-GSM" }, + { NM_IPAC_F_FREQ_BAND_DCS, "DCS-1800" }, + { NM_IPAC_F_FREQ_BAND_PCS, "PCS-1900" }, + { NM_IPAC_F_FREQ_BAND_850, "850" }, + { NM_IPAC_F_FREQ_BAND_480, "480" }, + { NM_IPAC_F_FREQ_BAND_450, "450" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_ciph_algo_desc[] = { + { NM_IPAC_F_CIPH_ALGO_A51, "A5/1" }, + { NM_IPAC_F_CIPH_ALGO_A52, "A5/2" }, + { NM_IPAC_F_CIPH_ALGO_A53, "A5/3" }, + { NM_IPAC_F_CIPH_ALGO_A54, "A5/4" }, + { NM_IPAC_F_CIPH_ALGO_A55, "A5/5" }, + { NM_IPAC_F_CIPH_ALGO_A56, "A5/6" }, + { NM_IPAC_F_CIPH_ALGO_A57, "A5/7" }, + { NM_IPAC_F_CIPH_ALGO_A58, "A5/8" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_chant_desc[] = { + { NM_IPAC_F_CHANT_TCHF, "TCH/F" }, + { NM_IPAC_F_CHANT_TCHH, "TCH/H" }, + { NM_IPAC_F_CHANT_SDCCH8, "SDCCH/8" }, + { NM_IPAC_F_CHANT_BCCH, "BCCH" }, + { NM_IPAC_F_CHANT_BCCH_SDCCH4, "BCCH+SDCCH/4" }, + { NM_IPAC_F_CHANT_BCH, "BCH" }, + { NM_IPAC_F_CHANT_BCCH_SDCCH4_CBCH, "BCCH+SDCCH/4+CBCH" }, + { NM_IPAC_F_CHANT_SDCCH8_CBCH, "SDCCH/8+CBCH" }, + { NM_IPAC_F_CHANT_PCCHF, "PDCH/F" }, + { NM_IPAC_F_CHANT_TCHF_PDCHF, "TCH/F or PDCH/F" }, + { NM_IPAC_F_CHANT_TCHH_PDCHH, "TCH/H+PDCH/H" }, + { NM_IPAC_F_CHANT_TCHF_TCHH, "TCH/F or TCH/H" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_chanm_desc[] = { + { NM_IPAC_F_CHANM_SPEECH_FS, "FR1/FS" }, + { NM_IPAC_F_CHANM_SPEECH_EFS, "FR2/EFS" }, + { NM_IPAC_F_CHANM_SPEECH_AFS, "FR3/AFS" }, + { NM_IPAC_F_CHANM_SPEECH_HS, "HR1/HS" }, + { NM_IPAC_F_CHANM_SPEECH_AHS, "HR3/AHS" }, + { NM_IPAC_F_CHANM_CSD_NT_4k8, "CSD NT 4.8 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_NT_9k6, "CSD NT 9.6 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_NT_14k4, "CSD NT 14.4 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_1200_75, "CSD T 1200/75 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_600, "CSD T 600 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_1k2, "CSD T 1k2 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_2k4, "CSD T 2.4 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_4k8, "CSD T 4.8 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_9k6, "CSD T 9.6 kbit/s" }, + { NM_IPAC_F_CHANM_CSD_T_14k4, "CSD T 14.4 kbit/s" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_gprs_coding_desc[] = { + { NM_IPAC_F_GPRS_CODING_CS1, "CS1" }, + { NM_IPAC_F_GPRS_CODING_CS2, "CS2" }, + { NM_IPAC_F_GPRS_CODING_CS3, "CS3" }, + { NM_IPAC_F_GPRS_CODING_CS4, "CS4" }, + { NM_IPAC_F_GPRS_CODING_MCS1, "MCS1" }, + { NM_IPAC_F_GPRS_CODING_MCS2, "MCS2" }, + { NM_IPAC_F_GPRS_CODING_MCS3, "MCS3" }, + { NM_IPAC_F_GPRS_CODING_MCS4, "MCS4" }, + { NM_IPAC_F_GPRS_CODING_MCS5, "MCS5" }, + { NM_IPAC_F_GPRS_CODING_MCS6, "MCS6" }, + { NM_IPAC_F_GPRS_CODING_MCS7, "MCS7" }, + { NM_IPAC_F_GPRS_CODING_MCS8, "MCS8" }, + { NM_IPAC_F_GPRS_CODING_MCS9, "MCS9" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_rtp_feat_desc[] = { + { NM_IPAC_F_RTP_FEAT_COMPR_CONTROL, "Compression Control" }, + { NM_IPAC_F_RTP_FEAT_IR_8k, "Intermediate Rate 8 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_16k, "Intermediate Rate 16 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_32k, "Intermediate Rate 32 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_IR_64k, "Intermediate Rate 64 kbit/s" }, + { NM_IPAC_F_RTP_FEAT_MULTIPLEX_RTP, "RTP Multiplex" }, + { NM_IPAC_F_RTP_FEAT_MULTIPLEX_SRTP, "SRTP Multiplex" }, + { 0, NULL } +}; + +const struct value_string abis_nm_ipacc_rsl_feat_desc[] = { + { NM_IPAC_F_RSL_FEAT_PHYSICAL_CONTEXT, "Physical Context" }, + { NM_IPAC_F_RSL_FEAT_DYN_PDCH_ACT, "Dynamic PDCH Activation" }, + { NM_IPAC_F_RSL_FEAT_RTP_PT2, "RTP Payload Type 2" }, + { 0, NULL } +}; + /*! Pack 3GPP TS 12.21 ยง 8.8.2 Failure Event Report into msgb */ struct msgb *abis_nm_fail_evt_rep(enum abis_nm_event_type t, enum abis_nm_severity s, diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 49db282..056d320 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -40,6 +40,14 @@ abis_nm_get_sw_conf; abis_nm_get_sw_desc_len; +abis_nm_ipacc_freq_band_desc; +abis_nm_ipacc_ciph_algo_desc; +abis_nm_ipacc_chant_desc; +abis_nm_ipacc_chanm_desc; +abis_nm_ipacc_gprs_coding_desc; +abis_nm_ipacc_rtp_feat_desc; +abis_nm_ipacc_rsl_feat_desc; + osmo_sitype_strs; osmo_c4; osmo_get_rand_id; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/34315?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4208e10d61843dd6ae77398f6624c918dc81ea4 Gerrit-Change-Number: 34315 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last"
by fixeria 05 Sep '23

05 Sep '23
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email ) Change subject: Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" ...................................................................... Revert "BTS_Tests: execute TC_dyn_osmo_pdch_{tchh,sdcch8}_race_act last" This reverts commit 46f199271ef77a5143d95894801eb0c86c51a565. Crashing the IUT is no longer the case, so return these back. Change-Id: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 --- M bts/BTS_Tests.ttcn M bts/expected-results.xml 2 files changed, 17 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/14/34314/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 3fe6120..df18403 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -9335,6 +9335,8 @@ execute( TC_dyn_osmo_pdch_tchf_act() ); execute( TC_dyn_osmo_pdch_tchh_act() ); execute( TC_dyn_osmo_pdch_sdcch8_act() ); + execute( TC_dyn_osmo_pdch_tchh_race_act() ); + execute( TC_dyn_osmo_pdch_sdcch8_race_act() ); execute( TC_dyn_ipa_pdch_tchf_act() ); execute( TC_dyn_ipa_pdch_tchf_act_pdch_act_nack() ); @@ -9396,11 +9398,6 @@ execute( TC_acch_overpower_always_on_facch() ); execute( TC_acch_overpower_always_on_sacch() ); execute( TC_acch_overpower_limit() ); - - /* BEWARE: these test cases can potentially break the IUT or cause - * weird/unexpected behavior. Ensure that they are executed last. */ - execute( TC_dyn_osmo_pdch_tchh_race_act() ); - execute( TC_dyn_osmo_pdch_sdcch8_race_act() ); } diff --git a/bts/expected-results.xml b/bts/expected-results.xml index 61c0b60..a856fca 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -137,6 +137,8 @@ <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchf_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_act' time='MASKED'/> + <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_race_act' time='MASKED'/> + <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_race_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_ipa_pdch_tchf_act' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_dyn_ipa_pdch_tchf_act_pdch_act_nack' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_rll_est_ind' time='MASKED'/> @@ -192,8 +194,6 @@ <testcase classname='BTS_Tests' name='TC_acch_overpower_always_on_facch' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_acch_overpower_always_on_sacch' time='MASKED'/> <testcase classname='BTS_Tests' name='TC_acch_overpower_limit' time='MASKED'/> - <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_tchh_race_act' time='MASKED'/> - <testcase classname='BTS_Tests' name='TC_dyn_osmo_pdch_sdcch8_race_act' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_cbch_load_idle_no_cbch' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_sms_cb_cmd_sdcch4_1block' time='MASKED'/> <testcase classname='BTS_Tests_SMSCB' name='TC_sms_cb_cmd_sdcch4_2block' time='MASKED'/> -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34314?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I004b55a79a04a20209d8a91e1f307f55c2b6ea13 Gerrit-Change-Number: 34314 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in libosmo-gprs[master]: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment do...
by fixeria 05 Sep '23

05 Sep '23
Attention is currently required from: pespin. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email ) Change subject: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I89b15982b73f00599183981142495d7b9befbb78 Gerrit-Change-Number: 34313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 05 Sep 2023 10:37:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmo-gprs[master]: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment do...
by pespin 05 Sep '23

05 Sep '23
pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email ) Change subject: tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF ...................................................................... tbf_ul_ass_fsm: Listen only on 1 TS for PKT UL ASS when assignment done from DL TBF This also fixes a memcpy writing out of bounds reported by Coverity CID#323120 in gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(), due to the difference of size between struct gprs_rlcmac_ul_tbf_allocation and struct gprs_rlcmac_dl_tbf_allocation. While fixing it, actually properly implement passing of the 1 only interesting TS to the tbf_ul_ass_fsm at that point in time. Change-Id: I89b15982b73f00599183981142495d7b9befbb78 --- M include/osmocom/gprs/rlcmac/rlcmac_enc.h M include/osmocom/gprs/rlcmac/tbf_dl.h M include/osmocom/gprs/rlcmac/tbf_ul_ass_fsm.h M src/rlcmac/rlcmac_enc.c M src/rlcmac/sched.c M src/rlcmac/tbf_dl.c M src/rlcmac/tbf_ul_ass_fsm.c M tests/rlcmac/rlcmac_prim_test.err 8 files changed, 47 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/13/34313/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34313?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I89b15982b73f00599183981142495d7b9befbb78 Gerrit-Change-Number: 34313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset
1 0
0 0
[S] Change in libosmo-gprs[master]: Fix wrong assignment between UL and DL tbf_allocation structs
by pespin 05 Sep '23

05 Sep '23
pespin has abandoned this change. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34312?usp=email ) Change subject: Fix wrong assignment between UL and DL tbf_allocation structs ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34312?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I077832afef6b72a11000a6d445262dff41c89ada Gerrit-Change-Number: 34312 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon
1 0
0 0
[S] Change in libosmo-gprs[master]: Fix wrong assignment between UL and DL tbf_allocation structs
by pespin 05 Sep '23

05 Sep '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/34312?usp=email ) Change subject: Fix wrong assignment between UL and DL tbf_allocation structs ...................................................................... Fix wrong assignment between UL and DL tbf_allocation structs Change-Id: I077832afef6b72a11000a6d445262dff41c89ada --- M src/rlcmac/tbf_ul_ass_fsm.c 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/12/34312/1 diff --git a/src/rlcmac/tbf_ul_ass_fsm.c b/src/rlcmac/tbf_ul_ass_fsm.c index 0f0f9ee..6262926 100644 --- a/src/rlcmac/tbf_ul_ass_fsm.c +++ b/src/rlcmac/tbf_ul_ass_fsm.c @@ -682,12 +682,15 @@ * it, aka switch the FSM to trigger the 2hpase directly (tx Pkt Res Req) */ int gprs_rlcmac_tbf_ul_ass_start_from_dl_tbf_ack_nack(struct gprs_rlcmac_ul_tbf *ul_tbf, const struct gprs_rlcmac_dl_tbf *dl_tbf) { + uint8_t tn; int rc; ul_tbf->ul_ass_fsm.dl_tbf = dl_tbf; /* FIXME: Ideally this should only be the TS where the PKT UL ASS was received... */ ul_tbf->ul_ass_fsm.phase1_alloc.num_ts = dl_tbf->cur_alloc.num_ts; - memcpy(&ul_tbf->ul_ass_fsm.phase1_alloc.ts[0], &dl_tbf->cur_alloc.ts[0], - sizeof(ul_tbf->ul_ass_fsm.phase1_alloc.ts)); + for (tn = 0; tn < ARRAY_SIZE(ul_tbf->ul_ass_fsm.phase1_alloc.ts); tn++) { + ul_tbf->ul_ass_fsm.phase1_alloc.ts[0].allocated = dl_tbf->cur_alloc.ts[0].allocated; + ul_tbf->ul_ass_fsm.phase1_alloc.ts[0].usf = 0xff; + } rc = osmo_fsm_inst_dispatch(ul_tbf->ul_ass_fsm.fi, GPRS_RLCMAC_TBF_UL_ASS_EV_START_FROM_DL_TBF, NULL); -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/34312?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I077832afef6b72a11000a6d445262dff41c89ada Gerrit-Change-Number: 34312 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • ...
  • 195
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.