Latest update on this is that I’m still not sure what’s happening with the downlink stuff. I am setting TA in the IMM_ASS and the DRX timer is set to something very long.
I have noticed another thing and I would appreciate any insight.
Many of the PDANs I receive have a Channel Request Description IE in them, which is normal, so I send a Packet Uplink Assignment in response. This was working fine.
A recent change I made in the code, though, broke this. The change was that I would set the RRBP and poll bits on every 8th downlink data block (last three bits of BSN = 0) so that the MS has a chance to acknowledge received / missing blocks in mid-stream rather than waiting until the end. I also set the RRBP and poll bit in the last block. Partly this was so that I had early notification of whether the downlink assignment was successful.
Early in the message sequence the network sends PDP CNTX ACCEPT and this takes two RLC/MAC data blocks. Both of these have RRBP & poll bits set (the first one because BSN % 8 = 0, the second one because it is the final block).
I get a PDAN for each block, which is normal, and I get a Channel Request Description which is also normal. When I sent the PUA, though, it is ignored by the MS.
If I remove the code that adds the mid-flow RRBP and poll bit then it works fine, i.e. I get a PCA for the PUA. If RRBP and poll bits are set on both D/L data blocks then the PUA is ignored.
Does this make sense? I would expect the PUA to be accepted regardless of how many data blocks have poll bits set.