When resuming from suspend-to-ram it's likely that UDP SOME-IP works but the TCP socket got broken. Until a new TCP socket gets established, the remote end responds SubscribeNak. The handler will call restart()
restart() will early terminate 5 times total. Thereafter it will call shutdown_and_close_socket_unlocked. This is really expensive if the node sends thousands of total requests before a TCP socket gets established.
Options include:
do not call restart() at all on SubscribeNak. seems safe?
fix restart() to early-terminate better in this state, more than 5x
ensure that SOMEIP-SD is inhibited in this state (suspend routing?)
This commit implements 1 but the others might be alternatives
fixes #690
When resuming from suspend-to-ram it's likely that UDP SOME-IP works but the TCP socket got broken. Until a new TCP socket gets established, the remote end responds SubscribeNak. The handler will call restart()
restart()
will early terminate 5 times total. Thereafter it will callshutdown_and_close_socket_unlocked
. This is really expensive if the node sends thousands of total requests before a TCP socket gets established.Options include:
restart()
at all on SubscribeNak. seems safe?restart()
to early-terminate better in this state, more than 5xThis commit implements 1 but the others might be alternatives