diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2013-10-14 22:06:48 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-10-15 10:20:34 +0200 |
commit | 5e6d679df39e5e20b55ef24754a4e6310c9bcad2 (patch) | |
tree | 762c75f088dd6b287f4cc2765657d085b43ed45e /src/conv.c | |
parent | 96550e03214697be2d1b303a690ef10ea3bb12b7 (diff) |
gb: Fix gprs_ns_rx_reset to not create NS-VC duplicates
Under special circumstances (see below) receiving a NS-RESET leads to
duplicated NS-VC entries.
This happens when the source port of a NS-VC changes to a new one
that has already been used by another NS-VC.
This patch changes gprs_ns_rx_reset() to check for this case and to
use the existing NS-VC object. The NS-VC object that was associated
with the source address before is detached from this source but kept
in the NS-VC list so that it can be reattached when a correspondent
NS-RESET is received later on. Meanwhile it will have a cleared link
layer address which will not match a real link info.
A new counter NS_CTR_REPLACED is incremented each time when the NS-VC
object is replacing another one. A new signal S_NS_REPLACED is added
which gets dispatched in this case, too.
Another new counter NS_CTR_NSEI_CHG is incremented each time when the
NSEI of a NS-VC object (with fixed NSVCI) changes.
Ticket: OW#874
Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/conv.c')
0 files changed, 0 insertions, 0 deletions