gprs/test: Add additional gbproxy tests

This adds a test case with several messages to test BSSGP patching.
New messages:

- BSSGP/DTAP Attach Request
- BSSGP/DTAP Attach Accept
- BSSGP/DTAP Routing Area Update Request
- BSSGP/DTAP Routing Area Update Accept
- BSSGP/DTAP Activate PDP Context Request
- BSSGP SUSPEND
- BSSGP SUSPEND ACK

Sponsored-by: On-Waves ehf
This commit is contained in:
Jacob Erlbeck 2014-07-07 10:46:01 +02:00 committed by Holger Hans Peter Freyther
parent 738b1c8adb
commit eb3102eb77
2 changed files with 460 additions and 1 deletions

View File

@ -28,13 +28,88 @@
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gb_proxy.h>
#include <openbsc/debug.h>
#define REMOTE_BSS_ADDR 0x01020304
#define REMOTE_SGSN_ADDR 0x05060708
#define SGSN_NSEI 0x0100
struct gbproxy_config gbcfg;
struct gbproxy_config gbcfg = {0};
/* Base Station Subsystem GPRS Protocol: GSM A-I/F DTAP - Attach Request */
static const unsigned char bssgp_attach_req[75] = {
0x01, 0xbb, 0xc5, 0x46, 0x79, 0x00, 0x00, 0x04,
0x08, 0x88, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60,
0x75, 0x30, 0x00, 0x80, 0x0e, 0x00, 0x34, 0x01,
0xc0, 0x01, 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21,
0x08, 0x02, 0x05, 0xf4, 0xfb, 0xc5, 0x46, 0x79,
0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, 0x18,
0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60,
0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80,
0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00,
0x16, 0x6d, 0x01
};
/* Base Station Subsystem GPRS Protocol: GSM A-I/F DTAP - Attach Accept */
static const unsigned char bssgp_attach_acc[88] = {
0x00, 0xbb, 0xc5, 0x46, 0x79, 0x00, 0x50, 0x20,
0x16, 0x82, 0x02, 0x58, 0x13, 0x99, 0x18, 0xb3,
0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, 0x80,
0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba,
0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00, 0x0a,
0x82, 0x08, 0x02, 0x0d, 0x88, 0x11, 0x12, 0x13,
0x14, 0x15, 0x16, 0x17, 0x18, 0x00, 0x81, 0x00,
0x0e, 0x9e, 0x41, 0xc0, 0x05, 0x08, 0x02, 0x01,
0x49, 0x04, 0x21, 0x63, 0x54, 0x40, 0x50, 0x60,
0x19, 0xcd, 0xd7, 0x08, 0x17, 0x16, 0x18, 0x05,
0xf4, 0xfb, 0xc5, 0x47, 0x22, 0x42, 0x67, 0x9a
};
/* Base Station Subsystem GPRS Protocol: GSM A-I/F DTAP - Routing Area Update Request */
static const unsigned char bssgp_ra_upd_req[85] = {
0x01, 0xaf, 0xe2, 0x80, 0x6e, 0x00, 0x00, 0x04,
0x08, 0x88, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60,
0x70, 0x80, 0x00, 0x80, 0x0e, 0x00, 0x3e, 0x01,
0xc0, 0x15, 0x08, 0x08, 0x10, 0x11, 0x22, 0x33,
0x40, 0x50, 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33,
0x57, 0x2b, 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48,
0x50, 0xc8, 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8,
0x48, 0x02, 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02,
0x00, 0x19, 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27,
0x07, 0x04, 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02,
0x20, 0x00, 0x96, 0x3e, 0x97
};
/* Base Station Subsystem GPRS Protocol: GSM A-I/F DTAP - Routing Area Update Accept */
static const unsigned char bssgp_ra_upd_acc[91] = {
0x00, 0xaf, 0xe2, 0x80, 0x6e, 0x00, 0x50, 0x20,
0x16, 0x82, 0x02, 0x58, 0x13, 0x9d, 0x19, 0x13,
0x42, 0x33, 0x57, 0x2b, 0xf7, 0xc8, 0x48, 0x02,
0x13, 0x48, 0x50, 0xc8, 0x48, 0x02, 0x14, 0x48,
0x50, 0xc8, 0x48, 0x02, 0x17, 0x49, 0x10, 0xc8,
0x48, 0x02, 0x00, 0x0a, 0x82, 0x07, 0x04, 0x0d,
0x88, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x00, 0x81, 0x00, 0x0e, 0x9d, 0x41, 0xc0,
0x19, 0x08, 0x09, 0x00, 0x49, 0x21, 0x63, 0x54,
0x40, 0x50, 0x60, 0x19, 0x54, 0xab, 0xb3, 0x18,
0x05, 0xf4, 0xef, 0xe2, 0x81, 0x17, 0x17, 0x16,
0xc3, 0xbf, 0xcc
};
/* Base Station Subsystem GPRS Protocol: GSM A-I/F DTAP - Activate PDP Context Request */
static const unsigned char bssgp_act_pdp_ctx_req[76] = {
0x01, 0xef, 0xe2, 0xb7, 0x00, 0x00, 0x00, 0x04,
0x08, 0x88, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60,
0x75, 0x30, 0x00, 0x80, 0x0e, 0x00, 0x35, 0x01,
0xc0, 0x0d, 0x0a, 0x41, 0x05, 0x03, 0x0c, 0x00,
0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x01, 0x21, 0x28, 0x03,
0x02, 0x61, 0x62, 0x27, 0x14, 0x80, 0x80, 0x21,
0x10, 0x01, 0x00, 0x00, 0x10, 0x81, 0x06, 0x00,
0x00, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, 0x00,
0x00, 0x5a, 0xff, 0x02
};
static int gprs_process_message(struct gprs_ns_inst *nsi, const char *text,
struct sockaddr_in *peer, const unsigned char* data,
@ -168,6 +243,37 @@ static void send_bssgp_reset_ack(struct gprs_ns_inst *nsi,
send_ns_unitdata(nsi, "BVC_RESET_ACK", src_addr, 0, msg, sizeof(msg));
}
static void send_bssgp_suspend(struct gprs_ns_inst *nsi,
struct sockaddr_in *src_addr,
struct gprs_ra_id *raid)
{
/* Base Station Subsystem GPRS Protocol, BSSGP SUSPEND */
unsigned char msg[15] = {
0x0b, 0x1f, 0x84, 0xcc, 0xd1, 0x75, 0x8b, 0x1b,
0x86, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60
};
gsm48_construct_ra(msg + 9, raid);
send_ns_unitdata(nsi, "BVC_SUSPEND", src_addr, 0, msg, sizeof(msg));
}
static void send_bssgp_suspend_ack(struct gprs_ns_inst *nsi,
struct sockaddr_in *src_addr,
struct gprs_ra_id *raid)
{
/* Base Station Subsystem GPRS Protocol, BSSGP SUSPEND ACK */
unsigned char msg[18] = {
0x0c, 0x1f, 0x84, 0xcc, 0xd1, 0x75, 0x8b, 0x1b,
0x86, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x1d,
0x81, 0x01
};
gsm48_construct_ra(msg + 9, raid);
send_ns_unitdata(nsi, "BVC_SUSPEND_ACK", src_addr, 0, msg, sizeof(msg));
}
static void setup_ns(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr,
uint16_t nsvci, uint16_t nsei)
{
@ -687,6 +793,90 @@ static void test_gbproxy_ident_changes()
gbprox_reset();
}
static void test_gbproxy_ra_patching()
{
struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL);
struct sockaddr_in bss_peer[1] = {{0},};
struct sockaddr_in sgsn_peer= {0};
struct gprs_ra_id rai_bss =
{.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96};
struct gprs_ra_id rai_sgsn =
{.mcc = 123, .mnc = 456, .lac = 16464, .rac = 96};
struct gprs_ra_id rai_unknown =
{.mcc = 1, .mnc = 99, .lac = 99, .rac = 96};
bssgp_nsi = nsi;
gbcfg.nsi = bssgp_nsi;
gbcfg.nsip_sgsn_nsei = SGSN_NSEI;
sgsn_peer.sin_family = AF_INET;
sgsn_peer.sin_port = htons(32000);
sgsn_peer.sin_addr.s_addr = htonl(REMOTE_SGSN_ADDR);
bss_peer[0].sin_family = AF_INET;
bss_peer[0].sin_port = htons(1111);
bss_peer[0].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR);
printf("--- Initialise SGSN ---\n\n");
connect_sgsn(nsi, &sgsn_peer);
gprs_dump_nsi(nsi);
printf("--- Initialise BSS 1 ---\n\n");
setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000);
setup_bssgp(nsi, &bss_peer[0], 0x1002);
gprs_dump_nsi(nsi);
gbprox_dump_peers(stdout, 0);
send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002);
send_bssgp_suspend(nsi, &bss_peer[0], &rai_bss);
send_bssgp_suspend_ack(nsi, &sgsn_peer, &rai_sgsn);
gbprox_dump_global(stdout, 0);
gbprox_dump_peers(stdout, 0);
printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n");
send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1002,
bssgp_attach_req, sizeof(bssgp_attach_req));
send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x1002,
bssgp_attach_acc, sizeof(bssgp_attach_acc));
send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1002,
bssgp_ra_upd_req, sizeof(bssgp_ra_upd_req));
send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x1002,
bssgp_ra_upd_acc, sizeof(bssgp_ra_upd_acc));
/* Replace APN */
send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1002,
bssgp_act_pdp_ctx_req, sizeof(bssgp_act_pdp_ctx_req));
/* TODO: Re-configure to test APN IE removal */
/* Remove APN */
send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1002,
bssgp_act_pdp_ctx_req, sizeof(bssgp_act_pdp_ctx_req));
gbprox_dump_global(stdout, 0);
gbprox_dump_peers(stdout, 0);
printf("--- Bad cases ---\n\n");
send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1eee);
send_bssgp_suspend_ack(nsi, &sgsn_peer, &rai_unknown);
gbprox_dump_global(stdout, 0);
gbprox_dump_peers(stdout, 0);
gprs_ns_destroy(nsi);
nsi = NULL;
gbprox_reset();
}
static struct log_info info = {};
@ -707,6 +897,7 @@ int main(int argc, char **argv)
printf("===== GbProxy test START\n");
test_gbproxy();
test_gbproxy_ident_changes();
test_gbproxy_ra_patching();
printf("===== GbProxy test END\n\n");
exit(EXIT_SUCCESS);

View File

@ -1518,5 +1518,273 @@ Peers:
NS Transmission error : 2
NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96
NSEI mismatch : 1
--- Initialise SGSN ---
MESSAGE to SGSN at 0x05060708:32000, msg length 12
02 00 81 01 01 82 01 01 04 82 01 00
PROCESSING RESET_ACK from 0x05060708:32000
03 01 82 01 01 04 82 01 00
MESSAGE to SGSN at 0x05060708:32000, msg length 1
0a
result (RESET_ACK) = 1
PROCESSING ALIVE_ACK from 0x05060708:32000
0b
MESSAGE to SGSN at 0x05060708:32000, msg length 1
06
result (ALIVE_ACK) = 1
PROCESSING UNBLOCK_ACK from 0x05060708:32000
07
==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000
result (UNBLOCK_ACK) = 0
PROCESSING ALIVE from 0x05060708:32000
0a
MESSAGE to SGSN at 0x05060708:32000, msg length 1
0b
result (ALIVE) = 1
Current NS-VCIs:
VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000
NS-VC Block count : 1
--- Initialise BSS 1 ---
Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096)
PROCESSING RESET from 0x01020304:1111
02 00 81 01 01 82 10 01 04 82 10 00
==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111
MESSAGE to BSS at 0x01020304:1111, msg length 9
03 01 82 10 01 04 82 10 00
MESSAGE to BSS at 0x01020304:1111, msg length 1
0a
result (RESET) = 9
PROCESSING ALIVE from 0x01020304:1111
0a
MESSAGE to BSS at 0x01020304:1111, msg length 1
0b
result (ALIVE) = 1
PROCESSING UNBLOCK from 0x01020304:1111
06
==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111
MESSAGE to BSS at 0x01020304:1111, msg length 1
07
result (UNBLOCK) = 1
PROCESSING ALIVE_ACK from 0x01020304:1111
0b
result (ALIVE_ACK) = 0
Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098)
PROCESSING BVC_RESET from 0x01020304:1111
00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 00 00 00 00
CALLBACK, event 0, msg length 22, bvci 0x0000
22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 00 00 00 00
NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 22
22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 00 00 00 00
MESSAGE to SGSN at 0x05060708:32000, msg length 26
00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 00 00 00 00
result (BVC_RESET) = 26
Current NS-VCIs:
VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111
VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000
NS-VC Block count : 1
Peers:
NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
PROCESSING BVC_RESET_ACK from 0x05060708:32000
00 00 00 00 23 04 82 10 02
CALLBACK, event 0, msg length 5, bvci 0x0000
23 04 82 10 02
NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5
23 04 82 10 02
MESSAGE to BSS at 0x01020304:1111, msg length 9
00 00 00 00 23 04 82 10 02
result (BVC_RESET_ACK) = 9
PROCESSING BVC_SUSPEND from 0x01020304:1111
00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60
CALLBACK, event 0, msg length 15, bvci 0x0000
0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60
NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 15
0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60
MESSAGE to SGSN at 0x05060708:32000, msg length 19
00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60
result (BVC_SUSPEND) = 19
PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000
00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01
CALLBACK, event 0, msg length 18, bvci 0x0000
0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01
NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 24
41 07 81 05 15 92 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01
MESSAGE to SGSN at 0x05060708:32000, msg length 28
00 00 00 00 41 07 81 05 15 92 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01
result (BVC_SUSPEND_ACK) = 28
Gbproxy global:
Invalid Routing Area Identifier : 1
Peers:
NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---
PROCESSING UNITDATA from 0x01020304:1111
00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01
CALLBACK, event 0, msg length 75, bvci 0x1002
01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01
NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75
01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01
MESSAGE to SGSN at 0x05060708:32000, msg length 79
00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01
result (UNITDATA) = 79
PROCESSING UNITDATA from 0x05060708:32000
00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 fb c5 47 22 42 67 9a
CALLBACK, event 0, msg length 88, bvci 0x1002
00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 fb c5 47 22 42 67 9a
NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88
00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 fb c5 47 22 42 67 9a
MESSAGE to BSS at 0x01020304:1111, msg length 92
00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 fb c5 47 22 42 67 9a
result (UNITDATA) = 92
PROCESSING UNITDATA from 0x01020304:1111
00 00 10 02 01 af e2 80 6e 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97
CALLBACK, event 0, msg length 85, bvci 0x1002
01 af e2 80 6e 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97
NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85
01 af e2 80 6e 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97
MESSAGE to SGSN at 0x05060708:32000, msg length 89
00 00 10 02 01 af e2 80 6e 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97
result (UNITDATA) = 89
PROCESSING UNITDATA from 0x05060708:32000
00 00 10 02 00 af e2 80 6e 00 50 20 16 82 02 58 13 9d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 0a 82 07 04 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 81 17 17 16 c3 bf cc
CALLBACK, event 0, msg length 91, bvci 0x1002
00 af e2 80 6e 00 50 20 16 82 02 58 13 9d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 0a 82 07 04 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 81 17 17 16 c3 bf cc
NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 91
00 af e2 80 6e 00 50 20 16 82 02 58 13 9d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 0a 82 07 04 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 81 17 17 16 c3 bf cc
MESSAGE to BSS at 0x01020304:1111, msg length 95
00 00 10 02 00 af e2 80 6e 00 50 20 16 82 02 58 13 9d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 0a 82 07 04 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 81 17 17 16 c3 bf cc
result (UNITDATA) = 95
PROCESSING UNITDATA from 0x01020304:1111
00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
CALLBACK, event 0, msg length 76, bvci 0x1002
01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 76
01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
MESSAGE to SGSN at 0x05060708:32000, msg length 80
00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
result (UNITDATA) = 80
PROCESSING UNITDATA from 0x01020304:1111
00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
CALLBACK, event 0, msg length 76, bvci 0x1002
01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 76
01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
MESSAGE to SGSN at 0x05060708:32000, msg length 80
00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02
result (UNITDATA) = 80
Gbproxy global:
Invalid Routing Area Identifier : 1
Peers:
NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
--- Bad cases ---
PROCESSING BVC_RESET_ACK from 0x05060708:32000
00 00 00 00 23 04 82 1e ee
CALLBACK, event 0, msg length 5, bvci 0x0000
23 04 82 1e ee
result (BVC_RESET_ACK) = -2
PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000
00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01
CALLBACK, event 0, msg length 18, bvci 0x0000
0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01
NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 24
41 07 81 05 15 92 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01
MESSAGE to SGSN at 0x05060708:32000, msg length 28
00 00 00 00 41 07 81 05 15 92 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01
result (BVC_SUSPEND_ACK) = 28
Gbproxy global:
Invalid BVC Identifier : 1
Invalid Routing Area Identifier : 2
Peers:
NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
===== GbProxy test END