ELF>8o@@UHH}]UHH}HEHH9E]UHH H}HuHUHEHHtHEHHHHHUHEHHHUHUHHH}H}tHEP4HEH@HHUHH}HE~HEHcHEH]UH吿u]UHHH}HHUH HHǸHHUHHHHHHHHHHHHH@HAHHHHHHt-JHHHHHHǸHHƿ UHHHHHHHHH HHǸHHHH]UHHPH}fEUHMHEHHHEHHHHUHHH}fEUHEHHHH@HHUHH H}uHEHH HdHH@UHHHEHEƀHEUHH H}HEHHEHEǀHEH@HUAH HUHATSHHfDžHHH$HHƅƅPAľHHQHHXHHHHHXHHHH HX(HHHH0HX8HHHH@HXHH H(HHPHXXH0H8HH`HXhH@HHHPxH@pHPHXHp&HHƅrDtƅxHHHHHHHHHHHHHHHHH H(HHH0H8HHH@HHHHHPHXHHHpHHP$HHƅPƅXPAľHH2HHXH`HhHHHXHpHxHH HX(HHHH0HX8HHHH@HXHHHHHPHXXHHHH`HXhHHHPxH@pHHH &HHƅ"D$ƅ(H`HhH0H8HpHxH@HHHHHPHXHHH`HhHHHpHxHHHHHHHHHHHHH HPHcH#HHHHH@HHHHHHHH2HrHEHEƀHEHǀHUHH¨!HHHHEH8HHEHH!HHHHEƀHEHH#HHHHEfǀHEǀHEǀHEƀHEHHP$HHHHEƀ(HEƀ4HEǀ8HEfǀ@HEǀDHEƀLHEHPH$HHHHEƀ HEƀ HEǀ HEǀАHEǀؐHEfܐHEƀސHEƀHEHHp&HHHHEǀ HEf$HEƀ&HEǀ(HEƀ+HEH0H &HHHHEǀHH@HUAH HHHHHH[A\]UHH H}HHHHH}Ht- HHHHHHǸHEH@(6HAHEHEƀHEHHHEHHEH@ HUAH HUHAWAVAUATSHhHH HHHH@H@HEHEHEHEHHqHEH@HHHEH@HP HH5HǸEHEaHEȋUHcHTHDHEH}tHEHEHEHEHEHHEHEHEHEHHHE@uxHEDHEDHEDhHED@HEHHHEH@ HHHAUATEEHH5HǸHHEHHxHxHEHEHH HUHEHH9HHHHHH(HHHHTHHHHUHH H}HuHdHH@HUHHHHH HHǸHHEHHEHE3uDHEunetinst, "default", "1.1.1.1", NULL)Assert failed %s %s:%d ===== END of %s unique_ids_test.c:965.6.7.813.14.15.16assert(session) session state: | peer %s %s | session[%s]: UP-SEID 0x%lx; chain_id access=%u core=%u; local TEID access=0x%x core=0x%x PFCP Associate peer 1.2.3.4set up tunmap, which assigns first UP-SEID 0x1, local-TEID 0x1 and 0x2, chain_ids 1 and 2 assert(s1->up_seid == 1) s1->up_seid == 1assert(a) aassert(a->kind == UP_GTP_U_TUNMAP) a->kind == UP_GTP_U_TUNMAPassert(a->tunmap.core.tun.local.teid == 1) a->tunmap.core.tun.local.teid == 1assert(a->tunmap.access.tun.local.teid == 2) a->tunmap.access.tun.local.teid == 2assert(a->tunmap.access.chain_id == 1) a->tunmap.access.chain_id == 1assert(a->tunmap.core.chain_id == 2) a->tunmap.core.chain_id == 2simulate wrapping of IDs back to 1 set up second tunmap, should use distinct IDs assert(s2->up_seid == 2) s2->up_seid == 2assert(a->tunmap.core.tun.local.teid == 3) a->tunmap.core.tun.local.teid == 3assert(a->tunmap.access.tun.local.teid == 4) a->tunmap.access.tun.local.teid == 4assert(a->tunmap.access.chain_id == 3) a->tunmap.access.chain_id == 3assert(a->tunmap.core.chain_id == 4) a->tunmap.core.chain_id == 4drop first tunmap (%s) assert(up_session_find_by_up_seid(peer, s1_up_seid) == NULL) up_session_find_by_up_seid(peer, s1_up_seid) == ((void *)0)again wrap all ID state back to 1 set up third tunmap, should now re-use same IDs as the first session assert(s3->up_seid == 1) s3->up_seid == 1set up 4th tunmap; chain_id state would use 3 and 4, but they are in use, so should assign 5 and 6 assert(s4->up_seid == 3) s4->up_seid == 3assert(a->tunmap.core.tun.local.teid == 5) a->tunmap.core.tun.local.teid == 5assert(a->tunmap.access.tun.local.teid == 6) a->tunmap.access.tun.local.teid == 6assert(a->tunmap.access.chain_id == 5) a->tunmap.access.chain_id == 5assert(a->tunmap.core.chain_id == 6) a->tunmap.core.chain_id == 6DREFReference CountingDPEERPFCP peer associationDSESSIONPFCP sessionsDGTPGTP tunnelingDNFTGTP forwarding rules via linux netfilterUsage: %s [-v] Options: -h --help show this text. -v --verbose print source file and line numbers hvError in command line options. Exiting. mainunique_ids_test.c:521 [test override] PFCP tx: %s osmo-upf created session 0x%lx [test override] %s() assert(ctx == fake_nft_ctx) ctx == fake_nft_ctx [test override] %s(): %s test_skip_used_idhelpverbosenft_ctx_newnft_ctx_freenft_run_cmd_from_buffertimehvGCC: (Debian 12.2.0-14) 12.2.0zRx  AC F <AC V \VAC Q |7AC r 3AC n AC R AC  AC | HAC C <?AC z \IAC D |]AC X  AC J AC  (AC M{  RAC M ,*AC e LAC  lAC  AC  9AC t AC  @AC {  8AC s   (&VC|7\3pv~H ?Ih]] 1 R 5B*M:\`kx   ( #/5ALZgm~$-H`s(  "5Hcz 5GP f}c!9!6"@v"8unique_ids_test.cprefetchllist_emptyosmo_talloc_replace_stringosmo_fsm_inst_state_nameosmo_pfcp_msg_causesetupcleanupstr2addrosa.6have_peernew_pfcp_msg_for_osmo_upf_rxpeer_assocnext_teidnext_cp_seidsession_est_tunmapsession_deldump_statetest_skip_used_id__func__.5test_default_categoriescmdline_optsprint_helphandle_optionslong_options.4fake_nft_ctx__func__.3__func__.2__func__.1__func__.0_talloc_freetalloc_strduposmo_fsm_state_namelast_up_seidselect_pollosmo_select_main_ctxstderrfprintftalloc_named_constg_upf_allocg_upfnetinst_addosmo_panicupf_pfcp_initupf_nft_initfputcup_endpoint_freeupf_gtp_devs_closeupf_gtp_genl_closeupf_nft_freetalloc_get_nameosmo_sockaddr_str_from_strosmo_sockaddr_str_to_sockaddrup_peer_find_or_add_GLOBAL_OFFSET_TABLE_osmo_ctxosmo_pfcp_msg_alloc_tx_req_osmo_fsm_inst_dispatchosmo_pfcp_bits_setosmo_pfcp_endpoint_get_local_addrosmo_pfcp_ip_addrs_setmemsetup_session_find_by_up_seidfwritelog_infogetopt_longexitmainmsgb_talloc_ctx_initosmo_fsm_set_dealloc_ctxosmo_init_logging2osmo_stderr_targetlog_set_print_category_hexlog_set_print_categorylog_set_print_levellog_set_print_timestamplog_set_print_extended_timestamplog_set_all_filterlog_set_print_filename2log_set_print_filename_poslog_set_use_colorosmo_fsm_log_timeoutsosmo_fsm_log_addrlog_finiosmo_pfcp_endpoint_txosmo_pfcp_msg_to_str_cosmo_pfcp_msg_freenft_ctx_newnft_ctx_freenft_run_cmd_from_buffertimeP[%n&'=, -B'..(?/F)M)U0\1g1nV11V^2f|345+-61*748>9H:O)W;a-hx.)%<= 1>9@OAfB+C#,;CBKZ6C<Em1|DE F" f/ B4 +; *M Gl -  H f    3 f% B* +E -Y (a Hh 1 - 2 . - D .1-6 -H$171H1V-jrH-Hf93,-@JHHdfnUx3-\Hf3- H1f;ER3Y-muHf$3-LHf t"3)-=EHifs}3-6-H111-H2-F3NHtf~M3-JHfU)30-D\LHmfw3-dHf3-H=fGQ^3e-yHf<3-\H f!.35-B6U-\l.-HGf3-6-,<4H;1N1_1m-dH-Hf3C-WJ_H{fU3-\Hf3-$HHfR\i3p-Hf$3-LHf"t,93@-T\Hf3-6-H-@H6f@ZJW3-JHfU3-\H/f9CP3W-klsHf3-Hf  3'-;CHgfqD{3-dHf3-6&\ 3Ja$k rKL- HL / ('(4N;@KOR(YIdPkQxRQSQTQUQVQWQX Q Y Q# Z, Q9 X@ QM ZW [a \k ]r (y  % @ _ -  . *!!*(!*/!-6!< F!.X!`q!-x! !] !.!!-! !] !.!-!s !H!"f" ""/"3I"-W" ^" k"."-"$ "] ". (0@HP ` h p )  0   @ `&| @`h] 1 0P:p c!!6"v".symtab.strtab.shstrtab.rela.text.data.bss.rodata.rela.data.rel.ro.local.rela.data.rel.local.comment.note.GNU-stack.rela.eh_frame @"@B(&",# 1#- >@. 9@jV /` Q@8l0f0/ o//(@hl@ 2x % @<n