mirror of https://gerrit.osmocom.org/libosmocore
fe2aa68db8
Currently the state is assumed to remain the same while the reset procedure is active. While this works correctly in general, a single unexpected BLOCK_ACK or UNBLOCK_ACK can change the state but will not stop the reset procedure. The leads to repeated RESET messages, where the corresponding RESET_ACK is ignored. This is a stable state which can only be left by manual intervention or by reception of a RESET message from the peer. This commit changes the RESET timeout handler to set the state to BLOCKED/RESET when sending the new NS RESET message. Note that this should ensure a clean restart even if the state has been screwed up. It does not fix the handling of BLOCK_ACK or UNBLOCK_ACK in abnormal cases. Addresses: gprs_ns.c:349 NSEI=8895 Tx NS RESET (NSVCI=8895, cause=O&M intervention) gprs_ns.c:878 NSVCI=8895 Rx NS RESET ACK (NSEI=8895, NSVCI=8895) gprs_ns.c:887 NS RESET ACK Discarding unexpected message for NS-VCI 8895 from SGSN NSEI=8895 Ticket: OW#1551 Sponsored-by: On-Waves ehf |
||
---|---|---|
.. | ||
codec | ||
ctrl | ||
gb | ||
gsm | ||
vty | ||
Makefile.am | ||
application.c | ||
backtrace.c | ||
bits.c | ||
bitvec.c | ||
conv.c | ||
crc16.c | ||
crcXXgen.c.tpl | ||
gsmtap_util.c | ||
logging.c | ||
logging_syslog.c | ||
loggingrb.c | ||
macaddr.c | ||
msgb.c | ||
msgfile.c | ||
panic.c | ||
plugin.c | ||
rate_ctr.c | ||
rbtree.c | ||
select.c | ||
serial.c | ||
signal.c | ||
socket.c | ||
statistics.c | ||
strrb.c | ||
talloc.c | ||
timer.c | ||
utils.c | ||
write_queue.c |