fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/40134?usp=email )
Change subject: filesystem: fix WARNING: Block quote ends without a blank line
......................................................................
filesystem: fix WARNING: Block quote ends without a blank line
Use the 'r' (raw) qualifier to avoid rendering '\n' as the actual
line break in the auto-generated documentation.
Change-Id: Ie7f59685a78534eb2c43ec4bc39685d3fd264778
---
M pySim/filesystem.py
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/34/40134/1
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 7f350ec..2d9a07e 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -301,7 +301,7 @@
@staticmethod
def export(as_json: bool, lchan):
- """
+ r"""
Export file contents in the form of commandline script. This method is meant to be overloaded by a subclass in
case any exportable contents are present. The generated script may contain multiple command lines separated by
line breaks ("\n"), where the last commandline shall have no line break at the end
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40134?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ie7f59685a78534eb2c43ec4bc39685d3fd264778
Gerrit-Change-Number: 40134
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/40133?usp=email )
Change subject: doc/card-key-provider: fix WARNING: Title underline too short
......................................................................
doc/card-key-provider: fix WARNING: Title underline too short
Change-Id: I29fda8350de75c4e7c0020fa4dce4cd0e5defda7
---
M docs/card-key-provider.rst
1 file changed, 1 insertion(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/33/40133/1
diff --git a/docs/card-key-provider.rst b/docs/card-key-provider.rst
index 7b4bf2c..390a7c7 100644
--- a/docs/card-key-provider.rst
+++ b/docs/card-key-provider.rst
@@ -1,6 +1,5 @@
-
Retrieving card-individual keys via CardKeyProvider
-==================================================
+===================================================
When working with a batch of cards, or more than one card in general, it
is a lot of effort to manually retrieve the card-specific PIN (like
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40133?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I29fda8350de75c4e7c0020fa4dce4cd0e5defda7
Gerrit-Change-Number: 40133
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/40135?usp=email )
Change subject: docs/saip-tool: fix ERROR: Unexpected indentation
......................................................................
docs/saip-tool: fix ERROR: Unexpected indentation
According to [1], the literal block must be indented (and, like all
paragraphs, separated from the surrounding ones by blank lines).
[1] https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#lit…
While at it, fix tabs-vs-spaces: use 2 spaces like in other places.
Change-Id: If548bf66339433c1f3f9e2a557821e808c6afa26
---
M docs/saip-tool.rst
1 file changed, 50 insertions(+), 45 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/35/40135/1
diff --git a/docs/saip-tool.rst b/docs/saip-tool.rst
index 8aa8cd7..347d430 100644
--- a/docs/saip-tool.rst
+++ b/docs/saip-tool.rst
@@ -36,24 +36,25 @@
Example: Adding a JAVA-card applet to an existing profile package
::
- # Step #1: Create the application PE and load the ijc contents from the .cap file:
- $ ./contrib/saip-tool.py upp.der add-app --output-file upp_with_app.der --applet-file app.cap --aid '1122334455'
- Read 28 PEs from file 'upp.der'
- Applying applet file: 'app.cap'...
- application PE inserted into PE Sequence after securityDomain PE AID: a000000151000000
- Writing 29 PEs to file 'upp_with_app.der'...
- # Step #2: Create the application instance inside the application PE created in step #1:
- $ ./contrib/saip-tool.py upp_with_app.der add-app-inst --output-file upp_with_app_and_instance.der \
- --aid '1122334455' \
- --class-aid '112233445501' \
- --inst-aid '112233445501' \
- --app-privileges '00' \
- --app-spec-pars '00' \
- --uicc-toolkit-app-spec-pars '01001505000000000000000000000000'
- Read 29 PEs from file 'upp_with_app.der'
- Found Load Package AID: 1122334455, adding new instance AID: 112233445501 to Application PE...
- Writing 29 PEs to file 'upp_with_app_and_instance.der'...
+ # Step #1: Create the application PE and load the ijc contents from the .cap file:
+ $ ./contrib/saip-tool.py upp.der add-app --output-file upp_with_app.der --applet-file app.cap --aid '1122334455'
+ Read 28 PEs from file 'upp.der'
+ Applying applet file: 'app.cap'...
+ application PE inserted into PE Sequence after securityDomain PE AID: a000000151000000
+ Writing 29 PEs to file 'upp_with_app.der'...
+
+ # Step #2: Create the application instance inside the application PE created in step #1:
+ $ ./contrib/saip-tool.py upp_with_app.der add-app-inst --output-file upp_with_app_and_instance.der \
+ --aid '1122334455' \
+ --class-aid '112233445501' \
+ --inst-aid '112233445501' \
+ --app-privileges '00' \
+ --app-spec-pars '00' \
+ --uicc-toolkit-app-spec-pars '01001505000000000000000000000000'
+ Read 29 PEs from file 'upp_with_app.der'
+ Found Load Package AID: 1122334455, adding new instance AID: 112233445501 to Application PE...
+ Writing 29 PEs to file 'upp_with_app_and_instance.der'...
NOTE: The parameters of the sub-commands `add-app` and `add-app-inst` are application specific. It is up to the application
developer to pick parameters that suit the application correctly. For an exact command reference see section
@@ -70,30 +71,32 @@
Example: Listing applications and their parameters
::
- $ ./contrib/saip-tool.py upp_with_app_and_instance.der info --apps
- Read 29 PEs from file 'upp_with_app_and_instance.der'
- Application #0:
- loadBlock:
- loadPackageAID: '1122334455' (5 bytes)
- loadBlockObject: '01000fdecaffed010204000105d07002ca440200...681080056810a00633b44104b431066800a10231' (569 bytes)
- instanceList[0]:
- applicationLoadPackageAID: '1122334455' (5 bytes)
- classAID: '112233445501' (8 bytes)
- instanceAID: '112233445501' (8 bytes)
- applicationPrivileges: '00' (1 bytes)
- lifeCycleState: '07' (1 bytes)
- applicationSpecificParametersC9: '00' (1 bytes)
- applicationParameters:
- uiccToolkitApplicationSpecificParametersField: '01001505000000000000000000000000' (16 bytes)
+
+ $ ./contrib/saip-tool.py upp_with_app_and_instance.der info --apps
+ Read 29 PEs from file 'upp_with_app_and_instance.der'
+ Application #0:
+ loadBlock:
+ loadPackageAID: '1122334455' (5 bytes)
+ loadBlockObject: '01000fdecaffed010204000105d07002ca440200...681080056810a00633b44104b431066800a10231' (569 bytes)
+ instanceList[0]:
+ applicationLoadPackageAID: '1122334455' (5 bytes)
+ classAID: '112233445501' (8 bytes)
+ instanceAID: '112233445501' (8 bytes)
+ applicationPrivileges: '00' (1 bytes)
+ lifeCycleState: '07' (1 bytes)
+ applicationSpecificParametersC9: '00' (1 bytes)
+ applicationParameters:
+ uiccToolkitApplicationSpecificParametersField: '01001505000000000000000000000000' (16 bytes)
In case further analysis with external tools or transfer of applications from one profile package to another is
necessary, the executable code in the `loadBlockObject` field can be extracted to an `.ijc` or an `.cap` file.
Example: Extracting applications from a profile package
::
- $ ./contrib/saip-tool.py upp_with_app_and_instance.der extract-apps --output-dir ./apps --format ijc
- Read 29 PEs from file 'upp_with_app_and_instance.der'
- Writing Load Package AID: 1122334455 to file ./apps/8949449999999990023f-1122334455.ijc
+
+ $ ./contrib/saip-tool.py upp_with_app_and_instance.der extract-apps --output-dir ./apps --format ijc
+ Read 29 PEs from file 'upp_with_app_and_instance.der'
+ Writing Load Package AID: 1122334455 to file ./apps/8949449999999990023f-1122334455.ijc
Removing applications
@@ -104,11 +107,12 @@
Example: Remove an application from a profile package
::
- $ ./contrib/saip-tool.py upp_with_app_and_instance.der remove-app --output-file upp_without_app.der --aid '1122334455'
- Read 29 PEs from file 'upp_with_app_and_instance.der'
- Found Load Package AID: 1122334455, removing related PE (id=23) from Sequence...
- Removing PE application (id=23) from Sequence...
- Writing 28 PEs to file 'upp_without_app.der'...
+
+ $ ./contrib/saip-tool.py upp_with_app_and_instance.der remove-app --output-file upp_without_app.der --aid '1122334455'
+ Read 29 PEs from file 'upp_with_app_and_instance.der'
+ Found Load Package AID: 1122334455, removing related PE (id=23) from Sequence...
+ Removing PE application (id=23) from Sequence...
+ Writing 28 PEs to file 'upp_without_app.der'...
In some cases it is useful to remove only an instance from an existing application PE. This may be the case when the
an application developer wants to modify parameters of an application by removing and re-adding the instance. The
@@ -116,11 +120,12 @@
Example: Remove an application instance from an application PE
::
- $ ./contrib/saip-tool.py upp_with_app_and_instance.der remove-app-inst --output-file upp_without_app.der --aid '1122334455' --inst-aid '112233445501'
- Read 29 PEs from file 'upp_with_app_and_instance.der'
- Found Load Package AID: 1122334455, removing instance AID: 112233445501 from Application PE...
- Removing instance from Application PE...
- Writing 29 PEs to file 'upp_with_app.der'...
+
+ $ ./contrib/saip-tool.py upp_with_app_and_instance.der remove-app-inst --output-file upp_without_app.der --aid '1122334455' --inst-aid '112233445501'
+ Read 29 PEs from file 'upp_with_app_and_instance.der'
+ Found Load Package AID: 1122334455, removing instance AID: 112233445501 from Application PE...
+ Removing instance from Application PE...
+ Writing 29 PEs to file 'upp_with_app.der'...
saip-tool syntax
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/40135?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: If548bf66339433c1f3f9e2a557821e808c6afa26
Gerrit-Change-Number: 40135
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40113?usp=email )
Change subject: Fix MNC decoding in f_dec_mcc_mnc()
......................................................................
Fix MNC decoding in f_dec_mcc_mnc()
This API is so far only used in MSC_Tests.ttcn f_sgs_perform_lu(), but
will be used in more testsuites in follow-up commits.
Change-Id: I9db37d0dc9abbbefd57af4f0e2b91bf8a918d4e9
---
M library/GSM_Types.ttcn
1 file changed, 1 insertion(+), 1 deletion(-)
Approvals:
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
fixeria: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index 64581e5..6d3e170 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -504,7 +504,7 @@
var hexstring hs := oct2hex(mcc_mnc);
mcc := hs[1] & hs[0] & hs[3];
mnc := hs[5] & hs[4];
- if (hs[2] == 'F'H) {
+ if (hs[2] != 'F'H) {
mnc := mnc & hs[2];
}
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40113?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9db37d0dc9abbbefd57af4f0e2b91bf8a918d4e9
Gerrit-Change-Number: 40113
Gerrit-PatchSet: 2
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: pespin <pespin(a)sysmocom.de>
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40115?usp=email )
Change subject: hnbgw: Test paging with Page Area ID IE
......................................................................
hnbgw: Test paging with Page Area ID IE
Change-Id: I5a053bcf1f8470038e95d03889da077f8f967bfa
---
M hnbgw/HNBGW_Tests.ttcn
M hnbgw/expected-results.xml
M library/ranap/RANAP_Templates.ttcn
3 files changed, 170 insertions(+), 2 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, approved
fixeria: Looks good to me, but someone else must approve
laforge: Looks good to me, but someone else must approve
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index c223ef7..28b41d2 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -2200,6 +2200,108 @@
f_shutdown_helper();
}
+/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be
+ * round-robined to another MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */
+friend function f_tc_mscpool_paging_imsi_lai_registered(charstring id) runs on ConnHdlr {
+ var hexstring imsi := '001010000000123'H;
+ var RANAP_IEs.CN_DomainIndicator domain_ind;
+ var template (value) RANAP_IEs.LAI lai := ts_RANAP_LAI(hex2oct(g_pars.hnb.lai.mcc_mnc),
+ int2oct(g_pars.hnb.lai.lac, 2));
+ var template (value) RANAP_IEs.PagingAreaID pag_area_id := ts_RANAP_PagingAreaID_LAI(lai);
+ if (g_pars.ps_domain) {
+ domain_ind := ps_domain;
+ } else {
+ domain_ind := cs_domain;
+ }
+ var template (value) RANAP_PDU paging := ts_RANAP_Paging_pag_area_id(domain_ind, imsi_hex2oct(imsi), pag_area_id);
+ BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ /* TODO: Expect RUA ConnectionlessTransfer Paging (on subset of HNB).
+ * We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
+ * but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
+ * the Paging. In the CN pool decisions, osmo-hnbgw should match up Paging Response to an earlier Paging.
+ */
+
+ f_sleep(1.0);
+
+ /* Despite the round robin pointing at the second MSC ('roundrobin next msc 1'), the earlier Paging for the same IMSI
+ * causes this Paging Response to go to the first MSC ('msc 0'). */
+ f_perform_compl_l3(f_gen_one_compl_l3(PAGRESP, ts_MI_IMSI_LV(imsi)));
+ f_sleep(1.0);
+}
+
+/* Test CN sending a RANAP Paging Command with Paging Area ID IE (LAI) present requesting a registered HNB: */
+testcase TC_mscpool_paging_imsi_lai_registered() runs on test_CT {
+ f_init(nr_msc := 3);
+ f_sleep(1.0);
+
+ var boolean ps_domain := false;
+
+ /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the
+ * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */
+ f_vty_set_roundrobin_next(HNBGWVTY, ps_domain, 0);
+
+ f_ctrs_cn_init(ps_domain := ps_domain);
+
+ var ConnHdlr vc_conn1;
+ var template (value) TestHdlrParams pars1 := f_TestHdlrParams(0, ps_domain := ps_domain, cn_nr := 0);
+ vc_conn1 := f_start_handler_with_pars(refers(f_tc_mscpool_paging_imsi_lai_registered), pars1);
+ vc_conn1.done;
+ f_ctrs_cn_expect(0, "cnpool:subscr:paged");
+ f_shutdown_helper();
+}
+
+/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be
+ * round-robined to another MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */
+friend function f_tc_mscpool_paging_imsi_rai_registered(charstring id) runs on ConnHdlr {
+ var hexstring imsi := '001010000000123'H;
+ var RANAP_IEs.CN_DomainIndicator domain_ind;
+ var template (value) RANAP_IEs.LAI lai := ts_RANAP_LAI(hex2oct(g_pars.hnb.lai.mcc_mnc),
+ int2oct(g_pars.hnb.lai.lac, 2));
+ var template (value) RANAP_IEs.RAI rai := ts_RANAP_RAI(lai,
+ int2oct(g_pars.hnb.rac, 1));
+ var template (value) RANAP_IEs.PagingAreaID pag_area_id := ts_RANAP_PagingAreaID_RAI(rai);
+ if (g_pars.ps_domain) {
+ domain_ind := ps_domain;
+ } else {
+ domain_ind := cs_domain;
+ }
+ var template (value) RANAP_PDU paging := ts_RANAP_Paging_pag_area_id(domain_ind, imsi_hex2oct(imsi), pag_area_id);
+ BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ /* TODO: Expect RUA ConnectionlessTransfer Paging (on subset of HNB).
+ * We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
+ * but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
+ * the Paging. In the CN pool decisions, osmo-hnbgw should match up Paging Response to an earlier Paging.
+ */
+
+ f_sleep(1.0);
+
+ /* Despite the round robin pointing at the second MSC ('roundrobin next msc 1'), the earlier Paging for the same IMSI
+ * causes this Paging Response to go to the first MSC ('msc 0'). */
+ f_perform_compl_l3(f_gen_one_compl_l3(PAGRESP, ts_MI_IMSI_LV(imsi)));
+ f_sleep(1.0);
+}
+
+/* Test CN sending a RANAP Paging Command with Paging Area ID IE (LAI) present requesting a registered HNB: */
+testcase TC_mscpool_paging_imsi_rai_registered() runs on test_CT {
+ f_init(nr_msc := 3);
+ f_sleep(1.0);
+
+ var boolean ps_domain := true;
+
+ /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the
+ * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */
+ f_vty_set_roundrobin_next(HNBGWVTY, ps_domain, 0);
+
+ f_ctrs_cn_init(ps_domain := ps_domain);
+
+ var ConnHdlr vc_conn1;
+ var template (value) TestHdlrParams pars1 := f_TestHdlrParams(0, ps_domain := ps_domain, cn_nr := 0);
+ vc_conn1 := f_start_handler_with_pars(refers(f_tc_mscpool_paging_imsi_rai_registered), pars1);
+ vc_conn1.done;
+ f_ctrs_cn_expect(0, "cnpool:subscr:paged");
+ f_shutdown_helper();
+}
+
/* For round-robin, skip a CN link that has 'no allow-attach' set. */
testcase TC_mscpool_no_allow_attach_round_robin() runs on test_CT {
@@ -2516,6 +2618,8 @@
execute( TC_mscpool_LU_by_tmsi_from_other_PLMN() );
execute( TC_mscpool_paging_imsi() );
execute( TC_mscpool_paging_tmsi() );
+ execute( TC_mscpool_paging_imsi_lai_registered() );
+ execute( TC_mscpool_paging_imsi_rai_registered() );
execute( TC_mscpool_no_allow_attach_round_robin() );
execute( TC_mscpool_no_allow_attach_valid_nri() );
execute( TC_mscpool_sccp_n_pcstate_detaches_cnlink() );
diff --git a/hnbgw/expected-results.xml b/hnbgw/expected-results.xml
index 655db84..3fca542 100644
--- a/hnbgw/expected-results.xml
+++ b/hnbgw/expected-results.xml
@@ -43,6 +43,8 @@
<testcase classname='HNBGW_Tests' name='TC_mscpool_LU_by_tmsi_from_other_PLMN' time='MASKED'/>
<testcase classname='HNBGW_Tests' name='TC_mscpool_paging_imsi' time='MASKED'/>
<testcase classname='HNBGW_Tests' name='TC_mscpool_paging_tmsi' time='MASKED'/>
+ <testcase classname='HNBGW_Tests' name='TC_mscpool_paging_imsi_lai_registered' time='MASKED'/>
+ <testcase classname='HNBGW_Tests' name='TC_mscpool_paging_imsi_rai_registered' time='MASKED'/>
<testcase classname='HNBGW_Tests' name='TC_mscpool_no_allow_attach_round_robin' time='MASKED'/>
<testcase classname='HNBGW_Tests' name='TC_mscpool_no_allow_attach_valid_nri' time='MASKED'/>
<testcase classname='HNBGW_Tests' name='TC_mscpool_sccp_n_pcstate_detaches_cnlink' time='MASKED'/>
diff --git a/library/ranap/RANAP_Templates.ttcn b/library/ranap/RANAP_Templates.ttcn
index b09d23e..c328171 100644
--- a/library/ranap/RANAP_Templates.ttcn
+++ b/library/ranap/RANAP_Templates.ttcn
@@ -760,7 +760,8 @@
*****************************************************************************************************/
template (value) RANAP_PDU
-ts_RANAP_Paging(template (value) CN_DomainIndicator dom, template (value) IMSI imsi,
+ts_RANAP_Paging(template (value) CN_DomainIndicator dom,
+ template (value) IMSI imsi,
template (omit) Paging.protocolExtensions exts := omit) := {
initiatingMessage := {
procedureCode := id_Paging,
@@ -790,7 +791,8 @@
}
}
template RANAP_PDU
-tr_RANAP_Paging(template CN_DomainIndicator dom, template IMSI imsi,
+tr_RANAP_Paging(template (present) CN_DomainIndicator dom,
+ template (present) IMSI imsi,
template Paging.protocolExtensions exts := *) := {
initiatingMessage := {
procedureCode := id_Paging,
@@ -820,6 +822,7 @@
}
}
+
template (value) TemporaryUE_ID ts_RANAP_TemporaryUE_ID_TMSI(octetstring tmsi) := {
tMSI := tmsi
}
@@ -862,6 +865,65 @@
}
}
+template (value) LAI ts_RANAP_LAI(template (value) OCT3 pLMNidentity,
+ template (value) OCT2 lac) := {
+ pLMNidentity := pLMNidentity,
+ lAC := lac,
+ iE_Extensions := omit
+};
+
+template (value) RAI ts_RANAP_RAI(template (value) LAI lai,
+ template (value) OCT1 rac) := {
+ lAI := lai,
+ rAC := rac,
+ iE_Extensions := omit
+};
+
+template (value) PagingAreaID ts_RANAP_PagingAreaID_LAI(template (value) LAI lai) := {
+ lAI := lai
+};
+
+template (value) PagingAreaID ts_RANAP_PagingAreaID_RAI(template (value) RAI rai) := {
+ rAI := rai
+};
+
+template (value) RANAP_PDU
+ts_RANAP_Paging_pag_area_id(template (value) CN_DomainIndicator dom, template (value) IMSI imsi,
+ template (value) PagingAreaID pag_area_id,
+ template (omit) Paging.protocolExtensions exts := omit) := {
+ initiatingMessage := {
+ procedureCode := id_Paging,
+ criticality := ignore,
+ value_ := {
+ paging := {
+ protocolIEs := {
+ {
+ id := id_CN_DomainIndicator,
+ criticality := ignore,
+ value_ := {
+ cN_DomainIndicator := dom
+ }
+ }, {
+ id := id_PermanentNAS_UE_ID,
+ criticality := ignore,
+ value_ := {
+ permanentNAS_UE_ID := {
+ iMSI := imsi
+ }
+ }
+ }, {
+ id := id_PagingAreaID,
+ criticality := ignore,
+ value_ := {
+ pagingAreaID := pag_area_id
+ }
+ }
+ },
+ protocolExtensions := exts
+ }
+ }
+ }
+}
/*****************************************************************************************************
* Common ID
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40115?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I5a053bcf1f8470038e95d03889da077f8f967bfa
Gerrit-Change-Number: 40115
Gerrit-PatchSet: 2
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: pespin <pespin(a)sysmocom.de>
pespin has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40115?usp=email )
Change subject: hnbgw: Test paging with Page Area ID IE
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40115?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I5a053bcf1f8470038e95d03889da077f8f967bfa
Gerrit-Change-Number: 40115
Gerrit-PatchSet: 2
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: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 23 Apr 2025 20:09:23 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
pespin has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40114?usp=email )
Change subject: hnbgw: Support configuring RAC and Cell ID on each hnb conn
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40114?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I490e770be5e390a1f55e1dff1cf0c42e917a8d33
Gerrit-Change-Number: 40114
Gerrit-PatchSet: 2
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: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 23 Apr 2025 20:09:21 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes