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

January 2025

  • 1 participants
  • 1491 discussions
Change in osmo-ccid-firmware[master]: add simple gangupdater for multiple octsim boards
by roh 15 Mar '25

15 Mar '25
roh has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/26896 ) Change subject: add simple gangupdater for multiple octsim boards ...................................................................... add simple gangupdater for multiple octsim boards Change-Id: Ic10572c121ac55586ec43126b63d69529757132b --- A contrib/flash_all_octsim.sh 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/96/26896/1 diff --git a/contrib/flash_all_octsim.sh b/contrib/flash_all_octsim.sh new file mode 100644 index 0000000..4f4c89b --- /dev/null +++ b/contrib/flash_all_octsim.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# this script is to scan for octsim boards, sort them by usb path and call dfu-util on each to update the board +# basic flow +# - get usb path and serialno tupel from dfu-util -l +# - reformat and sort by usbpath, drop the usbpath (grep cut tr sort cut) +# - flash the boards + +# TODO: +# - error handling +# - filter dfu-util output and generate nice summary + +dfu-util -l \ + | grep "^Found" \ + | grep "\[1d50:6141\]" \ + | cut -d ' ' -f 8,13 \ + | tr -d ',' \ + | cut -d \" -f 2,4 \ + | tr \" ' ' \ + | sort \ + | cut -d ' ' -f 2 + | xargs -n 1 dfu-util -d 1d50:6141 -D sysmoOCTSIM.bin -R -p -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/26896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Ic10572c121ac55586ec43126b63d69529757132b Gerrit-Change-Number: 26896 Gerrit-PatchSet: 1 Gerrit-Owner: roh <jsteiger(a)sysmocom.de> Gerrit-MessageType: newchange
2 2
0 0
[M] Change in osmo-bsc[master]: nokia_site: Add object_identity, object_state and object_identity_sta...
by csaba.sipos 31 Jan '25

31 Jan '25
Attention is currently required from: fixeria. csaba.sipos has posted comments on this change by csaba.sipos. ( https://gerrit.osmocom.org/c/osmo-bsc/+/39416?usp=email ) Change subject: nokia_site: Add object_identity, object_state and object_identity_state attributes ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/39416?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id9f819b0649ba3c247db72d7d738e49c72388dc3 Gerrit-Change-Number: 39416 Gerrit-PatchSet: 5 Gerrit-Owner: csaba.sipos <metro4(a)freemail.hu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Fri, 31 Jan 2025 23:19:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No
1 0
0 0
[M] Change in osmo-sgsn[master]: Assign MME GroupId/Code to remote MMEs
by pespin 31 Jan '25

31 Jan '25
Attention is currently required from: lynxis lazus. pespin has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/39294?usp=email ) Change subject: Assign MME GroupId/Code to remote MMEs ...................................................................... Patch Set 3: (1 comment) Patchset: PS3: I would really prefer to have this introduced whenever it's being used, otherwise we end up with dead code. So far I don't see any commit adding code actually using the gummei for routing? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39294?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I881aeba904fb6ca815842d36e466a2459ad81913 Gerrit-Change-Number: 39294 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Fri, 31 Jan 2025 18:30:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No
1 0
0 0
[S] Change in osmo-sgsn[master]: GMM: implement IMEI SV on auth/ciph response
by pespin 31 Jan '25

31 Jan '25
Attention is currently required from: lynxis lazus. pespin has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/39425?usp=email ) Change subject: GMM: implement IMEI SV on auth/ciph response ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39425?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia8b428967a4ce3132a4a63ae10fe610de81c3a29 Gerrit-Change-Number: 39425 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Fri, 31 Jan 2025 18:29:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[M] Change in osmo-sgsn[master]: gprs_gmm_util: add parsing of GMM Attach Requests
by pespin 31 Jan '25

31 Jan '25
Attention is currently required from: fixeria, laforge, lynxis lazus. pespin has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/39246?usp=email ) Change subject: gprs_gmm_util: add parsing of GMM Attach Requests ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39246?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4a82e0c4070da982efd6c2f15fd145393423772b Gerrit-Change-Number: 39246 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Fri, 31 Jan 2025 18:27:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[S] Change in osmo-upf[master]: Introduce hashtable to lookup session by F-TEID
by pespin 31 Jan '25

31 Jan '25
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-upf/+/39451?usp=email ) Change subject: Introduce hashtable to lookup session by F-TEID ...................................................................... Introduce hashtable to lookup session by F-TEID This is a hot path when creating new sessions. Previous code would take ages specially when UPF already had thousands of sessions created and a new TEID to allocate was being looked up. Related: SYS#6398 Change-Id: I90ecbb07b242c1de2298261019f24aa5f5810fda --- M include/osmocom/upf/up_session.h M include/osmocom/upf/upf.h M src/osmo-upf/up_session.c M src/osmo-upf/upf.c 4 files changed, 17 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-upf refs/changes/51/39451/1 diff --git a/include/osmocom/upf/up_session.h b/include/osmocom/upf/up_session.h index c424df9..3dc7bb1 100644 --- a/include/osmocom/upf/up_session.h +++ b/include/osmocom/upf/up_session.h @@ -69,7 +69,6 @@ struct up_session *up_session_find_or_add(struct up_peer *peer, const struct osmo_pfcp_ie_f_seid *cp_f_seid); struct up_session *up_session_find_by_up_seid(struct up_peer *peer, uint64_t up_seid); struct up_session *up_session_find_by_cp_f_seid(struct up_peer *peer, const struct osmo_pfcp_ie_f_seid *cp_f_seid); -struct up_session *up_session_find_by_local_teid(struct up_peer *peer, uint32_t teid); void up_session_set_msg_ctx(struct up_session *session, struct osmo_pfcp_msg *m); @@ -83,7 +82,8 @@ char *up_session_to_str_c(void *ctx, struct up_session *session); struct pdr { - struct llist_head entry; + struct llist_head entry; /* item in session->pdrs */ + struct hlist_node node_by_local_f_teid; /* item in g_upf->gtp.pdrs_by_local_f_teid */ struct up_session *session; struct osmo_pfcp_ie_create_pdr desc; diff --git a/include/osmocom/upf/upf.h b/include/osmocom/upf/upf.h index d558600..0e5406f 100644 --- a/include/osmocom/upf/upf.h +++ b/include/osmocom/upf/upf.h @@ -28,6 +28,7 @@ #include <osmocom/core/socket.h> #include <osmocom/core/select.h> #include <osmocom/core/linuxlist.h> +#include <osmocom/core/hashtable.h> struct osmo_tdef; struct ctrl_handle; @@ -118,6 +119,8 @@ struct { uint32_t next_local_teid_state; + /* hashtable of (struct pdr)->node_by_local_f_teid: */ + DECLARE_HASHTABLE(pdrs_by_local_f_teid, 10); uint16_t next_echo_seq_nr; } gtp; diff --git a/src/osmo-upf/up_session.c b/src/osmo-upf/up_session.c index 198bf88..359d116 100644 --- a/src/osmo-upf/up_session.c +++ b/src/osmo-upf/up_session.c @@ -379,6 +379,8 @@ static void pdr_del(struct pdr *pdr) { + if (!hlist_unhashed(&pdr->node_by_local_f_teid)) + hash_del(&pdr->node_by_local_f_teid); llist_del(&pdr->entry); talloc_free(pdr); } @@ -411,6 +413,7 @@ .session = session, .desc = *create_pdr, }; + INIT_HLIST_NODE(&pdr->node_by_local_f_teid); llist_add_tail(&pdr->entry, &session->pdrs); if (pdr->desc.far_id_present) { @@ -482,6 +485,7 @@ .local_f_teid_present = true, .local_f_teid = *pdr->local_f_teid, }; + hash_add(g_upf->gtp.pdrs_by_local_f_teid, &pdr->node_by_local_f_teid, pdr->local_f_teid->fixed.teid); } else { created_pdr[*created_pdr_count] = (struct osmo_pfcp_ie_created_pdr){ .pdr_id = pdr->desc.pdr_id, @@ -1054,22 +1058,6 @@ return NULL; } -struct up_session *up_session_find_by_local_teid(struct up_peer *peer, uint32_t teid) -{ - struct up_session *session; - int bkt; - hash_for_each(peer->sessions_by_up_seid, bkt, session, node_by_up_seid) { - struct pdr *pdr; - llist_for_each_entry(pdr, &session->pdrs, entry) { - if (!pdr->local_f_teid) - continue; - if (pdr->local_f_teid->fixed.teid == teid) - return session; - } - } - return NULL; -} - static bool action_is_forw(const struct osmo_pfcp_ie_apply_action *aa) { return osmo_pfcp_bits_get(aa->bits, OSMO_PFCP_APPLY_ACTION_FORW) diff --git a/src/osmo-upf/upf.c b/src/osmo-upf/upf.c index a4cb79b..c82227d 100644 --- a/src/osmo-upf/upf.c +++ b/src/osmo-upf/upf.c @@ -78,6 +78,7 @@ INIT_LLIST_HEAD(&g_upf->tunend.vty_cfg.devs); INIT_LLIST_HEAD(&g_upf->tunend.devs); INIT_LLIST_HEAD(&g_upf->netinst); + hash_init(g_upf->gtp.pdrs_by_local_f_teid); } int upf_pfcp_init(void) @@ -135,11 +136,13 @@ static bool upf_is_local_teid_in_use(uint32_t teid) { - struct up_peer *peer; - llist_for_each_entry(peer, &g_upf->pfcp.ep->peers, entry) { - struct up_session *session = up_session_find_by_local_teid(peer, teid); - if (session) - return true; + struct pdr *pdr; + hash_for_each_possible(g_upf->gtp.pdrs_by_local_f_teid, pdr, node_by_local_f_teid, teid) { + if (!pdr->local_f_teid) + continue; + if (pdr->local_f_teid->fixed.teid != teid) + continue; + return true; } return false; } -- To view, visit https://gerrit.osmocom.org/c/osmo-upf/+/39451?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-upf Gerrit-Branch: master Gerrit-Change-Id: I90ecbb07b242c1de2298261019f24aa5f5810fda Gerrit-Change-Number: 39451 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-upf[master]: Introduce hashtable to lookup chain_id
by pespin 31 Jan '25

31 Jan '25
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-upf/+/39452?usp=email ) Change subject: Introduce hashtable to lookup chain_id ...................................................................... Introduce hashtable to lookup chain_id This lookup was taking ages specially when UPF already managed thousands of sessions. Related: SYS#6398 Change-Id: I7df8fd945eedbda98bd08e9fb2f382e0f55c2983 --- M include/osmocom/upf/up_gtp_action.h M include/osmocom/upf/upf.h M include/osmocom/upf/upf_nft.h M src/osmo-upf/up_gtp_action.c M src/osmo-upf/up_session.c M src/osmo-upf/upf.c M src/osmo-upf/upf_nft.c 7 files changed, 74 insertions(+), 88 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-upf refs/changes/52/39452/1 diff --git a/include/osmocom/upf/up_gtp_action.h b/include/osmocom/upf/up_gtp_action.h index c47c35c..9bcd839 100644 --- a/include/osmocom/upf/up_gtp_action.h +++ b/include/osmocom/upf/up_gtp_action.h @@ -64,6 +64,9 @@ void *handle; }; +struct up_gtp_action *up_gtp_action_alloc(void *ctx, struct up_session *session, enum up_gtp_action_kind kind, struct llist_head *dst); +void up_gtp_action_free(struct up_gtp_action *a); + int up_gtp_action_cmp(const struct up_gtp_action *a, const struct up_gtp_action *b); int up_gtp_action_enable(struct up_gtp_action *a); diff --git a/include/osmocom/upf/upf.h b/include/osmocom/upf/upf.h index 0e5406f..1e5d702 100644 --- a/include/osmocom/upf/upf.h +++ b/include/osmocom/upf/upf.h @@ -115,6 +115,8 @@ int priority_pre; int priority_post; uint32_t next_chain_id_state; + /* hashtable of (struct upf_nft_tun)->node_by_chain_id: */ + DECLARE_HASHTABLE(nft_tun_by_chain_id, 10); } tunmap; struct { diff --git a/include/osmocom/upf/upf_nft.h b/include/osmocom/upf/upf_nft.h index be2ec0d..a194faf 100644 --- a/include/osmocom/upf/upf_nft.h +++ b/include/osmocom/upf/upf_nft.h @@ -24,10 +24,12 @@ #pragma once #include <stdint.h> +#include <osmocom/core/hashtable.h> #include <osmocom/upf/upf_tun.h> struct upf_nft_tun { + struct hlist_node node_by_chain_id; /* item in g_upf->tunmap.nft_tun_by_chain_id */ struct upf_tun tun; uint32_t chain_id; }; diff --git a/src/osmo-upf/up_gtp_action.c b/src/osmo-upf/up_gtp_action.c index 28dd078..a3c6b68 100644 --- a/src/osmo-upf/up_gtp_action.c +++ b/src/osmo-upf/up_gtp_action.c @@ -198,3 +198,33 @@ { OSMO_NAME_C_IMPL(ctx, 128, "ERROR", up_gtp_action_to_str_buf, a) } + +struct up_gtp_action *up_gtp_action_alloc(void *ctx, struct up_session *session, enum up_gtp_action_kind kind, struct llist_head *dst) +{ + struct up_gtp_action *a = talloc_zero(ctx, struct up_gtp_action); + OSMO_ASSERT(a); + a->session = session; + a->kind = kind; + + if (kind == UP_GTP_U_TUNMAP) { + INIT_HLIST_NODE(&a->tunmap.access.node_by_chain_id); + INIT_HLIST_NODE(&a->tunmap.core.node_by_chain_id); + } + llist_add_tail(&a->entry, dst); + return a; +} + +void up_gtp_action_free(struct up_gtp_action *a) +{ + if (!a) + return; + up_gtp_action_disable(a); + llist_del(&a->entry); + if (a->kind == UP_GTP_U_TUNMAP) { + if (!hlist_unhashed(&a->tunmap.access.node_by_chain_id)) + hash_del(&a->tunmap.access.node_by_chain_id); + if (!hlist_unhashed(&a->tunmap.core.node_by_chain_id)) + hash_del(&a->tunmap.core.node_by_chain_id); + } + talloc_free(a); +} diff --git a/src/osmo-upf/up_session.c b/src/osmo-upf/up_session.c index 359d116..97c9367 100644 --- a/src/osmo-upf/up_session.c +++ b/src/osmo-upf/up_session.c @@ -824,9 +824,7 @@ /* Shut down all active GTP rules */ while ((a = llist_first_entry_or_null(&session->active_gtp_actions, struct up_gtp_action, entry))) { - up_gtp_action_disable(a); - llist_del(&a->entry); - talloc_free(a); + up_gtp_action_free(a); } } @@ -1202,31 +1200,14 @@ talloc_free(rpdr->inactive_reason); rpdr->inactive_reason = NULL; - a = talloc(ctx, struct up_gtp_action); - OSMO_ASSERT(a); - *a = (struct up_gtp_action){ - .session = session, - .pdr_access = pdr->desc.pdr_id, - .pdr_core = rpdr->desc.pdr_id, - .kind = UP_GTP_U_TUNEND, - .tunend = { - .access = { - .local = { - .addr = pdr->local_f_teid->fixed.ip_addr.v4, - .teid = pdr->local_f_teid->fixed.teid, - }, - .remote = { - .addr = rfar_forw->outer_header_creation.ip_addr.v4, - .teid = rfar_forw->outer_header_creation.teid, - }, - }, - .core = { - .ue_local_addr = rpdr->desc.pdi.ue_ip_address.ip_addr.v4, - }, - }, - }; - - llist_add_tail(&a->entry, dst); + a = up_gtp_action_alloc(ctx, session, UP_GTP_U_TUNEND, dst); + a->pdr_access = pdr->desc.pdr_id; + a->pdr_core = rpdr->desc.pdr_id; + a->tunend.access.local.addr = pdr->local_f_teid->fixed.ip_addr.v4; + a->tunend.access.local.teid = pdr->local_f_teid->fixed.teid; + a->tunend.access.remote.addr = rfar_forw->outer_header_creation.ip_addr.v4; + a->tunend.access.remote.teid = rfar_forw->outer_header_creation.teid; + a->tunend.core.ue_local_addr = rpdr->desc.pdi.ue_ip_address.ip_addr.v4; } /* A GTP tunnel on Access side, mapping to another GTP tunnel on Core side and vice versa. @@ -1316,38 +1297,17 @@ talloc_free(rpdr->inactive_reason); rpdr->inactive_reason = NULL; - a = talloc(ctx, struct up_gtp_action); - OSMO_ASSERT(a); - *a = (struct up_gtp_action){ - .session = session, - .pdr_access = pdr->desc.pdr_id, - .pdr_core = rpdr->desc.pdr_id, - .kind = UP_GTP_U_TUNMAP, - .tunmap = { - .access.tun = { - .local = { - .addr = pdr->local_f_teid->fixed.ip_addr.v4, - .teid = pdr->local_f_teid->fixed.teid, - }, - .remote = { - .addr = rfar_forw->outer_header_creation.ip_addr.v4, - .teid = rfar_forw->outer_header_creation.teid, - }, - }, - .core.tun = { - .local = { - .addr = rpdr->local_f_teid->fixed.ip_addr.v4, - .teid = rpdr->local_f_teid->fixed.teid, - }, - .remote = { - .addr = far_forw->outer_header_creation.ip_addr.v4, - .teid = far_forw->outer_header_creation.teid, - }, - }, - }, - }; - - llist_add_tail(&a->entry, dst); + a = up_gtp_action_alloc(ctx, session, UP_GTP_U_TUNMAP, dst); + a->pdr_access = pdr->desc.pdr_id; + a->pdr_core = rpdr->desc.pdr_id; + a->tunmap.access.tun.local.addr = pdr->local_f_teid->fixed.ip_addr.v4; + a->tunmap.access.tun.local.teid = pdr->local_f_teid->fixed.teid; + a->tunmap.access.tun.remote.addr = rfar_forw->outer_header_creation.ip_addr.v4; + a->tunmap.access.tun.remote.teid = rfar_forw->outer_header_creation.teid; + a->tunmap.core.tun.local.addr = rpdr->local_f_teid->fixed.ip_addr.v4; + a->tunmap.core.tun.local.teid = rpdr->local_f_teid->fixed.teid; + a->tunmap.core.tun.remote.addr = far_forw->outer_header_creation.ip_addr.v4; + a->tunmap.core.tun.remote.teid = far_forw->outer_header_creation.teid; } /* Analyse all PDRs and FARs and find configurations that match either a GTP encaps/decaps or a GTP forward rule. Add to @@ -1472,9 +1432,7 @@ continue; LOGPFSML(session->fi, LOGL_DEBUG, "disabling: %s\n", up_gtp_action_to_str_c(OTC_SELECT, a)); - up_gtp_action_disable(a); - llist_del(&a->entry); - talloc_free(a); + up_gtp_action_free(a); } /* Set up all GTP tunnels requested in the session setup, but not active yet */ diff --git a/src/osmo-upf/upf.c b/src/osmo-upf/upf.c index c82227d..e442d1c 100644 --- a/src/osmo-upf/upf.c +++ b/src/osmo-upf/upf.c @@ -78,6 +78,7 @@ INIT_LLIST_HEAD(&g_upf->tunend.vty_cfg.devs); INIT_LLIST_HEAD(&g_upf->tunend.devs); INIT_LLIST_HEAD(&g_upf->netinst); + hash_init(g_upf->tunmap.nft_tun_by_chain_id); hash_init(g_upf->gtp.pdrs_by_local_f_teid); } @@ -175,6 +176,17 @@ return g_upf->tunmap.next_chain_id_state; } +static bool upf_is_chain_id_in_use(uint32_t chain_id) +{ + struct upf_nft_tun *nft_tun; + hash_for_each_possible(g_upf->tunmap.nft_tun_by_chain_id, nft_tun, node_by_chain_id, chain_id) { + if (nft_tun->chain_id != chain_id) + continue; + return true; + } + return false; +} + /* Return an unused chain_id, or 0 if none is found with sane effort. */ uint32_t upf_next_chain_id(void) { @@ -182,36 +194,14 @@ /* Make sure the new chain_id is not used anywhere */ for (sanity = 2342; sanity; sanity--) { - struct up_peer *peer; uint32_t chain_id = upf_next_chain_id_inc(); - bool taken = false; if (!g_upf->pfcp.ep) return chain_id; - llist_for_each_entry(peer, &g_upf->pfcp.ep->peers, entry) { - struct up_session *session; - int bkt; - hash_for_each(peer->sessions_by_up_seid, bkt, session, node_by_up_seid) { - struct up_gtp_action *a; - llist_for_each_entry(a, &session->active_gtp_actions, entry) { - if (a->kind != UP_GTP_U_TUNMAP) - continue; - if (a->tunmap.access.chain_id == chain_id - || a->tunmap.core.chain_id == chain_id) { - taken = true; - break; - } - } - if (taken) - break; - } - if (taken) - break; - } - - if (!taken) - return chain_id; + if (upf_is_chain_id_in_use(chain_id)) + continue; + return chain_id; } /* finding a chain_id became insane, return invalid = 0 */ diff --git a/src/osmo-upf/upf_nft.c b/src/osmo-upf/upf_nft.c index bc0ee36..7e5b80f 100644 --- a/src/osmo-upf/upf_nft.c +++ b/src/osmo-upf/upf_nft.c @@ -489,6 +489,7 @@ tun->chain_id = upf_next_chain_id(); if (!tun->chain_id) return -ENOSPC; + hash_add(g_upf->tunmap.nft_tun_by_chain_id, &tun->node_by_chain_id, tun->chain_id); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-upf/+/39452?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-upf Gerrit-Branch: master Gerrit-Change-Id: I7df8fd945eedbda98bd08e9fb2f382e0f55c2983 Gerrit-Change-Number: 39452 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-sgsn[master]: Assign MME GroupId/Code to remote MMEs
by lynxis lazus 31 Jan '25

31 Jan '25
Attention is currently required from: lynxis lazus. Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39294?usp=email to look at the new patch set (#3). The following approvals got outdated and were removed: Verified-1 by Jenkins Builder Change subject: Assign MME GroupId/Code to remote MMEs ...................................................................... Assign MME GroupId/Code to remote MMEs In preparation to route SGSN Context Req/Resp/Ack the SGSN need to route GTP messages based on the MME GroupId and MME Code. Change-Id: I881aeba904fb6ca815842d36e466a2459ad81913 --- M include/osmocom/sgsn/gtp_mme.h M src/sgsn/gtp_mme.c M src/sgsn/sgsn_vty.c 3 files changed, 61 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/94/39294/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39294?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I881aeba904fb6ca815842d36e466a2459ad81913 Gerrit-Change-Number: 39294 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
1 0
0 0
[S] Change in osmo-sgsn[master]: gprs_gmm_util: use a RAU specific TLV dictionary
by lynxis lazus 31 Jan '25

31 Jan '25
Attention is currently required from: lynxis lazus. Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39247?usp=email to look at the new patch set (#4). The following approvals got outdated and were removed: Verified+1 by Jenkins Builder The change is no longer submittable: Verified is unsatisfied now. Change subject: gprs_gmm_util: use a RAU specific TLV dictionary ...................................................................... gprs_gmm_util: use a RAU specific TLV dictionary Limit the known and allowed TLVs according to the spec. Change-Id: I460971deeebc9977a984937c542b263d941e78df --- M src/sgsn/gprs_gmm_util.c 1 file changed, 34 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/47/39247/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39247?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I460971deeebc9977a984937c542b263d941e78df Gerrit-Change-Number: 39247 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
1 0
0 0
[M] Change in osmo-sgsn[master]: gprs_gmm_util: add parsing of GMM Attach Requests
by lynxis lazus 31 Jan '25

31 Jan '25
Attention is currently required from: fixeria, laforge, pespin. Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39246?usp=email to look at the new patch set (#4). The following approvals got outdated and were removed: Code-Review+1 by pespin, Verified+1 by Jenkins Builder Change subject: gprs_gmm_util: add parsing of GMM Attach Requests ...................................................................... gprs_gmm_util: add parsing of GMM Attach Requests This will be used in the following commit. Change-Id: I4a82e0c4070da982efd6c2f15fd145393423772b --- M include/osmocom/sgsn/gprs_gmm_util.h M src/sgsn/gprs_gmm_util.c 2 files changed, 137 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/46/39246/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39246?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4a82e0c4070da982efd6c2f15fd145393423772b Gerrit-Change-Number: 39246 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • ...
  • 150
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.