On Wed, Oct 08, 2014 at 12:05:18PM +0200, Jacob Erlbeck wrote:
Currently the NS-VC's state is updated from within gprs_ns_tx_reset, which can lead to an inconsistent state when the RESET_ACK is lost. In this state, the NSE_S_RESET bit is set but the Tns-reset timer is not started. sent_pdu_type = -1; send_ns_alive(nsi, &sgsn_peer);
/* Disabled, since it is not yet fixed OSMO_ASSERT(sent_pdu_type == -1); send_ns_reset_ack(nsi, &sgsn_peer, SGSN_NSEI+1, SGSN_NSEI); OSMO_ASSERT(sent_pdu_type == NS_PDUT_ALIVE); send_ns_alive_ack(nsi, &sgsn_peer); OSMO_ASSERT(sent_pdu_type == NS_PDUT_UNBLOCK); send_ns_unblock_ack(nsi, &sgsn_peer);
*/
send_ns_unitdata(nsi, &sgsn_peer, 0x1234, dummy_sdu, sizeof(dummy_sdu));
I think it would be nice if you could directly ASSERT the unblocked alive state of the NSI? It should be fairly to do?
All patches look great and it is nice incremental work. I am going to merge them now. Please provide a follow-up patch that addresses the points you think are valid.
holger