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 -----
  • 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 2024

  • 1 participants
  • 1559 discussions
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
by laforge 09 Jan '24

09 Jan '24
Attention is currently required from: Hoernchen, fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email ) Change subject: Revert "logging: add log level cache" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be Gerrit-Change-Number: 35524 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 09 Jan 2024 16:38:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
by Hoernchen 09 Jan '24

09 Jan '24
Attention is currently required from: fixeria, laforge. Hello Jenkins Builder, laforge, fixeria, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email to review the following change. Change subject: Revert "logging: add log level cache" ...................................................................... Revert "logging: add log level cache" This reverts commit 7dc6d4a629a37bb081d62f6ce61f4e5ee0237247. Reason for revert: other tests are failing Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be --- M include/osmocom/core/logging.h M src/core/libosmocore.map M src/core/logging.c M src/vty/logging_vty.c M tests/ctrl/ctrl_test.c 5 files changed, 15 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/35524/1 diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index e4859cd..e8433a1 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -409,7 +409,7 @@ /* filter on the targets */ void log_set_all_filter(struct log_target *target, int); -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level); + void log_set_use_color(struct log_target *target, int); void log_set_print_extended_timestamp(struct log_target *target, int); void log_set_print_timestamp(struct log_target *target, int); diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map index 06a3864..b66e37d 100644 --- a/src/core/libosmocore.map +++ b/src/core/libosmocore.map @@ -58,7 +58,6 @@ log_add_target; log_category_name; log_check_level; -log_cache_update; log_del_target; log_enable_multithread; log_fini; diff --git a/src/core/logging.c b/src/core/logging.c index 906d664..6941f9b 100644 --- a/src/core/logging.c +++ b/src/core/logging.c @@ -93,68 +93,6 @@ static __thread long int logging_tid; #if (!EMBEDDED) -/*! One global copy that contains the union of log levels for all targets -* for all categories, used for quick lock free checks of log targets. */ -static volatile uint8_t *log_level_lookup_cache; - -/*! Updates cache for all targets for all categies, caller must hold osmo_log_tgt_mutex. */ -static void log_cache_update_all(void) -{ - struct log_target *tgt; - uint8_t tmp_en[osmo_log_info->num_cat]; - uint8_t tmp_level[osmo_log_info->num_cat]; - memset(tmp_en, 0, osmo_log_info->num_cat); - memset(tmp_level, UINT8_MAX, osmo_log_info->num_cat); - - /* values can also decrease.. */ - llist_for_each_entry(tgt, &osmo_log_target_list, entry) { - for (int i = 0; i < osmo_log_info->num_cat; i++) { - struct log_category *cat = &tgt->categories[i]; - tmp_en[i] = OSMO_MAX(tmp_en[i], cat->enabled); - tmp_level[i] = OSMO_MIN(tmp_level[i], cat->loglevel); - tmp_level[i] = tgt->loglevel ? OSMO_MIN(tmp_level[i], tgt->loglevel) : tmp_level[i]; - } - } - - for (int i = 0; i < osmo_log_info->num_cat; i++) - log_level_lookup_cache[i] = tmp_en[i] ? tmp_level[i] : UINT8_MAX; -} - -/*! Updates single cache entry, caller must hold osmo_log_tgt_mutex. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] enabled log category enabled? - * \param[in] level log level - */ -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level) -{ - struct log_target *tgt; - struct log_category tmp = { UINT8_MAX, 0 }; - - /* values can also decrease.. */ - llist_for_each_entry(tgt, &osmo_log_target_list, entry) { - struct log_category *cat = &tgt->categories[mapped_subsys]; - tmp.enabled = OSMO_MAX(tmp.enabled, cat->enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, cat->loglevel); - tmp.loglevel = tgt->loglevel ? OSMO_MIN(tmp.loglevel, tgt->loglevel) : tmp.loglevel; - } - tmp.enabled = OSMO_MAX(tmp.enabled, enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, level); - - log_level_lookup_cache[mapped_subsys] = tmp.enabled ? tmp.loglevel : UINT8_MAX; -} - -/*! Queries log level cache. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] level log level - * \returns true if logging should happen for at least one log target -*/ -static bool log_cache_check(int mapped_subsys, int level) -{ - return (level < log_level_lookup_cache[mapped_subsys]) ? false : true; -} - /*! This mutex must be held while using osmo_log_target_list or any of its log_targets in a multithread program. Prevents race conditions between threads like producing unordered timestamps or VTY deleting a target while another @@ -488,10 +426,6 @@ } } while ((category_token = strtok(NULL, ":"))); -#if !defined(EMBEDDED) - log_cache_update_all(); -#endif - free(mask); } @@ -746,11 +680,6 @@ subsys = map_subsys(subsys); -#if !defined(EMBEDDED) - if (!log_cache_check(subsys, level)) - return; -#endif - log_tgt_mutex_lock(); llist_for_each_entry(tar, &osmo_log_target_list, entry) { @@ -825,9 +754,6 @@ void log_add_target(struct log_target *target) { llist_add_tail(&target->entry, &osmo_log_target_list); -#if (!EMBEDDED) - log_cache_update_all(); -#endif } /*! Unregister a log target from the logging core @@ -836,9 +762,6 @@ void log_del_target(struct log_target *target) { llist_del(&target->entry); -#if (!EMBEDDED) - log_cache_update_all(); -#endif } /*! Reset (clear) the logging context */ @@ -999,9 +922,6 @@ void log_set_log_level(struct log_target *target, int log_level) { target->loglevel = log_level; -#if !defined(EMBEDDED) - log_cache_update_all(); -#endif } /*! Set a category filter on a given log target @@ -1018,10 +938,6 @@ category = map_subsys(category); target->categories[category].enabled = !!enable; target->categories[category].loglevel = level; - -#if !defined(EMBEDDED) - log_cache_update(category, !!enable, level); -#endif } #if (!EMBEDDED) @@ -1130,15 +1046,6 @@ /* global log level */ target->loglevel = 0; - -#if !defined(EMBEDDED) - /* update cache */ - for (i = 0; i < osmo_log_info->num_cat; i++) { - const struct log_info_cat *c = &osmo_log_info->cat[i]; - log_cache_update(i, c->enabled, c->loglevel); - } -#endif - return target; } @@ -1517,15 +1424,6 @@ osmo_log_info->num_cat += inf->num_cat; } -#if !defined(EMBEDDED) - log_level_lookup_cache = talloc_zero_array(osmo_log_info, uint8_t, osmo_log_info->num_cat); - if (!log_level_lookup_cache) { - talloc_free(osmo_log_info); - osmo_log_info = NULL; - return -ENOMEM; - } -#endif - cat_ptr = talloc_zero_array(osmo_log_info, struct log_info_cat, osmo_log_info->num_cat); if (!cat_ptr) { @@ -1556,12 +1454,6 @@ osmo_log_info->cat = cat_ptr; -#if !defined(EMBEDDED) - /* copy everything for level lookup cache */ - for (i = 0; i < osmo_log_info->num_cat; i++) - log_level_lookup_cache[i] = cat_ptr[i].loglevel; -#endif - return 0; } @@ -1594,11 +1486,6 @@ subsys = map_subsys(subsys); -#if !defined(EMBEDDED) - if (!log_cache_check(subsys, level)) - return 0; -#endif - /* TODO: The following could/should be cached (update on config) */ log_tgt_mutex_lock(); diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 678ae68..2a07422 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -382,10 +382,6 @@ tgt->categories[category].enabled = 1; tgt->categories[category].loglevel = level; -#if !defined(EMBEDDED) - log_cache_update(category, 1, level); -#endif - RET_WITH_UNLOCK(CMD_SUCCESS); } @@ -410,9 +406,6 @@ cat->enabled = 1; cat->loglevel = level; -#if !defined(EMBEDDED) - log_cache_update(i, 1, level); -#endif } RET_WITH_UNLOCK(CMD_SUCCESS); } diff --git a/tests/ctrl/ctrl_test.c b/tests/ctrl/ctrl_test.c index 7b7e6ce..1d4d4d7 100644 --- a/tests/ctrl/ctrl_test.c +++ b/tests/ctrl/ctrl_test.c @@ -482,7 +482,7 @@ test_deferred_cmd(); /* Expecting root ctx + msgb root ctx + 5 logging elements */ - if (talloc_total_blocks(ctx) != 8) { + if (talloc_total_blocks(ctx) != 7) { talloc_report_full(ctx, stdout); OSMO_ASSERT(false); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be Gerrit-Change-Number: 35524 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in libosmocore[master]: logging: add log level cache
by Hoernchen 09 Jan '24

09 Jan '24
Hoernchen has created a revert of this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email ) Change subject: logging: add log level cache ...................................................................... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: revert
1 0
0 0
[M] Change in libosmocore[master]: logging: add log level cache
by Hoernchen 09 Jan '24

09 Jan '24
Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email ) Change subject: logging: add log level cache ...................................................................... logging: add log level cache This ensures multithreaded logging attempts, in particular ones that do nothing, do not hold the lock just for checking the level, which interferes with other logging attempts. Closes: OS#5818 Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d --- M include/osmocom/core/logging.h M src/core/libosmocore.map M src/core/logging.c M src/vty/logging_vty.c M tests/ctrl/ctrl_test.c 5 files changed, 138 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve Hoernchen: Looks good to me, approved diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index e8433a1..e4859cd 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -409,7 +409,7 @@ /* filter on the targets */ void log_set_all_filter(struct log_target *target, int); - +void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level); void log_set_use_color(struct log_target *target, int); void log_set_print_extended_timestamp(struct log_target *target, int); void log_set_print_timestamp(struct log_target *target, int); diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map index b66e37d..06a3864 100644 --- a/src/core/libosmocore.map +++ b/src/core/libosmocore.map @@ -58,6 +58,7 @@ log_add_target; log_category_name; log_check_level; +log_cache_update; log_del_target; log_enable_multithread; log_fini; diff --git a/src/core/logging.c b/src/core/logging.c index 6941f9b..906d664 100644 --- a/src/core/logging.c +++ b/src/core/logging.c @@ -93,6 +93,68 @@ static __thread long int logging_tid; #if (!EMBEDDED) +/*! One global copy that contains the union of log levels for all targets +* for all categories, used for quick lock free checks of log targets. */ +static volatile uint8_t *log_level_lookup_cache; + +/*! Updates cache for all targets for all categies, caller must hold osmo_log_tgt_mutex. */ +static void log_cache_update_all(void) +{ + struct log_target *tgt; + uint8_t tmp_en[osmo_log_info->num_cat]; + uint8_t tmp_level[osmo_log_info->num_cat]; + memset(tmp_en, 0, osmo_log_info->num_cat); + memset(tmp_level, UINT8_MAX, osmo_log_info->num_cat); + + /* values can also decrease.. */ + llist_for_each_entry(tgt, &osmo_log_target_list, entry) { + for (int i = 0; i < osmo_log_info->num_cat; i++) { + struct log_category *cat = &tgt->categories[i]; + tmp_en[i] = OSMO_MAX(tmp_en[i], cat->enabled); + tmp_level[i] = OSMO_MIN(tmp_level[i], cat->loglevel); + tmp_level[i] = tgt->loglevel ? OSMO_MIN(tmp_level[i], tgt->loglevel) : tmp_level[i]; + } + } + + for (int i = 0; i < osmo_log_info->num_cat; i++) + log_level_lookup_cache[i] = tmp_en[i] ? tmp_level[i] : UINT8_MAX; +} + +/*! Updates single cache entry, caller must hold osmo_log_tgt_mutex. + * + * \param[in] mapped_subsys plain category index (after mapping) + * \param[in] enabled log category enabled? + * \param[in] level log level + */ +void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level) +{ + struct log_target *tgt; + struct log_category tmp = { UINT8_MAX, 0 }; + + /* values can also decrease.. */ + llist_for_each_entry(tgt, &osmo_log_target_list, entry) { + struct log_category *cat = &tgt->categories[mapped_subsys]; + tmp.enabled = OSMO_MAX(tmp.enabled, cat->enabled); + tmp.loglevel = OSMO_MIN(tmp.loglevel, cat->loglevel); + tmp.loglevel = tgt->loglevel ? OSMO_MIN(tmp.loglevel, tgt->loglevel) : tmp.loglevel; + } + tmp.enabled = OSMO_MAX(tmp.enabled, enabled); + tmp.loglevel = OSMO_MIN(tmp.loglevel, level); + + log_level_lookup_cache[mapped_subsys] = tmp.enabled ? tmp.loglevel : UINT8_MAX; +} + +/*! Queries log level cache. + * + * \param[in] mapped_subsys plain category index (after mapping) + * \param[in] level log level + * \returns true if logging should happen for at least one log target +*/ +static bool log_cache_check(int mapped_subsys, int level) +{ + return (level < log_level_lookup_cache[mapped_subsys]) ? false : true; +} + /*! This mutex must be held while using osmo_log_target_list or any of its log_targets in a multithread program. Prevents race conditions between threads like producing unordered timestamps or VTY deleting a target while another @@ -426,6 +488,10 @@ } } while ((category_token = strtok(NULL, ":"))); +#if !defined(EMBEDDED) + log_cache_update_all(); +#endif + free(mask); } @@ -680,6 +746,11 @@ subsys = map_subsys(subsys); +#if !defined(EMBEDDED) + if (!log_cache_check(subsys, level)) + return; +#endif + log_tgt_mutex_lock(); llist_for_each_entry(tar, &osmo_log_target_list, entry) { @@ -754,6 +825,9 @@ void log_add_target(struct log_target *target) { llist_add_tail(&target->entry, &osmo_log_target_list); +#if (!EMBEDDED) + log_cache_update_all(); +#endif } /*! Unregister a log target from the logging core @@ -762,6 +836,9 @@ void log_del_target(struct log_target *target) { llist_del(&target->entry); +#if (!EMBEDDED) + log_cache_update_all(); +#endif } /*! Reset (clear) the logging context */ @@ -922,6 +999,9 @@ void log_set_log_level(struct log_target *target, int log_level) { target->loglevel = log_level; +#if !defined(EMBEDDED) + log_cache_update_all(); +#endif } /*! Set a category filter on a given log target @@ -938,6 +1018,10 @@ category = map_subsys(category); target->categories[category].enabled = !!enable; target->categories[category].loglevel = level; + +#if !defined(EMBEDDED) + log_cache_update(category, !!enable, level); +#endif } #if (!EMBEDDED) @@ -1046,6 +1130,15 @@ /* global log level */ target->loglevel = 0; + +#if !defined(EMBEDDED) + /* update cache */ + for (i = 0; i < osmo_log_info->num_cat; i++) { + const struct log_info_cat *c = &osmo_log_info->cat[i]; + log_cache_update(i, c->enabled, c->loglevel); + } +#endif + return target; } @@ -1424,6 +1517,15 @@ osmo_log_info->num_cat += inf->num_cat; } +#if !defined(EMBEDDED) + log_level_lookup_cache = talloc_zero_array(osmo_log_info, uint8_t, osmo_log_info->num_cat); + if (!log_level_lookup_cache) { + talloc_free(osmo_log_info); + osmo_log_info = NULL; + return -ENOMEM; + } +#endif + cat_ptr = talloc_zero_array(osmo_log_info, struct log_info_cat, osmo_log_info->num_cat); if (!cat_ptr) { @@ -1454,6 +1556,12 @@ osmo_log_info->cat = cat_ptr; +#if !defined(EMBEDDED) + /* copy everything for level lookup cache */ + for (i = 0; i < osmo_log_info->num_cat; i++) + log_level_lookup_cache[i] = cat_ptr[i].loglevel; +#endif + return 0; } @@ -1486,6 +1594,11 @@ subsys = map_subsys(subsys); +#if !defined(EMBEDDED) + if (!log_cache_check(subsys, level)) + return 0; +#endif + /* TODO: The following could/should be cached (update on config) */ log_tgt_mutex_lock(); diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 2a07422..678ae68 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -382,6 +382,10 @@ tgt->categories[category].enabled = 1; tgt->categories[category].loglevel = level; +#if !defined(EMBEDDED) + log_cache_update(category, 1, level); +#endif + RET_WITH_UNLOCK(CMD_SUCCESS); } @@ -406,6 +410,9 @@ cat->enabled = 1; cat->loglevel = level; +#if !defined(EMBEDDED) + log_cache_update(i, 1, level); +#endif } RET_WITH_UNLOCK(CMD_SUCCESS); } diff --git a/tests/ctrl/ctrl_test.c b/tests/ctrl/ctrl_test.c index 1d4d4d7..7b7e6ce 100644 --- a/tests/ctrl/ctrl_test.c +++ b/tests/ctrl/ctrl_test.c @@ -482,7 +482,7 @@ test_deferred_cmd(); /* Expecting root ctx + msgb root ctx + 5 logging elements */ - if (talloc_total_blocks(ctx) != 7) { + if (talloc_total_blocks(ctx) != 8) { talloc_report_full(ctx, stdout); OSMO_ASSERT(false); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[M] Change in libosmocore[master]: logging: add log level cache
by Hoernchen 09 Jan '24

09 Jan '24
Attention is currently required from: arehbein. Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email ) Change subject: logging: add log level cache ...................................................................... Patch Set 15: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: arehbein <arehbein(a)sysmocom.de> Gerrit-Comment-Date: Tue, 09 Jan 2024 16:07:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[M] Change in libosmocore[master]: logging: add log level cache
by fixeria 09 Jan '24

09 Jan '24
Attention is currently required from: Hoernchen, arehbein. fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email ) Change subject: logging: add log level cache ...................................................................... Patch Set 15: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/30633?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35f8dd9127dd6e7feae392094fd6b3ce2d32558d Gerrit-Change-Number: 30633 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: arehbein <arehbein(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: Hoernchen <ewild(a)sysmocom.de> Gerrit-Attention: arehbein <arehbein(a)sysmocom.de> Gerrit-Comment-Date: Tue, 09 Jan 2024 16:05:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[L] Change in osmo-ttcn3-hacks[master]: GTP_Templates: Add templates for some GTPv1C IEs
by pespin 09 Jan '24

09 Jan '24
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35509?usp=email ) Change subject: GTP_Templates: Add templates for some GTPv1C IEs ...................................................................... GTP_Templates: Add templates for some GTPv1C IEs Change-Id: I84aac34ca40a2707dc9da28e112fd7684e706c8e --- M library/GTP_Templates.ttcn 1 file changed, 324 insertions(+), 45 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/library/GTP_Templates.ttcn b/library/GTP_Templates.ttcn index 031d9b2..30e42e6 100644 --- a/library/GTP_Templates.ttcn +++ b/library/GTP_Templates.ttcn @@ -162,6 +162,77 @@ ptmsi_Signature := ptmsi_sig } + /* MS Validated - 7.7.10 */ + template (value) MS_Validated ts_MS_Validated(template (value) BIT1 msValidated) := { + type_gtpc := '0D'O, + msValidated := msValidated, + spare := '1111111'B + } + template (present) MS_Validated tr_MS_Validated(template (present) BIT1 msValidated := ?) := { + type_gtpc := '0D'O, + msValidated := msValidated, + spare := '1111111'B + } + function f_tr_MS_Validated(template BIT1 msValidated := *) return template MS_Validated { + if (istemplatekind(msValidated, "omit")) { + return omit; + } else if (istemplatekind(msValidated, "*")) { + return *; + } else { + return tr_MS_Validated(msValidated); + } + } + private function f_ts_MS_Validated(template (omit) BIT1 msValidated) + return template (omit) MS_Validated { + if (istemplatekind(msValidated, "omit")) { + return omit; + } + return ts_MS_Validated(msValidated); + } + + /* 7.7.13 TEI Data I */ + template (value) TeidDataI ts_TeidDataI(template (value) OCT4 teid) := { + type_gtpc := '10'O, + teidDataI := teid + } + template (present) TeidDataI tr_TeidDataI(template (present) OCT4 teid := ?) := { + type_gtpc := '10'O, + teidDataI := teid + } + + /* 7.7.14 TEI Control Plane */ + template (value) TeidControlPlane ts_TEIC(template (value) OCT4 teic) := { + type_gtpc := '11'O, + teidControlPlane := teic + } + template (present) TeidControlPlane tr_TEIC(template (present) OCT4 teic := ?) := { + type_gtpc := '11'O, + teidControlPlane := teic + } + private function f_ts_TEIC(template (omit) OCT4 teic) + return template (omit) TeidControlPlane { + if (istemplatekind(teic, "omit")) { + return omit; + } + return ts_TEIC(teic); + } + + /* 7.7.15 Tunnel Endpoint Identifier Data II */ + template (value) TeidDataII ts_TeidDataII(template (value) BIT4 nsapi, + template (value) OCT4 teid) := { + type_gtpc := '12'O, + nsapi := nsapi, + unused := '0000'B, + teidDataII := teid + } + template (present) TeidDataII tr_TeidDataII(template (present) BIT4 nsapi := ?, + template (present) OCT4 teid := ?) := { + type_gtpc := '12'O, + nsapi := nsapi, + unused := '0000'B, + teidDataII := teid + } + /* IMEI(SV) IE TS 29.060 7.7.53 */ template (value) IMEISV_gtpc ts_IMEISV(template (value) OCT8 imeisv) := { type_gtpc := '9A'O, @@ -236,6 +307,82 @@ chargingChar := chargingChar } + /* 7.7.28 MM Context */ + template (value) MM_Context ts_MM_ContextUMTS(template (value) OCT16 ck, + template (value) OCT16 ik) := { + type_gtpc := '81'O, + context := { + mmcontUMTS := { + lengthf := 0, /* overwritten */ + ksi := '001'B, + usedGPRSIntegrityAlgorithm := '000'B, + ugipai := '1'B, /* Integrity Protection not required */ + gupii := '1'B, /* Ignore "Used GPRS integrity protection algorithm" field" */ + spare1 := '000'B, + noofVectors := 0, /* TODO: fill quintpuplets*/ + security := '01'B, /* UMTS key and quintuplets */ + ck := ck, + ik := ik, + quintupletlength := 0, /* overwritten */ + quintuplet := ''O, + drx_par := '0000'O, + msNetW_cap_length := 0, /* overwritten */ + msNetw_cap := omit, + containerLength := 0, /* overwritten */ + container := omit, + access_restriction_data_length := 0, /* overwritten */ + access_restriction_data := omit + } + } + } + + /* 7.7.29 PDP Context */ + template (value) PDP_Context_GTPC ts_PDP_Context_GTPC(template (value) octetstring pdp_addr, + template (value) octetstring ggsn_gsn_addr, + template (value) octetstring apn, + template (value) OCT4 ggsn_teic := '12345678'O, + template (value) OCT4 ggsn_teid := '87654321'O) := { + type_gtpc := '82'O, + lengthf := 0, /* overwritten */ + nsapi := '0101'B, + order := '0'B, + asi := '0'B, + vaa := '0'B, + ea := '0'B, + sapi := '0011'B, + spare1 := '0000'B, + qos_subLength := 0, /* overwritten */ + qos_sub := ts_QosProfileValueDefault, + qos_reqLength := 0, /* overwritten */ + qos_req := ts_QosProfileValueDefault, + qos_negLength := 0, /* overwritten */ + qos_neg := ts_QosProfileValueDefault, + snd := '0000'O, + snu := '0000'O, + sendNPDUnum := '00'O, + receiveNPDUnum := '00'O, + uteidControlPlane := ggsn_teic, + uteidData1 := ggsn_teid, + pdpcontext := '00'O, + pdp_typeorg := '0001'B, /* IETF */ + spare2 := '1111'B, + pdp_typenum := '21'O, /* IETF IPV4 */ + pdp_addressLength := 0, /* overwritten */ + pdp_address := pdp_addr, + ggsn_addressControlPlaneLength := 0, /* overwritten */ + ggsn_addressControlPlane := ggsn_gsn_addr, + ggsn_addressUserPlaneLength := 0, /* overwritten */ + ggsn_addressUserPlane := ggsn_gsn_addr, + apnLength := 0, /* overwritten */ + apn := apn, + transactionId := '0001'B, + spare3 := '0000'B, + transactionID_cont := '00'O, + pdp_typenum2 := omit, + pdp_addresslength2 := omit, + pdp_Address2 := omit + } + /* template matching reception of GTP-C unit-data */ template (present) Gtp1cUnitdata tr_GTPC_MsgType(template (present) GtpPeer peer, @@ -398,6 +545,11 @@ lengthf := lengthof(ip_addr), addressf := ip_addr } + template (present) GSN_Address_GTPC tr_GsnAddr(template (present) octetstring ip_addr := ?) := { + type_gtpc := '85'O, + lengthf := ?, + addressf := ip_addr + } template (value) MSISDN ts_Msisdn(octetstring msisdn) := { type_gtpc := '86'O, @@ -405,39 +557,46 @@ msisdn := msisdn } + template (value) QoSV_GTPC ts_QosValueDefault := { + reliabilityClass := '011'B, + delayClass := '001'B, + spare1 := '00'B, + precedenceClass := '010'B, + spare2 := '0'B, + peakThroughput := '1001'B, + meanThroughput := '11111'B, + spare3 := '000'B, + deliverErroneusSDU := '010'B, /* Erroneus SDU are delivered */ + deliveryOrder := '10'B, /* Without delivery order */ + trafficClass := '100'B, /* Background */ + maxSDUSize := '96'O, /* 1500 octets */ + maxBitrateUplink := 'FE'O, /* 8640, continues in extended octet */ + maxBitrateDownlink := 'FE'O, /* 8640, continues in extended octet */ + sduErrorRatio := '0100'B, /* 1x10^-4 */ + residualBER := '0101'B, /* 1x10^-3 */ + trafficHandlingPriority := '01'B, /* prio 1 */ + transferDelay := '000001'B, /* 10 ms */ + guaranteedBitRateUplink := 'FE'O, /* 8640, continues in extended octet */ + guaranteedBitRateDownlink := 'FE'O, /* 8640, continues in extended octet */ + sourceStatisticsDescriptor := '0000'B, /* unknown */ + signallingIndication := '0'B, /* Not optimized */ + spare4 := '000'B, + maxBitrateDownlinkExt := '5B'O, /* 33 mbps */ + guaranteedBitRateDownlinkExt := '5B'O, /* 33 mbps */ + maxBitrateUplinkExt := '6e'O, /* 52 mbps */ + guaranteedBitRateUplinkExt := '6e'O /* 52 mbps */ + } + + template (value) QualityOfServiceProfile_Value ts_QosProfileValueDefault := { + allocRetensionPrio := '00'O, + qos_ProfileValue := ts_QosValueDefault + } + template (value) QualityOfServiceProfile ts_QosDefault := { type_gtpc := '87'O, lengthf := 17, allocRetensionPrio := '00'O, - qos_ProfileValue := { - reliabilityClass := '011'B, - delayClass := '001'B, - spare1 := '00'B, - precedenceClass := '010'B, - spare2 := '0'B, - peakThroughput := '1001'B, - meanThroughput := '11111'B, - spare3 := '000'B, - deliverErroneusSDU := '010'B, /* Erroneus SDU are delivered */ - deliveryOrder := '10'B, /* Without delivery order */ - trafficClass := '100'B, /* Background */ - maxSDUSize := '96'O, /* 1500 octets */ - maxBitrateUplink := 'FE'O, /* 8640, continues in extended octet */ - maxBitrateDownlink := 'FE'O, /* 8640, continues in extended octet */ - sduErrorRatio := '0100'B, /* 1x10^-4 */ - residualBER := '0101'B, /* 1x10^-3 */ - trafficHandlingPriority := '01'B, /* prio 1 */ - transferDelay := '000001'B, /* 10 ms */ - guaranteedBitRateUplink := 'FE'O, /* 8640, continues in extended octet */ - guaranteedBitRateDownlink := 'FE'O, /* 8640, continues in extended octet */ - sourceStatisticsDescriptor := '0000'B, /* unknown */ - signallingIndication := '0'B, /* Not optimized */ - spare4 := '000'B, - maxBitrateDownlinkExt := '5B'O, /* 33 mbps */ - guaranteedBitRateDownlinkExt := '5B'O, /* 33 mbps */ - maxBitrateUplinkExt := '6e'O, /* 52 mbps */ - guaranteedBitRateUplinkExt := '6e'O /* 52 mbps */ - } + qos_ProfileValue := ts_QosValueDefault } template (value) IMSI_gtpc ts_Imsi(hexstring digits) := { @@ -469,18 +628,41 @@ } } - function f_ts_RATType(template (omit) OCT1 ratType := omit) return template (omit) RATType { - var template (omit) RATType rt; - if (istemplatekind(ratType, "omit")) { - rt := omit; + /* 7.7.50 RAT Type */ + type enumerated GTP_RATType { + GTP_RAT_TYPE_RESERVED (0), + GTP_RAT_TYPE_UTRAN (1), + GTP_RAT_TYPE_GERAN (2), + GTP_RAT_TYPE_WLAN (3), + GTP_RAT_TYPE_GAN (4), + GTP_RAT_TYPE_HSPA_E (5), + GTP_RAT_TYPE_EUTRAN (6) + }; + template (value) RATType ts_RATType(template (value) OCT1 rat_type) := { + type_gtpc := '97'O, + lengthf := 1, + ratTypeValue := rat_type + } + function f_ts_RATType(template (omit) OCT1 rat_type := omit) return template (omit) RATType { + if (istemplatekind(rat_type, "omit")) { + return omit; } else { - rt := { - type_gtpc := '97'O, - lengthf := 1, - ratTypeValue := ratType - }; + return ts_RATType(rat_type); } - return rt; + } + template (present) RATType tr_RATType(template (present) OCT1 rat_type) := { + type_gtpc := '97'O, + lengthf := 1, + ratTypeValue := rat_type + } + function f_tr_RATType(template OCT1 rat_type := *) return template RATType { + if (istemplatekind(rat_type, "omit")) { + return omit; + } else if (istemplatekind(rat_type, "*")) { + return *; + } else { + return tr_RATType(rat_type); + } } template (value) RoutingAreaIdentity ts_RoutingAreaIdentity(template (value) hexstring mcc_digits, @@ -947,11 +1129,44 @@ } /* SGSN Context Request - 7.5.3 */ + template (present) GTPC_PDUs tr_SGSNContextReqPDU(template (present) RoutingAreaIdentity rai := ?, + template (present) OCT4 teic := ?, + template (present) octetstring sgsn_addr_control := ?, + template hexstring imsi := *, + template BIT1 msValidated := *, + template TLLI tlli := *, + template PacketTMSI ptmsi := *, + template PTMSI_Signature ptmsi_sig := *, + template OCT1 rat_type := *) := { + sgsn_ContextRequest := { + imsi := f_tr_Imsi(imsi), + routingAreaIdentity := rai, + tlli := tlli, + packetTMSI := ptmsi, + ptmsi_Signature := ptmsi_sig, + ms_Validated := f_tr_MS_Validated(msValidated), + teidControlPlane := { + type_gtpc := '11'O, + teidControlPlane := teic + }, + sgsn_addr_controlPlane := tr_GsnAddr(sgsn_addr_control), + alternative_sgsn_addr_controlPlane := *, + sGSN_Number := *, + ratType := f_tr_RATType(rat_type), + hopCounter := *, + private_extension_gtpc := * + } + } + template (present) Gtp1cUnitdata tr_GTPC_SGSNContextReq(template (present) GtpPeer peer, + template (present) GTPC_PDUs SGSNContextReqPDU) := { + peer := peer, + gtpc := tr_GTP1C_PDU(sgsnContextRequest, '00000000'O, SGSNContextReqPDU) + } template (value) GTPC_PDUs ts_SGSNContextReqPDU(template (value) RoutingAreaIdentity rai, template (value) OCT4 teic, template (value) octetstring sgsn_addr_control, template (omit) hexstring imsi := omit, - template (value) BIT1 msValidated := '0'B, + template (omit) BIT1 msValidated := '0'B, template (omit) TLLI tlli := omit, template (omit) PacketTMSI ptmsi := omit, template (omit) PTMSI_Signature ptmsi_sig := omit, @@ -962,11 +1177,7 @@ tlli := tlli, packetTMSI := ptmsi, ptmsi_Signature := ptmsi_sig, - ms_Validated := { - type_gtpc := '0D'O, - msValidated := msValidated, - spare := '1111111'B - }, + ms_Validated := f_ts_MS_Validated(msValidated), teidControlPlane := { type_gtpc := '11'O, teidControlPlane := teic @@ -1025,7 +1236,66 @@ template (present) GTPC_PDUs SGSNContextRespPDU := ?) := tr_GTPC_MsgType(peer, sgsnContextResponse, teid, SGSNContextRespPDU); + template (value) GTPC_PDUs ts_SGSNContextRespPDU(template (value) GTP_Cause cause, + template (omit) hexstring imsi := omit, + template (omit) OCT4 teic := omit, + template (omit) octetstring sgsn_addr_control := omit, + template (omit) MM_Context mm_context := omit, + template (omit) PDP_Context_GTPC_List pdp_ctx_list := omit) := { + sgsn_ContextResponse := { + cause := ts_Cause_gtpc(cause), + imsi := f_ts_Imsi(imsi), + teidControlPlane := f_ts_TEIC(teic), + rabContext := omit, + radioPrioritySMS := omit, + radioPriority := omit, + packetFlowID := omit, + charging_char := omit, + mm_Context := mm_context, + pdp_Context := pdp_ctx_list, + sgsn_addr_controlPlane := ts_GsnAddr(sgsn_addr_control), + pdpContextPriorization := omit, + radioPriority_LCS := omit, + mBMS_UE_Context := omit, + subscribedRFSP_Index := omit, + rFSP_IndexInUse := omit, + colocatedGGSN_PGW_FQDN := omit, + evolvedAllocationRetentionPriorityII := omit, + extendedCommonFlags := omit, + ue_network_capability := omit, + ue_ambr := omit, + apn_ambr_nsapi := omit, + signallingPriorityIndication_nsapi := omit, + higher_bitrates_than_16mbps_flag := omit, + selectionMode_nsapi := omit, + localHomeNetworkID_nsapi := omit, + uE_UsageType := omit, + extendedCommonFlagsII := omit, + private_extension_gtpc := omit + } + } + template (value) Gtp1cUnitdata ts_GTPC_SGSNContextResp(GtpPeer peer, OCT4 teid, uint16_t seq, + template (value) GTPC_PDUs SGSNContextRespPDU) := { + peer := peer, + gtpc := ts_GTP1C_PDU(sgsnContextResponse, teid, valueof(SGSNContextRespPDU), seq) + } + + /* SGSN Context Acknowledge - 7.5.5 */ + template (present) GTPC_PDUs tr_SGSNContextAckPDU(template (present) GTP_Cause cause := ?) := { + sgsn_ContextAcknowledge := { + cause := tr_Cause_gtpc(cause), + teidDataII := *, + sgsn_AddressForUserTraffic := *, + sgsn_Number := *, + nodeIdentifier := *, + private_extension_gtpc := * + } + } + template (present) Gtp1cUnitdata tr_GTPC_SGSNContextAck(template (present) GtpPeer peer := ?, + template (present) OCT4 teid := ?, + template (present) GTPC_PDUs SGSNContextAckPDU := ?) + := tr_GTPC_MsgType(peer, sgsnContextAcknowledge, teid, SGSNContextAckPDU); template (value) GTPC_PDUs ts_SGSNContextAckPDU(template (value) GTP_Cause cause := GTP_CAUSE_REQUEST_ACCEPTED) := { sgsn_ContextAcknowledge := { cause := ts_Cause_gtpc(cause), -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35509?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I84aac34ca40a2707dc9da28e112fd7684e706c8e Gerrit-Change-Number: 35509 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: merged
1 0
0 0
[L] Change in osmo-ttcn3-hacks[master]: GTP_Templates: Add templates for some GTPv1C IEs
by laforge 09 Jan '24

09 Jan '24
Attention is currently required from: daniel, pespin. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35509?usp=email ) Change subject: GTP_Templates: Add templates for some GTPv1C IEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35509?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I84aac34ca40a2707dc9da28e112fd7684e706c8e Gerrit-Change-Number: 35509 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: daniel <dwillmann(a)sysmocom.de> Gerrit-Comment-Date: Tue, 09 Jan 2024 15:49:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in docker-playground[master]: ttcn3-msc-test: also execute ASCI (VBS/VGCS) testcases
by laforge 09 Jan '24

09 Jan '24
laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/35521?usp=email ) Change subject: ttcn3-msc-test: also execute ASCI (VBS/VGCS) testcases ...................................................................... ttcn3-msc-test: also execute ASCI (VBS/VGCS) testcases These new testcases were added to osmo-ttcn3-hacks.git back in August 2023 (see the related patch), but have never been executed automatically on Jenkins because the config file was not updated in this repo... Change-Id: I9ec0a03658ead382eaaef175090cfc3650ffd9b7 Related: osmo-ttcn3-hacks.git I4bbe739ea55ecf9f7ebf9ee413df69f29aa642f8 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 83c18c7..66ad4d1 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -57,3 +57,4 @@ [EXECUTE] MSC_Tests.control MSC_Tests_Iu.control +MSC_Tests_ASCI.control -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/35521?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9ec0a03658ead382eaaef175090cfc3650ffd9b7 Gerrit-Change-Number: 35521 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-MessageType: merged
1 0
0 0
[S] Change in docker-playground[master]: ttcn3-msc-test: also execute ASCI (VBS/VGCS) testcases
by laforge 09 Jan '24

09 Jan '24
Attention is currently required from: fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/35521?usp=email ) Change subject: ttcn3-msc-test: also execute ASCI (VBS/VGCS) testcases ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/35521?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9ec0a03658ead382eaaef175090cfc3650ffd9b7 Gerrit-Change-Number: 35521 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Comment-Date: Tue, 09 Jan 2024 15:48:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • ...
  • 156
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.