Vladimir Rolbin wrote:
Hi Andreas,
 
1. If I see well the pcu expects PCU_IF_MSG_DATA_CNF data starting from plen..
   This error:
 
   <0002> gprs_rlcmac_data.cpp:1138 TX: Immediate Assignment Uplink (AGCH)

<0002> gprs_rlcmac_data.cpp:1876 Got IMM.ASS confirm, but rest octets do not start with bit sequence 'HH01' (Packet Downlink Assignment)

 

is caused by openBTS's confirm from PCU_IF_SAPI_AGCH handler, the example of the frame sent back to the pcu:
hi vladimir,

check out pcu_rx_data_cnf() at pcu_l1_if.cpp. it filters the confirm and only passes PCU_IF_SAPI_PCH to gprs_rlcmac_imm_ass_cnf(). in your case above, the uplink assignment on AGCH may result in a confirm, but in this case it should have PCH sapi in order to be ignored:

it might help to add this to pcu_rx_data_cnf():

case PCU_IF_SAPI_AGCH:
    break;

sysmobts is currently not sending an AGCH confirm via PCH interface, so this is why i did not implement it.


<0006> gprs_rlcmac_sched.cpp:260 Received RTS for PDCH: TRX=0 TS=7 FN=2353693 block_nr=4 scheduling free USF for polling at FN=2353697 of DL TFI=0

<0006> gprs_rlcmac_sched.cpp:260 Received RTS for PDCH: TRX=0 TS=7 FN=2353702 block_nr=6 scheduling free USF for polling at FN=2353706 of UL TFI=0

<0002> gprs_rlcmac_data.cpp:376 PACKET DOWNLINK ACK with unknown FN=2353693 TFI=0 (TRX 0 TS 7)

<0002> gprs_rlcmac_data.cpp:288 PACKET CONTROL ACK with expected FN=2353706 TLL=0xec8157f3 (TRX 0 TS 7)

the packet control ack seems ok. it is polled at 2353693 with 13 bursts in advance and therefore the block 2352706 is reserved for uplink. (the USF is set accordingly 4 bursts earlier.)

but the packet downlink ack is received 4 bursts too early. i would suggest to set DRLCMAC debugging to DEBUG. at gprs_rlcmac_send_data_block_acknowledged() the debugging shows in which FN it is scheduled. then the frame number to be polled is set there:

...
LOGP(DRLCMAC, LOGL_DEBUG, "Polling sheduled in this "
    "TS %d\n", ts);
...
tbf->poll_state = GPRS_RLCMAC_POLL_SCHED;
tbf->poll_fn = (fn + 13) % 2715648;
...

you may also just change the log level of that debug line to LOGL_NOTICE.


regards,

andreas