Feature #6204
closedCreate TTCN-3 testsuite for osmo-epdg
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.
- GSUP (CEAI)
- SWx (Diameter)
- S6b (Diameter)
- S2b (GTPv2C)
- Test sending some user data over the GTP tunnel being created (reuse osmo-uecups or similar from ttcn3-pgw-test?)
See https://osmocom.org/projects/osmo-epdg/wiki/EPDG_implementation_plan
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.
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.
Updated by pespin 6 months ago
ttcn3-epdg-test jenkins job created and available here: https://jenkins.osmocom.org/jenkins/job/ttcn3-epdg-test
It is marked as disabled until ttcn3 and docker patches are merged:
https://gerrit.osmocom.org/c/docker-playground/+/34797
https://gerrit.osmocom.org/c/docker-playground/+/34798
https://gerrit.osmocom.org/c/osmo-ci/+/34801
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.
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.