Project

General

Profile

Actions

Feature #6204

closed

Create TTCN-3 testsuite for osmo-epdg

Added by pespin 7 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
10/04/2023
Due date:
% Done:

100%


Description

Test osmo-epdg using a TTCN3-3 testsuite, similarly to what we do for instal with osmo_dia2gsup (osmo-ttcn3-hacks.git/dia2gsup/, docker-playground.git/ttcn3-dia2gsup-test).

  • Add osmo-ttcn3-hacks.git/epdg/
  • Add docker-playground.git/osmo-epdg-master/
  • Add docker-playground.git/ttcn3-epdg-test/
  • Run it nightly in jenkins.
Interfaces to test against it:
Actions #1

Updated by pespin 7 months ago

  • Status changed from New to In Progress

I started work on this, WIP in osmo-ttcn3-hacks.git branch pespin/epdg.

Actions #2

Updated by pespin 7 months ago

I also have a WIP in docker-playground.git branch "pespin/epdg".

Actions #3

Updated by pespin 7 months ago

  • % Done changed from 0 to 30

lynxis I cleaned up all the stuff you had in "lynxis/wip" branch in osmo-epdg.git and submitted a bunch of patches here:
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/34726/

What I'd need you to do: Get the osmo_ss7 and osmo_gsup patches you have in branches merged into master.

Using those patches (osmo-epdg.git branch "pespin/master), I can use the osmo-ttcn3-hacks.git/docker-playground.git TTCN3 testsuite (branch "pespin/epdg") and I can get to the point to connect over GSUP to osmo-epdg.
I can send an AuthInfoReq to it, but it will be rejected because the Diameter conn EPDG->TTNC3 is not yet done by osmo-epdg.

The Diameter SWx conn is not being done because I don't seem to be able to properly change the Diameter remote IP address through the config file in osmo-epdg, it is not applied. I need to continue looking into why this happens and fix it.

Actions #4

Updated by pespin 7 months ago

  • % Done changed from 30 to 50

I submitted a bunch of patches to osmo-epdg gerrit to improve and fix the configuration of several IP addresses, ports, etc.

with that and improved code in osmo-ttcn3-hacks.git/docker-palyground.git (branch=pespin/epdg), I can run a full GSUP+SWx AuthInfo ping pong.

Only thing missing now is check why the AuthInfoResult received from osmo-epdg doesn't match exactly our expectancies:

received from osmo-epdg:
{ { tag := OSMO_GSUP_IMSI_IE (1), len := 8, val := { imsi := '262420000000001'H } },
 { tag := OSMO_GSUP_AUTH_TUPLE_IE (3), len := 104, val := { auth_tuple := {
 { tag := OSMO_GSUP_RAND_IE (32), len := 16, val := { rand := '0B35AE485BBD9BE29655EE50E7030E29'O } },
 { tag := OSMO_GSUP_IK_IE (35), len := 16, val := { ik := 'FBB94F5765F454A1CE764E02D779CC34'O } },
 { tag := OSMO_GSUP_CK_IE (36), len := 16, val := { ck := '3180B12B70E09965621E60654CCC27DE'O } },
 { tag := OSMO_GSUP_AUTN_IE (37), len := 16, val := { autn := '0E828188919015E068FD89996D461637'O } },
 { tag := OSMO_GSUP_RES_IE (39), len := 30, val := { res := '0B35AE485BBD9BE29655EE50E7030E2958E8A4B295AFB8EC5D82A62E2408'O } } } } } } with

expected:
{ { tag := OSMO_GSUP_IMSI_IE (1), len := ?, val := { imsi := '262420000000001'H } }, *,
{ tag := OSMO_GSUP_AUTH_TUPLE_IE (3), len := ?, val := { auth_tuple := {
{ tag := OSMO_GSUP_RAND_IE (32), len := ?, val := { rand := '0B35AE485BBD9BE29655EE50E7030E29'O } },
{ tag := OSMO_GSUP_SRES_IE (33), len := ?, val := { sres := ? } },
{ tag := OSMO_GSUP_KC_IE (34), len := ?, val := { kc := 'A33CF3ADE8BDBC4C'O } },
{ tag := OSMO_GSUP_IK_IE (35), len := ?, val := { ik := 'FBB94F5765F454A1CE764E02D779CC34'O } },
{ tag := OSMO_GSUP_CK_IE (36), len := ?, val := { ck := '3180B12B70E09965621E60654CCC27DE'O } },
{ tag := OSMO_GSUP_AUTN_IE (37), len := ?, val := { autn := '0E828188919015E068FD89996D461637'O } },
{ tag := OSMO_GSUP_RES_IE (39), len := ?, val := { res := ? } } } } }, * }

In general everything is fine, except:
  • iK and cK are swapped in position. This is probably a bug in osmo-epdg.
  • SRES and KC are missing. Not sure where this should come from. I guess I need to feed them from our emulated HSS somehow.
Actions #6

Updated by pespin 6 months ago

The initial commits for osmo-epdg have been merged and jenkins job is running fine:
https://jenkins.osmocom.org/jenkins/job/ttcn3-epdg-test/

The test is only validating a small part of the whole procedure. I'll be extending it as I implement the missing bits in osmo-epdg.

Actions #7

Updated by pespin 3 months ago

I submitted patches to osmo-epdg today which should fix reconnection problems making tests later than first one failing systematically.
Once those are merged we should get the 2 available tests passing now.

Actions #8

Updated by pespin about 2 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 50 to 100

We have ~10 tests running nightly already, all passing, so closing this ticket.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)