summaryrefslogtreecommitdiffstats
path: root/tests/gb
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2013-10-24 01:33:25 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-10-24 10:01:18 +0200
commit54b8b2dfefae7d495aa17c3e187b317a0a6243cd (patch)
tree5e7de810ad5f60ed7ed0eaa952304ea2e47c7e93 /tests/gb
parentab852ee23439725360f28c63d20ab61b0d774b2b (diff)
gb: Create new NSVC object instead of patching the NSVCI
When a RESET is received on the same link with a different NSVCI from a BSS on a dynamically created NS connection do not patch the nsvc object but create a new one instead. Thus the NSVCI is never modified at a nsvc object after the NS-VC has been established. Sponsored-by: On-Waves ehf
Diffstat (limited to 'tests/gb')
-rw-r--r--tests/gb/gprs_ns_test.c5
-rw-r--r--tests/gb/gprs_ns_test.ok35
2 files changed, 28 insertions, 12 deletions
diff --git a/tests/gb/gprs_ns_test.c b/tests/gb/gprs_ns_test.c
index 546c20a3..c88792c7 100644
--- a/tests/gb/gprs_ns_test.c
+++ b/tests/gb/gprs_ns_test.c
@@ -435,11 +435,12 @@ static void gprs_dump_nsi(struct gprs_ns_inst *nsi)
printf("Current NS-VCIs:\n");
llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) {
struct sockaddr_in *peer = &(nsvc->ip.bts_addr);
- printf(" VCI 0x%04x, NSEI 0x%04x, peer 0x%08x:%d%s%s\n",
+ printf(" VCI 0x%04x, NSEI 0x%04x, peer 0x%08x:%d%s%s%s\n",
nsvc->nsvci, nsvc->nsei,
ntohl(peer->sin_addr.s_addr), ntohs(peer->sin_port),
nsvc->state & NSE_S_BLOCKED ? ", blocked" : "",
- nsvc->state & NSE_S_ALIVE ? "" : ", dead"
+ nsvc->state & NSE_S_ALIVE ? "" : ", dead",
+ nsvc->nsvci_is_valid ? "" : ", invalid VCI"
);
dump_rate_ctr_group(stdout, " ", nsvc->ctrg);
}
diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok
index 5f90d03f..8a614507 100644
--- a/tests/gb/gprs_ns_test.ok
+++ b/tests/gb/gprs_ns_test.ok
@@ -445,6 +445,7 @@ Current NS-VCIs:
PROCESSING RESET from 0x01020304:2222
02 00 81 01 01 82 f0 01 04 82 10 00
+==> got signal NS_REPLACED: 0xf001/0.0.0.0:0 -> 0x1001/1.2.3.4:2222
==> got signal NS_RESET, NS-VC 0xf001/1.2.3.4:2222
MESSAGE to BSS, msg length 9
03 01 82 f0 01 04 82 10 00
@@ -455,17 +456,20 @@ MESSAGE to BSS, msg length 1
result (RESET) = 9
Current NS-VCIs:
- VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
VCI 0xf001, NSEI 0x1000, peer 0x01020304:2222, blocked
+ NS-VC replaced other count: 1
+ VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+ VCI 0x1001, NSEI 0xf000, peer 0x00000000:0, blocked
NS-VC Block count : 3
NS-VC replaced other count: 1
- NS-VC changed NSEI count : 2
+ NS-VC changed NSEI count : 1
--- RESET with old NSEI, NSVCI, BSS -> SGSN ---
PROCESSING RESET from 0x01020304:2222
02 00 81 01 01 82 10 01 04 82 10 00
+==> got signal NS_REPLACED: 0x1001/0.0.0.0:0 -> 0xf001/1.2.3.4:2222
==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:2222
MESSAGE to BSS, msg length 9
03 01 82 10 01 04 82 10 00
@@ -476,10 +480,12 @@ MESSAGE to BSS, msg length 1
result (RESET) = 9
Current NS-VCIs:
+ VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, blocked
+ NS-VC replaced other count: 1
VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
NS-VC Block count : 3
- NS-VC replaced other count: 1
+ NS-VC replaced other count: 2
NS-VC changed NSEI count : 2
--- Unexpected RESET_ACK VC 1, BSS -> SGSN ---
@@ -490,10 +496,12 @@ PROCESSING RESET_ACK from 0x01020304:2222
result (RESET_ACK) = 0
Current NS-VCIs:
+ VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, blocked
+ NS-VC replaced other count: 1
VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
NS-VC Block count : 3
- NS-VC replaced other count: 1
+ NS-VC replaced other count: 2
NS-VC changed NSEI count : 2
--- RESET_ACK with invalid NSEI, BSS -> SGSN ---
@@ -510,10 +518,12 @@ MESSAGE to BSS, msg length 1
result (RESET_ACK) = 1
Current NS-VCIs:
+ VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, blocked
+ NS-VC replaced other count: 1
VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
VCI 0x1001, NSEI 0xf000, peer 0x01020304:2222, blocked
NS-VC Block count : 4
- NS-VC replaced other count: 1
+ NS-VC replaced other count: 2
NS-VC changed NSEI count : 3
--- RESET_ACK with invalid NSVCI, BSS -> SGSN ---
@@ -524,16 +534,21 @@ MESSAGE to BSS, msg length 12
PROCESSING RESET_ACK from 0x01020304:2222
03 01 82 f0 01 04 82 10 00
-==> got signal NS_MISMATCH: 0x1001/1.2.3.4:2222 pdu=3, ie=1
-result (RESET_ACK) = -22
+==> got signal NS_REPLACED: 0xf001/0.0.0.0:0 -> 0x1001/1.2.3.4:2222
+MESSAGE to BSS, msg length 1
+0a
+
+result (RESET_ACK) = 1
Current NS-VCIs:
+ VCI 0xf001, NSEI 0x1000, peer 0x01020304:2222, blocked
+ NS-VC Block count : 1
+ NS-VC replaced other count: 2
VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
- VCI 0x1001, NSEI 0xf000, peer 0x01020304:2222, blocked
+ VCI 0x1001, NSEI 0xf000, peer 0x00000000:0, blocked
NS-VC Block count : 4
- NS-VC replaced other count: 1
+ NS-VC replaced other count: 2
NS-VC changed NSEI count : 3
- NS-VCI was invalid count : 1
Current NS-VCIs: