https://projects.osmocom.org/https://projects.osmocom.org/favicon.ico?16647414092023-06-20T11:35:38ZOpen Source Mobile CommunicationsCore testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=271192023-06-20T11:35:38Zlaforge
<ul><li><strong>Assignee</strong> set to <i>dexter</i></li></ul><p>Assigning to <a class="user active" href="https://projects.osmocom.org/users/15">dexter</a> as he is currently touching the MME test suite anyway. Once the existing minimalistic tests are running against open5gs master, I think we should immediately create a jenkins setup (maybe <a class="user active" href="https://projects.osmocom.org/users/301771">osmith</a> can take that part? feel free to coordinate) so we catch if that should break for some reason.</p>
<p>I'll plan to put some kind of TODO list here about the kind of tests that IMHO would make sense.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=271202023-06-20T11:43:09Zosmith
<ul></ul><p>laforge wrote in <a href="#note-1">#note-1</a>:</p>
<blockquote>
<p>[...] I think we should immediately create a jenkins setup (maybe <a class="user active" href="https://projects.osmocom.org/users/301771">osmith</a> can take that part? feel free to coordinate) so we catch if that should break for some reason.</p>
</blockquote>
<p>Sure. Dexter, feel free to assign the issue to me once it's ready for that.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=271212023-06-20T12:16:05Zlaforge
<ul><li><strong>Spec Reference</strong> set to <i>3GPP TS 36.413</i></li></ul><p>In terms of a test suite covering the basic S1AP procedures of a MME, I think we should aim for:</p>
<ul>
<li>8.3.1 InitialUE
<ul>
<li>NAS Attach request + PDN connectivity request
<ul>
<li>Successful</li>
<li>Unsuccessful: Not known in HSS</li>
<li>Unsuccessful: Auth error (wrong tuple from HSS)</li>
</ul>
</li>
<li>Tracking Area Update (mobility to another eNB)</li>
</ul>
</li>
<li>8.2.1 E-RAB setup (dedicated bearers for VoLTE)</li>
<li>8.2.3 E-RAB release</li>
<li>8.3.7 UE Context Suspend</li>
<li>8.3.8 UE Context Resume</li>
<li>8.5 Paging</li>
<li>8.7.1 Reset</li>
<li>8.7.3 S1 Setup</li>
<li>8.13 + 8.14 Direct information transfer
<ul>
<li>transfer between multiple attached simulated eNB</li>
</ul>
</li>
<li>8.4 Handover
<ul>
<li>successful / unsuccessful intra-system (4G) hand-over</li>
<li>verify switched GTP paths after hand-over</li>
</ul></li>
</ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=272432023-07-04T15:25:37Zdexter
<ul></ul><p>As a preparation I am currently working on getting the already existing MME tests to run in docker. Building and test execution already works, but the network connection between testsuite and MME does not work yet.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=272652023-07-05T09:39:29Zdexter
<ul></ul><p>The MME tests now run in docker. The test results are the same as when I execute the tests locally. A patch is up for review in gerrit:<br /><a class="external" href="https://gerrit.osmocom.org/c/docker-playground/+/33571">https://gerrit.osmocom.org/c/docker-playground/+/33571</a> MME_Tests: add docker tests for MME</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=272792023-07-06T15:56:54Zdexter
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li></ul><p>Unfortunately the S1AP_Emulation seems to be not fully complete yet but I think it is not much that is missing. At least I now managed to get an S1SetupRequest/Response now through the emulation. I also added some code to resolve the vc_conn from the S1apExpectTable (create_cb) but I could not test that yet.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273102023-07-10T19:44:47Zdexter
<ul><li><strong>% Done</strong> changed from <i>0</i> to <i>10</i></li></ul><p>I have now fixed parts of the S1AP_Emulation, so things look a lot better now. I have started adding the GTP_ConnHdlr, which we also use in several other testsuites. This seems to work. I can send an ECHO REQUEST now.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273182023-07-11T14:00:24Zdexter
<ul></ul><p>The patches for docker-playground now made it into master, so now we can configure a jenkins job that executes the MME tests.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273192023-07-11T14:26:27Zosmith
<ul><li><strong>Assignee</strong> changed from <i>dexter</i> to <i>osmith</i></li></ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273202023-07-11T15:09:44Zosmith
<ul><li><strong>Assignee</strong> changed from <i>osmith</i> to <i>dexter</i></li><li><strong>% Done</strong> changed from <i>10</i> to <i>20</i></li></ul>jenkins job:
<ul>
<li><a class="external" href="https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-mme-test-ogs/">https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-mme-test-ogs/</a></li>
<li><a class="external" href="https://gerrit.osmocom.org/c/osmo-ci/+/33688">https://gerrit.osmocom.org/c/osmo-ci/+/33688</a></li>
</ul>
<p>MME_Tests.TC_s1ap_setup_wrong_plmn failure is expected since it is also failing locally, the other 3 tests run successfully.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273562023-07-17T09:01:59Zdexter
<ul><li><strong>% Done</strong> changed from <i>20</i> to <i>30</i></li></ul><p>In order to test NACC from EUTRAN to GERAN we need to implement a test that tests the whole process from S1AP, over GTP and back to S1AP. This also includes a Direct information transfer (see list above). The GTP interface was missing in the testsuite, it is now added and working.</p>
<p>The testcase that tests the NACC is also nearly finished but it still lacks the verification of the final S1AP message. Also there is still a problem with the Global ENB ID. At the moment I am using a hardcoded one but I want to rplace it with a properly encoded version. The problem here is that the Global ENB ID is ASN.1 (presumably APER) encoded. I already tried to make an encoder but I am stuck at fftranscode, which presumbably lacks the encoder/decoder for the Global ENB ID. In any case, this is probably a minor problem.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273572023-07-17T09:06:49Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.3.1 NAS Attach request + PDN connectivity request</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.3.1 Tracking Area Update (mobility to another eNB)</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.2.1 E-RAB setup (dedicated bearers for VoLTE)</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.2.3 E-RAB release</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.3.7 UE Context Suspend</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.3.8 UE Context Resume</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.5 Paging</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.7.1 Reset</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.7.3 S1 Setup</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.13 + 8.14 Direct information transfer</i> added</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.4 Handover</i> added</li></ul><p>(added checklist)</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=273602023-07-17T10:19:00Zlaforge
<ul></ul><p>On Mon, Jul 17, 2023 at 09:02:00AM +0000, dexter wrote:</p>
<blockquote>
<p>The problem here is that the Global ENB ID is ASN.1 (presumably APER) encoded. I already tried to make an encoder but I am stuck at fftranscode, which presumbably lacks the encoder/decoder for the Global ENB ID. In any case, this is probably a minor problem.</p>
</blockquote>
<p>The entire S1AP is ASN.1 APER, and we use libfftranscode to transcode it. The Global ENB ID is supposedly one information element that's usually somewhere deep inside the information elements of a S1AP message, right? So it does have the encoder/decoder.</p>
<p>However, given the thousands of data types, we really only expose symbols/functions to transcode complete PDUs of the respective protocol, and not individual members/types, sorry.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=274302023-07-24T10:16:45Zdexter
<ul></ul><p>It is understandable that we can not expose random information elements in libfftranscode. However, I think I can work around the problem. I could just encode a random PDU and find the offset where the Global-ENB-ID IE begins. Then I could chop off everything I do not need. If that does not work I still can use a hardcoded Global-ENB-ID, this would not look very nice, but it would work for sure.</p>
<p>I also had a lot of trouble with the accessibility of unit-data from indie the ConnHdlr but I managed to find a solution, the following patch is currently in review:<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33898">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33898</a> S1AP_Emulation: improve accessibility of unit-data</p>
<p>There are also a couple of other fixes that were required:<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33893">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33893</a> GTP-Templates: fix incorrect comment<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33894">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33894</a> GTP_Templates: Add RIM_RoutingAddress to RANInfoRelay templates<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33896">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33896</a> GTP_Templates: add template tr_GTPC_RAN_Information_Request<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33897">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33897</a> S1AP_Templates: Add templates for MMEDirectInformationTransfer<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33898">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33898</a> S1AP_Emulation: improve accessibility of unit-data</p>
<p>I now have a round-trip RAN information request running, it still requires a bit of cleanup and verification of the contents of the last S1AP message (RAN Information) from the MME.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=274312023-07-24T10:43:08Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>RAN Information Request (NACC)</i> added</li></ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=274672023-07-26T10:59:15Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>RAN Information Request (NACC)</i> set to Done</li><li><strong>% Done</strong> changed from <i>30</i> to <i>40</i></li></ul><p>The patch that adds the testcase to verify a full RAN INFORMATION REQUEST (NACC) is now in gerrit:</p>
<p><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33937">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33937</a> MME_Tests: add testcase TC_RIM_RAN_INF</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=275812023-08-15T08:22:56Zdexter
<ul></ul><p>The testcase TC_RIM_RAN_INF is merged into master. We also reached a point now where all testcases show up green:<br /><a class="external" href="https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-mme-test-ogs/test_results_analyzer/">https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-mme-test-ogs/test_results_analyzer/</a></p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=275842023-08-15T10:59:19Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>8.3.1 NAS Attach request + PDN connectivity request</i> set to Done</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>8.7.3 S1 Setup</i> set to Done</li></ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=275862023-08-16T12:50:51Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>8.7.1 Reset</i> set to Done</li></ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=277762023-09-06T07:47:43Zdexter
<ul><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' checked disabled> <i>8.13 + 8.14 Direct information transfer</i> set to Done</li><li><b>Checklist item</b> <input type='checkbox' class='checklist-checkbox' disabled> <i>8.3.1 NAS Attach request + PDN connectivity request</i> set to Not done</li></ul> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=277772023-09-06T08:02:18Zdexter
<ul></ul><p>The following changes were made to add a testcase for the Tracking Area Update:</p>
<p><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34267">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34267</a> NAS_Templates: fix ts_NAS_GUTI<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34268">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34268</a> NAS_Templates: add templates for EPS_Mobile_ID_IMSI/IMEI/GUTI<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34269">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34269</a> NAS_Templates: add template for EPS update type<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34270">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34270</a> NAS_Templates: add template for NAS key set identifier<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34271">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34271</a> NAS_Templates: add template for Tracking Area Update Request<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34280">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34280</a> NAS_Templates: add template for Tracking Area Update Reject<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34281">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34281</a> MME_Tests: add new testcase TC_s1ap_tau_unknown_guti</p>
<p>We are now able to send a TAU to the MME, but the MME reject this TAU. The reason for this is that it does not know the TMSI in the OldGUTI field yet. Unfortunately there is no way to tell the MME an IMSI or alike that it knows. TAU is entirely relying on a valid TMSI. A valid TMSI is returned by the MME during the NAS Attach request. Unfortunately the testcase of the NAS Attach Request (TC_s1ap_attach) is not testing the procedure beyond the Create Session Request (towards the SGW-C). It is up to the testsuite to emulate the SGW-C. This means we will have to add an S11/GTPv2 interface to the testsuite. This has been done in the following patches:</p>
<p><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34266">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34266</a> MME_Tests: Add S11/GTPv2 interface<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34286">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34286</a> GTPv2_Emulation: improve accessibility of unit-data (TEID0)<br /><a class="external" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34287">https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34287</a> TC_s1ap_attach: setup S11 interface, catch Create Session Request [NEW]</p>
<p>The last patch [NEW] is still in gerrit. All it does is extending TC_s1ap_attach so that it catches the Create Session Reqest. This is mainly to verify that we are able to receive S11 messages from the MME.</p> Core testing infrastructure - Feature #5760: Develop TTCN-3 test suite for MMEhttps://projects.osmocom.org/issues/5760?journal_id=280142023-10-04T13:51:21Zdexter
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Stalled</i></li></ul>