AgeCommit message (Collapse)AuthorFilesLines
14 hourspcu: SNS: TC_sns_so_bvc_reset_unknown_bvci: use g_handle_rx_aliveHEADmasterAlexander Couzens1-4/+1
The g_handle_rx_alive allows ignoring any ALIVE PDUs when using f_exp_ns(). This improves the stability as the ALIVE and BVC-RESET can come in any order. Change-Id: I3b4ab4093b3e5bee7e32fdf6c1de3f692b13a35f
6 dayspcu: SNS: add TC_sns_1c1u_unconfigured_nsvcAlexander Couzens1-0/+11
There shouldn't any unconfigured NSVC after the configuration phase. The unconfigured NSVC is used in the SNS configuration phase and must be removed when the configuration is done and the NSVC is included in the configuration. Related: SYS#5416 Change-Id: Iac6c8966aafd1cb2fab515de091e94607eb7c040
6 dayspcu: PCU_Tests_NS: add support for vtyAlexander Couzens1-0/+10
Allow to use the vty by test cases. f_init_vty(id) must be called before using the vty. Related: SYS#5416 Change-Id: Ib2011babb123e1e1bb576e72b9bfbda90dce2df7
11 daysgbproxy: Update config for IP BSS to use SNSHarald Welte2-9/+13
This reflects the more realistic use cases: IP-SNS is used on the BSS side, where osmo-gbproxy then behaves in SGSN role. Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e
11 daysNS_Emulation: Implement minimal PCU-side SNS functionalityHarald Welte1-0/+79
Using this code, we can run a TTCN3 test using NS_Emulation in IP-SNS mode. It only covers the most basic cases but works for simple scenarios. Change-Id: Id1fb0fcb7a497a9614e82beb8a2c64b5af88150d
11 daysSGSN: Some initial SNS tests for IP-SNS in OsmoSGSNHarald Welte5-8/+261
Change-Id: I821d998704756fa30278f41d0371051db9d3fc58
11 daysggsn: Fix TC_pdp4_act_deact_with_single_dns()Harald Welte1-0/+1
In TC_pdp4_act_deact_with_single_dns we activate, deactivate and then re-activate a PDP context. Hoewver, we re-use the same variable and don't reset the state in between. This results in the second PDP CTX activation to include an end-user-address (static IP allocation), which OsmoGGSN doesn't implement. Before osmo-ggsn Change-Id Iac8868438655fe4e5e07d167d7dbd6273dbb7678, the test passed as osmo-ggsn simply ignored the requested static address. After that change, we reject static addresses and hence the test starts to fail. Change-Id: I1b1869bc2cee39c8fddd8fa63f48bdaa6a65e462 Related: OS#5097
11 daysgbproxy: Verify BVC FSM state during bring-upHarald Welte2-1/+40
This adds IUT fsm state instrospection via the CTRL interface. docker-playground will need to set "mp_gbproxy_ip" in its configs. Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7
11 daysCTRL_Adapter: Add function to obtain FSM instance stateHarald Welte1-0/+17
This can be useful to verify expectations about the state of FSMs in the IUT. Change-Id: I33afc2e73be06e23147b5ac0b0fd3b9003935444
11 daysBTS_Tests: refactor and fix TC_pcu_socket_connect_multiVadim Yanitskiy2-7/+21
The expectations of this test case were wrong. The IUT would first accept() an additional connection and then close() it immediately. Since there may be other messages, like TIME.ind and DATA.ind, the 'alt' statement would not match successful connection result, and instead would unblock the flow due to timeout. The titan.TestPorts.UNIX_DOMAIN_SOCKETasp had to be changed [1] to send UD_connect_result with ERROR if recv() returns zero or a negative. [1] Change-Id: I898b8b14515d79766b12d652ebb1ddf834e2863c
13 daysMake f_{block,unblock}_ptp_bvc_from_pcu handle multiple SGSNsHarald Welte1-2/+9
Those tests predated SGSN pooling support and needed to update their assumptions to also cover other SGSNs in the pool. We could come up with more complex, auto-scaling mechanisms to handle different numbers of SGSNs, but that would make the code quite unreadable, as it means we cannot use interleave but have to dynamically activate altsteps for counting. I went for the simpler approach instead. Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0 Related: OS#4968
13 daysgbproxy: Generalize as_count_bvc_block() into as_count_bvc_sts()Harald Welte1-2/+14
... and while add it, add as_count_bvc_unblock() based on it. Related: OS#4968 Change-Id: I33ceace527d6a0cd816fb4e042fdcffd8f0dd23f
2021-03-29NS_Emulation: Use endpoint list for SNS-CONFIG payloadHarald Welte1-18/+13
We used to have no distinction between endpoints and NSVCs, meaning that we could not have more than one NSVC per endpoint, which in turn meant it was ok to iterate the list of NSVCs for generating the endpoint lists in the SNS-CONFIG payload. With Change-Id I05a50b966b8ce93497372ca403d40fd383dd35f7 we remove that constraint and introduce an actual local IP endpoint list. Let's use that one for SNS-CONFIG. Change-Id: Ifa91510430a017fa29592a3d5fa2a3697d29c9da
2021-03-29NS_Emulation: Use the "endpoint" mode of NS_Provider_IPL4Harald Welte2-8/+92
Thew newly-introduced "endpoint" mode of NS_Provider_IPL4 allows us to have multiple NS-VC within one endpoint. NS_CT takes care of creating the NS_Provider_IPL4 components on-the-fly, and then associating the per-NSVC components with it. For the user nothing changes, other than that he can now configure multiple NSVCs with identical local IP + port, which was not possible before. Change-Id: Id7360f17e528706e8145d33a14550789d50cded9
2021-03-29NS_Provider_IPL4: Implement new "endpoint" modeHarald Welte1-11/+141
This adds a new, optional "endpoint" mode to the IPL4 provider, where we remove the constraint of "one NSVC per provider", which in turn is a pre-requirement for real IP-SNS support with full mesh of NS-VCs. This code doesn't introduce any users of this "endpoint" mode yet. Change-Id: I05a50b966b8ce93497372ca403d40fd383dd35f7
2021-03-29pcu: Adapt N3101_MAX verification expectationspespin/pcuPau Espin Pedrol1-4/+3
There's some offset between Tx and Rx path, so we need to account for differences counting and finding out USF blocks didn't arrive. Change-Id: I868e7d24c8bdc9b85797f8fe4f9ee1bc5a3d1adb
2021-03-29pcu: Avoid early TBF release due to N3101 in TC_multiplex_dl_gprs_egprsPau Espin Pedrol1-8/+35
Also change a bit expectations, since it can actually happen that DL blocks for GPRS-only MS never signal USF for itself, which is still fine. Change-Id: Iedff87cedf55ab18b32bd0f159d1145901878203
2021-03-24BTS_Tests: fix IPv4 matching in TC_pcu_socket_{nsvc_ipv4,two_nsvc}Vadim Yanitskiy1-2/+5
This commit fixes a regression introduced in [1] Change-Id: I107039f1ff44ae8c41d690f5f293ed136c17586b Fixes: [1] Ia9f366ca1fdad700a90ca3367e43523f7bac39a1
2021-03-24RAW_NS: Ignore NS-UNITDATA while waiting for NS-ALIVE in oneshot modeHarald Welte1-0/+7
Change-Id: Id2738b055f860b4eee57d445944e0861b34151be
2021-03-23BTS_Tests: do not connect to PCUIF socket if not usedVadim Yanitskiy2-23/+20
The PCUIF connection involves a lot of frequent messages, such as the TIME.ind and since recently DATA.ind with len=0. As a result, the test suite logs are getting unreadable due to lots of coding warnings and port queueing notifications. This change is aimed to improve the situation a bit, by establishing the PCUIF connection only for those test cases which actually use it. Side effects: * TC_pcu_socket_verify_info_ind becomes reliable, because the PCUIF establishment is done after the RSL bootstrapping; * TC_pcu_socket_connect_multi starts to fail, because it used to pass due to timeout, since not all messages are handled in the 'alt' statement. Change-Id: I09ccb65ce94a41ffdad4e93da650c3f32d422af4 Related: OS#5083
2021-03-23BTS_Tests: cosmetic: s/f_init_pcu_test/f_init_with_pcuif/Vadim Yanitskiy1-21/+21
Change-Id: Ic95c46426ed3ac9ead645037059190fead181b31
2021-03-23BTS_Tests: add a test case verifying coding of two NSVCs in INFO.indVadim Yanitskiy1-0/+36
Change-Id: Id11094774d737a545a2cce389059d7e527219573
2021-03-23library/PCUIF_Types: use PADDING attribute for 'PCUIF_Message'Vadim Yanitskiy2-23/+3
PCUIFv9 compatibility has been dropped in [1], so now we can tell TITAN's RAW codec what kind of padding to expect in received messages and to append to encoded messages. This eliminates thousands of warnings about unhandled tail octets. Change-Id: Id5ab587f7984a91f3603efc5d427aa4cb4fa6757 Related: [1] Ia9f366ca1fdad700a90ca3367e43523f7bac39a1 Related: OS#5083
2021-03-23library/PCUIF_Types: get rid of version 9 compatibility glueVadim Yanitskiy4-194/+95
Change-Id: Ia9f366ca1fdad700a90ca3367e43523f7bac39a1 Related: OS#5083
2021-03-23RAW_NS: don't expect hard-coded number of NSVC/endpoints in SNS-SIZEHarald Welte1-5/+6
Change-Id: I5d567582db18be0f875e8e2ba380a04a1a838350
2021-03-23pcu: sync configs with docker-playgroundHarald Welte2-0/+18
Change-Id: I41f6ebd63e5e551184f0863cd388c373ab0a1130
2021-03-20ns: SNS: add testcase to test change_weight retriesAlexander Couzens1-0/+43
Change-Id: Ie8d976a81abe0bcff53bb74991d428dbf1fe314b
2021-03-20ns: SNS: add bss change weight testcaseAlexander Couzens2-0/+34
Do a normal SNS configuration. Afterwards the BSS will change the weights of the endpoints Change-Id: I691b9d26bf3eb8fa65aa02eba3efd0fd3869fc2a
2021-03-20sgsn: sync config files with those from docker-playground.gitHarald Welte2-6/+47
Change-Id: Ice00a0a4d00629e30b4fec029353d590eba8877f
2021-03-20sgsn: Avoid race condition in TC_suspend_rau()Harald Welte1-0/+3
In f_routing_area_update() we are sending a RAU Complete to the SGSN and then immediately afterwards send a GTP-U from the simulated GGSN to the SGSN. That GTP might reach the SGSN faster than the RAU Complete, resulting in a test failure. Change-Id: Ic489e0857115cf24965e413a39918edc5a8f44f8
2021-03-19bts/osmo-bts.cfg: enable GSMTAP Um frame loggingVadim Yanitskiy1-0/+1
Change-Id: Icc5ffed6cda47c15ac703ef336ef502d2047cc2c
2021-03-19bts/osmo-bts.cfg: use 'gsmtap-sapi enable-all'Vadim Yanitskiy1-8/+3
Keep PDTCH/PTCCH disabled, it will blow up PCAPs otherwise. Change-Id: Id1b523faf0d0ab6df00e46a40917c703b26d0e96
2021-03-19bts/osmo-bts.cfg: remove deprecated 'uplink-power-target'Vadim Yanitskiy1-1/+0
Change-Id: Ida5b1357d199e222b9ebd64e833ca21e6506a36c
2021-03-19{bsc,bts}/osmo-bsc.cfg: remove deprecated parametersVadim Yanitskiy2-9/+0
Change-Id: I39fe349a9c1011c8ba3160d4f5f3744d30e9fe24
2021-03-17Makefile: SUBDIRS: add nsOliver Smith1-2/+27
Make the list git-friendly while at it. Related: SYS#5396 Change-Id: I36adc972ea724308bbe5423f1bacf280cef901b0
2021-03-12pcuif: make variable constPau Espin Pedrol1-1/+1
Change-Id: I0450a49a4c9a8e0e1252d6561fb93f6fb4585748
2021-03-12pcu: Set up PCU TDMA clock by sending initial DATA.indPau Espin Pedrol1-2/+35
In recent osmo-pcu commits, initial fn was changed to invalid value -1, in order to be able to detect FN jumps. previously, the initial value was set randomly to 0, which was wrong anyway because first FN received from the BTS could be any other FN counted by the BTS at that time. This makes some tests fail because they send RACH.ind + RTS.ind to receive the Imm Assignment, and the Request reference in the Imm Assign was calculated on the invalid unset FN "-1", hence it won't match test expectancies. In order to fix it, simply make sure the TDMA clock is initiated by sending a DATA.ind to the PCU before tests start doing stuff (f_init_raw() is blocked waiting for BTS_EV_SI13_NEGO). Related: osmo-pcu.git Change-Id I29fb27981597edc69abb976049ba41aa840488cb Related: OS#5020 Change-Id: I00c4dd9133ec9a236bf28fb8cb0afd0615791012
2021-03-12pcu: transmit PCUIF DATA.ind with len=0 when no UL data to transmitPau Espin Pedrol2-23/+62
PCUIF will be updated to always send DATA.ind for each expected block FN on any activated PDCH slot, irrespective of whether valid data was received or not, similarly to what's done already for TRXDv1 NOPE.ind in TRXD and TCH channels in OsmoBTS. The aim at this change is to be able to track TDMA clock in an accurate way without hops, and hence be able to detect on time whether expected UL blocks (SF, RRBP poll) didn't arrive. Older osmo-pcu versions can cope well with this change, they will simply print an error upon ach data_len=0 messages received and submit a GSMTAP block, then discard it, so tests still pass. Nevertheless, a new module parameter is added to disable this new behavior in order to avoid logs and pcap files ending up clogged with uneeded information until a new osmo-pcu release appears. Related: OS#5020 Change-Id: Ib4f97a9bcfa68230945effeb6412218faa64ec78
2021-03-10pcu: Fix PCU_Tests_SNS.TC_sns_so_bvc_reset_unknown_bvciHarald Welte1-2/+4
All BSS-originated BVC-Reset for PTP BVC must contain a Cell Identifier. This test is not respecting that rule libosmogb correctly detects this and discards the RESET, which is not what is intended here: 20210305120722368 DLBSSGP ERROR BSSGP BVCI=1235 Rx RESET missing mandatory IE (gprs_bssgp.c:392) Change-Id: I57ebfc50befc47d0690021d73b52c504f0df4f9a Related: OS#3879 Fixes: Iea5519b453dd544c5a78b3b16ddb5132d20cf67c
2021-03-05pcu: Introduce test TC_n3101_max_t3169Pau Espin Pedrol2-0/+121
This test currently fails to pass in master osmo-pcu (and latest) due to T3169 not being implemented exactly as per specs (due to limitations in detecting lost UL blocks with assigned USF). Related: OS#5033 Change-Id: I56177850f084cdaf4fcac63ebdcdff9cef4e7a5d
2021-03-05pcu: Introduce test TC_n3105_max_t3195Pau Espin Pedrol1-0/+121
Related: OS#3928 Change-Id: I6f756c928509364fee14c552279f01b4e4f0e060
2021-03-05pcu: Introduce tests to validate X2301 and T3191Pau Espin Pedrol1-0/+181
They are tested together since anyway in order to reach T3191 we need to go through X2301 (IDLE TBF timeout). Related: OS#3928 Change-Id: Ib6dfc5711b9c6f1fd404bce424bbf4b115fc930e
2021-03-04pcu: Introduce test TC_dl_no_ack_retrans_imm_assPau Espin Pedrol1-0/+92
Change-Id: I1c1d89f3de9ba158f802e7759ef78dc84f48218f
2021-03-03pcu: f_TC_mo_ping_pong_2phase_access(): Fix race conditionPau Espin Pedrol1-0/+2
Sometimes the DL data may arrive too late to PCU and it may be requested to tx before it arrives, hence the PCU will in that case schedule and transmit a UL ACK/NACK instead of the expected DL data. Change-Id: Iaee546e2021e86ca6da19ab73cc8d283a827a665
2021-03-03pcu: f_TC_mo_ping_pong_2phase_access(): Drop sending TLLI after 2nd phasePau Espin Pedrol1-1/+1
There's no need to send the TLLI after 2nd phase access. Change-Id: Id8230f8eebf0a3e1468b84f802c6704a19eb97d5
2021-03-02ns: SNS: add first SNS test caseAlexander Couzens2-0/+112
Do a successful IP-SNS configuration. Change-Id: I822e3a440db492c91caa3a79acbfd4661852d021
2021-03-02ns: SNS: ensure all current testcase are only executed with IPACCESS or ↵Alexander Couzens1-32/+32
RESET_BLOCK dialect All current test cases are for those 2 dialect. In preparation of SNS test cases ensure those testcase have the correct dependency. Change-Id: Ifda066553eabb0ace4aca12e60797c4950fcc498
2021-03-01PCUIF: Fix naming of counters in InfoIndPau Espin Pedrol2-9/+9
Change-Id: Ieb26020e0f18169f19322963e23358b6ca254545
2021-02-28remsim: add the guard timeout to all test casesVadim Yanitskiy3-0/+59
As can be seen [1], it happens quite often that a test case gets stuck and runs forever. Most of the existing test suites have the guard timeout to prevent this. Let's make use of it here too. [1] Build has been executing for 1 day 23 hr! Change-Id: I3897efd2a97c3e0d487057aa7bdc2967f3424dd8
2021-02-28remsim: TC_connect_and_nothing() runs on test_CTVadim Yanitskiy1-1/+1
Change-Id: Ie94bf52e57a964b9f280c7626f354c5feee5c165