@ -125,7 +125,6 @@ gprs_rlcmac_tbf::gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_
first_ts ( 0 ) ,
first_common_ts ( 0 ) ,
control_ts ( 0xff ) ,
poll_ts ( 0 ) ,
fT ( 0 ) ,
num_fT_exp ( 0 ) ,
was_releasing ( 0 ) ,
@ -581,45 +580,44 @@ void gprs_rlcmac_tbf::set_polling(uint32_t new_poll_fn, uint8_t ts, enum pdch_ul
chan , new_poll_fn , ts ) ;
return ;
}
poll_ts = ts ;
switch ( reason ) {
case PDCH_ULC_POLL_UL_ASS :
ul_ass_state = GPRS_RLCMAC_UL_ASS_WAIT_ACK ;
LOGPTBFDL ( this , LOGL_INFO , " Scheduled UL Assignment polling on %s (FN=%d, TS=%d) \n " ,
chan , new_poll_fn , poll_ ts) ;
chan , new_poll_fn , ts ) ;
break ;
case PDCH_ULC_POLL_DL_ASS :
dl_ass_state = GPRS_RLCMAC_DL_ASS_WAIT_ACK ;
LOGPTBFDL ( this , LOGL_INFO , " Scheduled DL Assignment polling on %s (FN=%d, TS=%d) \n " ,
chan , new_poll_fn , poll_ ts) ;
chan , new_poll_fn , ts ) ;
break ;
case PDCH_ULC_POLL_UL_ACK :
ul_ack_state = GPRS_RLCMAC_UL_ACK_WAIT_ACK ;
LOGPTBFUL ( this , LOGL_DEBUG , " Scheduled UL Acknowledgement polling on %s (FN=%d, TS=%d) \n " ,
chan , new_poll_fn , poll_ ts) ;
chan , new_poll_fn , ts ) ;
break ;
case PDCH_ULC_POLL_DL_ACK :
LOGPTBFDL ( this , LOGL_DEBUG , " Scheduled DL Acknowledgement polling on %s (FN=%d, TS=%d) \n " ,
chan , new_poll_fn , poll_ ts) ;
chan , new_poll_fn , ts ) ;
break ;
case PDCH_ULC_POLL_CELL_CHG_CONTINUE :
LOGPTBFDL ( this , LOGL_DEBUG , " Scheduled 'Packet Cell Change Continue' polling on %s (FN=%d, TS=%d) \n " ,
chan , new_poll_fn , poll_ ts) ;
chan , new_poll_fn , ts ) ;
break ;
}
}
void gprs_rlcmac_tbf : : poll_timeout ( uint32_t poll_fn , enum pdch_ulc_tbf_poll_reason reason )
void gprs_rlcmac_tbf : : poll_timeout ( struct gprs_rlcmac_pdch * pdch , uint32_t poll_fn , enum pdch_ulc_tbf_poll_reason reason )
{
uint16_t pgroup ;
gprs_rlcmac_ul_tbf * ul_tbf = as_ul_tbf ( this ) ;
LOGPTBF ( this , LOGL_NOTICE , " poll timeout for FN=%d, TS=%d (curr FN %d) \n " ,
poll_fn , poll_ts , bts_current_frame_number ( bts ) ) ;
poll_fn , pdch - > ts_no , bts_current_frame_number ( bts ) ) ;
if ( ul_tbf & & ul_tbf - > handle_ctrl_ack ( reason ) ) {
if ( ! ul_tbf - > ctrl_ack_to_toggle ( ) ) {
@ -679,7 +677,7 @@ void gprs_rlcmac_tbf::poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reas
/* reschedule DL assignment */
dl_ass_state = GPRS_RLCMAC_DL_ASS_SEND_ASS ;
} else if ( m_ms - > nacc & & m_ms - > nacc - > fi - > state = = NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK & &
m_ms - > nacc - > continue_poll_fn = = poll_fn & & m_ms - > nacc - > continue_poll_ts = = poll_ts ) {
m_ms - > nacc - > continue_poll_fn = = poll_fn & & m_ms - > nacc - > continue_poll_ts = = pdch - > ts_no ) {
/* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */
osmo_fsm_inst_dispatch ( m_ms - > nacc - > fi , NACC_EV_TIMEOUT_CELL_CHG_CONTINUE , NULL ) ;
return ;
@ -1209,7 +1207,7 @@ void tbf_set_polling(struct gprs_rlcmac_tbf *tbf, uint32_t new_poll_fn, uint8_t
return tbf - > set_polling ( new_poll_fn , ts , t ) ;
}
void tbf_poll_timeout ( struct gprs_rlcmac_tbf * tbf , uint32_t poll_fn , enum pdch_ulc_tbf_poll_reason reason )
void tbf_poll_timeout ( struct gprs_rlcmac_tbf * tbf , struct gprs_rlcmac_pdch * pdch , uint32_t poll_fn , enum pdch_ulc_tbf_poll_reason reason )
{
tbf - > poll_timeout ( poll_fn , reason ) ;
tbf - > poll_timeout ( pdch , p oll_fn , reason ) ;
}