lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

October 2023

  • 1 participants
  • 1843 discussions
[S] Change in docker-playground[master]: ttcn3-epdg: Configure S6b interface
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/34862?usp=email ) Change subject: ttcn3-epdg: Configure S6b interface ...................................................................... ttcn3-epdg: Configure S6b interface Configure the newly added S6b interface on both TTCN3 emulation code as well as osmo-epdg. Depends: osmo-ttcn3-hacks.git Change-Id Ia50698a3f6f5ed8251486b84c09f84edfd6d3951 Depends: osmo-epdg.git Change-Id Ia2b138317cb291a95882853f5403949c5e6a5a1b Change-Id: I1145ee1068a2fdd2fe8d3e48b80c8e6c1fcb50ad --- M ttcn3-epdg-test/EPDG_Tests.cfg M ttcn3-epdg-test/osmo-epdg.config 2 files changed, 23 insertions(+), 1 deletion(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/ttcn3-epdg-test/EPDG_Tests.cfg b/ttcn3-epdg-test/EPDG_Tests.cfg index f05a819..2a39b67 100644 --- a/ttcn3-epdg-test/EPDG_Tests.cfg +++ b/ttcn3-epdg-test/EPDG_Tests.cfg @@ -13,6 +13,7 @@ EPDG_Tests.mp_s2b_local_ip := "172.18.10.103" EPDG_Tests.mp_gsup_remote_ip := "172.18.10.20" +EPDG_Tests.mp_s6b_remote_ip := "172.18.10.20" EPDG_Tests.mp_s2b_remote_ip := "172.18.10.20" [MAIN_CONTROLLER] diff --git a/ttcn3-epdg-test/osmo-epdg.config b/ttcn3-epdg-test/osmo-epdg.config index 8036b2c..0aa9807 100644 --- a/ttcn3-epdg-test/osmo-epdg.config +++ b/ttcn3-epdg-test/osmo-epdg.config @@ -10,11 +10,18 @@ {diameter_remote_ip, "172.18.10.103"}, {diameter_remote_port, 3868}, {diameter_proto, sctp}, - % Diameter Server parameters {vendor_id, 0}, {origin_host, "epdg.localdomain"}, {origin_realm, "localdomain"}, {context_id, "epdg@localdomain"}, + % Diameter s6b Connection parameters + {dia_s6b_local_ip, "172.18.10.20"}, + {dia_s6b_local_port, 3869}, + {dia_s6b_proto, sctp}, + {dia_s6b_vendor_id, 0}, + {dia_s6b_origin_host, "aaa.localdomain"}, + {dia_s6b_origin_realm, "localdomain"}, + {dia_s6b_context_id, "aaa@localdomain"}, % GTPv2C Connection parameters {gtpc_local_ip, "172.18.10.20"}, {gtpc_local_port, 2123}, -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/34862?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1145ee1068a2fdd2fe8d3e48b80c8e6c1fcb50ad Gerrit-Change-Number: 34862 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in docker-playground[master]: ttcn3-epdg: Configure S6b interface
by pespin 24 Oct '23

24 Oct '23
Attention is currently required from: lynxis lazus. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/34862?usp=email ) Change subject: ttcn3-epdg: Configure S6b interface ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/34862?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1145ee1068a2fdd2fe8d3e48b80c8e6c1fcb50ad Gerrit-Change-Number: 34862 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Tue, 24 Oct 2023 21:35:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: epdg: Tx Service-Selection in s6b AAR msg
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34876?usp=email ) Change subject: epdg: Tx Service-Selection in s6b AAR msg ...................................................................... epdg: Tx Service-Selection in s6b AAR msg This AVP is actually mandatory as per Table 9.1.2.2.1 in TS 29.273. Change-Id: I86d01a0f5148e98b7faebbe0e3d7617a6c90b559 --- M epdg/EPDG_Tests.ttcn M library/DIAMETER_ts29_273_Templates.ttcn 2 files changed, 19 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index 5710d0c..580d4d4 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -114,6 +114,7 @@ type record EPDG_ConnHdlrPars { hexstring imsi, + charstring apn, charstring ue_ip, /* TEI (Data) local side */ @@ -143,6 +144,7 @@ runs on MTC_CT return EPDG_ConnHdlrPars { var EPDG_ConnHdlrPars pars := { imsi := f_gen_imsi(imsi_suffix), + apn := "internet", ue_ip := "192.168.123.50", teid := '00000000'O, teic := '00000000'O, @@ -375,7 +377,9 @@ */ f_epdg_connhldr_S6b_expect_eteid(ete_id); - S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, int2oct(DIA_TS29_373_MIP6_Feature_Vector_GTPv2_SUPPORTED, 8), hbh_id := hbh_id, ete_id := ete_id)); + S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, + int2oct(DIA_TS29_373_MIP6_Feature_Vector_GTPv2_SUPPORTED, 8), + g_pars.apn, hbh_id := hbh_id, ete_id := ete_id)); alt { [] S6b.receive(tr_DIA_S6b_AAA) -> value rx_dia {} [] S6b.receive(PDU_DIAMETER:?) -> value rx_dia { diff --git a/library/DIAMETER_ts29_273_Templates.ttcn b/library/DIAMETER_ts29_273_Templates.ttcn index 3daf299..38355e7 100644 --- a/library/DIAMETER_ts29_273_Templates.ttcn +++ b/library/DIAMETER_ts29_273_Templates.ttcn @@ -207,6 +207,7 @@ template (value) PDU_DIAMETER ts_DIA_S6b_AAR(template (value) hexstring imsi, template (value) MIPv6_NONE_MIP6_Feature_Vector mip6_feat_vec, + template (value) charstring apn, template (value) octetstring sess_id := c_def_sess_id, template (value) charstring orig_host := "pgw.localdomain", template (value) charstring orig_realm := "localdomain", @@ -227,7 +228,8 @@ ts_AVP_DestinationRealm(dest_realm), ts_AVP_AuthRequestType(AUTHORIZE_ONLY), ts_AVP_UserNameImsi(valueof(imsi)), - ts_AVP_MIP6FeatureVector(mip6_feat_vec) + ts_AVP_MIP6FeatureVector(mip6_feat_vec), + ts_AVP_ServiceSelection(valueof(apn)) /* TODO: Lots other optional */ }); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34876?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I86d01a0f5148e98b7faebbe0e3d7617a6c90b559 Gerrit-Change-Number: 34876 Gerrit-PatchSet: 4 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: Introduce DIAMETER_rfc5447_Templates.ttcn
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34874?usp=email ) Change subject: Introduce DIAMETER_rfc5447_Templates.ttcn ...................................................................... Introduce DIAMETER_rfc5447_Templates.ttcn Add templates for RFC 5447 MIP6-Feature-Vector. This AVP is a bitmask which as only a few bits defined in RFC 5447, with other interfaces using this AVP adding interface-specific bits in the spec of each interface. The templates are added in a new separate file with the aim of start splitting the tons of AVPs originating from different specs in order to be able to quickly identify them and avoid confusion. Change-Id: I0fc646e5354d78283a2f3e1b9bb9c4688cf744a1 --- M epdg/gen_links.sh A library/DIAMETER_rfc5447_Templates.ttcn 2 files changed, 60 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/epdg/gen_links.sh b/epdg/gen_links.sh index b464203..bc9d90e 100755 --- a/epdg/gen_links.sh +++ b/epdg/gen_links.sh @@ -42,7 +42,7 @@ FILES+="Osmocom_CTRL_Types.ttcn " FILES+="L3_Common.ttcn " FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn " -FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_273_Templates.ttcn " +FILES+="DIAMETER_Templates.ttcn DIAMETER_rfc5447_Templates.ttcn DIAMETER_ts29_273_Templates.ttcn " FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp " FILES+="GSUP_Types.ttcn GSUP_Emulation.ttcn " diff --git a/library/DIAMETER_rfc5447_Templates.ttcn b/library/DIAMETER_rfc5447_Templates.ttcn new file mode 100644 index 0000000..4c119c7 --- /dev/null +++ b/library/DIAMETER_rfc5447_Templates.ttcn @@ -0,0 +1,41 @@ +module DIAMETER_rfc5447_Templates { + +/* (C) 2023 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from General_Types all; +import from DIAMETER_Types all; +import from DIAMETER_Templates all; +import from Osmocom_Types all; +import from Misc_Helpers all; + +/* 4.2.5. MIP6-Feature-Vector AVP */ +const uint64_t DIA_RFC5447_MIP6_Feature_Vector_MIP6_INTEGRATED := hex2int('0000000000000001'H); +const uint64_t DIA_RFC5447_MIP6_Feature_Vector_LOCAL_HOME_AGENT_ASSIGNMENT := hex2int('0000000000000002'H); + + +/* 4.2.5. MIP6-Feature-Vector AVP */ +template (value) GenericAVP ts_AVP_MIP6FeatureVector(template (value) MIPv6_NONE_MIP6_Feature_Vector inp) := { + avp := { + avp_header := ts_DIA_Hdr(c_AVP_Code_MIPv6_NONE_MIP6_Feature_Vector), + avp_data := { + avp_MIPv6_NONE_MIP6_Feature_Vector := inp + } + } +} +template (present) GenericAVP tr_AVP_MIP6FeatureVector(template (present) MIPv6_NONE_MIP6_Feature_Vector inp := ?) := { + avp := { + avp_header := tr_DIA_Hdr(c_AVP_Code_MIPv6_NONE_MIP6_Feature_Vector), + avp_data := { + avp_MIPv6_NONE_MIP6_Feature_Vector := inp + } + } +} + +} \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34874?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fc646e5354d78283a2f3e1b9bb9c4688cf744a1 Gerrit-Change-Number: 34874 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: epdg: Tx MIP6-Feature-Vector in s6b AAR msg
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34875?usp=email ) Change subject: epdg: Tx MIP6-Feature-Vector in s6b AAR msg ...................................................................... epdg: Tx MIP6-Feature-Vector in s6b AAR msg This AVP is actually mandatory as per Table 9.1.2.2.1 in TS 29.273. Change-Id: I47e1f7ff583f60d0d16e151dbfe64fbd33fd7774 --- M epdg/EPDG_Tests.ttcn M library/DIAMETER_ts29_273_Templates.ttcn 2 files changed, 23 insertions(+), 2 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index 396ca0e..5710d0c 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -375,7 +375,7 @@ */ f_epdg_connhldr_S6b_expect_eteid(ete_id); - S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, hbh_id := hbh_id, ete_id := ete_id)); + S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, int2oct(DIA_TS29_373_MIP6_Feature_Vector_GTPv2_SUPPORTED, 8), hbh_id := hbh_id, ete_id := ete_id)); alt { [] S6b.receive(tr_DIA_S6b_AAA) -> value rx_dia {} [] S6b.receive(PDU_DIAMETER:?) -> value rx_dia { diff --git a/library/DIAMETER_ts29_273_Templates.ttcn b/library/DIAMETER_ts29_273_Templates.ttcn index 5df1cf1..3daf299 100644 --- a/library/DIAMETER_ts29_273_Templates.ttcn +++ b/library/DIAMETER_ts29_273_Templates.ttcn @@ -14,6 +14,7 @@ import from General_Types all; import from DIAMETER_Types all; import from DIAMETER_Templates all; +import from DIAMETER_rfc5447_Templates all; import from Osmocom_Types all; import from Misc_Helpers all; @@ -22,6 +23,13 @@ /* 3GPP TS 29.273 Section 9 */ const uint32_t c_DIAMETER_3GPP_S6b_AID := 16777272; +/* 5.2.3.3 MIP6-Feature-Vector bits */ +const uint64_t DIA_TS29_373_MIP6_Feature_Vector_PMIP6_SUPPORTED := hex2int('0000010000000000'H); +const uint64_t DIA_TS29_373_MIP6_Feature_Vector_ASSIGN_LOCAL_IP := hex2int('0000080000000000'H); +const uint64_t DIA_TS29_373_MIP6_Feature_Vector_MIP4_SUPPORTED := hex2int('0000100000000000'H); +const uint64_t DIA_TS29_373_MIP6_Feature_Vector_OPTIMIZED_IDLE_MODE_MOBILITY := hex2int('0000200000000000'H); +const uint64_t DIA_TS29_373_MIP6_Feature_Vector_GTPv2_SUPPORTED := hex2int('0000400000000000'H); + /******************************* * SWx 3GPP TS 29.273 section 8 *******************************/ @@ -198,6 +206,7 @@ /* TS 29.273 9.2.2.5.1 AA-Request (AAR) */ template (value) PDU_DIAMETER ts_DIA_S6b_AAR(template (value) hexstring imsi, + template (value) MIPv6_NONE_MIP6_Feature_Vector mip6_feat_vec, template (value) octetstring sess_id := c_def_sess_id, template (value) charstring orig_host := "pgw.localdomain", template (value) charstring orig_realm := "localdomain", @@ -217,7 +226,8 @@ ts_AVP_OriginRealm(orig_realm), ts_AVP_DestinationRealm(dest_realm), ts_AVP_AuthRequestType(AUTHORIZE_ONLY), - ts_AVP_UserNameImsi(valueof(imsi)) + ts_AVP_UserNameImsi(valueof(imsi)), + ts_AVP_MIP6FeatureVector(mip6_feat_vec) /* TODO: Lots other optional */ }); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34875?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I47e1f7ff583f60d0d16e151dbfe64fbd33fd7774 Gerrit-Change-Number: 34875 Gerrit-PatchSet: 4 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: GTPv2: Declare GTP2C_Cause as enum
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34877?usp=email ) Change subject: GTPv2: Declare GTP2C_Cause as enum ...................................................................... GTPv2: Declare GTP2C_Cause as enum Change-Id: Id26f59274d7a8813b64b9b4b7c5c39cc12d5a0ac --- M library/GTPv2_Templates.ttcn M pgw/PGW_Tests.ttcn 2 files changed, 56 insertions(+), 26 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/GTPv2_Templates.ttcn b/library/GTPv2_Templates.ttcn index 753774d..6bd3ba6 100644 --- a/library/GTPv2_Templates.ttcn +++ b/library/GTPv2_Templates.ttcn @@ -147,28 +147,37 @@ /* 8.4-1 */ -/* type enumerated GTP2C_Cause { Local_Detach (2), Complete_Detach (3), RAT_changed_from_3GPP_to_Non_3GPP (4), ISR_deactivation (5), - Error_Ind_from_RNC_eNB_SGSN_MME (5), + Error_Ind_from_RNC_eNB_SGSN_MME (6), IMSI_Detach_Only (7), Reactivation_Required (8), -} -*/ - -const integer c_GTP2C_Cause_LocalDetach := 1; + PDN_reconnection_to_APN_disallowed (9), + Access_changed_from_Non_3GPP_to_3GPP (10), + PDN_connection_inactivity_timer_expires (11), + PGW_not_responding (12), + Network_Failure (13), + QoS_parameter_mismatch (14), + EPS_to_5GS_Mobility (15), + Request_accepted (16), + Request_accepted_partially (17), + New_PDN_type_due_to_network_preference (18), + New_PDN_type_due_to_single_address_bearer_only (19), + /* ... */ + Context_Not_Found (64) +} with { variant "FIELDLENGTH(8)" encode "RAW" }; /* 8.4 */ -template (value) Cause ts_GTP2C_Cause(template (value) OCT1 cause, +template (value) Cause ts_GTP2C_Cause(template (value) GTP2C_Cause cause, template (value) BIT1 cs) := { elementIdentifier := '02'O, lengthIndicator := 0, /* overwritten */ instance := '0000'B, spare := '0000'B, - causeValue := cause, + causeValue := int2oct(enum2int(valueof(cause)), 1), cS := cs, bCE := '0'B, pCE := '0'B, @@ -178,12 +187,24 @@ instanceOfOffendingIE := omit, spare3 := omit } -template (present) Cause tr_GTP2C_Cause(template (present) OCT1 cause) := { +private function enum2int_GTP2C_Cause_tmpl(template GTP2C_Cause inp) return template integer +{ + if (istemplatekind(inp, "omit")) { + return omit; + } else if (istemplatekind(inp, "*")) { + return *; + } else if (istemplatekind(inp, "?")) { + return ?; + } else { + return enum2int(valueof(inp)); + } +} +template (present) Cause tr_GTP2C_Cause(template (present) GTP2C_Cause cause) := { elementIdentifier := '02'O, lengthIndicator := ?, instance := ?, spare := '0000'B, - causeValue := cause, + causeValue := int2oct_tmpl(enum2int_GTP2C_Cause_tmpl(cause), 1), cS := ?, bCE := ?, pCE := ?, @@ -193,7 +214,7 @@ instanceOfOffendingIE := *, spare3 := * } -private function fs_GTP2C_Cause(template (omit) OCT1 cause, template (value) BIT1 cs) return +private function fs_GTP2C_Cause(template (omit) GTP2C_Cause cause, template (value) BIT1 cs) return template (omit) Cause { if (istemplatekind(cause, "omit")) { return omit; @@ -201,7 +222,7 @@ return ts_GTP2C_Cause(cause, cs); } } -private function fr_GTP2C_Cause(template OCT1 cause) return +private function fr_GTP2C_Cause(template GTP2C_Cause cause) return template Cause { if (istemplatekind(cause, "omit")) { return omit; @@ -793,7 +814,7 @@ template (value) PDN_AddressAllocation addr) := ts_PDU_GTP2C('00000000'O, '000000'O, '21'O, { createSessionResponse := { - cause := ts_GTP2C_Cause(int2oct(16, 1), '0'B), + cause := ts_GTP2C_Cause(Request_accepted, '0'B), changeReportingAction := omit, cSG_InformationReportingAction := omit, heNBInformationReporting := omit, @@ -824,7 +845,7 @@ template (present) PDU_GTPCv2 tr_GTP2C_CreateSessionResp(template (present) OCT4 d_teid := ?, template (present) OCT3 seq := ?, - template (present) OCT1 cause := ?, + template (present) GTP2C_Cause cause := ?, template FullyQualifiedTEID_List fteids := *, template PDN_AddressAllocation addr := *, template BearerContextGrouped_List bctxg := *) := @@ -862,7 +883,7 @@ template (value) PDU_GTPCv2 ts_GTP2C_DeleteSessionReq(template (value) OCT4 d_teid, - template (omit) OCT1 cause := omit, + template (omit) GTP2C_Cause cause := omit, template (value) FullyQualifiedTEID sender_fteid, template (omit) FullyQualifiedTEID_List teid_list := omit, template (value) uint4_t bearer_id) := @@ -889,7 +910,7 @@ template (present) PDU_GTPCv2 tr_GTP2C_DeleteSessionReq(template (present) OCT4 d_teid, template (present) OCT3 seq := ?, - template (omit) OCT1 cause, + template (omit) GTP2C_Cause cause, template (present) FullyQualifiedTEID sender_fteid, template FullyQualifiedTEID_List teid_list, template (present) uint4_t bearer_id) := @@ -918,7 +939,7 @@ template (value) PDU_GTPCv2 ts_GTP2C_DeleteSessionResp(template (value) OCT4 d_teid, template (value) OCT3 seq, - template (value) OCT1 cause) := + template (value) GTP2C_Cause cause) := ts_PDU_GTP2C(d_teid, '000000'O, '25'O, { deleteSessionResponse := { cause := ts_GTP2C_Cause(cause, '0'B), @@ -934,7 +955,7 @@ template (present) PDU_GTPCv2 tr_GTP2C_DeleteSessionResp(template (present) OCT4 d_teid, template (present) OCT3 seq := ?, - template (present) OCT1 cause := ? + template (present) GTP2C_Cause cause := ? ) := tr_PDU_GTP2C(d_teid, seq, { deleteSessionResponse := { @@ -993,7 +1014,7 @@ ts_GTP2C_DeleteBearerReq(template (value) OCT4 d_teid, template (value) integer proc_trans_id, template (value) uint4_t bearer_id, - template (value) OCT1 cause) := + template (value) GTP2C_Cause cause) := ts_PDU_GTP2C(d_teid, '000000'O, '63'O, { deleteBearerRequest := { epsBearerIdentity := { ts_GTP2C_EpsBearerId(bearer_id) }, @@ -1014,7 +1035,7 @@ template (present) PDU_GTPCv2 tr_GTP2C_DeleteBearerResp(template (present) OCT4 d_teid, template (present) OCT3 seq := ?, - template (present) OCT1 cause := ?) := + template (present) GTP2C_Cause cause := ?) := tr_PDU_GTP2C(d_teid, seq, { deleteBearerResponse := { cause := tr_GTP2C_Cause(cause), diff --git a/pgw/PGW_Tests.ttcn b/pgw/PGW_Tests.ttcn index 4730040..182147d 100644 --- a/pgw/PGW_Tests.ttcn +++ b/pgw/PGW_Tests.ttcn @@ -610,7 +610,7 @@ as_DIA_Gy_CCR(INITIAL_REQUEST); } alt { - [] GTP2.receive(tr_GTP2C_CreateSessionResp(d_teid:=g_teic, cause:='10'O)) -> value rx { + [] GTP2.receive(tr_GTP2C_CreateSessionResp(d_teid:=g_teic, cause:=Request_accepted)) -> value rx { /* extract TEIDs */ var CreateSessionResponse resp := rx.gtpcv2_pdu.createSessionResponse; g_teic_remote := resp.fullyQualifiedTEID[0].tEID_GRE_Key; @@ -655,9 +655,9 @@ } /* delete the session from the PGW */ -private function f_delete_session(template (omit) OCT1 tx_cause := omit, +private function f_delete_session(template (omit) GTP2C_Cause tx_cause := omit, template (present) OCT4 exp_teid, - template (present) OCT1 exp_cause, + template (present) GTP2C_Cause exp_cause, boolean expect_diameter := true) runs on PGW_Session_CT { var template (value) FullyQualifiedTEID fteid_c_ie fteid_c_ie := ts_GTP2C_FTEID(FTEID_IF_S5S8_SGW_GTPC, g_teic, 0, @@ -844,7 +844,7 @@ /* create a session, then delete it again */ private function f_TC_createSession_deleteSession() runs on PGW_Session_CT { f_create_session(); - f_delete_session(omit, g_teic, '10'O); + f_delete_session(omit, g_teic, Request_accepted); setverdict(pass); } testcase TC_createSession_deleteSession() runs on PGW_Test_CT { @@ -859,7 +859,7 @@ private function f_TC_deleteSession_unknown() runs on PGW_Session_CT { g_teic := f_gtp2_allocate_teid(); g_teic_remote := f_rnd_octstring(4); - f_delete_session(omit, '00000000'O, '40'O /* Context Unknown */, false); + f_delete_session(omit, '00000000'O, Context_Not_Found, false); setverdict(pass); } testcase TC_deleteSession_unknown() runs on PGW_Test_CT { @@ -890,7 +890,7 @@ as_DIA_Gy_CCR(UPDATE_REQUEST); f_validate_gy_cc_report(g_rx_gy, VALIDITY_TIME, (3..4), ?, ?); - f_delete_session(omit, g_teic, '10'O); + f_delete_session(omit, g_teic, Request_accepted); f_validate_gy_cc_report(g_rx_gy, FINAL, (0..1), 0, 0); setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34877?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id26f59274d7a8813b64b9b4b7c5c39cc12d5a0ac Gerrit-Change-Number: 34877 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: epdg: Emulate PGW tx AAR and rx AAA in S6b interface
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34861?usp=email ) Change subject: epdg: Emulate PGW tx AAR and rx AAA in S6b interface ...................................................................... epdg: Emulate PGW tx AAR and rx AAA in S6b interface Related: OS#6229 Change-Id: Ia50698a3f6f5ed8251486b84c09f84edfd6d3951 --- M epdg/EPDG_Tests.ttcn 1 file changed, 42 insertions(+), 7 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index 3a0c3a6..76fd45e 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -32,6 +32,8 @@ /* our emulated PGW (Diameter S6b) */ charstring mp_s6b_local_ip := "127.0.0.100"; integer mp_s6b_local_port := 3869; + charstring mp_s6b_remote_ip := "127.0.0.1"; + integer mp_s6b_remote_port := 3869; /* our emulated PGW (GTPv2C S2b) */ charstring mp_s2b_local_ip := "127.0.0.100"; @@ -212,14 +214,14 @@ /* S6b setup: */ pars := { - remote_ip := "", - remote_sctp_port := -1, /* server mode */ + remote_ip := mp_s6b_remote_ip, + remote_sctp_port := mp_s6b_remote_port, /* client mode */ local_ip := mp_s6b_local_ip, local_sctp_port := mp_s6b_local_port, - origin_host := "hss." & mp_diam_realm, + origin_host := "pgw." & mp_diam_realm, origin_realm := mp_diam_realm, - auth_app_id := omit, - vendor_app_id := c_DIAMETER_3GPP_S6_AID + auth_app_id := c_DIAMETER_3GPP_S6b_AID, + vendor_app_id := c_DIAMETER_3GPP_S6b_AID }; vc_S6b := DIAMETER_Emulation_CT.create(id); map(vc_S6b:DIAMETER, system:DIAMETER_CODEC_PT); @@ -228,8 +230,7 @@ vc_S6b.start(DIAMETER_Emulation.main(ops, pars, id)); f_diameter_wait_capability(SWx_UNIT); - // FIXME: osmo-epdg doesn't connect to S6b yet. - //f_diameter_wait_capability(S6b_UNIT); + f_diameter_wait_capability(S6b_UNIT); /* Give some time for our emulation to get out of SUSPECT list of SUT (3 watchdog ping-pongs): * RFC6733 sec 5.1 @@ -362,6 +363,26 @@ } } +/* Send AAR as PGW to AAA server, expect back AAA */ +private function f_S6b_AA_success() runs on EPDG_ConnHdlr { + var PDU_DIAMETER rx_dia; + var UINT32 hbh_id := f_rnd_octstring(4); + var UINT32 ete_id := f_rnd_octstring(4); + + /* Unlike AAR, AAA contains no IMSI. Register ete_id in DIAMETER_Emulation, + * so AIA is forwarded back to us in DIAMETER port instead of MTC_CT.DIAMETER_UNIT. + */ + f_epdg_connhldr_S6b_expect_eteid(ete_id); + + S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, hbh_id := hbh_id, ete_id := ete_id)); + alt { + [] S6b.receive(tr_DIA_S6b_AAA) -> value rx_dia {} + [] S6b.receive(PDU_DIAMETER:?) -> value rx_dia { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Unexpected Diameter S6b msg rx: ", rx_dia)); + } + } +} + /* Diameter SWx SAR + SAA. */ private altstep as_GTP2C_CreateSession_success() runs on EPDG_ConnHdlr { var PDU_GTPCv2 rx_msg; @@ -375,11 +396,15 @@ g_pars.teic := f_gtp2_allocate_teid(); g_pars.teid := g_pars.teic; + /* Upon rx of CreateSession, emulate PGW asking the AAA server. */ + f_S6b_AA_success(); + fteid_c_ie := ts_GTP2C_FTEID(FTEID_IF_S2b_ePDG_GTPC, g_pars.teic, 0, f_inet_addr(mp_s2b_local_ip), omit); fteid_u_ie := ts_GTP2C_FTEID(FTEID_IF_S2bU_ePDG_GTPU, g_pars.teid, 2, f_inet_addr(mp_s2b_local_ip), omit); paa := ts_GTP2C_PdnAddrAlloc_v4(f_inet_addr(g_pars.ue_ip)); + GTP2.send(ts_GTP2C_CreateSessionResp({ fteid_c_ie }, paa)); setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34861?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia50698a3f6f5ed8251486b84c09f84edfd6d3951 Gerrit-Change-Number: 34861 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: DIAMETER_Templates: Add S6b AAR and AAA message templates
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34860?usp=email ) Change subject: DIAMETER_Templates: Add S6b AAR and AAA message templates ...................................................................... DIAMETER_Templates: Add S6b AAR and AAA message templates Related: OS#6229 Change-Id: I302d9a94e6ffbb62b6db81e1b14484355e55ebe5 --- M library/DIAMETER_Templates.ttcn 1 file changed, 87 insertions(+), 3 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn index f909b5f..62b797d 100644 --- a/library/DIAMETER_Templates.ttcn +++ b/library/DIAMETER_Templates.ttcn @@ -127,6 +127,8 @@ const uint32_t c_DIAMETER_3GPP_S7_AID := 16777308; /* 3GPP TS 29.273 Section 8.2 */ const uint32_t c_DIAMETER_3GPP_SWx_AID := 16777265; +/* 3GPP TS 29.273 Section 9 */ +const uint32_t c_DIAMETER_3GPP_S6b_AID := 16777272; const octetstring c_def_sess_id := char2oct("ttcn3.session"); @@ -1518,6 +1520,24 @@ } } +/* RFC6733 8.7. Auth-Request-Type AVP */ +template (value) GenericAVP ts_AVP_AuthRequestType(BASE_NONE_Auth_Request_Type auth_req_type) := { + avp := { + avp_header := ts_DIA_Hdr(c_AVP_Code_BASE_NONE_Auth_Request_Type, '00000000'B), + avp_data := { + avp_BASE_NONE_Auth_Request_Type := auth_req_type + } + } +} +template (present) GenericAVP tr_AVP_AuthRequestType(template (present) BASE_NONE_Auth_Request_Type auth_req_type) := { + avp := { + avp_header := tr_DIA_Hdr(c_AVP_Code_BASE_NONE_Auth_Request_Type), + avp_data := { + avp_BASE_NONE_Auth_Request_Type := auth_req_type + } + } +} + /* 5.3.1 Capabilities Exchange Request */ template (value) PDU_DIAMETER @@ -2276,9 +2296,9 @@ } } -/***************************** - * SWx 3GPP TS 29.273 - *****************************/ +/******************************* + * SWx 3GPP TS 29.273 section 8 + *******************************/ /* SIP-Auth-Data-Item , 3GPP TS 29.273 8.2.3.9 */ template (present) GenericAVP tr_AVP_3GPP_SIPAuthDataItem(template (present) uint32_t num := ?) := { @@ -2445,4 +2465,58 @@ */ }); +/******************************* + * S6b 3GPP TS 29.273 section 9 + *******************************/ + + /* TS 29.273 9.2.2.5.1 AA-Request (AAR) */ +template (value) PDU_DIAMETER +ts_DIA_S6b_AAR(template (value) hexstring imsi, + template (value) octetstring sess_id := c_def_sess_id, + template (value) charstring orig_host := "pgw.localdomain", + template (value) charstring orig_realm := "localdomain", + template (value) charstring dest_realm := "localdomain", + template (value) UINT32 hbh_id := '00000000'O, + template (value) UINT32 ete_id := '00000000'O) := + ts_DIAMETER(flags := '11000000'B, + cmd_code := Authorize_Authenticate, + app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), + hbh_id := hbh_id, + ete_id := ete_id, + avps := { + ts_AVP_SessionId(sess_id), + /* Optional: DRMP, */ + ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), + ts_AVP_OriginHost(orig_host), + ts_AVP_OriginRealm(orig_realm), + ts_AVP_DestinationRealm(dest_realm), + ts_AVP_AuthRequestType(AUTHORIZE_ONLY), + ts_AVP_UserNameImsi(valueof(imsi)) + /* TODO: Lots other optional */ + }); + +/* TS 29.273 9.2.2.2.2 AA-Answer (AAA) */ +template (present) PDU_DIAMETER +tr_DIA_S6b_AAA(template (present) octetstring sess_id := ?, + template (present) charstring orig_host := ?, + template (present) charstring orig_realm := ?, + template (present) charstring dest_realm := ?, + template (present) UINT32 hbh_id := ?, + template (present) UINT32 ete_id := ?, + template (present) CxDx_3GPP_Server_Assignment_Type server_ass_type := ?, + template (present) charstring service_selection := ?) := + tr_DIAMETER(flags := '0???????'B, + cmd_code := Authorize_Authenticate, + app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), + hbh_id := hbh_id, ete_id := ete_id, + avps := superset( + tr_AVP_SessionId(sess_id), + /* Optional: DRMP, */ + tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), + tr_AVP_AuthRequestType(AUTHORIZE_ONLY), + tr_AVP_ResultCode(DIAMETER_SUCCESS), + tr_AVP_OriginHost(orig_host), + tr_AVP_OriginRealm(orig_realm) + )); + } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34860?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I302d9a94e6ffbb62b6db81e1b14484355e55ebe5 Gerrit-Change-Number: 34860 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[L] Change in osmo-ttcn3-hacks[master]: library/DIAMETER: Split TS 29.273 templates into its own file
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34872?usp=email ) Change subject: library/DIAMETER: Split TS 29.273 templates into its own file ...................................................................... library/DIAMETER: Split TS 29.273 templates into its own file The templates are added in a new separate file with the aim of starting splitting the tons of AVPs originating from different specs in order to be able to quickly identify them and avoid confusion. Change-Id: I77f917404dd70559b2b2cc62199ed70289ab0825 --- M epdg/EPDG_Tests.ttcn M epdg/gen_links.sh M library/DIAMETER_Templates.ttcn A library/DIAMETER_ts29_273_Templates.ttcn 4 files changed, 264 insertions(+), 228 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index 76fd45e..396ca0e 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -12,6 +12,7 @@ import from DIAMETER_Types all; import from DIAMETER_Templates all; +import from DIAMETER_ts29_273_Templates all; import from DIAMETER_Emulation all; import from GTPv2_Types all; diff --git a/epdg/gen_links.sh b/epdg/gen_links.sh index 326d82e..b464203 100755 --- a/epdg/gen_links.sh +++ b/epdg/gen_links.sh @@ -41,7 +41,8 @@ FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc " FILES+="Osmocom_CTRL_Types.ttcn " FILES+="L3_Common.ttcn " -FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn DIAMETER_Templates.ttcn " +FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn " +FILES+="DIAMETER_Templates.ttcn DIAMETER_ts29_273_Templates.ttcn " FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp " FILES+="GSUP_Types.ttcn GSUP_Emulation.ttcn " diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn index 62b797d..9a3e739 100644 --- a/library/DIAMETER_Templates.ttcn +++ b/library/DIAMETER_Templates.ttcn @@ -125,10 +125,6 @@ const uint32_t c_DIAMETER_3GPP_S6_AID := 16777251; const uint32_t c_DIAMETER_3GPP_S13_AID := 16777252; const uint32_t c_DIAMETER_3GPP_S7_AID := 16777308; -/* 3GPP TS 29.273 Section 8.2 */ -const uint32_t c_DIAMETER_3GPP_SWx_AID := 16777265; -/* 3GPP TS 29.273 Section 9 */ -const uint32_t c_DIAMETER_3GPP_S6b_AID := 16777272; const octetstring c_def_sess_id := char2oct("ttcn3.session"); @@ -2296,227 +2292,4 @@ } } -/******************************* - * SWx 3GPP TS 29.273 section 8 - *******************************/ - -/* SIP-Auth-Data-Item , 3GPP TS 29.273 8.2.3.9 */ -template (present) GenericAVP tr_AVP_3GPP_SIPAuthDataItem(template (present) uint32_t num := ?) := { - avp := { - avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_CxDx_3GPP_SIP_Auth_Data_Item), - avp_data := { - avp_CxDx_3GPP_SIP_Auth_Data_Item := superset( - //tr_AVP_3GPP_SIPItemNumber(num), /* Optional */ - tr_AVP_3GPP_SIPAuthScheme(?)//, /* Optional */ - //tr_AVP_3GPP_SIPAuthenticate(?), /* Optional */ - //tr_AVP_3GPP_SIPAuthorization(?), /* Optional */ - //tr_AVP_3GPP_SIPAuthContext(?), /* Optional */ - //tr_AVP_3GPP_ConfidentialityKey(?), /* Optional */ - //tr_AVP_3GPP_IntegrityKey(?) /* Optional */ - /* TODO: - [ SIP-Digest-Authenticate ] - [ Framed-IP-Address ] - [ Framed-IPv6-Prefix ] - [ Framed-Interface-Id ] - [ Line-Identifier ] - *[AVP] - */ - ) - } - } -} -template (value) GenericAVP ts_AVP_3GPP_SIPAuthDataItem(uint32_t num, OCT16 rand, OCT16 ik, OCT16 ck, OCT16 autn, OCT14 auts) := { - avp := { - avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_CxDx_3GPP_SIP_Auth_Data_Item), - avp_data := { - avp_CxDx_3GPP_SIP_Auth_Data_Item := { - ts_AVP_3GPP_SIPItemNumber(num), - ts_AVP_3GPP_SIPAuthScheme(char2oct("Digest-AKAv1-MD5")), - ts_AVP_3GPP_SIPAuthenticate(rand & autn), - ts_AVP_3GPP_SIPAuthorization(rand & auts), - ts_AVP_3GPP_SIPAuthContext(char2oct("foobar")), - ts_AVP_3GPP_ConfidentialityKey(ck), - ts_AVP_3GPP_IntegrityKey(ik) - /* TODO: - [ SIP-Digest-Authenticate ] - [ Framed-IP-Address ] - [ Framed-IPv6-Prefix ] - [ Framed-Interface-Id ] - [ Line-Identifier ] - *[AVP] - */ - } - } - } -} - -/* Multimedia-Auth-Request, 3GPP TS 29.273 8.2.2.1 Authentication Procedure */ -template (present) PDU_DIAMETER -tr_DIA_SWx_MAR(template (present) hexstring imsi := ?, - template (present) octetstring sess_id := ?, - template (present) charstring orig_host := ?, - template (present) charstring orig_realm := ?, - template (present) charstring dest_realm := ?, - template (present) UINT32 hbh_id := ?, - template (present) UINT32 ete_id := ?) := - tr_DIAMETER(flags := '1???????'B, - cmd_code := Multimedia_Auth, - app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), - hbh_id := hbh_id, ete_id := ete_id, - avps := superset( - tr_AVP_SessionId(sess_id), - tr_AVP_VendorSpecAppId(?, ?), - tr_AVP_AuthSessionState(NO_STATE_MAINTAINED), - tr_AVP_OriginHost(orig_host), - tr_AVP_OriginRealm(orig_realm), - tr_AVP_DestinationRealm(dest_realm), - tr_AVP_UserNameImsi(imsi), - tr_AVP_3GPP_SIPAuthDataItem(?), - tr_AVP_3GPP_SIPNumAuthDataItems(?) - )); - -/* Multimedia-Auth-Answer, 3GPP TS 29.273 8.2.2.1 Authentication Procedure */ -template (value) PDU_DIAMETER -ts_DIA_SWx_MAA(template (value) hexstring imsi, - template (value) GenericAVP sip_auth_data_item, - template (value) uint32_t vendor_app_id := c_DIAMETER_3GPP_SWx_AID, - template (value) octetstring sess_id := c_def_sess_id, - template (value) charstring orig_host := "hss.localdomain", - template (value) charstring orig_realm := "localdomain", - template (value) UINT32 hbh_id := '00000000'O, - template (value) UINT32 ete_id := '00000000'O) := - ts_DIAMETER(flags := '01000000'B, - cmd_code := Multimedia_Auth, - app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), - hbh_id := hbh_id, - ete_id := ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_VendorSpecAppId(vendor_id_3GPP, valueof(vendor_app_id)), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_AuthSessionState(NO_STATE_MAINTAINED), - ts_AVP_OriginHost(orig_host), - ts_AVP_OriginRealm(orig_realm), - ts_AVP_UserNameImsi(valueof(imsi)), - sip_auth_data_item, - ts_AVP_3GPP_SIPNumAuthDataItems(1) - }); - -/* Server-Assignment-Request, - * 3GPP TS 29.273 8.1.2.2.2 UE/PDN Registration/DeRegistration Notification - * 3GPP TS 29.273 8.2.2.3 Non-3GPP IP Access Registration Procedure */ -template (present) PDU_DIAMETER -tr_DIA_SWx_SAR(template (present) hexstring imsi := ?, - template (present) octetstring sess_id := ?, - template (present) charstring orig_host := ?, - template (present) charstring orig_realm := ?, - template (present) charstring dest_realm := ?, - template (present) UINT32 hbh_id := ?, - template (present) UINT32 ete_id := ?, - template (present) CxDx_3GPP_Server_Assignment_Type server_ass_type := ?, - template (present) charstring service_selection := ?) := - tr_DIAMETER(flags := '1???????'B, - cmd_code := Server_Assignment, - app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), - hbh_id := hbh_id, ete_id := ete_id, - avps := superset( - tr_AVP_SessionId(sess_id), - tr_AVP_VendorSpecAppId(?, ?), - tr_AVP_AuthSessionState(NO_STATE_MAINTAINED), - tr_AVP_OriginHost(orig_host), - tr_AVP_OriginRealm(orig_realm), - tr_AVP_DestinationRealm(dest_realm), - tr_AVP_UserNameImsi(imsi), - tr_AVP_3GPP_ServerAssignmentType(server_ass_type), - tr_AVP_ServiceSelection(service_selection) - )); - -/* Server-Assignment-Answer, - * 3GPP TS 29.273 8.1.2.2.2 UE/PDN Registration/DeRegistration Notification - * 3GPP TS 29.273 8.2.2.3 Non-3GPP IP Access Registration Procedure */ -template (value) PDU_DIAMETER -ts_DIA_SWx_SAA(template (value) hexstring imsi, - template (value) uint32_t vendor_app_id := c_DIAMETER_3GPP_SWx_AID, - template (value) octetstring sess_id := c_def_sess_id, - template (value) charstring orig_host := "hss.localdomain", - template (value) charstring orig_realm := "localdomain", - template (value) UINT32 hbh_id := '00000000'O, - template (value) UINT32 ete_id := '00000000'O) := - ts_DIAMETER(flags := '01000000'B, - cmd_code := Server_Assignment, - app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), - hbh_id := hbh_id, - ete_id := ete_id, - avps := { - ts_AVP_SessionId(sess_id), - ts_AVP_VendorSpecAppId(vendor_id_3GPP, valueof(vendor_app_id)), - ts_AVP_ResultCode(DIAMETER_SUCCESS), - ts_AVP_AuthSessionState(NO_STATE_MAINTAINED), - ts_AVP_OriginHost(orig_host), - ts_AVP_OriginRealm(orig_realm), - ts_AVP_UserNameImsi(valueof(imsi)) - /* TODO: - * [ Non-3GPP-User-Data ] - * [ 3GPP-AAA-Server-Name ] - * [ OC-Supported-Features ] - * [ OC-OLR ] ] - * *[ Load ] - * *[ Supported-Features ] - */ - }); - -/******************************* - * S6b 3GPP TS 29.273 section 9 - *******************************/ - - /* TS 29.273 9.2.2.5.1 AA-Request (AAR) */ -template (value) PDU_DIAMETER -ts_DIA_S6b_AAR(template (value) hexstring imsi, - template (value) octetstring sess_id := c_def_sess_id, - template (value) charstring orig_host := "pgw.localdomain", - template (value) charstring orig_realm := "localdomain", - template (value) charstring dest_realm := "localdomain", - template (value) UINT32 hbh_id := '00000000'O, - template (value) UINT32 ete_id := '00000000'O) := - ts_DIAMETER(flags := '11000000'B, - cmd_code := Authorize_Authenticate, - app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), - hbh_id := hbh_id, - ete_id := ete_id, - avps := { - ts_AVP_SessionId(sess_id), - /* Optional: DRMP, */ - ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), - ts_AVP_OriginHost(orig_host), - ts_AVP_OriginRealm(orig_realm), - ts_AVP_DestinationRealm(dest_realm), - ts_AVP_AuthRequestType(AUTHORIZE_ONLY), - ts_AVP_UserNameImsi(valueof(imsi)) - /* TODO: Lots other optional */ - }); - -/* TS 29.273 9.2.2.2.2 AA-Answer (AAA) */ -template (present) PDU_DIAMETER -tr_DIA_S6b_AAA(template (present) octetstring sess_id := ?, - template (present) charstring orig_host := ?, - template (present) charstring orig_realm := ?, - template (present) charstring dest_realm := ?, - template (present) UINT32 hbh_id := ?, - template (present) UINT32 ete_id := ?, - template (present) CxDx_3GPP_Server_Assignment_Type server_ass_type := ?, - template (present) charstring service_selection := ?) := - tr_DIAMETER(flags := '0???????'B, - cmd_code := Authorize_Authenticate, - app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), - hbh_id := hbh_id, ete_id := ete_id, - avps := superset( - tr_AVP_SessionId(sess_id), - /* Optional: DRMP, */ - tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), - tr_AVP_AuthRequestType(AUTHORIZE_ONLY), - tr_AVP_ResultCode(DIAMETER_SUCCESS), - tr_AVP_OriginHost(orig_host), - tr_AVP_OriginRealm(orig_realm) - )); - } diff --git a/library/DIAMETER_ts29_273_Templates.ttcn b/library/DIAMETER_ts29_273_Templates.ttcn new file mode 100644 index 0000000..5df1cf1 --- /dev/null +++ b/library/DIAMETER_ts29_273_Templates.ttcn @@ -0,0 +1,248 @@ +module DIAMETER_ts29_273_Templates { + +/* (C) 2023 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Templates for AVPs and messages for TS 29.273 + */ + +import from General_Types all; +import from DIAMETER_Types all; +import from DIAMETER_Templates all; +import from Osmocom_Types all; +import from Misc_Helpers all; + +/* 3GPP TS 29.273 Section 8.2 */ +const uint32_t c_DIAMETER_3GPP_SWx_AID := 16777265; +/* 3GPP TS 29.273 Section 9 */ +const uint32_t c_DIAMETER_3GPP_S6b_AID := 16777272; + +/******************************* + * SWx 3GPP TS 29.273 section 8 + *******************************/ + +/* SIP-Auth-Data-Item , 3GPP TS 29.273 8.2.3.9 */ +template (present) GenericAVP tr_AVP_3GPP_SIPAuthDataItem(template (present) uint32_t num := ?) := { + avp := { + avp_header := tr_DIA_Hdr_3GPP(c_AVP_Code_CxDx_3GPP_SIP_Auth_Data_Item), + avp_data := { + avp_CxDx_3GPP_SIP_Auth_Data_Item := superset( + //tr_AVP_3GPP_SIPItemNumber(num), /* Optional */ + tr_AVP_3GPP_SIPAuthScheme(?)//, /* Optional */ + //tr_AVP_3GPP_SIPAuthenticate(?), /* Optional */ + //tr_AVP_3GPP_SIPAuthorization(?), /* Optional */ + //tr_AVP_3GPP_SIPAuthContext(?), /* Optional */ + //tr_AVP_3GPP_ConfidentialityKey(?), /* Optional */ + //tr_AVP_3GPP_IntegrityKey(?) /* Optional */ + /* TODO: + [ SIP-Digest-Authenticate ] + [ Framed-IP-Address ] + [ Framed-IPv6-Prefix ] + [ Framed-Interface-Id ] + [ Line-Identifier ] + *[AVP] + */ + ) + } + } +} +template (value) GenericAVP ts_AVP_3GPP_SIPAuthDataItem(uint32_t num, OCT16 rand, OCT16 ik, OCT16 ck, OCT16 autn, OCT14 auts) := { + avp := { + avp_header := ts_DIA_Hdr_3GPP(c_AVP_Code_CxDx_3GPP_SIP_Auth_Data_Item), + avp_data := { + avp_CxDx_3GPP_SIP_Auth_Data_Item := { + ts_AVP_3GPP_SIPItemNumber(num), + ts_AVP_3GPP_SIPAuthScheme(char2oct("Digest-AKAv1-MD5")), + ts_AVP_3GPP_SIPAuthenticate(rand & autn), + ts_AVP_3GPP_SIPAuthorization(rand & auts), + ts_AVP_3GPP_SIPAuthContext(char2oct("foobar")), + ts_AVP_3GPP_ConfidentialityKey(ck), + ts_AVP_3GPP_IntegrityKey(ik) + /* TODO: + [ SIP-Digest-Authenticate ] + [ Framed-IP-Address ] + [ Framed-IPv6-Prefix ] + [ Framed-Interface-Id ] + [ Line-Identifier ] + *[AVP] + */ + } + } + } +} + +/* Multimedia-Auth-Request, 3GPP TS 29.273 8.2.2.1 Authentication Procedure */ +template (present) PDU_DIAMETER +tr_DIA_SWx_MAR(template (present) hexstring imsi := ?, + template (present) octetstring sess_id := ?, + template (present) charstring orig_host := ?, + template (present) charstring orig_realm := ?, + template (present) charstring dest_realm := ?, + template (present) UINT32 hbh_id := ?, + template (present) UINT32 ete_id := ?) := + tr_DIAMETER(flags := '1???????'B, + cmd_code := Multimedia_Auth, + app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), + hbh_id := hbh_id, ete_id := ete_id, + avps := superset( + tr_AVP_SessionId(sess_id), + tr_AVP_VendorSpecAppId(?, ?), + tr_AVP_AuthSessionState(NO_STATE_MAINTAINED), + tr_AVP_OriginHost(orig_host), + tr_AVP_OriginRealm(orig_realm), + tr_AVP_DestinationRealm(dest_realm), + tr_AVP_UserNameImsi(imsi), + tr_AVP_3GPP_SIPAuthDataItem(?), + tr_AVP_3GPP_SIPNumAuthDataItems(?) + )); + +/* Multimedia-Auth-Answer, 3GPP TS 29.273 8.2.2.1 Authentication Procedure */ +template (value) PDU_DIAMETER +ts_DIA_SWx_MAA(template (value) hexstring imsi, + template (value) GenericAVP sip_auth_data_item, + template (value) uint32_t vendor_app_id := c_DIAMETER_3GPP_SWx_AID, + template (value) octetstring sess_id := c_def_sess_id, + template (value) charstring orig_host := "hss.localdomain", + template (value) charstring orig_realm := "localdomain", + template (value) UINT32 hbh_id := '00000000'O, + template (value) UINT32 ete_id := '00000000'O) := + ts_DIAMETER(flags := '01000000'B, + cmd_code := Multimedia_Auth, + app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), + hbh_id := hbh_id, + ete_id := ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_VendorSpecAppId(vendor_id_3GPP, valueof(vendor_app_id)), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_AuthSessionState(NO_STATE_MAINTAINED), + ts_AVP_OriginHost(orig_host), + ts_AVP_OriginRealm(orig_realm), + ts_AVP_UserNameImsi(valueof(imsi)), + sip_auth_data_item, + ts_AVP_3GPP_SIPNumAuthDataItems(1) + }); + +/* Server-Assignment-Request, + * 3GPP TS 29.273 8.1.2.2.2 UE/PDN Registration/DeRegistration Notification + * 3GPP TS 29.273 8.2.2.3 Non-3GPP IP Access Registration Procedure */ +template (present) PDU_DIAMETER +tr_DIA_SWx_SAR(template (present) hexstring imsi := ?, + template (present) octetstring sess_id := ?, + template (present) charstring orig_host := ?, + template (present) charstring orig_realm := ?, + template (present) charstring dest_realm := ?, + template (present) UINT32 hbh_id := ?, + template (present) UINT32 ete_id := ?, + template (present) CxDx_3GPP_Server_Assignment_Type server_ass_type := ?, + template (present) charstring service_selection := ?) := + tr_DIAMETER(flags := '1???????'B, + cmd_code := Server_Assignment, + app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), + hbh_id := hbh_id, ete_id := ete_id, + avps := superset( + tr_AVP_SessionId(sess_id), + tr_AVP_VendorSpecAppId(?, ?), + tr_AVP_AuthSessionState(NO_STATE_MAINTAINED), + tr_AVP_OriginHost(orig_host), + tr_AVP_OriginRealm(orig_realm), + tr_AVP_DestinationRealm(dest_realm), + tr_AVP_UserNameImsi(imsi), + tr_AVP_3GPP_ServerAssignmentType(server_ass_type), + tr_AVP_ServiceSelection(service_selection) + )); + +/* Server-Assignment-Answer, + * 3GPP TS 29.273 8.1.2.2.2 UE/PDN Registration/DeRegistration Notification + * 3GPP TS 29.273 8.2.2.3 Non-3GPP IP Access Registration Procedure */ +template (value) PDU_DIAMETER +ts_DIA_SWx_SAA(template (value) hexstring imsi, + template (value) uint32_t vendor_app_id := c_DIAMETER_3GPP_SWx_AID, + template (value) octetstring sess_id := c_def_sess_id, + template (value) charstring orig_host := "hss.localdomain", + template (value) charstring orig_realm := "localdomain", + template (value) UINT32 hbh_id := '00000000'O, + template (value) UINT32 ete_id := '00000000'O) := + ts_DIAMETER(flags := '01000000'B, + cmd_code := Server_Assignment, + app_id := int2oct(c_DIAMETER_3GPP_SWx_AID, 4), + hbh_id := hbh_id, + ete_id := ete_id, + avps := { + ts_AVP_SessionId(sess_id), + ts_AVP_VendorSpecAppId(vendor_id_3GPP, valueof(vendor_app_id)), + ts_AVP_ResultCode(DIAMETER_SUCCESS), + ts_AVP_AuthSessionState(NO_STATE_MAINTAINED), + ts_AVP_OriginHost(orig_host), + ts_AVP_OriginRealm(orig_realm), + ts_AVP_UserNameImsi(valueof(imsi)) + /* TODO: + * [ Non-3GPP-User-Data ] + * [ 3GPP-AAA-Server-Name ] + * [ OC-Supported-Features ] + * [ OC-OLR ] ] + * *[ Load ] + * *[ Supported-Features ] + */ + }); + +/******************************* + * S6b 3GPP TS 29.273 section 9 + *******************************/ + + /* TS 29.273 9.2.2.5.1 AA-Request (AAR) */ +template (value) PDU_DIAMETER +ts_DIA_S6b_AAR(template (value) hexstring imsi, + template (value) octetstring sess_id := c_def_sess_id, + template (value) charstring orig_host := "pgw.localdomain", + template (value) charstring orig_realm := "localdomain", + template (value) charstring dest_realm := "localdomain", + template (value) UINT32 hbh_id := '00000000'O, + template (value) UINT32 ete_id := '00000000'O) := + ts_DIAMETER(flags := '11000000'B, + cmd_code := Authorize_Authenticate, + app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), + hbh_id := hbh_id, + ete_id := ete_id, + avps := { + ts_AVP_SessionId(sess_id), + /* Optional: DRMP, */ + ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), + ts_AVP_OriginHost(orig_host), + ts_AVP_OriginRealm(orig_realm), + ts_AVP_DestinationRealm(dest_realm), + ts_AVP_AuthRequestType(AUTHORIZE_ONLY), + ts_AVP_UserNameImsi(valueof(imsi)) + /* TODO: Lots other optional */ + }); + +/* TS 29.273 9.2.2.2.2 AA-Answer (AAA) */ +template (present) PDU_DIAMETER +tr_DIA_S6b_AAA(template (present) octetstring sess_id := ?, + template (present) charstring orig_host := ?, + template (present) charstring orig_realm := ?, + template (present) charstring dest_realm := ?, + template (present) UINT32 hbh_id := ?, + template (present) UINT32 ete_id := ?, + template (present) CxDx_3GPP_Server_Assignment_Type server_ass_type := ?, + template (present) charstring service_selection := ?) := + tr_DIAMETER(flags := '0???????'B, + cmd_code := Authorize_Authenticate, + app_id := int2oct(c_DIAMETER_3GPP_S6b_AID, 4), + hbh_id := hbh_id, ete_id := ete_id, + avps := superset( + tr_AVP_SessionId(sess_id), + /* Optional: DRMP, */ + tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_S6b_AID, 4)), + tr_AVP_AuthRequestType(AUTHORIZE_ONLY), + tr_AVP_ResultCode(DIAMETER_SUCCESS), + tr_AVP_OriginHost(orig_host), + tr_AVP_OriginRealm(orig_realm) + )); + +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34872?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I77f917404dd70559b2b2cc62199ed70289ab0825 Gerrit-Change-Number: 34872 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: DIAMETER_Types: Generate fields from RFC 5447
by pespin 24 Oct '23

24 Oct '23
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34873?usp=email ) Change subject: DIAMETER_Types: Generate fields from RFC 5447 ...................................................................... DIAMETER_Types: Generate fields from RFC 5447 S6b Diameter interface (TS 29.273 section 9) uses the MIP6-Feature-Vector, which according to TS 29.273 9.2.3.2.3 is defined in RFC 5447. Related: OS#6229 Change-Id: I478eff657d876d4ec9a5a1906cab48fbaaaae1b9 --- M library/DIAMETER_Types.ttcn M library/regen-DIAMETER_Types_ttcn.sh 2 files changed, 109 insertions(+), 4 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/DIAMETER_Types.ttcn b/library/DIAMETER_Types.ttcn index ee2910b..3a7b3b6 100644 --- a/library/DIAMETER_Types.ttcn +++ b/library/DIAMETER_Types.ttcn @@ -4,7 +4,7 @@ // // /////////////////////////////////////////////////// // Generated with command: -// AVP.sh Base_IETF_RFC3588.ddf BaseTypes_IETF_RFC3588.ddf AAAInterface_3GPP_TS29272_f10.ddf GxInterface_PCC_3GPP_TS29212_f10.ddf S6Interfaces_3GPP_TS29336_f00.ddf MobileIPv6_HA_IETF_RFC5778.ddf RxInterface_PCC_3GPP_TS29214_f20.ddf NetworkAccessServer_IETF_RFC4005.ddf CreditControl_IETF_RFC4006.ddf CxDxInterface_3GPP_TS29229_c30.ddf GiSGiInterface_3GPP_TS29061_d70.ddf ChargingApplications_3GPP_TS32299_d90.ddf +// AVP.sh Base_IETF_RFC3588.ddf BaseTypes_IETF_RFC3588.ddf AAAInterface_3GPP_TS29272_f10.ddf GxInterface_PCC_3GPP_TS29212_f10.ddf S6Interfaces_3GPP_TS29336_f00.ddf MobileIPv6_HA_IETF_RFC5778.ddf RxInterface_PCC_3GPP_TS29214_f20.ddf NetworkAccessServer_IETF_RFC4005.ddf CreditControl_IETF_RFC4006.ddf CxDxInterface_3GPP_TS29229_c30.ddf GiSGiInterface_3GPP_TS29061_d70.ddf ChargingApplications_3GPP_TS32299_d90.ddf MobileIPv6_NAS_IETF_RFC5447.ddf module DIAMETER_Types { /****************************************************************************** * Copyright (c) 2000-2019 Ericsson Telecom AB @@ -8294,8 +8294,73 @@ type AVP_Unsigned32 DCA_3GPP_Volume_Quota_Threshold -// STATISTICS: 1121 AVP descriptors found -// STATISTICS: 1121 AVP type definitions matching AVP descriptors found +/****************************************************************************** +* Copyright (c) 2000-2019 Ericsson Telecom AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v2.0 +* which accompanies this distribution, and is available at +* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html +* +* Contributors: +* Roland Gecse - initial implementation and initial documentation +* Akos Pernek +* Antal Wuh.Hen.Chang +* Attila Fulop +* Balazs Barcsik +* Bence Molnar +* Csaba Koppany +* David Juhasz +* Eduard Czimbalmos +* Elemer Lelik +* Endre Kiss +* Endre Kulcsar +* Gabor Szalai +* Gabor Tatarka +* Gergely Futo +* Istvan Sandor +* Krisztian Pandi +* Kulcsár Endre +* Laszlo Tamas Zeke +* Norbert Pinter +* Roland Gecse +* Tibor Bende +* Tibor Szabo +* Timea Moder +* Zoltan Medve +* Zsolt Nandor Torok +* Zsolt Szalai +******************************************************************************/ +// +// File: MobileIPv6_NAS_IETF_RFC5447.ddf +// Description: DDF for Mobile IPv6 according to RFC 5447 +// Rev: R55A +// Prodnr: CNL113462 +/////////////////////////////////////////////// + +// APPLICATION-NAME: MIPv6 +// APPLICATION-REVISION: RFC5447 + +// RFC 5447 4.2.1 +// AVP: MIP6-Agent-Info (486) +type AVP_Grouped MIPv6_NONE_MIP6_Agent_Info + +// RFC 5447 4.2.2 +// AVP: MIP6-Home-Agent-Address (334) +type AVP_Address MIPv6_NONE_MIP6_Home_Agent_Address + +// RFC 5447 4.2.3 +// AVP: MIP6-Home-Agent-Host (348) +type AVP_Grouped MIPv6_NONE_MIP6_Home_Agent_Host + +// RFC 5447 4.2.4 +// AVP: MIP6-Home-Link-Prefix (125) +type AVP_OctetString MIPv6_NONE_MIP6_Home_Link_Prefix + +// RFC 5447 4.2.5 +// AVP: MIP6-Feature-Vector (124) +type AVP_Unsigned64 MIPv6_NONE_MIP6_Feature_Vector +// STATISTICS: 1126 AVP descriptors found +// STATISTICS: 1126 AVP type definitions matching AVP descriptors found // STATISTICS: duplicate AVP definitions deleted type enumerated Command_Code { Abort_Session (274), Accounting (271), Capabilities_Exchange (257), Device_Watchdog (280), Disconnect_Peer (282), Re_Auth (258), Session_Termination (275), Experimental1 (16777214), Experimental2 (16777215) , Update_Location (316), Cancel_Location (317), Authentication_Information (318), Insert_Subscriber_Data (319), Delete_Subscriber_Data (320), Purge_UE (321), Reset (322), Notify (323), ME_Identity_Check (324), Update_VCSG_Location (8388638), Cancel_VCSG_Location (8388642), Credit_Control (272), TDF_Session (8388637), Subscriber_Information (8388641), Configuration_Information (8388718), Reporting_Information (8388719), NIDD_Information (8388726), Authorize_Authenticate (265), User_Authorization (300), Server_Assignment (301), Location_Info (302), Multimedia_Auth (303), Registration_Termination (304), Push_Profile (305) @@ -8339,6 +8404,7 @@ avp_code_MIPv6_NONE_MIP_MN_HA_MSA (492), avp_code_DNAS_NONE_Tunnel_Medium_Type (65), avp_code_DCC_NONE_User_Equipment_Info_Type (459), + avp_code_MIPv6_NONE_MIP6_Home_Agent_Address (334), avp_code_MIPv6_NONE_QoS_Resources (508), avp_code_DCC_NONE_Service_Parameter_Value (442), avp_code_MIPv6_NONE_MIP_Session_Key (343), @@ -8368,6 +8434,7 @@ avp_code_DNAS_NONE_Tunnel_Preference (83), avp_code_DCC_NONE_CC_Session_Failover (418), avp_code_BASE_NONE_Proxy_State (33), + avp_code_MIPv6_NONE_MIP6_Agent_Info (486), avp_code_DCC_NONE_Credit_Control_Failure_Handling (427), avp_code_BASE_NONE_Redirect_Max_Cache_Time (262), avp_code_DCC_NONE_Requested_Action (436), @@ -8454,6 +8521,7 @@ avp_code_DNAS_NONE_CHAP_Algorithm (403), avp_code_DCC_NONE_CC_Input_Octets (412), avp_code_BASE_NONE_Destination_Realm (283), + avp_code_MIPv6_NONE_MIP6_Home_Link_Prefix (125), avp_code_DNAS_NONE_Login_LAT_Port (63), avp_code_DCC_NONE_G_S_U_Pool_Reference (457), avp_code_MIPv6_NONE_Chargable_User_Identity (89), @@ -8502,8 +8570,10 @@ avp_code_DCC_NONE_Service_Context_Id (461), avp_code_DNAS_NONE_CHAP_Auth (402), avp_code_BASE_NONE_Inband_Security_Id (299), + avp_code_MIPv6_NONE_MIP6_Home_Agent_Host (348), avp_code_DCC_NONE_CC_Correlation_Id (411), avp_code_BASE_NONE_Route_Record (282), + avp_code_MIPv6_NONE_MIP6_Feature_Vector (124), avp_code_DNAS_NONE_Port_Limit (62), avp_code_DCC_NONE_Multiple_Services_Credit_Control (456), avp_code_BASE_NONE_Authorization_Lifetime (291), @@ -9577,6 +9647,7 @@ S6_3GPP_Loss_Of_Connectivity_Reason avp_S6_3GPP_Loss_Of_Connectivity_Reason, DCA_3GPP_Originator avp_DCA_3GPP_Originator, DCC_NONE_User_Equipment_Info_Type avp_DCC_NONE_User_Equipment_Info_Type, + MIPv6_NONE_MIP6_Home_Agent_Address avp_MIPv6_NONE_MIP6_Home_Agent_Address, RX_3GPP_Flow_Number avp_RX_3GPP_Flow_Number, PCC_3GPP_Resource_Allocation_Notification avp_PCC_3GPP_Resource_Allocation_Notification, DCA_3GPP_Basic_Service_Code avp_DCA_3GPP_Basic_Service_Code, @@ -9750,6 +9821,7 @@ DCA_3GPP_ProSe_Request_Timestamp avp_DCA_3GPP_ProSe_Request_Timestamp, DCA_3GPP_PoC_Session_Id avp_DCA_3GPP_PoC_Session_Id, BASE_NONE_Proxy_State avp_BASE_NONE_Proxy_State, + MIPv6_NONE_MIP6_Agent_Info avp_MIPv6_NONE_MIP6_Agent_Info, DCA_3GPP_PoC_Server_Role avp_DCA_3GPP_PoC_Server_Role, DCA_3GPP_Forwarding_Pending avp_DCA_3GPP_Forwarding_Pending, DCC_NONE_Credit_Control_Failure_Handling avp_DCC_NONE_Credit_Control_Failure_Handling, @@ -10243,6 +10315,7 @@ CxDx_3GPP_SIP_Item_Number avp_CxDx_3GPP_SIP_Item_Number, PCC_3GPP_Session_Release_Cause avp_PCC_3GPP_Session_Release_Cause, AAA_3GPP_MDT_User_Consent avp_AAA_3GPP_MDT_User_Consent, + MIPv6_NONE_MIP6_Home_Link_Prefix avp_MIPv6_NONE_MIP6_Home_Link_Prefix, DNAS_NONE_Login_LAT_Port avp_DNAS_NONE_Login_LAT_Port, S6_3GPP_HSS_Cause avp_S6_3GPP_HSS_Cause, DCC_NONE_G_S_U_Pool_Reference avp_DCC_NONE_G_S_U_Pool_Reference, @@ -10497,6 +10570,7 @@ CxDx_3GPP_User_Data_Already_Available avp_CxDx_3GPP_User_Data_Already_Available, AAA_3GPP_MME_Number_for_MT_SMS avp_AAA_3GPP_MME_Number_for_MT_SMS, PCC_3GPP_Security_Parameter_Index avp_PCC_3GPP_Security_Parameter_Index, + MIPv6_NONE_MIP6_Home_Agent_Host avp_MIPv6_NONE_MIP6_Home_Agent_Host, DCC_NONE_CC_Correlation_Id avp_DCC_NONE_CC_Correlation_Id, PCC_3GPP_Traffic_Steering_Policy_Identifier_UL avp_PCC_3GPP_Traffic_Steering_Policy_Identifier_UL, BASE_NONE_Route_Record avp_BASE_NONE_Route_Record, @@ -10505,6 +10579,7 @@ DCA_3GPP_MMTel_Information avp_DCA_3GPP_MMTel_Information, CxDx_3GPP_Mandatory_Capability avp_CxDx_3GPP_Mandatory_Capability, AAA_3GPP_Trace_NE_Type_List avp_AAA_3GPP_Trace_NE_Type_List, + MIPv6_NONE_MIP6_Feature_Vector avp_MIPv6_NONE_MIP6_Feature_Vector, DCA_3GPP_Charging_Characteristics_Selection_Mode avp_DCA_3GPP_Charging_Characteristics_Selection_Mode, DNAS_NONE_Port_Limit avp_DNAS_NONE_Port_Limit, DCC_NONE_Multiple_Services_Credit_Control avp_DCC_NONE_Multiple_Services_Credit_Control, @@ -10729,6 +10804,7 @@ avp_S6_3GPP_Loss_Of_Connectivity_Reason, avp_header.avp_code.vendor_id_3GPP = avp_code_S6_3GPP_Loss_Of_Connectivity_Reason; avp_DCA_3GPP_Originator, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_Originator; avp_DCC_NONE_User_Equipment_Info_Type, avp_header.avp_code.vendor_id_NONE = avp_code_DCC_NONE_User_Equipment_Info_Type; + avp_MIPv6_NONE_MIP6_Home_Agent_Address, avp_header.avp_code.vendor_id_NONE = avp_code_MIPv6_NONE_MIP6_Home_Agent_Address; avp_RX_3GPP_Flow_Number, avp_header.avp_code.vendor_id_3GPP = avp_code_RX_3GPP_Flow_Number; avp_PCC_3GPP_Resource_Allocation_Notification, avp_header.avp_code.vendor_id_3GPP = avp_code_PCC_3GPP_Resource_Allocation_Notification; avp_DCA_3GPP_Basic_Service_Code, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_Basic_Service_Code; @@ -10902,6 +10978,7 @@ avp_DCA_3GPP_ProSe_Request_Timestamp, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_ProSe_Request_Timestamp; avp_DCA_3GPP_PoC_Session_Id, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_PoC_Session_Id; avp_BASE_NONE_Proxy_State, avp_header.avp_code.vendor_id_NONE = avp_code_BASE_NONE_Proxy_State; + avp_MIPv6_NONE_MIP6_Agent_Info, avp_header.avp_code.vendor_id_NONE = avp_code_MIPv6_NONE_MIP6_Agent_Info; avp_DCA_3GPP_PoC_Server_Role, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_PoC_Server_Role; avp_DCA_3GPP_Forwarding_Pending, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_Forwarding_Pending; avp_DCC_NONE_Credit_Control_Failure_Handling, avp_header.avp_code.vendor_id_NONE = avp_code_DCC_NONE_Credit_Control_Failure_Handling; @@ -11395,6 +11472,7 @@ avp_CxDx_3GPP_SIP_Item_Number, avp_header.avp_code.vendor_id_3GPP = avp_code_CxDx_3GPP_SIP_Item_Number; avp_PCC_3GPP_Session_Release_Cause, avp_header.avp_code.vendor_id_3GPP = avp_code_PCC_3GPP_Session_Release_Cause; avp_AAA_3GPP_MDT_User_Consent, avp_header.avp_code.vendor_id_3GPP = avp_code_AAA_3GPP_MDT_User_Consent; + avp_MIPv6_NONE_MIP6_Home_Link_Prefix, avp_header.avp_code.vendor_id_NONE = avp_code_MIPv6_NONE_MIP6_Home_Link_Prefix; avp_DNAS_NONE_Login_LAT_Port, avp_header.avp_code.vendor_id_NONE = avp_code_DNAS_NONE_Login_LAT_Port; avp_S6_3GPP_HSS_Cause, avp_header.avp_code.vendor_id_3GPP = avp_code_S6_3GPP_HSS_Cause; avp_DCC_NONE_G_S_U_Pool_Reference, avp_header.avp_code.vendor_id_NONE = avp_code_DCC_NONE_G_S_U_Pool_Reference; @@ -11649,6 +11727,7 @@ avp_CxDx_3GPP_User_Data_Already_Available, avp_header.avp_code.vendor_id_3GPP = avp_code_CxDx_3GPP_User_Data_Already_Available; avp_AAA_3GPP_MME_Number_for_MT_SMS, avp_header.avp_code.vendor_id_3GPP = avp_code_AAA_3GPP_MME_Number_for_MT_SMS; avp_PCC_3GPP_Security_Parameter_Index, avp_header.avp_code.vendor_id_3GPP = avp_code_PCC_3GPP_Security_Parameter_Index; + avp_MIPv6_NONE_MIP6_Home_Agent_Host, avp_header.avp_code.vendor_id_NONE = avp_code_MIPv6_NONE_MIP6_Home_Agent_Host; avp_DCC_NONE_CC_Correlation_Id, avp_header.avp_code.vendor_id_NONE = avp_code_DCC_NONE_CC_Correlation_Id; avp_PCC_3GPP_Traffic_Steering_Policy_Identifier_UL, avp_header.avp_code.vendor_id_3GPP = avp_code_PCC_3GPP_Traffic_Steering_Policy_Identifier_UL; avp_BASE_NONE_Route_Record, avp_header.avp_code.vendor_id_NONE = avp_code_BASE_NONE_Route_Record; @@ -11657,6 +11736,7 @@ avp_DCA_3GPP_MMTel_Information, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_MMTel_Information; avp_CxDx_3GPP_Mandatory_Capability, avp_header.avp_code.vendor_id_3GPP = avp_code_CxDx_3GPP_Mandatory_Capability; avp_AAA_3GPP_Trace_NE_Type_List, avp_header.avp_code.vendor_id_3GPP = avp_code_AAA_3GPP_Trace_NE_Type_List; + avp_MIPv6_NONE_MIP6_Feature_Vector, avp_header.avp_code.vendor_id_NONE = avp_code_MIPv6_NONE_MIP6_Feature_Vector; avp_DCA_3GPP_Charging_Characteristics_Selection_Mode, avp_header.avp_code.vendor_id_3GPP = avp_code_DCA_3GPP_Charging_Characteristics_Selection_Mode; avp_DNAS_NONE_Port_Limit, avp_header.avp_code.vendor_id_NONE = avp_code_DNAS_NONE_Port_Limit; avp_DCC_NONE_Multiple_Services_Credit_Control, avp_header.avp_code.vendor_id_NONE = avp_code_DCC_NONE_Multiple_Services_Credit_Control; @@ -11955,6 +12035,8 @@ vendor_id_3GPP := avp_code_DCA_3GPP_Originator }; const AVP_Code c_AVP_Code_DCC_NONE_User_Equipment_Info_Type := { vendor_id_NONE := avp_code_DCC_NONE_User_Equipment_Info_Type }; +const AVP_Code c_AVP_Code_MIPv6_NONE_MIP6_Home_Agent_Address := { + vendor_id_NONE := avp_code_MIPv6_NONE_MIP6_Home_Agent_Address }; const AVP_Code c_AVP_Code_RX_3GPP_Flow_Number := { vendor_id_3GPP := avp_code_RX_3GPP_Flow_Number }; const AVP_Code c_AVP_Code_PCC_3GPP_Resource_Allocation_Notification := { @@ -12301,6 +12383,8 @@ vendor_id_3GPP := avp_code_DCA_3GPP_PoC_Session_Id }; const AVP_Code c_AVP_Code_BASE_NONE_Proxy_State := { vendor_id_NONE := avp_code_BASE_NONE_Proxy_State }; +const AVP_Code c_AVP_Code_MIPv6_NONE_MIP6_Agent_Info := { + vendor_id_NONE := avp_code_MIPv6_NONE_MIP6_Agent_Info }; const AVP_Code c_AVP_Code_DCA_3GPP_PoC_Server_Role := { vendor_id_3GPP := avp_code_DCA_3GPP_PoC_Server_Role }; const AVP_Code c_AVP_Code_DCA_3GPP_Forwarding_Pending := { @@ -13287,6 +13371,8 @@ vendor_id_3GPP := avp_code_PCC_3GPP_Session_Release_Cause }; const AVP_Code c_AVP_Code_AAA_3GPP_MDT_User_Consent := { vendor_id_3GPP := avp_code_AAA_3GPP_MDT_User_Consent }; +const AVP_Code c_AVP_Code_MIPv6_NONE_MIP6_Home_Link_Prefix := { + vendor_id_NONE := avp_code_MIPv6_NONE_MIP6_Home_Link_Prefix }; const AVP_Code c_AVP_Code_DNAS_NONE_Login_LAT_Port := { vendor_id_NONE := avp_code_DNAS_NONE_Login_LAT_Port }; const AVP_Code c_AVP_Code_S6_3GPP_HSS_Cause := { @@ -13795,6 +13881,8 @@ vendor_id_3GPP := avp_code_AAA_3GPP_MME_Number_for_MT_SMS }; const AVP_Code c_AVP_Code_PCC_3GPP_Security_Parameter_Index := { vendor_id_3GPP := avp_code_PCC_3GPP_Security_Parameter_Index }; +const AVP_Code c_AVP_Code_MIPv6_NONE_MIP6_Home_Agent_Host := { + vendor_id_NONE := avp_code_MIPv6_NONE_MIP6_Home_Agent_Host }; const AVP_Code c_AVP_Code_DCC_NONE_CC_Correlation_Id := { vendor_id_NONE := avp_code_DCC_NONE_CC_Correlation_Id }; const AVP_Code c_AVP_Code_PCC_3GPP_Traffic_Steering_Policy_Identifier_UL := { @@ -13811,6 +13899,8 @@ vendor_id_3GPP := avp_code_CxDx_3GPP_Mandatory_Capability }; const AVP_Code c_AVP_Code_AAA_3GPP_Trace_NE_Type_List := { vendor_id_3GPP := avp_code_AAA_3GPP_Trace_NE_Type_List }; +const AVP_Code c_AVP_Code_MIPv6_NONE_MIP6_Feature_Vector := { + vendor_id_NONE := avp_code_MIPv6_NONE_MIP6_Feature_Vector }; const AVP_Code c_AVP_Code_DCA_3GPP_Charging_Characteristics_Selection_Mode := { vendor_id_3GPP := avp_code_DCA_3GPP_Charging_Characteristics_Selection_Mode }; const AVP_Code c_AVP_Code_DNAS_NONE_Port_Limit := { diff --git a/library/regen-DIAMETER_Types_ttcn.sh b/library/regen-DIAMETER_Types_ttcn.sh index cc8a9b7..49d8194 100755 --- a/library/regen-DIAMETER_Types_ttcn.sh +++ b/library/regen-DIAMETER_Types_ttcn.sh @@ -16,6 +16,7 @@ CreditControl_IETF_RFC4006.ddf \ CxDxInterface_3GPP_TS29229_c30.ddf \ GiSGiInterface_3GPP_TS29061_d70.ddf \ - ChargingApplications_3GPP_TS32299_d90.ddf + ChargingApplications_3GPP_TS32299_d90.ddf \ + MobileIPv6_NAS_IETF_RFC5447.ddf mv -v $AVP_SH_DIR/DIAMETER_Types.ttcn $SELF_DIR/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34873?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I478eff657d876d4ec9a5a1906cab48fbaaaae1b9 Gerrit-Change-Number: 34873 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: osmith <osmith(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • ...
  • 185
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.