blob: fa906a87ba2091562bb3416f1a894dc44f8ec22b [file] [log] [blame]
Harald Weltef7b74072019-02-20 20:48:50 +01001module PCU_Tests_RAW_SNS {
2
3import from Osmocom_Types all;
4import from PCU_Tests all;
5import from PCU_Tests_RAW all;
6
7/**********************************************************************************
8 * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS)
9 **********************************************************************************/
10
11/* PCU-originated SNS-SIZE: successful case */
12testcase TC_sns_po_size_success() runs on RAW_NS_CT {
13 f_init_ns_codec();
14 f_init_pcuif();
15 f_incoming_sns_size();
16 f_sleep(1.0);
17 setverdict(pass);
18}
19
20/* PCU-originated SNS-SIZE: NACK from our side */
21testcase TC_sns_po_size_nack() runs on RAW_NS_CT {
22 f_init_ns_codec();
23 f_init_pcuif();
24 f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED);
25 /* FIXME: ensure we don't get a SNS-CONFIG */
26 /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */
27 f_sleep(10.0);
28 setverdict(pass);
29}
30
31/* PCU-originated SNS-CONFIG: successful case */
32testcase TC_sns_po_config_success() runs on RAW_NS_CT {
33 f_init_ns_codec();
34 f_init_pcuif();
35 f_incoming_sns_size();
36 f_incoming_sns_config();
37 f_sleep(1.0);
38 setverdict(pass);
39}
40
41/* PCU-originated SNS-CONFIG: successful case */
42testcase TC_sns_po_config_nack() runs on RAW_NS_CT {
43 f_init_ns_codec();
44 f_init_pcuif();
45 f_incoming_sns_size();
46 f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED);
47 /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */
48 f_sleep(10.0);
49 setverdict(pass);
50}
51
52
53/* SGSN-originated SNS-SIZE: successful case */
54testcase TC_sns_so_config_success() runs on RAW_NS_CT {
55 f_init_ns_codec();
56 f_init_pcuif();
57 f_incoming_sns_size();
58 f_incoming_sns_config();
59 f_outgoing_sns_config();
60
61 /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */
62 as_rx_alive_tx_ack(oneshot := true);
63 activate(as_rx_alive_tx_ack());
64
65 f_outgoing_ns_alive();
66
67 /* Expect BVC-RESET for signaling (0) and ptp BVCI */
68 as_rx_bvc_reset_tx_ack(0, oneshot := true);
69 as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true);
70 as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true);
71
72 /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */
73 as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true);
74 activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci));
75 setverdict(pass);
76}
77
78control {
79 execute( TC_sns_po_size_success() );
80 execute( TC_sns_po_size_nack() );
81 execute( TC_sns_po_config_success() );
82 execute( TC_sns_po_config_nack() );
83 execute( TC_sns_so_config_success() );
84}
85
86}