lists.osmocom.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
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
List overview
Download
gerrit-log
January 2023
----- 2025 -----
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
gerrit-log@lists.osmocom.org
1 participants
2205 discussions
Start a n
N
ew thread
Change in osmo-sgsn[master]: Remove unneeded extern declaration from libosmocotrl
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30879
) Change subject: Remove unneeded extern declaration from libosmocotrl ...................................................................... Remove unneeded extern declaration from libosmocotrl Change-Id: I464df2d03538c71f6666046c67170746690e723d --- M src/sgsn/sgsn_ctrl.c 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/sgsn/sgsn_ctrl.c b/src/sgsn/sgsn_ctrl.c index 69034e2..278857f 100644 --- a/src/sgsn/sgsn_ctrl.c +++ b/src/sgsn/sgsn_ctrl.c @@ -27,8 +27,6 @@ #include <pdp.h> -extern vector ctrl_node_vec; - static int get_subscriber_list(struct ctrl_cmd *cmd, void *d) { struct sgsn_mm_ctx *mm; -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30879
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I464df2d03538c71f6666046c67170746690e723d Gerrit-Change-Number: 30879 Gerrit-PatchSet: 1 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-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Move global ggsn_list into struct sgsn_instance
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30881
) Change subject: Move global ggsn_list into struct sgsn_instance ...................................................................... Move global ggsn_list into struct sgsn_instance Change-Id: I9d4c74476b777a866af2796dd376ed50da7b5d01 --- M include/osmocom/sgsn/gprs_sgsn.h M include/osmocom/sgsn/sgsn.h M src/sgsn/gprs_sgsn.c M src/sgsn/gtp_ggsn.c M src/sgsn/sgsn_vty.c 5 files changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 4f8bc3d..541d854 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -376,7 +376,6 @@ struct apn_ctx *sgsn_apn_ctx_match(const char *name, const char *imsi_prefix); extern struct llist_head sgsn_mm_ctxts; -extern struct llist_head sgsn_ggsn_ctxts; extern struct llist_head sgsn_apn_ctxts; extern struct llist_head sgsn_pdp_ctxts; diff --git a/include/osmocom/sgsn/sgsn.h b/include/osmocom/sgsn/sgsn.h index d558d87..90f91f7 100644 --- a/include/osmocom/sgsn/sgsn.h +++ b/include/osmocom/sgsn/sgsn.h @@ -151,6 +151,7 @@ struct rate_ctr_group *rate_ctrs; + struct llist_head ggsn_list; /* list of struct sgsn_ggsn_ctx */ struct llist_head mme_list; /* list of struct sgsn_mme_ctx */ struct ctrl_handle *ctrlh; diff --git a/src/sgsn/gprs_sgsn.c b/src/sgsn/gprs_sgsn.c index 5afddb4..ea07862 100644 --- a/src/sgsn/gprs_sgsn.c +++ b/src/sgsn/gprs_sgsn.c @@ -64,7 +64,6 @@ extern struct osmo_tdef sgsn_T_defs[]; LLIST_HEAD(sgsn_mm_ctxts); -LLIST_HEAD(sgsn_ggsn_ctxts); LLIST_HEAD(sgsn_apn_ctxts); LLIST_HEAD(sgsn_pdp_ctxts); @@ -918,6 +917,7 @@ inst->rate_ctrs = rate_ctr_group_alloc(inst, &sgsn_ctrg_desc, 0); OSMO_ASSERT(inst->rate_ctrs); + INIT_LLIST_HEAD(&inst->ggsn_list); INIT_LLIST_HEAD(&inst->mme_list); osmo_timer_setup(&inst->llme_timer, sgsn_llme_check_cb, NULL); diff --git a/src/sgsn/gtp_ggsn.c b/src/sgsn/gtp_ggsn.c index 0a670e1..f8e09e8 100644 --- a/src/sgsn/gtp_ggsn.c +++ b/src/sgsn/gtp_ggsn.c @@ -73,7 +73,7 @@ ggc->gsn = sgsn->gsn; INIT_LLIST_HEAD(&ggc->pdp_list); osmo_timer_setup(&ggc->echo_timer, echo_timer_cb, ggc); - llist_add(&ggc->list, &sgsn_ggsn_ctxts); + llist_add(&ggc->list, &sgsn->ggsn_list); return ggc; } @@ -89,7 +89,7 @@ { struct sgsn_ggsn_ctx *ggc; - llist_for_each_entry(ggc, &sgsn_ggsn_ctxts, list) { + llist_for_each_entry(ggc, &sgsn->ggsn_list, list) { if (id == ggc->id) return ggc; } @@ -100,7 +100,7 @@ { struct sgsn_ggsn_ctx *ggc; - llist_for_each_entry(ggc, &sgsn_ggsn_ctxts, list) { + llist_for_each_entry(ggc, &sgsn->ggsn_list, list) { if (!memcmp(addr, &ggc->remote_addr, sizeof(*addr))) return ggc; } diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index 4affa9f..b678f07 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -252,7 +252,7 @@ vty_out(vty, " gtp local-ip %s%s", inet_ntoa(g_cfg->gtp_listenaddr.sin_addr), VTY_NEWLINE); - llist_for_each_entry(gctx, &sgsn_ggsn_ctxts, list) { + llist_for_each_entry(gctx, &sgsn->ggsn_list, list) { if (gctx->id == UINT32_MAX) continue; -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30881
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9d4c74476b777a866af2796dd376ed50da7b5d01 Gerrit-Change-Number: 30881 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Keep sgsn subsystems under struct sgsn_instance lifecycle
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30880
) Change subject: Keep sgsn subsystems under struct sgsn_instance lifecycle ...................................................................... Keep sgsn subsystems under struct sgsn_instance lifecycle Rework initialization and destruction of several sgsn subsystems to be allocated & released together with the struct sgsn_instance. This makes it easier to destroy and recreate the entire context and allows us to start moving global variables scattered around to be under struct sgsn_instance. Change-Id: Idf60519b8e475b94d38bbb69e737132a5afaefab --- M include/osmocom/sgsn/gprs_sgsn.h M include/osmocom/sgsn/sgsn.h M src/sgsn/gprs_sgsn.c M src/sgsn/sgsn_cdr.c M src/sgsn/sgsn_main.c M src/sgsn/sgsn_vty.c M tests/sgsn/Makefile.am M tests/sgsn/sgsn_test.c 8 files changed, 83 insertions(+), 63 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 8b9a00e..4f8bc3d 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -381,8 +381,6 @@ extern struct llist_head sgsn_pdp_ctxts; uint32_t sgsn_alloc_ptmsi(void); -struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx); -void sgsn_inst_init(struct sgsn_instance *sgsn); char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len, bool return_ipv6); @@ -438,6 +436,4 @@ /* Called on subscriber data updates */ void sgsn_update_subscriber_data(struct sgsn_mm_ctx *mmctx); -void sgsn_rate_ctr_init(void); - #endif /* _GPRS_SGSN_H */ diff --git a/include/osmocom/sgsn/sgsn.h b/include/osmocom/sgsn/sgsn.h index f08037a..d558d87 100644 --- a/include/osmocom/sgsn/sgsn.h +++ b/include/osmocom/sgsn/sgsn.h @@ -152,6 +152,8 @@ struct rate_ctr_group *rate_ctrs; struct llist_head mme_list; /* list of struct sgsn_mme_ctx */ + + struct ctrl_handle *ctrlh; }; extern struct sgsn_instance *sgsn; @@ -163,6 +165,8 @@ char *sgsn_gtp_ntoa(struct ul16_t *ul); /* sgsn.c */ +struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx); +int sgsn_inst_init(struct sgsn_instance *sgsn); /* Main input function for Gb proxy */ int sgsn_rcvmsg(struct msgb *msg, struct gprs_ns2_vc *nsvc, uint16_t ns_bvci); @@ -197,6 +201,7 @@ * CDR related functionality */ int sgsn_cdr_init(struct sgsn_instance *sgsn); +void sgsn_cdr_release(struct sgsn_instance *sgsn); /* diff --git a/src/sgsn/gprs_sgsn.c b/src/sgsn/gprs_sgsn.c index 572e90b..5afddb4 100644 --- a/src/sgsn/gprs_sgsn.c +++ b/src/sgsn/gprs_sgsn.c @@ -27,6 +27,8 @@ #include <osmocom/core/rate_ctr.h> #include <osmocom/core/stats.h> #include <osmocom/core/backtrace.h> +#include <osmocom/ctrl/control_if.h> +#include <osmocom/ctrl/ports.h> #include <osmocom/gprs/gprs_ns2.h> #include <osmocom/gprs/gprs_bssgp.h> #include <osmocom/gsm/protocol/gsm_04_08_gprs.h> @@ -59,6 +61,7 @@ extern struct sgsn_instance *sgsn; extern void *tall_sgsn_ctx; +extern struct osmo_tdef sgsn_T_defs[]; LLIST_HEAD(sgsn_mm_ctxts); LLIST_HEAD(sgsn_ggsn_ctxts); @@ -145,12 +148,6 @@ sgsn_ctr_description, }; -void sgsn_rate_ctr_init(void) -{ - sgsn->rate_ctrs = rate_ctr_group_alloc(tall_sgsn_ctx, &sgsn_ctrg_desc, 0); - OSMO_ASSERT(sgsn->rate_ctrs); -} - /* look-up an SGSN MM context based on Iu UE context (struct ue_conn_ctx)*/ struct sgsn_mm_ctx *sgsn_mm_ctx_by_ue_ctx(const void *uectx) { @@ -893,21 +890,67 @@ osmo_timer_schedule(&sgsn->llme_timer, GPRS_LLME_CHECK_TICK, 0); } +static int sgsn_instance_talloc_destructor(struct sgsn_instance *sgi) +{ + sgsn_cdr_release(sgi); + osmo_timer_del(&sgi->llme_timer); + rate_ctr_group_free(sgi->rate_ctrs); + return 0; +} + struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx) { struct sgsn_instance *inst; inst = talloc_zero(talloc_ctx, struct sgsn_instance); + + talloc_set_destructor(inst, sgsn_instance_talloc_destructor); + inst->cfg.gtp_statedir = talloc_strdup(inst, "./"); inst->cfg.auth_policy = SGSN_AUTH_POLICY_CLOSED; inst->cfg.require_authentication = true; /* only applies if auth_policy is REMOTE */ inst->cfg.gsup_server_port = OSMO_GSUP_PORT; + inst->cfg.T_defs = sgsn_T_defs; + osmo_tdefs_reset(inst->cfg.T_defs); + inst->cfg.T_defs_gtp = gtp_T_defs; + osmo_tdefs_reset(inst->cfg.T_defs_gtp); + + inst->rate_ctrs = rate_ctr_group_alloc(inst, &sgsn_ctrg_desc, 0); + OSMO_ASSERT(inst->rate_ctrs); + INIT_LLIST_HEAD(&inst->mme_list); + + osmo_timer_setup(&inst->llme_timer, sgsn_llme_check_cb, NULL); + osmo_timer_schedule(&inst->llme_timer, GPRS_LLME_CHECK_TICK, 0); + /* These are mostly setting up stuff not related to VTY cfg, so they can be set up here: */ + sgsn_auth_init(inst); + sgsn_cdr_init(inst); return inst; } -void sgsn_inst_init(struct sgsn_instance *sgsn) +/* To be called after VTY config parsing: */ +int sgsn_inst_init(struct sgsn_instance *sgsn) { - osmo_timer_setup(&sgsn->llme_timer, sgsn_llme_check_cb, NULL); - osmo_timer_schedule(&sgsn->llme_timer, GPRS_LLME_CHECK_TICK, 0); + int rc; + + /* start control interface after reading config for + * ctrl_vty_get_bind_addr() */ + sgsn->ctrlh = ctrl_interface_setup(NULL, OSMO_CTRL_PORT_SGSN, NULL); + if (!sgsn->ctrlh) { + LOGP(DGPRS, LOGL_ERROR, "Failed to create CTRL interface.\n"); + return -EIO; + } + + rc = sgsn_ctrl_cmds_install(); + if (rc != 0) { + LOGP(DGPRS, LOGL_ERROR, "Failed to install CTRL commands.\n"); + return -EFAULT; + } + + rc = gprs_subscr_init(sgsn); + if (rc < 0) { + LOGP(DGPRS, LOGL_FATAL, "Cannot set up SGSN\n"); + return rc; + } + return 0; } diff --git a/src/sgsn/sgsn_cdr.c b/src/sgsn/sgsn_cdr.c index 24d7524..ac0a6fd 100644 --- a/src/sgsn/sgsn_cdr.c +++ b/src/sgsn/sgsn_cdr.c @@ -41,7 +41,6 @@ /* TODO...avoid going through a global */ extern struct sgsn_instance *sgsn; -extern struct ctrl_handle *g_ctrlh; /** * The CDR module will generate an entry like: @@ -65,7 +64,7 @@ static void send_cdr_trap(char *value) { - if (ctrl_cmd_send_trap(g_ctrlh, "cdr-v1", value) < 0) + if (ctrl_cmd_send_trap(sgsn->ctrlh, "cdr-v1", value) < 0) LOGP(DGPRS, LOGL_ERROR, "Failed to create and send TRAP cdr-v1\n"); } @@ -300,3 +299,8 @@ return 0; } + +void sgsn_cdr_release(struct sgsn_instance *sgsn) +{ + osmo_signal_unregister_handler(SS_SGSN, handle_sgsn_sig, sgsn); +} diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 3ad0881..7253348 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -67,9 +67,6 @@ #include <osmocom/sgsn/gprs_subscriber.h> #include <osmocom/sgsn/gtp.h> -#include <osmocom/ctrl/control_if.h> -#include <osmocom/ctrl/ports.h> - #include <gtp.h> #include <osmocom/sgsn/sgsn_rim.h> @@ -85,7 +82,6 @@ #include <getopt.h> void *tall_sgsn_ctx; -struct ctrl_handle *g_ctrlh; struct gprs_ns2_inst *sgsn_nsi; static int daemonize = 0; @@ -418,16 +414,11 @@ bssgp_set_bssgp_callback(sgsn_bssgp_dispatch_ns_unitdata_req_cb, sgsn_nsi); gprs_llc_init("/usr/local/lib/osmocom/crypt/"); - sgsn_rate_ctr_init(); - sgsn_inst_init(sgsn); - gprs_ns2_vty_init(sgsn_nsi); bssgp_vty_init(); gprs_llc_vty_init(); gprs_sndcp_vty_init(); - sgsn_auth_init(sgsn); - sgsn_cdr_init(sgsn); handle_options(argc, argv); @@ -458,20 +449,6 @@ if (rc < 0) exit(1); - /* start control interface after reading config for - * ctrl_vty_get_bind_addr() */ - g_ctrlh = ctrl_interface_setup(NULL, OSMO_CTRL_PORT_SGSN, NULL); - if (!g_ctrlh) { - LOGP(DGPRS, LOGL_ERROR, "Failed to create CTRL interface.\n"); - exit(1); - } - - if (sgsn_ctrl_cmds_install() != 0) { - LOGP(DGPRS, LOGL_ERROR, "Failed to install CTRL commands.\n"); - exit(1); - } - - rc = sgsn_gtp_init(sgsn); if (rc) { LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen on GTP socket\n"); @@ -479,9 +456,9 @@ } else LOGP(DGPRS, LOGL_NOTICE, "libGTP v%s initialized\n", gtp_version()); - rc = gprs_subscr_init(sgsn); + rc = sgsn_inst_init(sgsn); if (rc < 0) { - LOGP(DGPRS, LOGL_FATAL, "Cannot set up subscriber management\n"); + LOGP(DGPRS, LOGL_FATAL, "Cannot set up SGSN\n"); exit(2); } diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index 18951f8..4affa9f 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -99,7 +99,7 @@ #define NONSPEC_X1001_SECS 5 /* wait for a RANAP Release Complete */ -static struct osmo_tdef sgsn_T_defs[] = { +struct osmo_tdef sgsn_T_defs[] = { { .T=3312, .default_val=GSM0408_T3312_SECS, .desc="Periodic RA Update timer (s)" }, { .T=3313, .default_val=GSM0408_T3313_SECS, .desc="Waiting for paging response timer (s)" }, { .T=3314, .default_val=GSM0408_T3314_SECS, .desc="READY timer. Force to STANDBY on expiry timer (s)" }, @@ -1739,12 +1739,6 @@ { g_cfg = cfg; - g_cfg->T_defs = sgsn_T_defs; - osmo_tdefs_reset(g_cfg->T_defs); - - g_cfg->T_defs_gtp = gtp_T_defs; - osmo_tdefs_reset(g_cfg->T_defs_gtp); - install_element_ve(&show_sgsn_cmd); //install_element_ve(&show_mmctx_tlli_cmd); install_element_ve(&show_mmctx_imsi_cmd); diff --git a/tests/sgsn/Makefile.am b/tests/sgsn/Makefile.am index e6cb71b..8deec24 100644 --- a/tests/sgsn/Makefile.am +++ b/tests/sgsn/Makefile.am @@ -7,6 +7,7 @@ -Wall \ -ggdb3 \ $(LIBOSMOCORE_CFLAGS) \ + $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ $(LIBOSMOGSUPCLIENT_CFLAGS) \ @@ -58,6 +59,8 @@ $(top_builddir)/src/sgsn/gprs_sgsn.o \ $(top_builddir)/src/sgsn/gtp_ggsn.o \ $(top_builddir)/src/sgsn/gtp_mme.o \ + $(top_builddir)/src/sgsn/sgsn_cdr.o \ + $(top_builddir)/src/sgsn/sgsn_ctrl.o \ $(top_builddir)/src/sgsn/sgsn_vty.o \ $(top_builddir)/src/sgsn/sgsn_libgtp.o \ $(top_builddir)/src/sgsn/sgsn_auth.o \ @@ -77,6 +80,7 @@ $(top_builddir)/src/gprs/sgsn_ares.o \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSUPCLIENT_LIBS) \ diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c index 18d3c19..7d3bde5 100644 --- a/tests/sgsn/sgsn_test.c +++ b/tests/sgsn/sgsn_test.c @@ -45,15 +45,7 @@ #include "gprs_gb_parse.h" void *tall_sgsn_ctx; -static struct sgsn_instance sgsn_inst = { - .config_file = "osmo_sgsn.cfg", - .cfg = { - .gtp_statedir = "./", - .auth_policy = SGSN_AUTH_POLICY_CLOSED, - .gea_encryption_mask = 0x1, - }, -}; -struct sgsn_instance *sgsn = &sgsn_inst; +struct sgsn_instance *sgsn; unsigned sgsn_tx_counter = 0; struct msgb *last_msg = NULL; struct gprs_gb_parse_context last_dl_parse_ctx; @@ -70,6 +62,7 @@ static void cleanup_test(void) { reset_last_msg(); + TALLOC_FREE(sgsn); } static uint32_t get_new_ptmsi(const struct gprs_gb_parse_context *parse_ctx) @@ -574,6 +567,7 @@ printf("Testing subscriber GSUP handling\n"); update_subscriber_data_cb = my_dummy_sgsn_update_subscriber_data; + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* Check for emptiness */ OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); @@ -750,6 +744,7 @@ uint32_t local_tlli; printf("Testing GMM detach\n"); + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* DTAP - Detach Request (MO) */ /* normal detach, power_off = 0 */ @@ -791,6 +786,7 @@ uint32_t local_tlli; printf("Testing GMM detach (power off)\n"); + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* DTAP - Detach Request (MO) */ /* normal detach, power_off = 1 */ @@ -831,6 +827,7 @@ uint32_t local_tlli; printf("Testing GMM detach (no MMCTX)\n"); + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* DTAP - Detach Request (MO) */ /* normal detach, power_off = 0 */ @@ -1197,6 +1194,7 @@ }; printf("Testing GMM reject\n"); + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* reset the PRNG used by sgsn_alloc_ptmsi */ srand(1); @@ -1243,6 +1241,9 @@ uint32_t foreign_tlli; uint32_t local_tlli = 0; struct gprs_llc_lle *lle; + + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); + sgsn->cfg.gea_encryption_mask = 0x1; const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; /* DTAP - Attach Request */ @@ -1273,8 +1274,7 @@ }; printf("Testing cancellation\n"); - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_OPEN; + sgsn->cfg.auth_policy = SGSN_AUTH_POLICY_OPEN; foreign_tlli = gprs_tmsi2tlli(0xc0000023, TLLI_FOREIGN); @@ -1456,6 +1456,7 @@ printf("Testing GGSN selection\n"); osmo_gsup_client_send_cb = my_gsup_client_send_dummy; + sgsn = sgsn_instance_alloc(tall_sgsn_ctx); /* Check for emptiness */ OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); @@ -1654,11 +1655,7 @@ tall_sgsn_ctx = talloc_named_const(osmo_sgsn_ctx, 0, "sgsn"); msgb_ctx = msgb_talloc_ctx_init(osmo_sgsn_ctx, 0); - sgsn_rate_ctr_init(); - sgsn_auth_init(sgsn); - gprs_subscr_init(sgsn); vty_init(&vty_info); - sgsn_vty_init(&sgsn->cfg); test_llme(); test_subscriber(); @@ -1678,7 +1675,7 @@ talloc_report_full(osmo_sgsn_ctx, stderr); OSMO_ASSERT(talloc_total_blocks(msgb_ctx) == 1); - OSMO_ASSERT(talloc_total_blocks(tall_sgsn_ctx) == 2); + OSMO_ASSERT(talloc_total_blocks(tall_sgsn_ctx) == 1); return 0; } -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30880
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idf60519b8e475b94d38bbb69e737132a5afaefab Gerrit-Change-Number: 30880 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Move struct sgsn_subscriber_pdp_data to gprs_subscriber.h
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30883
) Change subject: Move struct sgsn_subscriber_pdp_data to gprs_subscriber.h ...................................................................... Move struct sgsn_subscriber_pdp_data to gprs_subscriber.h The functions driving its lifcyecles are already in gprs_subscriber.c, and are used mainly by functions in the same file, hence move it to the related header to further shrink gprs_sgsn.h. Change-Id: Iff7be91af130a3317d57d3649c17e3d5d2540e7a --- M include/osmocom/sgsn/gprs_sgsn.h M include/osmocom/sgsn/gprs_subscriber.h M tests/sgsn/sgsn_test.c 3 files changed, 16 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 6d51b30..8aaabfd 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -382,20 +382,6 @@ char imsi[OSMO_IMSI_BUF_SIZE]; }; -/* see GSM 09.02, 17.7.1, PDP-Context and GPRSSubscriptionData */ -/* see GSM 09.02, B.1, gprsSubscriptionData */ -struct sgsn_subscriber_pdp_data { - struct llist_head list; - - unsigned int context_id; - uint16_t pdp_type; - char apn_str[GSM_APN_LENGTH]; - uint8_t qos_subscribed[20]; - size_t qos_subscribed_len; - uint8_t pdp_charg[2]; - bool has_pdp_charg; -}; - #define SGSN_ERROR_CAUSE_NONE (-1) #define LOGGSUBSCRP(level, subscr, fmt, args...) \ diff --git a/include/osmocom/sgsn/gprs_subscriber.h b/include/osmocom/sgsn/gprs_subscriber.h index 2e53bdf..d84a5d6 100644 --- a/include/osmocom/sgsn/gprs_subscriber.h +++ b/include/osmocom/sgsn/gprs_subscriber.h @@ -48,6 +48,22 @@ bool has_pdp_charg; }; +/* see GSM 09.02, 17.7.1, PDP-Context and GPRSSubscriptionData */ +/* see GSM 09.02, B.1, gprsSubscriptionData */ +struct sgsn_subscriber_pdp_data { + struct llist_head list; + + unsigned int context_id; + uint16_t pdp_type; + char apn_str[GSM_APN_LENGTH]; + uint8_t qos_subscribed[20]; + size_t qos_subscribed_len; + uint8_t pdp_charg[2]; + bool has_pdp_charg; +}; + +struct sgsn_subscriber_pdp_data *sgsn_subscriber_pdp_data_alloc(struct sgsn_subscriber_data *sdata); + struct gprs_subscr { struct llist_head entry; int use_count; diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c index 7d3bde5..e7f820f 100644 --- a/tests/sgsn/sgsn_test.c +++ b/tests/sgsn/sgsn_test.c @@ -1435,9 +1435,6 @@ cleanup_test(); } -struct sgsn_subscriber_pdp_data* sgsn_subscriber_pdp_data_alloc( - struct sgsn_subscriber_data *sdata); - static void test_ggsn_selection(void) { struct apn_ctx *actxs[4]; -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30883
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iff7be91af130a3317d57d3649c17e3d5d2540e7a Gerrit-Change-Number: 30883 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: sgsn.h: Drop declaration of non existing function
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30884
) Change subject: sgsn.h: Drop declaration of non existing function ...................................................................... sgsn.h: Drop declaration of non existing function Change-Id: Idabea56d1ff89e51b517b15771a5a1ed3b050ec9 --- M include/osmocom/sgsn/sgsn.h 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/sgsn.h b/include/osmocom/sgsn/sgsn.h index 90f91f7..76d5702 100644 --- a/include/osmocom/sgsn/sgsn.h +++ b/include/osmocom/sgsn/sgsn.h @@ -169,9 +169,6 @@ struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx); int sgsn_inst_init(struct sgsn_instance *sgsn); -/* Main input function for Gb proxy */ -int sgsn_rcvmsg(struct msgb *msg, struct gprs_ns2_vc *nsvc, uint16_t ns_bvci); - /* sgsn_libgtp.c */ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn, struct sgsn_mm_ctx *mmctx, -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30884
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idabea56d1ff89e51b517b15771a5a1ed3b050ec9 Gerrit-Change-Number: 30884 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Move struct apn_ctx and APN related definitions to its own file
by pespin
pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30882
) Change subject: Move struct apn_ctx and APN related definitions to its own file ...................................................................... Move struct apn_ctx and APN related definitions to its own file This allows further shrinking of gprs_sgsn.{c,h} and also being able to use GSM_APN_LENGTH on different headers easily (needed by follow-up patch). Change-Id: Id225ed8b84e1376f4a30f17dd4b153b6b1a6efa8 --- M include/osmocom/sgsn/Makefile.am A include/osmocom/sgsn/apn.h M include/osmocom/sgsn/gprs_sgsn.h M include/osmocom/sgsn/gprs_subscriber.h M src/sgsn/Makefile.am A src/sgsn/apn.c M src/sgsn/gprs_sgsn.c M tests/sgsn/Makefile.am 8 files changed, 154 insertions(+), 113 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/Makefile.am b/include/osmocom/sgsn/Makefile.am index fc4f597..4d43c6d 100644 --- a/include/osmocom/sgsn/Makefile.am +++ b/include/osmocom/sgsn/Makefile.am @@ -1,4 +1,5 @@ noinst_HEADERS = \ + apn.h \ common.h \ crc24.h \ debug.h \ diff --git a/include/osmocom/sgsn/apn.h b/include/osmocom/sgsn/apn.h new file mode 100644 index 0000000..adf62e2 --- /dev/null +++ b/include/osmocom/sgsn/apn.h @@ -0,0 +1,22 @@ +#pragma once + +#include <osmocom/core/linuxlist.h> + +struct sgsn_ggsn_ctx; + +#define GSM_APN_LENGTH 102 + +extern struct llist_head sgsn_apn_ctxts; + +struct apn_ctx { + struct llist_head list; + struct sgsn_ggsn_ctx *ggsn; + char *name; + char *imsi_prefix; + char *description; +}; + +struct apn_ctx *sgsn_apn_ctx_find_alloc(const char *name, const char *imsi_prefix); +void sgsn_apn_ctx_free(struct apn_ctx *actx); +struct apn_ctx *sgsn_apn_ctx_by_name(const char *name, const char *imsi_prefix); +struct apn_ctx *sgsn_apn_ctx_match(const char *name, const char *imsi_prefix); diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index 541d854..6d51b30 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -14,10 +14,10 @@ #include <osmocom/gsm/protocol/gsm_23_003.h> #include <osmocom/crypt/auth.h> +#include <osmocom/sgsn/apn.h> #include <osmocom/sgsn/gprs_subscriber.h> #define GSM_EXTENSION_LENGTH 15 -#define GSM_APN_LENGTH 102 struct gprs_llc_lle; struct ctrl_handle; @@ -362,21 +362,7 @@ void sgsn_pdp_ctx_terminate(struct sgsn_pdp_ctx *pdp); void sgsn_pdp_ctx_free(struct sgsn_pdp_ctx *pdp); -struct apn_ctx { - struct llist_head list; - struct sgsn_ggsn_ctx *ggsn; - char *name; - char *imsi_prefix; - char *description; -}; - -struct apn_ctx *sgsn_apn_ctx_find_alloc(const char *name, const char *imsi_prefix); -void sgsn_apn_ctx_free(struct apn_ctx *actx); -struct apn_ctx *sgsn_apn_ctx_by_name(const char *name, const char *imsi_prefix); -struct apn_ctx *sgsn_apn_ctx_match(const char *name, const char *imsi_prefix); - extern struct llist_head sgsn_mm_ctxts; -extern struct llist_head sgsn_apn_ctxts; extern struct llist_head sgsn_pdp_ctxts; uint32_t sgsn_alloc_ptmsi(void); diff --git a/include/osmocom/sgsn/gprs_subscriber.h b/include/osmocom/sgsn/gprs_subscriber.h index a961c45..2e53bdf 100644 --- a/include/osmocom/sgsn/gprs_subscriber.h +++ b/include/osmocom/sgsn/gprs_subscriber.h @@ -6,6 +6,8 @@ #include <osmocom/core/linuxlist.h> #include <osmocom/gsm/protocol/gsm_23_003.h> +#include <osmocom/sgsn/apn.h> + struct sgsn_instance; struct sgsn_mm_ctx; diff --git a/src/sgsn/Makefile.am b/src/sgsn/Makefile.am index 638eacc..ba752ad 100644 --- a/src/sgsn/Makefile.am +++ b/src/sgsn/Makefile.am @@ -40,6 +40,7 @@ $(NULL) osmo_sgsn_SOURCES = \ + apn.c \ gprs_bssgp.c \ gprs_gmm_attach.c \ gprs_gmm.c \ diff --git a/src/sgsn/apn.c b/src/sgsn/apn.c new file mode 100644 index 0000000..d6d5372 --- /dev/null +++ b/src/sgsn/apn.c @@ -0,0 +1,126 @@ +/* APN contexts */ + +/* (C) 2009-2015 by Harald Welte <laforge(a)gnumonks.org> + * (C) 2010 by On-Waves + * (C) 2019 by sysmocom s.f.m.c. GmbH <info(a)sysmocom.de> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <
http://www.gnu.org/licenses/
>. + * + */ + +#include <string.h> +#include <talloc.h> + +#include <osmocom/sgsn/apn.h> + +extern void *tall_sgsn_ctx; + +LLIST_HEAD(sgsn_apn_ctxts); + +static struct apn_ctx *sgsn_apn_ctx_alloc(const char *ap_name, const char *imsi_prefix) +{ + struct apn_ctx *actx; + + actx = talloc_zero(tall_sgsn_ctx, struct apn_ctx); + if (!actx) + return NULL; + actx->name = talloc_strdup(actx, ap_name); + actx->imsi_prefix = talloc_strdup(actx, imsi_prefix); + + llist_add_tail(&actx->list, &sgsn_apn_ctxts); + + return actx; +} + +void sgsn_apn_ctx_free(struct apn_ctx *actx) +{ + llist_del(&actx->list); + talloc_free(actx); +} + +struct apn_ctx *sgsn_apn_ctx_match(const char *name, const char *imsi) +{ + struct apn_ctx *actx; + struct apn_ctx *found_actx = NULL; + size_t imsi_prio = 0; + size_t name_prio = 0; + size_t name_req_len = strlen(name); + + llist_for_each_entry(actx, &sgsn_apn_ctxts, list) { + size_t name_ref_len, imsi_ref_len; + const char *name_ref_start, *name_match_start; + + imsi_ref_len = strlen(actx->imsi_prefix); + if (strncmp(actx->imsi_prefix, imsi, imsi_ref_len) != 0) + continue; + + if (imsi_ref_len < imsi_prio) + continue; + + /* IMSI matches */ + + name_ref_start = &actx->name[0]; + if (name_ref_start[0] == '*') { + /* Suffix match */ + name_ref_start += 1; + name_ref_len = strlen(name_ref_start); + if (name_ref_len > name_req_len) + continue; + } else { + name_ref_len = strlen(name_ref_start); + if (name_ref_len != name_req_len) + continue; + } + + name_match_start = name + (name_req_len - name_ref_len); + if (strcasecmp(name_match_start, name_ref_start) != 0) + continue; + + /* IMSI and name match */ + + if (imsi_ref_len == imsi_prio && name_ref_len < name_prio) + /* Lower priority, skip */ + continue; + + imsi_prio = imsi_ref_len; + name_prio = name_ref_len; + found_actx = actx; + } + return found_actx; +} + +struct apn_ctx *sgsn_apn_ctx_by_name(const char *name, const char *imsi_prefix) +{ + struct apn_ctx *actx; + + llist_for_each_entry(actx, &sgsn_apn_ctxts, list) { + if (strcasecmp(name, actx->name) == 0 && + strcasecmp(imsi_prefix, actx->imsi_prefix) == 0) + return actx; + } + return NULL; +} + +struct apn_ctx *sgsn_apn_ctx_find_alloc(const char *name, const char *imsi_prefix) +{ + struct apn_ctx *actx; + + actx = sgsn_apn_ctx_by_name(name, imsi_prefix); + if (!actx) + actx = sgsn_apn_ctx_alloc(name, imsi_prefix); + + return actx; +} diff --git a/src/sgsn/gprs_sgsn.c b/src/sgsn/gprs_sgsn.c index ea07862..cdfa029 100644 --- a/src/sgsn/gprs_sgsn.c +++ b/src/sgsn/gprs_sgsn.c @@ -64,7 +64,6 @@ extern struct osmo_tdef sgsn_T_defs[]; LLIST_HEAD(sgsn_mm_ctxts); -LLIST_HEAD(sgsn_apn_ctxts); LLIST_HEAD(sgsn_pdp_ctxts); const struct value_string sgsn_ran_type_names[] = { @@ -533,103 +532,6 @@ talloc_free(pdp); } -/* APN contexts */ - -static struct apn_ctx *sgsn_apn_ctx_alloc(const char *ap_name, const char *imsi_prefix) -{ - struct apn_ctx *actx; - - actx = talloc_zero(tall_sgsn_ctx, struct apn_ctx); - if (!actx) - return NULL; - actx->name = talloc_strdup(actx, ap_name); - actx->imsi_prefix = talloc_strdup(actx, imsi_prefix); - - llist_add_tail(&actx->list, &sgsn_apn_ctxts); - - return actx; -} - -void sgsn_apn_ctx_free(struct apn_ctx *actx) -{ - llist_del(&actx->list); - talloc_free(actx); -} - -struct apn_ctx *sgsn_apn_ctx_match(const char *name, const char *imsi) -{ - struct apn_ctx *actx; - struct apn_ctx *found_actx = NULL; - size_t imsi_prio = 0; - size_t name_prio = 0; - size_t name_req_len = strlen(name); - - llist_for_each_entry(actx, &sgsn_apn_ctxts, list) { - size_t name_ref_len, imsi_ref_len; - const char *name_ref_start, *name_match_start; - - imsi_ref_len = strlen(actx->imsi_prefix); - if (strncmp(actx->imsi_prefix, imsi, imsi_ref_len) != 0) - continue; - - if (imsi_ref_len < imsi_prio) - continue; - - /* IMSI matches */ - - name_ref_start = &actx->name[0]; - if (name_ref_start[0] == '*') { - /* Suffix match */ - name_ref_start += 1; - name_ref_len = strlen(name_ref_start); - if (name_ref_len > name_req_len) - continue; - } else { - name_ref_len = strlen(name_ref_start); - if (name_ref_len != name_req_len) - continue; - } - - name_match_start = name + (name_req_len - name_ref_len); - if (strcasecmp(name_match_start, name_ref_start) != 0) - continue; - - /* IMSI and name match */ - - if (imsi_ref_len == imsi_prio && name_ref_len < name_prio) - /* Lower priority, skip */ - continue; - - imsi_prio = imsi_ref_len; - name_prio = name_ref_len; - found_actx = actx; - } - return found_actx; -} - -struct apn_ctx *sgsn_apn_ctx_by_name(const char *name, const char *imsi_prefix) -{ - struct apn_ctx *actx; - - llist_for_each_entry(actx, &sgsn_apn_ctxts, list) { - if (strcasecmp(name, actx->name) == 0 && - strcasecmp(imsi_prefix, actx->imsi_prefix) == 0) - return actx; - } - return NULL; -} - -struct apn_ctx *sgsn_apn_ctx_find_alloc(const char *name, const char *imsi_prefix) -{ - struct apn_ctx *actx; - - actx = sgsn_apn_ctx_by_name(name, imsi_prefix); - if (!actx) - actx = sgsn_apn_ctx_alloc(name, imsi_prefix); - - return actx; -} - uint32_t sgsn_alloc_ptmsi(void) { struct sgsn_mm_ctx *mm; diff --git a/tests/sgsn/Makefile.am b/tests/sgsn/Makefile.am index 8deec24..853d8f1 100644 --- a/tests/sgsn/Makefile.am +++ b/tests/sgsn/Makefile.am @@ -48,6 +48,7 @@ $(NULL) sgsn_test_LDADD = \ + $(top_builddir)/src/sgsn/apn.o \ $(top_builddir)/src/sgsn/gprs_bssgp.o \ $(top_builddir)/src/sgsn/gprs_llc.o \ $(top_builddir)/src/sgsn/gprs_ns.o \ -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30882
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id225ed8b84e1376f4a30f17dd4b153b6b1a6efa8 Gerrit-Change-Number: 30882 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Properly split llc->sndcp->gtp unitdata pathi through extra func call
by pespin
pespin has posted comments on this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30885
) Change subject: Properly split llc->sndcp->gtp unitdata pathi through extra func call ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30885
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia544a9dd4c0c7647b0c1b64ca110351f40820618 Gerrit-Change-Number: 30885 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 10 Jan 2023 21:06:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Keep sgsn subsystems under struct sgsn_instance lifecycle
by pespin
pespin has posted comments on this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30880
) Change subject: Keep sgsn subsystems under struct sgsn_instance lifecycle ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30880
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Idf60519b8e475b94d38bbb69e737132a5afaefab Gerrit-Change-Number: 30880 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Comment-Date: Tue, 10 Jan 2023 21:06:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: Remove unneeded extern declaration from libosmocotrl
by pespin
pespin has posted comments on this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30879
) Change subject: Remove unneeded extern declaration from libosmocotrl ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30879
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I464df2d03538c71f6666046c67170746690e723d Gerrit-Change-Number: 30879 Gerrit-PatchSet: 1 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: Tue, 10 Jan 2023 21:06:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 5 months
1
0
0
0
Change in osmo-sgsn[master]: vty: Introduce encryption cipher-plugin-path command
by lynxis lazus
Attention is currently required from: pespin, dexter. lynxis lazus has posted comments on this change. (
https://gerrit.osmocom.org/c/osmo-sgsn/+/30909
) Change subject: vty: Introduce encryption cipher-plugin-path command ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit
https://gerrit.osmocom.org/c/osmo-sgsn/+/30909
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4f965c7afafa193f4d7486750dd3e43cca22bb65 Gerrit-Change-Number: 30909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 10 Jan 2023 19:09:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
2 years, 5 months
1
0
0
0
← Newer
1
...
151
152
153
154
155
156
157
...
221
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
Results per page:
10
25
50
100
200