diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-10-17 13:29:03 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-10-30 21:20:44 +0100 |
commit | ae947fcf6710c72f55e1794fa4b3fa85aeeac720 (patch) | |
tree | b5233e154ead0d98f15ffc16fd5c1bd9d65ae382 | |
parent | 344ff487563cf28866b7845da3c1f4f828c93fd5 (diff) |
bts: Remove the global state from write_packet_uplink_ack
Similiar to the previous patches
-rw-r--r-- | src/gprs_rlcmac.cpp | 4 | ||||
-rw-r--r-- | src/gprs_rlcmac.h | 5 | ||||
-rw-r--r-- | src/gprs_rlcmac_data.cpp | 11 | ||||
-rw-r--r-- | src/gprs_rlcmac_sched.cpp | 7 |
4 files changed, 12 insertions, 15 deletions
diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp index f0d58d92..f8c40aca 100644 --- a/src/gprs_rlcmac.cpp +++ b/src/gprs_rlcmac.cpp @@ -776,14 +776,14 @@ int write_paging_request(bitvec * dest, uint8_t *ptmsi, uint16_t ptmsi_len) } /* generate uplink ack */ -void write_packet_uplink_ack(RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf, +void write_packet_uplink_ack(struct gprs_rlcmac_bts *bts, + RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf, uint8_t final) { // Packet Uplink Ack/Nack TS 44.060 11.2.28 char show_v_n[65]; - struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts; uint8_t rbb = 0; uint16_t i, bbn; uint16_t mod_sns_half = (tbf->sns >> 1) - 1; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 760579bf..43f38c72 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -178,7 +178,7 @@ void write_packet_downlink_assignment(RlcMacDownlink_t * block, uint8_t old_tfi, -void write_packet_uplink_ack(RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf, +void write_packet_uplink_ack(struct gprs_rlcmac_bts *bts, RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf, uint8_t final); int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf); @@ -220,7 +220,8 @@ int gprs_rlcmac_rcv_data_block_acknowledged(uint8_t trx, uint8_t ts, struct msgb *gprs_rlcmac_send_data_block_acknowledged( struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts); -struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_tbf *tbf, +struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_bts *bts, + struct gprs_rlcmac_tbf *tbf, uint32_t fn); int gprs_rlcmac_rcv_rts_block(uint8_t trx, uint8_t ts, uint16_t arfcn, diff --git a/src/gprs_rlcmac_data.cpp b/src/gprs_rlcmac_data.cpp index cd503f32..da7295b1 100644 --- a/src/gprs_rlcmac_data.cpp +++ b/src/gprs_rlcmac_data.cpp @@ -114,8 +114,6 @@ int gprs_rlcmac_poll_timeout(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf } } else if (tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) { - struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts; - if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_UL_ASS))) { LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling " "PACKET CONTROL ACK for PACKET UPLINK " @@ -137,8 +135,6 @@ int gprs_rlcmac_poll_timeout(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_SEND_ASS; } else if (tbf->dl_ass_state == GPRS_RLCMAC_DL_ASS_WAIT_ACK) { - struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts; - if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ASS))) { LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling " "PACKET CONTROL ACK for PACKET DOWNLINK " @@ -160,8 +156,6 @@ int gprs_rlcmac_poll_timeout(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf tbf->dl_ass_state = GPRS_RLCMAC_DL_ASS_SEND_ASS; } else if (tbf->direction == GPRS_RLCMAC_DL_TBF) { - struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts; - if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) { LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling " "PACKET DOWNLINK ACK.\n"); @@ -683,7 +677,8 @@ static int gprs_rlcmac_assemble_llc(struct gprs_rlcmac_tbf *tbf, uint8_t *data, return 0; } -struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_tbf *tbf, +struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_bts *bts, + struct gprs_rlcmac_tbf *tbf, uint32_t fn) { int final = (tbf->state_is(GPRS_RLCMAC_FINISHED)); @@ -714,7 +709,7 @@ struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_tbf *tbf, bitvec_unhex(ack_vec, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); - write_packet_uplink_ack(mac_control_block, tbf, final); + write_packet_uplink_ack(bts, mac_control_block, tbf, final); encode_gsm_rlcmac_downlink(ack_vec, mac_control_block); bitvec_pack(ack_vec, msgb_put(msg, 23)); bitvec_free(ack_vec); diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 5456b990..de03e2ea 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -121,7 +121,8 @@ uint8_t sched_select_uplink(uint8_t trx, uint8_t ts, uint32_t fn, return usf; } -struct msgb *sched_select_ctrl_msg(uint8_t trx, uint8_t ts, uint32_t fn, +static struct msgb *sched_select_ctrl_msg(struct gprs_rlcmac_bts *bts, + uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, struct gprs_rlcmac_tbf *ul_ass_tbf, struct gprs_rlcmac_tbf *dl_ass_tbf, @@ -143,7 +144,7 @@ struct msgb *sched_select_ctrl_msg(uint8_t trx, uint8_t ts, uint32_t fn, /* schedule PACKET UPLINK ACK (3rd priority) */ if (!msg && ul_ack_tbf) { tbf = ul_ack_tbf; - msg = gprs_rlcmac_send_uplink_ack(tbf, fn); + msg = gprs_rlcmac_send_uplink_ack(bts, tbf, fn); } /* any message */ if (msg) { @@ -270,7 +271,7 @@ int gprs_rlcmac_rcv_rts_block(uint8_t trx, uint8_t ts, uint16_t arfcn, usf = sched_select_uplink(trx, ts, fn, block_nr, pdch); /* Prio 1: select control message */ - msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, ul_ass_tbf, + msg = sched_select_ctrl_msg(bts, trx, ts, fn, block_nr, pdch, ul_ass_tbf, dl_ass_tbf, ul_ack_tbf); /* Prio 2: select data message for downlink */ |