Build failure of network:osmocom:nightly/libosmocore in Debian_Unstable/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 45s] [159/254] installing libxapian30-1.4.17-1 [ 45s] Processing triggers for libc-bin (2.31-4) ... [ 45s] [160/254] keeping dpkg-1.20.5 [ 45s] [161/254] installing libsemanage1-3.1-1+b1 [ 45s] Processing triggers for libc-bin (2.31-4) ... [ 45s] [162/254] installing e2fsprogs-1.45.6-1 [ 46s] [163/254] installing libgnutls30-3.6.15-4 [ 46s] Processing triggers for libc-bin (2.31-4) ... [ 46s] [164/254] installing python3-minimal-3.9.0-3 [ 46s] dpkg: regarding .../python3-minimal.deb containing python3-minimal, pre-dependency problem: [ 46s] python3-minimal pre-depends on python3.9-minimal (>= 3.9.0-1~) [ 46s] python3.9-minimal is not installed. [ 46s] dpkg: warning: ignoring pre-dependency problem! [ 46s] dpkg: python3-minimal: dependency problems, but configuring anyway as you requested: [ 46s] python3-minimal depends on python3.9-minimal (>= 3.9.0-1~); however: [ 46s] Package python3.9-minimal is not installed. [ 46s] /var/lib/dpkg/info/python3-minimal.postinst: 5: py3compile: not found [ 46s] dpkg: error processing package python3-minimal (--install): [ 46s] installed python3-minimal package post-installation script subprocess returned error exit status 127 [ 46s] Errors were encountered while processing: [ 46s] python3-minimal [ 46s] exit ... [ 46s] ### VM INTERACTION START ### [ 49s] [ 33.151204] sysrq: Power Off [ 49s] [ 33.168228] reboot: Power down [ 49s] ### VM INTERACTION END ### [ 49s] [ 50s] lamb14 failed "build libosmocore_1.4.0.200.465c.dsc" at Thu Nov 19 07:57:54 UTC 2020. [ 50s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:latest/libosmocore in Debian_Unstable/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmocore/Debian_Unstable/x86_64 Package network:osmocom:latest/libosmocore failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmocore Last lines of build log: [ 38s] [159/254] installing libxapian30-1.4.17-1 [ 38s] Processing triggers for libc-bin (2.31-4) ... [ 38s] [160/254] keeping dpkg-1.20.5 [ 38s] [161/254] installing libsemanage1-3.1-1+b1 [ 38s] Processing triggers for libc-bin (2.31-4) ... [ 38s] [162/254] installing e2fsprogs-1.45.6-1 [ 38s] [163/254] installing libgnutls30-3.6.15-4 [ 38s] Processing triggers for libc-bin (2.31-4) ... [ 38s] [164/254] installing python3-minimal-3.9.0-3 [ 39s] dpkg: regarding .../python3-minimal.deb containing python3-minimal, pre-dependency problem: [ 39s] python3-minimal pre-depends on python3.9-minimal (>= 3.9.0-1~) [ 39s] python3.9-minimal is not installed. [ 39s] dpkg: warning: ignoring pre-dependency problem! [ 39s] dpkg: python3-minimal: dependency problems, but configuring anyway as you requested: [ 39s] python3-minimal depends on python3.9-minimal (>= 3.9.0-1~); however: [ 39s] Package python3.9-minimal is not installed. [ 39s] /var/lib/dpkg/info/python3-minimal.postinst: 5: py3compile: not found [ 39s] dpkg: error processing package python3-minimal (--install): [ 39s] installed python3-minimal package post-installation script subprocess returned error exit status 127 [ 39s] Errors were encountered while processing: [ 39s] python3-minimal [ 39s] exit ... [ 39s] ### VM INTERACTION START ### [ 42s] [ 28.672164] sysrq: Power Off [ 42s] [ 28.685999] reboot: Power down [ 42s] ### VM INTERACTION END ### [ 42s] [ 42s] sheep82 failed "build libosmocore_1.4.1.dsc" at Thu Nov 19 06:53:23 UTC 2020. [ 42s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/)
Change in osmo-pcu[master]: gprs_bssgp_pcu: follow ns2 library changes
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21249 ) Change subject: gprs_bssgp_pcu: follow ns2 library changes .. gprs_bssgp_pcu: follow ns2 library changes Depends-on: I18dfd40a2429cd61b7c4a3dad5f226c64296f7d8 (libosmocore) Change-Id: I056fe624160f2fe01d405690eba5cc0032780837 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/49/21249/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 05fc0d3..cb47998 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -979,7 +979,8 @@ bts->nse = gprs_ns2_nse_by_nsei(bts->nsi, nsei); if (!bts->nse) - bts->nse = gprs_ns2_create_nse(bts->nsi, nsei); + bts->nse = gprs_ns2_create_nse(bts->nsi, nsei, + GPRS_NS2_LL_UDP); if (!bts->nse) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSE\n"); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21249 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I056fe624160f2fe01d405690eba5cc0032780837 Gerrit-Change-Number: 21249 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: ns2: remove obsolete type GPRS_NS2_LL_E1
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21248 ) Change subject: ns2: remove obsolete type GPRS_NS2_LL_E1 .. ns2: remove obsolete type GPRS_NS2_LL_E1 There is already frame relay type GRPS_NS2_LL_FR to support frame relay. Change-Id: Iabb4608d91ccb32a07cad67519166dabfba76612 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_vty.c 3 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/21248/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 2da2eef..5b68f47 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -35,7 +35,6 @@ /*! Osmocom NS link layer types */ enum gprs_ns2_ll { GPRS_NS2_LL_UDP,/*!< NS/UDP/IP */ - GPRS_NS2_LL_E1, /*!< NS/E1 */ GPRS_NS2_LL_FR, /*!< NS/FR */ GPRS_NS2_LL_FR_GRE, /*!< NS/FR/GRE/IP */ }; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 25758cf..5e67811 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -253,9 +253,6 @@ case GPRS_NS2_LL_FR_GRE: snprintf(buf, buf_len, "frgre)"); break; - case GPRS_NS2_LL_E1: - snprintf(buf, buf_len, "e1)"); - break; case GPRS_NS2_LL_FR: snprintf(buf, buf_len, "fr)netif: %s dlci: %s", "hdlcX", "unsupported"); break; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index e63b962..8edb33b 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -837,7 +837,6 @@ case GPRS_NS2_LL_FR: break; case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_E1: continue; } @@ -888,7 +887,6 @@ break; } case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_E1: continue; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21248 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iabb4608d91ccb32a07cad67519166dabfba76612 Gerrit-Change-Number: 21248 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: ns2: move link layer type into NSE
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21247 ) Change subject: ns2: move link layer type into NSE .. ns2: move link layer type into NSE Even it was in theory possible to mix NS-VC ll types within a NSE. This is an unrealistic configuration. Further more to select the correct load sharing mechanism the NSE must know the correct link layer. Change-Id: I18dfd40a2429cd61b7c4a3dad5f226c64296f7d8 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c 7 files changed, 22 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/21247/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 70b4bca..2da2eef 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -139,7 +139,8 @@ int gprs_ns2_nse_foreach_nsvc(struct gprs_ns2_nse *nse, gprs_ns2_foreach_nsvc_cb cb, void *cb_data); struct gprs_ns2_nse *gprs_ns2_nse_by_nsei(struct gprs_ns2_inst *nsi, uint16_t nsei); -struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei); +struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, +enum gprs_ns2_ll linklayer); uint16_t gprs_ns2_nse_nsei(struct gprs_ns2_nse *nse); void gprs_ns2_free_nse(struct gprs_ns2_nse *nse); void gprs_ns2_free_nses(struct gprs_ns2_inst *nsi); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 004d0ad..25758cf 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -226,7 +226,7 @@ if (!buf_len) return NULL; - switch (nsvc->ll) { + switch (nsvc->nse->ll) { case GPRS_NS2_LL_UDP: if (!gprs_ns2_is_ip_bind(nsvc->bind)) { buf[0] = '\0'; @@ -392,15 +392,11 @@ /* signalling */ nsvc = ns2_load_sharing_signal(nse); } else { - enum gprs_ns2_ll ll; - /* data with load sharing parameter */ if (llist_empty(>nsvc)) return NULL; - nsvc = llist_first_entry(>nsvc, struct gprs_ns2_vc, list); - ll = nsvc->ll; - switch (ll) { + switch (nse->ll) { case GPRS_NS2_LL_FR: nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); break; @@ -671,7 +667,7 @@ * \param[in] nsi NS instance in which to create NS Entity * \param[in] nsei NS Entity Identifier of to-be-created NSE * \returns newly-allocated NS-E in successful case; NULL on error */ -struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei) +struct gprs_ns2_nse *gprs_ns2_create_nse(struct gprs_ns2_inst *nsi, uint16_t nsei, enum gprs_ns2_ll linklayer) { struct gprs_ns2_nse *nse; @@ -685,6 +681,7 @@ if (!nse) return NULL; + nse->ll = linklayer; nse->nsei = nsei; nse->nsi = nsi; nse->first = true; @@ -840,7 +837,7 @@ return GPRS_NS2_CS_SKIPPED; } - nse = gprs_ns2_create_nse(bind->nsi, nsei); + nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll); if (!nse) { return GPRS_NS2_CS_ERROR; } @@ -850,8 +847,6 @@ if (!nsvc) return GPRS_NS2_CS_SKIPPED; - nsvc->ll = GPRS_NS2_LL_UDP; - nsvci = tlvp_val16be(, NS_IE_VCI); nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; @@ -921,7 +916,7 @@ struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP); if (!nse) return NULL; } @@ -942,7 +937,7 @@ struct gprs_ns2_vc *nsvc; if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_UDP); if (!nse) return -1; } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 40ea64c..4eb75fd 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -390,6 +390,7 @@ return -ENOSPC; bind->driver = _driver_fr; + bind->ll = GPRS_NS2_LL_FR; bind->send_vc = fr_vc_sendmsg; bind->free_vc = free_vc; bind->dump_vty = dump_vty; @@ -502,7 +503,7 @@ struct priv_vc *priv = NULL; struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - nse =
Change in libosmocore[master]: ns2: move LL into public api
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21246 ) Change subject: ns2: move LL into public api .. ns2: move LL into public api Also fix prefix. GPRS_NS -> GPRS_NS2. In preparation to move LL into upper layer. Change-Id: I3b5e0d51ce69b095095e5160ca0cf0d4534db1b8 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vty.c 6 files changed, 37 insertions(+), 37 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/21246/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index c13d315..70b4bca 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -32,6 +32,14 @@ NS2_VC_MODE_ALIVE, }; +/*! Osmocom NS link layer types */ +enum gprs_ns2_ll { + GPRS_NS2_LL_UDP,/*!< NS/UDP/IP */ + GPRS_NS2_LL_E1, /*!< NS/E1 */ + GPRS_NS2_LL_FR, /*!< NS/FR */ + GPRS_NS2_LL_FR_GRE, /*!< NS/FR/GRE/IP */ +}; + /*! Osmocom NS primitives according to 48.016 5.2 Service primitves */ enum gprs_ns2_prim { PRIM_NS_UNIT_DATA, diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 602bca7..004d0ad 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -227,7 +227,7 @@ return NULL; switch (nsvc->ll) { - case GPRS_NS_LL_UDP: + case GPRS_NS2_LL_UDP: if (!gprs_ns2_is_ip_bind(nsvc->bind)) { buf[0] = '\0'; return buf; @@ -250,13 +250,13 @@ local_str.ip, local_str.port, remote_str.ip, remote_str.port); break; - case GPRS_NS_LL_FR_GRE: + case GPRS_NS2_LL_FR_GRE: snprintf(buf, buf_len, "frgre)"); break; - case GPRS_NS_LL_E1: + case GPRS_NS2_LL_E1: snprintf(buf, buf_len, "e1)"); break; - case GPRS_NS_LL_FR: + case GPRS_NS2_LL_FR: snprintf(buf, buf_len, "fr)netif: %s dlci: %s", "hdlcX", "unsupported"); break; default: @@ -392,7 +392,7 @@ /* signalling */ nsvc = ns2_load_sharing_signal(nse); } else { - enum gprs_ns_ll ll; + enum gprs_ns2_ll ll; /* data with load sharing parameter */ if (llist_empty(>nsvc)) @@ -401,7 +401,7 @@ ll = nsvc->ll; switch (ll) { - case GPRS_NS_LL_FR: + case GPRS_NS2_LL_FR: nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); break; default: @@ -850,7 +850,7 @@ if (!nsvc) return GPRS_NS2_CS_SKIPPED; - nsvc->ll = GPRS_NS_LL_UDP; + nsvc->ll = GPRS_NS2_LL_UDP; nsvci = tlvp_val16be(, NS_IE_VCI); nsvc->nsvci = nsvci; diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c04a7d1..40ea64c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -523,7 +523,7 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; - nsvc->ll = GPRS_NS_LL_FR; + nsvc->ll = GPRS_NS2_LL_FR; gprs_ns2_vc_fsm_start(nsvc); diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 78b6d82..2c74bab 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -56,14 +56,6 @@ NS_STAT_ALIVE_DELAY, }; -/*! Osmocom NS link layer types */ -enum gprs_ns_ll { - GPRS_NS_LL_UDP, /*!< NS/UDP/IP */ - GPRS_NS_LL_E1, /*!< NS/E1 */ - GPRS_NS_LL_FR, /*!< NS/FR */ - GPRS_NS_LL_FR_GRE, /*!< NS/FR/GRE/IP */ -}; - /*! Osmocom NS2 VC create status */ enum gprs_ns2_cs { GPRS_NS2_CS_CREATED, /*!< A NSVC object has been created */ @@ -173,7 +165,7 @@ struct osmo_stat_item_group *statg; /*! which link-layer are we based on? */ - enum gprs_ns_ll ll; + enum gprs_ns2_ll ll; enum gprs_ns2_vc_mode mode; struct osmo_fsm_inst *fi; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 26a0483..38c1a16 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -391,7 +391,7 @@ priv = nsvc->priv; priv->remote = *remote; - nsvc->ll = GPRS_NS_LL_UDP; + nsvc->ll = GPRS_NS2_LL_UDP; return nsvc; } @@ -403,7 +403,7 @@ { struct priv_bind *priv; - if (nsvc->ll != GPRS_NS_LL_UDP) + if (nsvc->ll != GPRS_NS2_LL_UDP) return NULL; if (nsvc->bind->driver != _driver_ip) @@ -420,7 +420,7 @@ { struct priv_vc *priv; - if (nsvc->ll != GPRS_NS_LL_UDP) + if (nsvc->ll != GPRS_NS2_LL_UDP)
Change in libosmocore[master]: ns2: permit multiple nsvci in one nse in VTY
Hello laforge, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21245 to review the following change. Change subject: ns2: permit multiple nsvci in one nse in VTY .. ns2: permit multiple nsvci in one nse in VTY Change-Id: I4ad454320d0a03e81b399f55e8bd0ee57402dad0 --- M src/gb/gprs_ns2_vty.c 1 file changed, 56 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/21245/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 174f952..28bf0ac 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -125,12 +125,14 @@ 1, }; -static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { +static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei, uint16_t nsvci) +{ struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); if (!vtyvc) return vtyvc; vtyvc->nsei = nsei; + vtyvc->nsvci = nsvci; llist_add(>list, ); @@ -145,18 +147,19 @@ talloc_free(vtyvc); } -static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { +static struct ns2_vty_vc *vtyvc_by_nsei_nsvci(uint16_t nsei, uint16_t nsvci, bool alloc_missing) +{ struct ns2_vty_vc *vtyvc; llist_for_each_entry(vtyvc, , list) { - if (vtyvc->nsei == nsei) + if (vtyvc->nsei == nsei && vtyvc->nsvci == nsvci) return vtyvc; } if (!alloc_missing) return NULL; - vtyvc = vtyvc_alloc(nsei); + vtyvc = vtyvc_alloc(nsei, nsvci); if (!vtyvc) return vtyvc; @@ -164,6 +167,7 @@ return vtyvc; } + static int config_write_ns(struct vty *vty) { struct ns2_vty_vc *vtyvc; @@ -205,36 +209,29 @@ vty_out(vty, " nse %u nsvci %u%s", vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - vty_out(vty, " nse %u remote-role %s%s", - vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", - VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u remote-role %s%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", VTY_NEWLINE); switch (vtyvc->ll) { case GPRS_NS_LL_UDP: - vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, + vty_out(vty, " nse %u nsvci %u encapsulation udp%s", vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - vty_out(vty, " nse %u remote-port %u%s", - vtyvc->nsei, vtyvc->remote.port, - VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u remote-ip %s%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->remote.ip, VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u remote-port %u%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->remote.port, VTY_NEWLINE); break; case GPRS_NS_LL_FR_GRE: - vty_out(vty, " nse %u encapsulation framerelay-gre%s", - vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u fr-dlci %u%s", - vtyvc->nsei, vtyvc->frdlci, - VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u encapsulation framerelay-gre%s", vtyvc->nsei, + vtyvc->nsvci, VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u remote-ip %s%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->remote.ip, VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u fr-dlci %u%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->frdlci, VTY_NEWLINE); break; case GPRS_NS_LL_FR: - vty_out(vty, " nse %u fr %s dlci %u%s", - vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, - VTY_NEWLINE); + vty_out(vty, " nse %u nsvci %u fr %s dlci %u%s", vtyvc->nsei, vtyvc->nsvci, + vtyvc->netif, vtyvc->frdlci, VTY_NEWLINE); break; default: break; @@ -389,7 +386,7 @@ const char *name = argv[3]; uint16_t dlci =
Change in libosmocore[master]: ns2: implement link sharing selector
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21244 ) Change subject: ns2: implement link sharing selector .. ns2: implement link sharing selector Change-Id: I212fa1a65e8c16cf1e525d1962d5689446c7e49e --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 3 files changed, 138 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21244/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 2a805c2..c13d315 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -92,6 +92,7 @@ union { struct { enum gprs_ns2_change_ip_endpoint change; + uint32_t link_selector; /* TODO: implement resource distribution * add place holder for the link selector */ long long _resource_distribution_placeholder1; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 4b32ddf..602bca7 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -57,9 +57,7 @@ * Those mappings are administratively configured. * * This implementation has the following limitations: - * - Only one NS-VC for each NSE: No load-sharing function * - NSVCI 65535 and 65534 are reserved for internal use - * - Only UDP is supported as of now, no frame relay support * - There are no BLOCK and UNBLOCK timers (yet?) * * \file gprs_ns2.c */ @@ -303,19 +301,130 @@ return osmo_fsm_inst_state_name(nsvc->fi); } +/* select a signalling NSVC and respect sig_counter + * param[out] reset_counter - all counter has to be resetted to their signal weight + * return the chosen nsvc or NULL + */ +static struct gprs_ns2_vc *ns2_load_sharing_signal( + struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc = NULL, *last = NULL, *tmp; + + llist_for_each_entry(tmp, >nsvc, list) { + if (tmp->sig_weight == 0) + continue; + if (!gprs_ns2_vc_is_unblocked(tmp)) + continue; + if (tmp->sig_counter == 0) { + last = tmp; + continue; + } + + tmp->sig_counter--; + nsvc = tmp; + break; + } + + /* all counter were zero, but there are valid nsvc */ + if (!nsvc && last) { + llist_for_each_entry(tmp, >nsvc, list) { + tmp->sig_counter = tmp->sig_weight; + } + + last->sig_counter--; + return last; + } else { + return nsvc; + } +} + +/* 4.4.1 Load Sharing function for the Frame Relay Sub-Network */ +static struct gprs_ns2_vc *ns2_load_sharing_modulor( + struct gprs_ns2_nse *nse, + uint16_t bvci, + uint32_t load_selector) +{ + struct gprs_ns2_vc *tmp; + uint32_t mod = (bvci + load_selector) % nse->nsvc_data_count; + uint32_t i = 0; + + llist_for_each_entry(tmp, >nsvc, list) { + if (!gprs_ns2_vc_is_unblocked(tmp)) + continue; + if (tmp->data_weight == 0) + continue; + + if (i == mod) + return tmp; + i++; + } + + return NULL; +} + +/* pick the first available data NSVC - no load sharing */ +struct gprs_ns2_vc *ns2_load_sharing_first(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc = NULL, *tmp; + + llist_for_each_entry(tmp, >nsvc, list) { + if (!gprs_ns2_vc_is_unblocked(tmp)) + continue; + if (tmp->data_weight == 0) + continue; + + nsvc = tmp; + break; + } + + return nsvc; +} + + +static struct gprs_ns2_vc *ns2_load_sharing( + struct gprs_ns2_nse *nse, + uint16_t bvci, + uint32_t link_selector) +{ + struct gprs_ns2_vc *nsvc = NULL; + + if (bvci == 0) { + /* signalling */ + nsvc = ns2_load_sharing_signal(nse); + } else { + enum gprs_ns_ll ll; + + /* data with load sharing parameter */ + if (llist_empty(>nsvc)) + return NULL; + nsvc = llist_first_entry(>nsvc, struct gprs_ns2_vc, list); + ll = nsvc->ll; + + switch (ll) { + case GPRS_NS_LL_FR: + nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector); + break; + default: + nsvc = ns2_load_sharing_first(nse); + break; + } + } + + return nsvc; +} +
Change in libosmocore[master]: ns2: check if ns_vc_alloc() fails in bind_connect()
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21242 ) Change subject: ns2: check if ns_vc_alloc() fails in bind_connect() .. ns2: check if ns_vc_alloc() fails in bind_connect() Change-Id: I82c984b9808451a72a62ff03b0495a1d09473e1c --- M src/gb/gprs_ns2_udp.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/21242/1 diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 0676314..26a0483 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -379,6 +379,9 @@ struct priv_vc *priv; nsvc = ns2_vc_alloc(bind, nse, true); + if (!nsvc) + return NULL; + nsvc->priv = talloc_zero(bind, struct priv_vc); if (!nsvc->priv) { gprs_ns2_free_nsvc(nsvc); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c984b9808451a72a62ff03b0495a1d09473e1c Gerrit-Change-Number: 21242 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: ns2: Add a function to set the NSVC FSM back to unconfigured
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to set the NSVC FSM back to unconfigured .. Patch Set 2: Code-Review+1 (1 comment) I'm unsure if it's better this way or try to reconfigure the NS2 layer. https://gerrit.osmocom.org/c/libosmocore/+/21231/2/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21231/2/src/gb/gprs_ns2_vc_fsm.c@129 PS2, Line 129: {GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED"}, formatting. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 22:40:49 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Split initiater into init_reset and init_block
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21240 ) Change subject: ns2: Split initiater into init_reset and init_block .. Patch Set 1: Why do we need it? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iff5aff0cf8d19d9c718dd11c4e731ced2aeb16ba Gerrit-Change-Number: 21240 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 18 Nov 2020 22:36:17 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-sgsn[master]: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 ) Change subject: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6aef26c126b330a393fc2be5f558b6d5f1d9f7f4 Gerrit-Change-Number: 21228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 22:23:28 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: ansible: add role for 'podman'
Hello pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/21241 to look at the new patch set (#3). Change subject: ansible: add role for 'podman' .. ansible: add role for 'podman' podman has one particularly interesting feature which docker rejected years ago: The ability to run a container in a pre-existing namespace. This is quite useful for some of our test setups, particularly those that involve hdlc net-devices Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 --- A ansible/roles/podman/tasks/debian.yml A ansible/roles/podman/tasks/main.yml 2 files changed, 40 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/41/21241/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 Gerrit-Change-Number: 21241 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-ci[master]: ansible: add role for 'podman'
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21241 ) Change subject: ansible: add role for 'podman' .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 Gerrit-Change-Number: 21241 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 21:07:57 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: Reset nsvc to SGSN before each test
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 ) Change subject: Reset nsvc to SGSN before each test .. Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 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: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Gerrit-Change-Number: 21233 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 21:06:44 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Split initiater into init_reset and init_block
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21240 ) Change subject: ns2: Split initiater into init_reset and init_block .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iff5aff0cf8d19d9c718dd11c4e731ced2aeb16ba Gerrit-Change-Number: 21240 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 21:06:25 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Add a function to set the NSVC FSM back to unconfigured
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to set the NSVC FSM back to unconfigured .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 21:05:44 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Add a VTY command to reset NSVC FSM
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21232 ) Change subject: ns2: Add a VTY command to reset NSVC FSM .. Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 21:03:50 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param .. Patch Set 1: > Patch Set 1: > > wouldnt it have made sense to specify a default value for the variable, so > that building withou tany explicit build-arg still works? The default value is in Makefile.am, so if you build with make it works out of the box. Default value in Dockerfile is only needed if one attempts to build directly from it. I can add it to each Dockerfile if you prefer, but I thought it was going to be confusing since anyway that value is not used because a default value is pssed through Makefile. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 21:02:53 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-ci[master]: ansible: add role for 'podman'
laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-ci/+/21241 ) Change subject: ansible: add role for 'podman' .. ansible: add role for 'podman' podman has one particularly interesting feature which docker rejected years ago: The ability to run a container in a pre-existing namespace. This is quite useful for some of our test setups, particularly those that involve hdlc net-devices Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 --- A ansible/roles/podman/tasks/debian.yml A ansible/roles/podman/tasks/main.yml 2 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/41/21241/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 Gerrit-Change-Number: 21241 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-MessageType: newpatchset
Change in osmo-ci[master]: ansible: add role for 'podman'
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/21241 ) Change subject: ansible: add role for 'podman' .. ansible: add role for 'podman' podman has one particularly interesting feature which docker rejected years ago: The ability to run a container in a pre-existing namespace. This is quite useful for some of our test setups, particularly those that involve hdlc net-devices Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 --- A ansible/roles/podman/tasks/debian.yml A ansible/roles/podman/tasks/main.yml 2 files changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/41/21241/1 diff --git a/ansible/roles/podman/tasks/debian.yml b/ansible/roles/podman/tasks/debian.yml new file mode 100644 index 000..eafea8f --- /dev/null +++ b/ansible/roles/podman/tasks/debian.yml @@ -0,0 +1,31 @@ +--- + +- name: add apt https support + apt: +cache_valid_time: 3600 +update_cache: yes +pkg: + - apt-transport-https + - gnupg + - cron + - ca-certificates + when: ansible_distribution_major_version < 11 + +- name: add docker gpg key to apt keyring + apt_key: +id: 2472D6D0D2F66AF87ABA8DA34D64390375060AA4 +url: https://ftp.uni-stuttgart.de/opensuse/repositories/devel:/kubic:/libcontainers:/stable/Debian_{{ ansible_distribution_version }}/Release.key + when: ansible_distribution_major_version < 11 + +- apt_repository: +repo: "deb https://ftp.uni-stuttgart.de/opensuse/repositories/devel:/kubic:/libcontainers:/stable/Debian_{{ ansible_distribution_version }}/ /" +state: present +update_cache: yes + when: ansible_distribution_major_version < 11 + +- name: install podman + apt: +pkg: + - podman + - runc + - buildah diff --git a/ansible/roles/podman/tasks/main.yml b/ansible/roles/podman/tasks/main.yml new file mode 100644 index 000..049f5c2 --- /dev/null +++ b/ansible/roles/podman/tasks/main.yml @@ -0,0 +1,7 @@ +--- + +- name: Include tasks for Debian + include_tasks: debian.yml + when: (ansible_distribution in ['Debian', 'Raspbian']) + +# TODO: add other distributions below -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4b14599f39c07ec83fa4222f9d040d443caae3e6 Gerrit-Change-Number: 21241 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-ttcn3-hacks[master]: Reset nsvc to SGSN before each test
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 to look at the new patch set (#3). Change subject: Reset nsvc to SGSN before each test .. Reset nsvc to SGSN before each test Change-Id: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Related: SYS#5002 Depends: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf (libosmocore) --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/21233/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 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: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Gerrit-Change-Number: 21233 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: ns2: Split initiater into init_reset and init_block
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21240 ) Change subject: ns2: Split initiater into init_reset and init_block .. ns2: Split initiater into init_reset and init_block Change-Id: Iff5aff0cf8d19d9c718dd11c4e731ced2aeb16ba --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 27 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/21240/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 0d30f12..0dcaf5e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -55,9 +55,10 @@ struct gprs_ns2_vc *nsvc; /* how often the timer was triggered */ int N; - /* The initiater is responsible to UNBLOCK the VC. The BSS is usually the initiater. + /* The initiator is responsible to UNBLOCK the VC. The BSS is usually the initiator. * It can change while runtime. The side which blocks an unblocked side.*/ - bool initiater; + bool init_block; + bool init_reset; /* the alive counter is present in all states */ struct { @@ -241,7 +242,7 @@ if (old_state != GPRS_NS2_ST_RESET) priv->N = 0; - if (priv->initiater) + if (priv->init_reset) ns2_tx_reset(priv->nsvc, NS_CAUSE_OM_INTERVENTION); stop_test_procedure(priv); @@ -253,7 +254,7 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { + if (priv->init_reset) { switch (event) { case GPRS_NS2_EV_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, @@ -279,7 +280,7 @@ if (old_state != GPRS_NS2_ST_BLOCKED) priv->N = 0; - if (priv->initiater) + if (priv->init_block) ns2_tx_unblock(priv->nsvc); start_test_procedure(priv); @@ -289,7 +290,7 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { + if (priv->init_block) { switch (event) { case GPRS_NS2_EV_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ @@ -331,7 +332,7 @@ switch (event) { case GPRS_NS2_EV_BLOCK: - priv->initiater = false; + priv->init_block = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); @@ -419,10 +420,10 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiater) { - /* PCU timeouts */ - switch (fi->state) { - case GPRS_NS2_ST_RESET: + /* PCU timeouts */ + switch (fi->state) { + case GPRS_NS2_ST_RESET: + if (priv->init_reset) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_RESET_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); @@ -430,16 +431,20 @@ priv->N = 0; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } - break; - case GPRS_NS2_ST_BLOCKED: + } + break; + case GPRS_NS2_ST_BLOCKED: + if (priv->init_block) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); } else { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } - break; - case GPRS_NS2_ST_ALIVE: + } + break; + case GPRS_NS2_ST_ALIVE: + if (priv->init_reset) { priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, 0, 0); @@ -449,6 +454,7 @@ } break; } + break; } return 0; } @@ -502,7 +508,7 @@ /* move the FSM into reset */ if (fi->state != GPRS_NS2_ST_RESET) { - priv->initiater = false; + priv->init_reset = false; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); } /* pass
Change in libosmocore[master]: ns2: Add a function to set the NSVC FSM back to unconfigured
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21231 to look at the new patch set (#2). Change subject: ns2: Add a function to set the NSVC FSM back to unconfigured .. ns2: Add a function to set the NSVC FSM back to unconfigured The function gprs_ns2_vs_force_unconfigured() resets the NSVC state back to the initial value when it was first started. This can be useful for testing. Related: SYS#5002 Change-Id: If96d56b19959372af4eba009661be19e985b4d51 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c 2 files changed, 29 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/21231/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: ns2: Add a VTY command to reset NSVC FSM
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21232 to look at the new patch set (#3). Change subject: ns2: Add a VTY command to reset NSVC FSM .. ns2: Add a VTY command to reset NSVC FSM Mainly useful for testing so implemented as a hidden command Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Related: SYS#5002 --- M src/gb/gprs_ns2_vty.c 1 file changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/21232/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param .. Patch Set 1: wouldnt it have made sense to specify a default value for the variable, so that building withou tany explicit build-arg still works? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e Gerrit-Change-Number: 21239 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 17:11:01 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in docker-playground[master]: common: Automatize UPSTREAM_DISTRO name based on image name
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21238 ) Change subject: common: Automatize UPSTREAM_DISTRO name based on image name .. common: Automatize UPSTREAM_DISTRO name based on image name Similar to what is already done with DISTRO, which points to given image of ours based on name. This time we do the same with upstream images, such as debian:stretch or centos:centos8. This way, for instance calling docker_images_require "osmo-bsc-latest-centos8" would try to build the osmo-bsc-latest/Dockerfile file starting from a centos8 image. Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda --- M centos-repo-install-test/Dockerfile M centos8-build/Dockerfile M debian-repo-install-test/Dockerfile M debian-stretch-build/Dockerfile M debian-stretch-titan/Dockerfile M jenkins-common.sh M make/Makefile M osmo-bsc-latest/Dockerfile M osmo-bts-latest/Dockerfile M osmo-cn-latest/Dockerfile M osmo-ggsn-latest/Dockerfile M osmo-hlr-latest/Dockerfile M osmo-hnbgw-latest/Dockerfile M osmo-mgw-latest/Dockerfile M osmo-msc-latest/Dockerfile M osmo-nitb-latest/Dockerfile M osmo-pcu-latest/Dockerfile M osmo-remsim-latest/Dockerfile M osmo-sgsn-latest/Dockerfile M osmo-sip-latest/Dockerfile M osmo-stp-latest/Dockerfile 21 files changed, 61 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/38/21238/1 diff --git a/centos-repo-install-test/Dockerfile b/centos-repo-install-test/Dockerfile index 3f53650..5cbddb0 100644 --- a/centos-repo-install-test/Dockerfile +++ b/centos-repo-install-test/Dockerfile @@ -1,6 +1,7 @@ ARGUSER ARGREGISTRY=docker.io -FROM ${REGISTRY}/centos:centos8 +ARGUPSTREAM_DISTRO=centos:centos8 +FROM ${REGISTRY}/${UPSTREAM_DISTRO} # dnf-utils: for repoquery RUNdnf install -y \ @@ -9,4 +10,3 @@ # Make additional development libraries available RUNyum config-manager --set-enabled PowerTools - diff --git a/centos8-build/Dockerfile b/centos8-build/Dockerfile index 46ce23e..e71e03c 100644 --- a/centos8-build/Dockerfile +++ b/centos8-build/Dockerfile @@ -1,5 +1,6 @@ ARGREGISTRY=docker.io -FROM ${REGISTRY}/centos:centos8 +ARGUPSTREAM_DISTRO=centos:centos8 +FROM ${REGISTRY}/${UPSTREAM_DISTRO} # Let package metadata expire after 60 seconds instead of 48 hours RUNecho "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf diff --git a/debian-repo-install-test/Dockerfile b/debian-repo-install-test/Dockerfile index e718a23..e12da75 100644 --- a/debian-repo-install-test/Dockerfile +++ b/debian-repo-install-test/Dockerfile @@ -1,6 +1,7 @@ ARGUSER ARGREGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARGUPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} COPY Release.key /tmp/Release.key diff --git a/debian-stretch-build/Dockerfile b/debian-stretch-build/Dockerfile index ac52708..96e92de 100644 --- a/debian-stretch-build/Dockerfile +++ b/debian-stretch-build/Dockerfile @@ -1,5 +1,6 @@ ARGREGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARGUPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 7420348..01d941e 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -1,5 +1,6 @@ ARGREGISTRY=docker.io -FROM ${REGISTRY}/debian:stretch +ARGUPSTREAM_DISTRO=debian:stretch +FROM ${REGISTRY}/${UPSTREAM_DISTRO} MAINTAINER Harald Welte diff --git a/jenkins-common.sh b/jenkins-common.sh index d9e79a4..fdcfd40 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -12,10 +12,18 @@ docker_distro_from_image_name() { case "$1" in - osmo-*-centos8) echo "centos8"; ;; + osmo-*-centos8) echo "centos8" ;; + centos8-*) echo "centos8" ;; *) echo "debian-stretch" ;; esac +} +docker_upstream_distro_from_image_name() { + case "$1" in + osmo-*-centos8) echo "centos:centos8"; ;; + centos8-*) echo "centos:centos8" ;; + *) echo "debian:stretch" ;; + esac } docker_dir_from_image_name() { @@ -27,15 +35,20 @@ # Make sure required images are available and build them if necessary. # $*: image names (e.g. "debian-stretch-build", "osmo-mgw-master", "osmo-mgw-master-centos8") -# The images are automatically built from the Dockerfile of the subdir of the same name. If there is a -# distribution name at the end of the image name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir -# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile) and DISTRO is passed accordingly -# (e.g. DISTRO=centos8). This allows one Dockerfile for multiple distributions, without duplicating configs for -# each distribution. Dependencies listed in docker_depends() are built
Change in docker-playground[master]: common: Introduce OSMOCOM_REPO_MIRROR param
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21239 ) Change subject: common: Introduce OSMOCOM_REPO_MIRROR param .. common: Introduce OSMOCOM_REPO_MIRROR param This allows easily changing to another osmocom repo base URL if the default one is down. Related: OS#4862 Change-Id: I8010b08f3dabacfb3c13a44eece6c7a490e0742e --- M debian-buster-erlang/Dockerfile M debian-buster-simtrace2/Dockerfile M debian-jessie-osmocom/Dockerfile M debian-stretch-build-dist/Dockerfile M debian-stretch-jenkins/Dockerfile M debian-stretch-titan/Dockerfile M make/Makefile M osmo-bsc-latest/Dockerfile M osmo-bsc-master/Dockerfile M osmo-bts-latest/Dockerfile M osmo-bts-master/Dockerfile M osmo-cn-latest/Dockerfile M osmo-ggsn-latest/Dockerfile M osmo-ggsn-master/Dockerfile M osmo-gsm-tester/Dockerfile M osmo-hlr-latest/Dockerfile M osmo-hlr-master/Dockerfile M osmo-hnbgw-latest/Dockerfile M osmo-hnbgw-master/Dockerfile M osmo-mgw-latest/Dockerfile M osmo-mgw-master/Dockerfile M osmo-msc-latest/Dockerfile M osmo-msc-master/Dockerfile M osmo-nitb-latest/Dockerfile M osmo-nitb-master/Dockerfile M osmo-pcu-latest/Dockerfile M osmo-pcu-master/Dockerfile M osmo-remsim-latest/Dockerfile M osmo-remsim-master/Dockerfile M osmo-sgsn-latest/Dockerfile M osmo-sgsn-master/Dockerfile M osmo-sip-latest/Dockerfile M osmo-sip-master/Dockerfile M osmo-smlc-master/Dockerfile M osmo-stp-latest/Dockerfile M osmo-stp-master/Dockerfile M osmo-uecups-master/Dockerfile M osmocom-bb-host-master/Dockerfile 38 files changed, 142 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/39/21239/1 diff --git a/debian-buster-erlang/Dockerfile b/debian-buster-erlang/Dockerfile index 8ac470f..f680276 100644 --- a/debian-buster-erlang/Dockerfile +++ b/debian-buster-erlang/Dockerfile @@ -1,9 +1,11 @@ ARGREGISTRY=docker.io FROM ${REGISTRY}/debian:buster +# Arguments used after FROM must be specified again +ARGOSMOCOM_REPO_MIRROR MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_10/; +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_10/" # install the erlang vm and rebar (2) RUNapt-get update && \ diff --git a/debian-buster-simtrace2/Dockerfile b/debian-buster-simtrace2/Dockerfile index cd1d359..17a6ac8 100644 --- a/debian-buster-simtrace2/Dockerfile +++ b/debian-buster-simtrace2/Dockerfile @@ -1,9 +1,11 @@ ARGUSER FROM $USER/debian-buster-build +# Arguments used after FROM must be specified again +ARGOSMOCOM_REPO_MIRROR MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_10/; +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_10/" COPY Release.key /tmp/Release.key diff --git a/debian-jessie-osmocom/Dockerfile b/debian-jessie-osmocom/Dockerfile index 77c223f..239e370 100644 --- a/debian-jessie-osmocom/Dockerfile +++ b/debian-jessie-osmocom/Dockerfile @@ -1,9 +1,11 @@ ARGREGISTRY=docker.io FROM ${REGISTRY}/debian:jessie +# Arguments used after FROM must be specified again +ARGOSMOCOM_REPO_MIRROR MAINTAINER Harald Welte -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_8.0/; +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/nightly/Debian_8.0/" COPY Release.key /tmp/Release.key diff --git a/debian-stretch-build-dist/Dockerfile b/debian-stretch-build-dist/Dockerfile index a1f0290..c742ac4 100644 --- a/debian-stretch-build-dist/Dockerfile +++ b/debian-stretch-build-dist/Dockerfile @@ -1,7 +1,9 @@ ARGUSER FROM $USER/debian-stretch-build +# Arguments used after FROM must be specified again +ARGOSMOCOM_REPO_MIRROR -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/; +ARG OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/latest/Debian_9.0/" COPY Release.key /tmp/Release.key diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index c682d9c..2620076 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -4,6 +4,8 @@ ARGDEBIAN_VERSION=stretch ARGREGISTRY=docker.io FROM ${REGISTRY}/debian:${DEBIAN_VERSION} +# Arguments used after FROM must be specified again +ARGOSMOCOM_REPO_MIRROR # Make "$DEBIAN_VERSION" available after FROM # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact @@ -153,7 +155,7 @@ ENV LANG en_US.UTF-8 # osmo-remsim needs libulfius which is built in osmocom OBS repos: -ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/; +ARG
Change in osmo-bsc[master]: handover_test: add test 32: half used TCH/H on dyn TS
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21235 ) Change subject: handover_test: add test 32: half used TCH/H on dyn TS .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c Gerrit-Change-Number: 21235 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 14:46:17 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bsc[master]: handover_test: add test 32: half used TCH/H on dyn TS
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21235 to look at the new patch set (#2). Change subject: handover_test: add test 32: half used TCH/H on dyn TS .. handover_test: add test 32: half used TCH/H on dyn TS Shows undesired behavior of moving a TCH/H from a fully used dyn TS leading to two half-used dyn TS, rather than moving the half-used dyn TS that would lead to completely freeing a dyn TS. Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c --- M tests/handover/handover_test.c M tests/testsuite.at 2 files changed, 30 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/21235/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c Gerrit-Change-Number: 21235 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-bsc[master]: hodec 2: prefer moving TCH/H from half-used dyn TS
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21236 ) Change subject: hodec 2: prefer moving TCH/H from half-used dyn TS .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I427dc9faa3790c24119127ae227d8cc802dd50e6 Gerrit-Change-Number: 21236 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 18 Nov 2020 14:25:37 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bsc[master]: handover_test: add test 32: half used TCH/H on dyn TS
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21235 ) Change subject: handover_test: add test 32: half used TCH/H on dyn TS .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c Gerrit-Change-Number: 21235 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 18 Nov 2020 14:24:27 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: deps/Makefile: Require v0.1 of AF_PACKET TestPort
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 ) Change subject: deps/Makefile: Require v0.1 of AF_PACKET TestPort .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 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: I435d0c09e051e0a3082e8c87807b72ce92117007 Gerrit-Change-Number: 21237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 14:23:48 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: deps/Makefile: Require v0.1 of AF_PACKET TestPort
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 ) Change subject: deps/Makefile: Require v0.1 of AF_PACKET TestPort .. deps/Makefile: Require v0.1 of AF_PACKET TestPort Change-Id: I435d0c09e051e0a3082e8c87807b72ce92117007 --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/deps/Makefile b/deps/Makefile index a67c4f8..5435da2 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -112,7 +112,7 @@ titan.ProtocolModules.SUA_commit= R.5.A-5-gcf1137a titan.ProtocolModules.TCP_commit= R.3.A-5-g39e5f45 titan.ProtocolModules.UDP_commit= R.4.A-5-geea8aa3 -titan.TestPorts.AF_PACKET_commit= master +titan.TestPorts.AF_PACKET_commit= 0.1 titan.TestPorts.Common_Components.Socket-API_commit= R.6.A-6-gf4380d0 titan.TestPorts.Common_Components.Abstract_Socket_commit= R.9.B-4-gbd41994 titan.TestPorts.HTTPmsg_commit=R.9.B-4-g9a0dfde -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 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: I435d0c09e051e0a3082e8c87807b72ce92117007 Gerrit-Change-Number: 21237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in osmo-ttcn3-hacks[master]: deps/Makefile: Require v0.1 of AF_PACKET TestPort
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 ) Change subject: deps/Makefile: Require v0.1 of AF_PACKET TestPort .. deps/Makefile: Require v0.1 of AF_PACKET TestPort Change-Id: I435d0c09e051e0a3082e8c87807b72ce92117007 --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/21237/1 diff --git a/deps/Makefile b/deps/Makefile index a67c4f8..5435da2 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -112,7 +112,7 @@ titan.ProtocolModules.SUA_commit= R.5.A-5-gcf1137a titan.ProtocolModules.TCP_commit= R.3.A-5-g39e5f45 titan.ProtocolModules.UDP_commit= R.4.A-5-geea8aa3 -titan.TestPorts.AF_PACKET_commit= master +titan.TestPorts.AF_PACKET_commit= 0.1 titan.TestPorts.Common_Components.Socket-API_commit= R.6.A-6-gf4380d0 titan.TestPorts.Common_Components.Abstract_Socket_commit= R.9.B-4-gbd41994 titan.TestPorts.HTTPmsg_commit=R.9.B-4-g9a0dfde -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21237 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: I435d0c09e051e0a3082e8c87807b72ce92117007 Gerrit-Change-Number: 21237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-bsc[master]: hodec 2: prefer moving TCH/H from half-used dyn TS
neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21236 ) Change subject: hodec 2: prefer moving TCH/H from half-used dyn TS .. hodec 2: prefer moving TCH/H from half-used dyn TS Change-Id: I427dc9faa3790c24119127ae227d8cc802dd50e6 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/handover_test.c 2 files changed, 23 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/36/21236/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 4e54368..9fab1fc 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1368,6 +1368,17 @@ || lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_PDCH; } +static unsigned int ts_usage_count(struct gsm_bts_trx_ts *ts) +{ + struct gsm_lchan *lchan; + unsigned int count = 0; + ts_for_each_lchan(lchan, ts) { + if (lchan_state_is(lchan, LCHAN_ST_ESTABLISHED)) + count++; + } + return count; +} + /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ @@ -1384,10 +1395,17 @@ goto return_other; /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot -* type flexibility for further congestion resolution. If both are dynamic, it does not matter which one is -* picked. */ - if (lchan_is_on_dynamic_ts(other_cand->lchan)) +* type flexibility for further congestion resolution. */ + if (lchan_is_on_dynamic_ts(other_cand->lchan)) { + /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ + if (lchan_is_on_dynamic_ts((*best_cand_p)->lchan) + && ts_usage_count((*best_cand_p)->lchan->ts) < ts_usage_count(other_cand->lchan->ts)) + return; + /* If both equally satisfy these preferences, it does not matter which one is picked. +* Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static +* PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ goto return_other; + } /* keep the same candidate. */ return; diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 62c01f0..28d87db 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1765,10 +1765,9 @@ "congestion-check", "expect-chan", "0", "1", "ack-chan", - /* Not so good: should move the half-used TCH/H instead of "halving" another dyn TS */ - "expect-ho", "0", "4", + "expect-ho", "0", "3", "ho-complete", - "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "TCH/H-", "TCH/H-", "PDCH", "-", "-", + "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "PDCH", "TCH/HH", "PDCH", "-", "-", NULL }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I427dc9faa3790c24119127ae227d8cc802dd50e6 Gerrit-Change-Number: 21236 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange
Change in osmo-bsc[master]: handover_test: add test 32: half used TCH/H on dyn TS
neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21235 ) Change subject: handover_test: add test 32: half used TCH/H on dyn TS .. handover_test: add test 32: half used TCH/H on dyn TS Shows undesired behavior of moving a TCH/H from a fully used dyn TS leading to two half-used dyn TS, rather than moving the half-used dyn TS that would lead to completely freeing a dyn TS. Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c --- M tests/handover/handover_test.c M tests/testsuite.at 2 files changed, 30 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/21235/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index c9f288f..62c01f0 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1749,6 +1749,29 @@ NULL }; +static char *test_case_32[] = { + "2", + + "Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely\n" + , + "create-bts", "1", "c+s4", "dyn", "dyn", "dyn", "dyn", "dyn", "-", "-", + "set-ts-use", "0", "0", "*", "PDCH", "TCH/HH", "TCH/H-", "TCH/HH", "PDCH", "-", "-", + "meas-rep", "0","0","2","1", "30","0", "0", + "meas-rep", "0","0","3","0", "30","0", "0", + "meas-rep", "0","0","4","0", "30","0", "0", + "meas-rep", "0","0","4","1", "30","0", "0", + /* pick one to move */ + "set-min-free", "0", "TCH/H", "6", + "congestion-check", + "expect-chan", "0", "1", + "ack-chan", + /* Not so good: should move the half-used TCH/H instead of "halving" another dyn TS */ + "expect-ho", "0", "4", + "ho-complete", + "expect-ts-use", "0", "0", "*", "TCH/F", "TCH/HH", "TCH/H-", "TCH/H-", "PDCH", "-", "-", + NULL +}; + static char **test_cases[] = { test_case_0, test_case_1, @@ -1782,6 +1805,7 @@ test_case_29, test_case_30, test_case_31, + test_case_32, }; static const struct log_info_cat log_categories[] = { diff --git a/tests/testsuite.at b/tests/testsuite.at index bd6f56f..afff9c5 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -242,3 +242,9 @@ cat $abs_srcdir/handover/handover_test.ok > expout AT_CHECK([$abs_top_builddir/tests/handover/handover_test 31], [], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([handover test 32]) +AT_KEYWORDS([handover]) +cat $abs_srcdir/handover/handover_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/handover/handover_test 32], [], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3beaa95d12ca0a19d4d1a732f3e22558e68ee29c Gerrit-Change-Number: 21235 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange
Change in osmo-bsc[master]: hodec 2: favor moving dyn TS
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 to look at the new patch set (#6). Change subject: hodec 2: favor moving dyn TS .. hodec 2: favor moving dyn TS When a used timeslot gets moved to another timeslot for load balancing, prefer moving a dynamic timeslot, as illustrated by handover_test.c test 30. Rationale: freeing up a dynamic timeslot is better for PDCH availability, as well as for flexibility in timeslots. Test 30 shows that when freeing a static TCH/F even though a dynamic one with identical ratings is in use, later handovers to a TCH/H may become impossible, because no more dynamic timeslots are available to switch to TCH/H. A freed dynamic timeslot allows congestion resolution to continue and reduce more TCH/F to TCH/H. The scope of this preference is per-TRX, where the RXLEV ratings used for picking a target lchan are the same by definition. In other words, this never overrules picking another lchan that has better RXLEV. Among lchans on dynamic timeslots that could be moved, this code favors moving later lchans; mainly because it makes for a simpler condition in the code. Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/handover_test.c 2 files changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/21204/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 Gerrit-Change-Number: 21204 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-bsc[master]: handover test 30: play through filling up all lchans
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21205 to look at the new patch set (#6). Change subject: handover test 30: play through filling up all lchans .. handover test 30: play through filling up all lchans Change-Id: I938ef9ebf77a4e72fc525f4f764daf34f17167ef --- M tests/handover/handover_test.c 1 file changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/05/21205/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21205 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I938ef9ebf77a4e72fc525f4f764daf34f17167ef Gerrit-Change-Number: 21205 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-bsc[master]: hodec 2: prep: common pick_better_lchan_to_move() function
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21234 ) Change subject: hodec 2: prep: common pick_better_lchan_to_move() function .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I745dc95cf564dd330295cecb4d64dccebf55163f Gerrit-Change-Number: 21234 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 14:02:19 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bsc[master]: hodec 2: favor moving dyn TS
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21204 ) Change subject: hodec 2: favor moving dyn TS .. Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 Gerrit-Change-Number: 21204 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 14:01:43 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: Add VTY command to reset nsvcs
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21232 ) Change subject: Add VTY command to reset nsvcs .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:58:37 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Add a function to reset the NSVC
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to reset the NSVC .. Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c@632 PS1, Line 632: switch (priv->nsvc->mode) { > No, the reset event indicates that a RESET PDU has been received. […] well I didn't mean the existing RESET event (I didn't even know there was one), I'm simply saying this kind of code you are adding here looks like should be handled inside the FSM code, so you should send an event, name it however you want. Of course receiving a RESET and Initiating a RESET are 2 different events. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:58:06 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in osmo-bsc[master]: hodec 2: prep: common pick_better_lchan_to_move() function
neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/21234 ) Change subject: hodec 2: prep: common pick_better_lchan_to_move() function .. hodec 2: prep: common pick_better_lchan_to_move() function There are four places deciding which of 2 lchans to move, depending on average db ratings. Upcoming patches will enrich that decision for better handling of dynamic timeslots, so have one common function for these to avoid code dup. Change-Id: I745dc95cf564dd330295cecb4d64dccebf55163f --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 27 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/21234/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I745dc95cf564dd330295cecb4d64dccebf55163f Gerrit-Change-Number: 21234 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset
Change in osmo-bsc[master]: hodec 2: favor moving dyn TS
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 to look at the new patch set (#5). Change subject: hodec 2: favor moving dyn TS .. hodec 2: favor moving dyn TS When a used timeslot gets moved to another timeslot for load balancing, prefer moving a dynamic timeslot, as illustrated by handover_test.c test 30. Rationale: freeing up a dynamic timeslot is better for PDCH availability, as well as for flexibility in timeslots. Test 30 shows that when freeing a static TCH/F even though a dynamic one with identical ratings is in use, later handovers to a TCH/H may become impossible, because no more dynamic timeslots are available to switch to TCH/H. A freed dynamic timeslot allows congestion resolution to continue and reduce more TCH/F to TCH/H. The scope of this preference is per-TRX, where the RXLEV ratings used for picking a target lchan are the same by definition. In other words, this never overrules picking another lchan that has better RXLEV. Among lchans on dynamic timeslots that could be moved, this code favors moving later lchans; mainly because it makes for a simpler condition in the code. Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/handover_test.c 2 files changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/21204/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 Gerrit-Change-Number: 21204 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-bsc[master]: hodec 2: prep: common pick_better_lchan_to_move() function
neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21234 ) Change subject: hodec 2: prep: common pick_better_lchan_to_move() function .. hodec 2: prep: common pick_better_lchan_to_move() function There are four places deciding which of to lchans to move, depending on average db ratings. Upcoming patches will enrich that decision for better handling of dynamic timeslots, so have one common function for these to avoid code dup. Change-Id: I745dc95cf564dd330295cecb4d64dccebf55163f --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 27 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/21234/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index c818dbb..7df8bb1 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1362,6 +1362,29 @@ } } +/* Given two candidates, pick the one that should rather be moved during handover. + * Return the better candidate in out-parameters best_cand and best_avg_db. + */ +static void pick_better_lchan_to_move(bool want_highest_db, + struct ho_candidate **best_cand_p, unsigned int *best_avg_db_p, + struct ho_candidate *other_cand, unsigned int other_avg_db) +{ + if (!*best_cand_p) + goto return_other; + + if (want_highest_db && (*best_avg_db_p < other_avg_db)) + goto return_other; + if (!want_highest_db && (*best_avg_db_p > other_avg_db)) + goto return_other; + + /* keep the same candidate. */ + return; + +return_other: + *best_cand_p = other_cand; + *best_avg_db_p = other_avg_db; +} + /* * Handover/assignment check after timer timeout: * @@ -1563,10 +1586,7 @@ is_improved = 0; LOGPHOCAND([i], LOGL_DEBUG, "candidate %d: avg=%d best_avg_db=%d\n", i, avg, best_avg_db); - if (avg > best_avg_db) { - best_cand = [i]; - best_avg_db = avg; - } + pick_better_lchan_to_move(true, _cand, _avg_db, [i], avg); } /* perform handover, if there is a candidate */ @@ -1636,10 +1656,7 @@ is_improved = 1; } else is_improved = 0; - if (avg < worst_avg_db) { - worst_cand = [i]; - worst_avg_db = avg; - } + pick_better_lchan_to_move(false, _cand, _avg_db, [i], avg); } } @@ -1712,10 +1729,7 @@ is_improved = 1; } else is_improved = 0; - if (avg > best_avg_db) { - best_cand = [i]; - best_avg_db = avg; - } + pick_better_lchan_to_move(true, _cand, _avg_db, [i], avg); } /* perform handover, if there is a candidate */ @@ -1790,10 +1804,7 @@ is_improved = 0; LOGP(DHODEC, LOGL_DEBUG, "candidate %d: avg=%d worst_avg_db=%d\n", i, avg, worst_avg_db); - if (avg < worst_avg_db) { - worst_cand = [i]; - worst_avg_db = avg; - } + pick_better_lchan_to_move(false, _cand, _avg_db, [i], avg); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I745dc95cf564dd330295cecb4d64dccebf55163f Gerrit-Change-Number: 21234 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange
Change in osmo-bsc[master]: fix TCH/H allocation: use half occupied dyn TS instead of switching m...
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21203 ) Change subject: fix TCH/H allocation: use half occupied dyn TS instead of switching more dyn TS .. fix TCH/H allocation: use half occupied dyn TS instead of switching more dyn TS Change-Id: I5a8d943f31774af00664d037550be14e767d312a --- M include/osmocom/bsc/timeslot_fsm.h M src/osmo-bsc/lchan_select.c M src/osmo-bsc/timeslot_fsm.c M tests/handover/handover_test.c 4 files changed, 40 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/timeslot_fsm.h b/include/osmocom/bsc/timeslot_fsm.h index d02e156..da66136 100644 --- a/include/osmocom/bsc/timeslot_fsm.h +++ b/include/osmocom/bsc/timeslot_fsm.h @@ -50,4 +50,4 @@ bool ts_is_capable_of_lchant(struct gsm_bts_trx_ts *ts, enum gsm_chan_t type); bool ts_is_lchan_waiting_for_pchan(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config *target_pchan); bool ts_is_pchan_switching(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config *target_pchan); -bool ts_usable_as_pchan(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan); +bool ts_usable_as_pchan(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch); diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 6d3caac..64f4939 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -32,17 +32,19 @@ static struct gsm_lchan * _lc_find_trx(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan, -enum gsm_phys_chan_config as_pchan) +enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch) { struct gsm_lchan *lchan; struct gsm_bts_trx_ts *ts; int j, start, stop, dir; #define LOGPLCHANALLOC(fmt, args...) \ - LOGP(DRLL, LOGL_DEBUG, "looking for lchan %s%s%s: " fmt, \ + LOGP(DRLL, LOGL_DEBUG, "looking for lchan %s%s%s%s: " fmt, \ gsm_pchan_name(pchan), \ pchan == as_pchan ? "" : " as ", \ -pchan == as_pchan ? "" : gsm_pchan_name(as_pchan), ## args) +pchan == as_pchan ? "" : gsm_pchan_name(as_pchan), \ +((pchan != as_pchan) && !allow_pchan_switch) ? " without pchan switch" : "", \ +## args) if (!trx_is_usable(trx)) { LOGPLCHANALLOC("%s trx not usable\n", gsm_trx_name(trx)); @@ -73,9 +75,10 @@ continue; } /* Next, is this timeslot in or can it be switched to the pchan we want to use it for? */ - if (!ts_usable_as_pchan(ts, as_pchan)) { - LOGPLCHANALLOC("%s is not usable as %s\n", gsm_ts_and_pchan_name(ts), - gsm_pchan_name(as_pchan)); + if (!ts_usable_as_pchan(ts, as_pchan, allow_pchan_switch)) { + LOGPLCHANALLOC("%s is not usable as %s%s\n", gsm_ts_and_pchan_name(ts), + gsm_pchan_name(as_pchan), + allow_pchan_switch ? "" : " without pchan switch"); continue; } @@ -104,18 +107,28 @@ { struct gsm_bts_trx *trx; struct gsm_lchan *lc; + int allow_pchan_switch; + bool try_pchan_switch; - if (bts->chan_alloc_reverse) { - llist_for_each_entry_reverse(trx, >trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan); - if (lc) - return lc; - } - } else { - llist_for_each_entry(trx, >trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan); - if (lc) - return lc; + /* First find an lchan that needs no change in its timeslot pchan mode. +* In particular, this ensures that handover to a dynamic timeslot in TCH/H favors timeslots that are currently +* using only one of two TCH/H, so that we don't switch more dynamic timeslots to TCH/H than necessary. +* For non-dynamic timeslots, it is not necessary to do a second pass with allow_pchan_switch == +* true, because they never switch anyway. */ + try_pchan_switch = (pchan != dyn_as_pchan); + for (allow_pchan_switch = 0; allow_pchan_switch <= (try_pchan_switch ? 1 : 0); allow_pchan_switch++) { + if (bts->chan_alloc_reverse) { + llist_for_each_entry_reverse(trx, >trx_list, list) { + lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch); + if (lc) +
Change in osmo-bsc[master]: hodec 2: favor moving dyn TS
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21204 ) Change subject: hodec 2: favor moving dyn TS .. Patch Set 4: i still want to tweak this patch though: forgot one of four places to apply this, and will also have more patches on this condition later, so adding a common function in a previous commit... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 Gerrit-Change-Number: 21204 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:48:25 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: Add VTY command to reset nsvcs
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21232 ) Change subject: Add VTY command to reset nsvcs .. Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21232/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/21232/1/src/gb/gprs_ns2_vty.c@369 PS1, Line 369: vty_out(vty, "WARNING: Block not implemented%s", VTY_NEWLINE); > If it's not implemented maybe simply don't add the option to the cmdline? We need to implement it at some point, but I can remove it for now if you prefer. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:44:32 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in libosmocore[master]: Add VTY command to reset nsvcs
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21232 to look at the new patch set (#2). Change subject: Add VTY command to reset nsvcs .. Add VTY command to reset nsvcs Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Related: SYS#5002 --- M src/gb/gprs_ns2_vty.c 1 file changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/21232/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: ns2: Add a function to reset the NSVC
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to reset the NSVC .. Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c@632 PS1, Line 632: switch (priv->nsvc->mode) { > looks like you want to send a RESET event to the FSM rather than handling > states here? No, the reset event indicates that a RESET PDU has been received. I want to send one/initiate the reset procedure which is also why I also have to set initiater to true -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:38:34 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: Reset nsvc to SGSN before each test
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 ) Change subject: Reset nsvc to SGSN before each test .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 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: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Gerrit-Change-Number: 21233 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:31:15 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: Add VTY command to reset nsvcs
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21232 ) Change subject: Add VTY command to reset nsvcs .. Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21232/1/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/21232/1/src/gb/gprs_ns2_vty.c@369 PS1, Line 369: vty_out(vty, "WARNING: Block not implemented%s", VTY_NEWLINE); If it's not implemented maybe simply don't add the option to the cmdline? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:30:50 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: ns2: Add a function to reset the NSVC
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to reset the NSVC .. Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/21231/1/src/gb/gprs_ns2_vc_fsm.c@632 PS1, Line 632: switch (priv->nsvc->mode) { looks like you want to send a RESET event to the FSM rather than handling states here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:28:44 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: Reset nsvc to SGSN before each test
daniel has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 ) Change subject: Reset nsvc to SGSN before each test .. Reset nsvc to SGSN before each test Change-Id: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Related: SYS#5002 Depends: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf (libosmocore) --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/21233/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 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: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Gerrit-Change-Number: 21233 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset
Change in libosmocore[master]: Add VTY command to reset nsvcs
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21232 ) Change subject: Add VTY command to reset nsvcs .. Add VTY command to reset nsvcs Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Related: SYS#5002 --- M src/gb/gprs_ns2_vty.c 1 file changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/21232/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 65fe88e..15b9e93 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -354,6 +355,61 @@ return CMD_SUCCESS; } +struct nsvc_foreach_data { + const char *operation; + struct vty *vty; +}; + +int nsvc_operation_cb(struct gprs_ns2_vc *nsvc, void *ctx) +{ + struct nsvc_foreach_data *data = (struct nsvc_foreach_data *)ctx; + struct vty *vty = data->vty; + + if (!strcmp(data->operation, "block")) { + vty_out(vty, "WARNING: Block not implemented%s", VTY_NEWLINE); +// gprs_ns_tx_block(nsvc, NS_CAUSE_OM_INTERVENTION); + } else if (!strcmp(data->operation, "unblock")) { + vty_out(vty, "WARNING: Unblock not implemented%s", VTY_NEWLINE); +// gprs_ns_tx_unblock(nsvc); + } else if (!strcmp(data->operation, "reset")) { + vty_out(vty, "Resetting NSVC %s%s", gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + gprs_ns2_vc_reset(nsvc); + } + + +} + +DEFUN(nsvc_nsei, nsvc_nsei_cmd, + "nsvc nsei <0-65535> (block|unblock|reset)", + "Perform an operation on all NSVCs of an NSE\n" + "The NSEI\n" + "Initiate BLOCK procedure\n" + "Initiate UNBLOCK procedure\n" + "Initiate RESET procedure\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_nse *nse; + + uint16_t id = atoi(argv[0]); + struct nsvc_foreach_data data = { + .operation = argv[1], + .vty = vty, + }; + + + nse = gprs_ns2_nse_by_nsei(nsi, id); + if (!nse) { + vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + /* Perform the operation for all nsvc */ + gprs_ns2_nse_foreach_nsvc(nse, nsvc_operation_cb, (void *)); + + return CMD_SUCCESS; +} + + #define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, @@ -699,6 +755,8 @@ install_lib_element_ve(_nse_cmd); install_lib_element_ve(_fltr_nsvc_cmd); + install_lib_element(ENABLE_NODE, _nsei_cmd); + install_lib_element(CFG_LOG_NODE, _fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, _ns_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf Gerrit-Change-Number: 21232 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange
Change in osmo-ttcn3-hacks[master]: Reset nsvc to SGSN before each test
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 ) Change subject: Reset nsvc to SGSN before each test .. Reset nsvc to SGSN before each test Change-Id: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Related: SYS#5002 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/21233/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index e690f34..8629fbc 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -359,6 +359,7 @@ f_init_vty(); for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + f_vty_transceive(GBPVTY, "nsvc nsei " & int2str(g_sgsn[i].cfg.nsei) & " reset"); f_init_gb_sgsn(g_sgsn[i], "GbProxy_Test", i); } f_sleep(4.0); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21233 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: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743 Gerrit-Change-Number: 21233 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange
Change in libosmocore[master]: ns2: Add a function to reset the NSVC
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21231 ) Change subject: ns2: Add a function to reset the NSVC .. ns2: Add a function to reset the NSVC Change-Id: If96d56b19959372af4eba009661be19e985b4d51 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c 2 files changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/21231/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index dee3ab7..1369efc 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -286,6 +286,7 @@ struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, const char *id, bool initiate); int gprs_ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc); +int gprs_ns2_vc_reset(struct gprs_ns2_vc *nsvc); int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 0d30f12..390c997 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -619,6 +619,28 @@ return 0; } +/*! Reset a NS-VC FSM. + * \param nsvc the virtual circuit + * \return 0 on success; negative on error */ +int gprs_ns2_vc_reset(struct gprs_ns2_vc *nsvc) +{ + int rc = -EINVAL; + struct osmo_fsm_inst *fi = nsvc->fi; + struct gprs_ns2_vc_priv *priv = fi->priv; + struct gprs_ns2_inst *nsi = nsvc->nse->nsi; + + switch (priv->nsvc->mode) { + case NS2_VC_MODE_ALIVE: + rc = osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE); + break; + case NS2_VC_MODE_BLOCKRESET: + priv->initiater = true; + rc = osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); + break; + } + return rc; +} + /*! entry point for messages from the driver/VL * \param nsvc virtual circuit on which the message was received * \param msg message that was received -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If96d56b19959372af4eba009661be19e985b4d51 Gerrit-Change-Number: 21231 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange
Change in osmo-sgsn[master]: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 ) Change subject: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP .. Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c File src/gprs/gprs_gb_parse.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c@465 PS1, Line 465: bgph = NULL; > no real need for this, but ok. just copied from gprs_gb_parse_bssgp() below https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c@472 PS1, Line 472: if (budh) { > budh can only be non null on the if clause above, so it probably make sense > to move it there too. […] just copied from gprs_gb_parse_bssgp() below but yes, I should re-structuere it. Doesn't make sense to keep it identical to the function below. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia6d5300e63ad23987cbdca824db620305bd583d7 Gerrit-Change-Number: 21227 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:10:18 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in libosmocore[master]: bssgp: Input argument to bssgp_tlv_parse() should be 'const'
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21226 ) Change subject: bssgp: Input argument to bssgp_tlv_parse() should be 'const' .. bssgp: Input argument to bssgp_tlv_parse() should be 'const' Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd --- M include/osmocom/gprs/gprs_bssgp.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 4eb9df4..e962b44 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -163,7 +163,7 @@ uint16_t cid); /* Wrapper around TLV parser to parse BSSGP IEs */ -static inline int bssgp_tlv_parse(struct tlv_parsed *tp, uint8_t *buf, int len) +static inline int bssgp_tlv_parse(struct tlv_parsed *tp, const uint8_t *buf, int len) { return tlv_parse(tp, _att_def, buf, len, 0, 0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd Gerrit-Change-Number: 21226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: bssgp: Input argument to bssgp_tlv_parse() should be 'const'
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21226 ) Change subject: bssgp: Input argument to bssgp_tlv_parse() should be 'const' .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd Gerrit-Change-Number: 21226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 13:08:09 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-sgsn[master]: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 ) Change subject: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6aef26c126b330a393fc2be5f558b6d5f1d9f7f4 Gerrit-Change-Number: 21228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 12:11:23 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-sgsn[master]: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 ) Change subject: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP .. Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c File src/gprs/gprs_gb_parse.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c@465 PS1, Line 465: bgph = NULL; no real need for this, but ok. https://gerrit.osmocom.org/c/osmo-sgsn/+/21227/1/src/gprs/gprs_gb_parse.c@472 PS1, Line 472: if (budh) { budh can only be non null on the if clause above, so it probably make sense to move it there too. Then the other parts can also be moved to the else clause, and data + data_len can also be dropped from the if condition? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia6d5300e63ad23987cbdca824db620305bd583d7 Gerrit-Change-Number: 21227 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 12:10:09 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: bssgp: Input argument to bssgp_tlv_parse() should be 'const'
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21226 ) Change subject: bssgp: Input argument to bssgp_tlv_parse() should be 'const' .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd Gerrit-Change-Number: 21226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 12:05:47 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for load sharing function in SGSN->PCU direction
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21225 ) Change subject: gbproxy: Add test for load sharing function in SGSN->PCU direction .. Patch Set 1: Code-Review+1 It should be easy to change the test to support N components instead of 4. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21225 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: Ide733d7659ff7f341bedc61fc90947f74d7c4ac3 Gerrit-Change-Number: 21225 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 12:05:11 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in titan.TestPorts.AF_PACKET[master]: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h
laforge has submitted this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 ) Change subject: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h .. AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h Change-Id: I2586ee726aea8f5d3edf397b2db2156bfafd7d8a --- M src/AF_PACKET_PT.cc 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index 1372ac0..3f46216 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -24,8 +24,6 @@ #include #include -#include - static int devname2ifindex(const char *ifname) { struct ifreq ifr; -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I2586ee726aea8f5d3edf397b2db2156bfafd7d8a Gerrit-Change-Number: 21230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in titan.TestPorts.AF_PACKET[master]: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 ) Change subject: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h .. Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I2586ee726aea8f5d3edf397b2db2156bfafd7d8a Gerrit-Change-Number: 21230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 12:04:48 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in titan.TestPorts.AF_PACKET[master]: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 ) Change subject: AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h .. AF_PACKET_PT.cc: Remove superfluous #include to osmocom/core/utils.h Change-Id: I2586ee726aea8f5d3edf397b2db2156bfafd7d8a --- M src/AF_PACKET_PT.cc 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/30/21230/1 diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index 1372ac0..3f46216 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -24,8 +24,6 @@ #include #include -#include - static int devname2ifindex(const char *ifname) { struct ifreq ifr; -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/21230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I2586ee726aea8f5d3edf397b2db2156bfafd7d8a Gerrit-Change-Number: 21230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-ttcn3-hacks[master]: NS_Emulation: Include NS-VCI in NsUnitdataIndication
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224 ) Change subject: NS_Emulation: Include NS-VCI in NsUnitdataIndication .. Patch Set 1: (1 comment) I don't see any place using this new field to match on, I guess it's going to be in next patches? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224/1//COMMIT_MSG@10 PS1, Line 10: we actually want to verify whcih NS-VC a given message has arrived on, typo: which -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224 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: I9402bf0be47e5b93c9cfb081eb8f9fa6734c9227 Gerrit-Change-Number: 21224 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 12:00:35 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-bsc[master]: hodec 2: favor moving dyn TS
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21204 ) Change subject: hodec 2: favor moving dyn TS .. Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21204/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21204/4//COMMIT_MSG@23 PS4, Line 23: Among lchans on dynamic timeslots that could be moved, this code favors moving : later lchans; mainly because it makes for a simpler condition in the code. > sorry but you clearly are missing the point here :) […] Ok fine then, thanks for the explanation. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic221b8d2687cdec0bf94410c84a4da43853f0900 Gerrit-Change-Number: 21204 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 11:57:18 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in osmo-pcu[master]: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS
Hello Jenkins Builder, neels, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/21179 to look at the new patch set (#4). Change subject: Implement downgrade to DL MCS1-4 when USF for GPRS_only MS .. Implement downgrade to DL MCS1-4 when USF for GPRS_only MS In previous status, if USF for GPRS-only MS was selected, then EGPRS TBFs were skipped and either a GPRS TBF was selected or a Dummy Block was sent. That means the behavior was unfair towards EGPRS TBFs, because sometimes they were skipped in favor of GPRS ones. This patch imporves the situation in the above mentioned USF scenario, by first, under specific conditions, allowing selection of an EGPRS TBF and then forcing it to transmit in EGPRS-GMSK (MCS1-4) so that the USF-targeted MS can still decode the USF, while at the same time providing more fairness by allowing the EGPRS TBF to transmit data. The specific conditions mentioned above are, mainly, related to the fact that once a DL data block has been sent, and hence a BSN was assigned to it, it cannot be retransmitted later using another MCS, since lower MCS1-4 wouldn't be able to contain higher MCS RLC payload. The set of conditions could be expanded in the future by also selecting the EGPRS TBF if retransmition is required and the block to be retransmitted was originally transmitted as MCS1-4. Related: OS#4544 Change-Id: I9af23e175435fe9ae7b0e4119ad52fcd4707b9ca --- M src/bts.cpp M src/bts.h M src/gprs_rlcmac_sched.cpp M src/tbf_dl.cpp M src/tbf_dl.h M tests/tbf/TbfTest.err 6 files changed, 463 insertions(+), 431 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/79/21179/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9af23e175435fe9ae7b0e4119ad52fcd4707b9ca Gerrit-Change-Number: 21179 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset
Change in osmo-pcu[master]: Support multiplexing of GPRS and EGPRS TBFs in one PDCH
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21178 ) Change subject: Support multiplexing of GPRS and EGPRS TBFs in one PDCH .. Support multiplexing of GPRS and EGPRS TBFs in one PDCH There are some restrictions to have both GPRS-only and EGPRS MS attached to the same MS: * Any MS needs to be able to successfully decode a DL block at least every 18 DL blocks (360 ms). That means a Dl block with CS1-4 must be sent at least once during that time. * Any MS needs to be able to decode USF targeting it. GPRS-only MS can successfully decode USF from DL blocks using GMSK: CS1-4 and MCS1-4. In this patch, if USF of a GPRS-only MS is selected, then all DL EGPRS TBFs are discarded from data block selection. However, this logic can be further improved later by still allowing selection of DL EGPRS TBFs and then forcing construction of a DL EGPRS data block using MCS1-4. Sources: * 3GPP TS 03.64 version 8.12.0 "6.6.4.1.1.2 Multiplexing of GPRS and EGPRS MSs" * 3GPP TS 05.08 version 8.23.0 "10.2.2 BTS output power" Related: OS#4544 Change-Id: Ib4991c864eda6864533363443f76ae5d999532ae --- M src/gprs_rlcmac_sched.cpp M src/pdch.cpp M src/pdch.h 3 files changed, 96 insertions(+), 29 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 97806d9..537929b 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -89,11 +89,10 @@ return poll_fn; } -static uint8_t sched_select_uplink(uint8_t trx, uint8_t ts, uint32_t fn, - uint8_t block_nr, struct gprs_rlcmac_pdch *pdch) +static struct gprs_rlcmac_ul_tbf *sched_select_uplink(uint8_t trx, uint8_t ts, uint32_t fn, + uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, bool require_gprs_only) { - struct gprs_rlcmac_ul_tbf *tbf; - uint8_t usf = 0x07; + struct gprs_rlcmac_ul_tbf *tbf = NULL; uint8_t i, tfi; /* select uplink resource */ @@ -110,18 +109,20 @@ if (tbf->state_is_not(GPRS_RLCMAC_FLOW)) continue; + if (require_gprs_only && tbf->is_egprs_enabled()) + continue; + /* use this USF */ - usf = tbf->m_usf[ts]; LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling USF=%d for " "required uplink resource of UL TFI=%d\n", trx, ts, fn, - block_nr, usf, tfi); + block_nr, tbf->m_usf[ts], tfi); /* next TBF to handle resource is the next one */ pdch->next_ul_tfi = (tfi + 1) & 31; break; } - return usf; + return tbf; } struct msgb *sched_app_info(struct gprs_rlcmac_tbf *tbf) { @@ -273,7 +274,7 @@ static struct msgb *sched_select_downlink(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, - uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, bool *is_egprs) + uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, enum mcs_kind req_mcs_kind, bool *is_egprs) { struct msgb *msg = NULL; struct gprs_rlcmac_dl_tbf *tbf, *prio_tbf = NULL; @@ -301,6 +302,13 @@ if (tbf->m_wait_confirm) continue; + /* If a GPRS (CS1-4) Dl block is required, skip EGPRS(_GSMK) tbfs: */ + if (req_mcs_kind == GPRS && tbf->is_egprs_enabled()) + continue; + /* TODO: If a GPRS (CS1-4/MCS1-4) Dl block is required, downgrade MCS below instead of skipping */ + if (req_mcs_kind == EGPRS_GMSK && (tbf->is_egprs_enabled() || tbf->ms()->mode() != GPRS)) + continue; + age = tbf->frames_since_last_poll(fn); /* compute priority */ @@ -385,12 +393,15 @@ struct gprs_rlcmac_pdch *pdch; struct gprs_rlcmac_tbf *poll_tbf = NULL, *dl_ass_tbf = NULL, *ul_ass_tbf = NULL; + struct gprs_rlcmac_ul_tbf *usf_tbf; struct gprs_rlcmac_ul_tbf *ul_ack_tbf = NULL; - uint8_t usf = 0x7; + uint8_t usf; struct msgb *msg = NULL; uint32_t poll_fn, sba_fn; enum pcu_gsmtap_category gsmtap_cat; - bool is_egprs = false; + bool tx_is_egprs = false; + bool require_gprs_only; + enum mcs_kind req_mcs_kind; /* Restrict CS/MCS if DL Data block is to be sent */ if (trx >= 8 || ts >= 8) return -EINVAL; @@ -405,47 +416,79 @@ /* store last frame number of RTS */ pdch->last_rts_fn = fn; + /* require_gprs_only: Prioritize USF for
Change in osmo-pcu[master]: Support multiplexing of GPRS and EGPRS TBFs in one PDCH
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21178 ) Change subject: Support multiplexing of GPRS and EGPRS TBFs in one PDCH .. Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21178 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib4991c864eda6864533363443f76ae5d999532ae Gerrit-Change-Number: 21178 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 11:52:53 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: pcu: Implement ACKing EGPRS Dl TBF blocks
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21127 ) Change subject: pcu: Implement ACKing EGPRS Dl TBF blocks .. pcu: Implement ACKing EGPRS Dl TBF blocks Change-Id: I9f1b621a8365e69d2e1a33d59cb8c7a59639ad94 --- M library/RLCMAC_Templates.ttcn M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 3 files changed, 118 insertions(+), 38 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index e6f982f..d59c74e 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -361,8 +361,16 @@ } } + private function f_presence_bit_chreq_desc(template (omit) ChannelReqDescription chreq_desc) return BIT1 { + if (istemplatekind(chreq_desc, "omit")) { + return '0'B; + } + return '1'B; + } + /* Send Template for Downlink ACK/NACK */ - template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false) := { + template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false, +template (omit) ChannelReqDescription chreq_desc := omit) := { ctrl := { mac_hdr := { payload_type := MAC_PT_RLCMAC_NO_OPT, @@ -375,8 +383,8 @@ dl_ack_nack := { dl_tfi := tfi, ack_nack_desc := andesc, - chreq_desc_presence := '0'B, - chreq_desc := omit, + chreq_desc_presence := f_presence_bit_chreq_desc(chreq_desc), + chreq_desc := chreq_desc, ch_qual_rep := c_ChQualRep_default } } @@ -384,25 +392,9 @@ } } - template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_CHREQ(template uint5_t tfi, - AckNackDescription andesc, - boolean retry := false, - template ChannelReqDescription chreq_desc := c_ChReqDesc_default) - modifies ts_RLCMAC_DL_ACK_NACK := { - ctrl := { - payload := { - u := { - dl_ack_nack := { - chreq_desc_presence := '1'B, - chreq_desc := chreq_desc - } - } - } - } - } - /* Send Template for Egprs Downlink ACK/NACK */ - template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_EGPRS(template uint5_t tfi, EgprsAckNackDescription andesc, boolean retry := false) := { + template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_EGPRS(template uint5_t tfi, EgprsAckNackDescription andesc, boolean retry := false, + template (omit) ChannelReqDescription chreq_desc := omit) := { ctrl := { mac_hdr := { payload_type := MAC_PT_RLCMAC_NO_OPT, @@ -417,8 +409,8 @@ ms_oom := '0'B, egprs_ch_qual_rep_presence := '0'B, egprs_ch_qual_rep := omit, - chreq_desc_presence := '0'B, - chreq_desc := omit, + chreq_desc_presence := f_presence_bit_chreq_desc(chreq_desc), + chreq_desc := chreq_desc, pfi_presence := '0'B, pfi := omit, epdan_presence := '0'B, diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 51c5a8d..0850a3d 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -77,7 +77,8 @@ uint5_t tfi, GsmArfcnarfcn optional, BIT8ts_mask, -
Change in osmo-ttcn3-hacks[master]: pcu: Implement ACKing EGPRS Dl TBF blocks
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21127 ) Change subject: pcu: Implement ACKing EGPRS Dl TBF blocks .. Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21127 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: I9f1b621a8365e69d2e1a33d59cb8c7a59639ad94 Gerrit-Change-Number: 21127 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 11:51:05 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 ) Change subject: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash .. gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash This fixes an ugly copile failure depending on which shell provides /bin/sh on the given system: AF_PACKET_PortType.so: undefined reference to `typeinfo for AF__PACKET__PortType::AF__PACKET__PT_PROVIDER' AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::AF__PACKET__PT_PROVIDER(char const*)' AF_PACKET_PortType.so: undefined [0m [91mreference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::set_parameter(char const*, char const [0m [91m*)' AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::outgoing_send(AF__PACKET__PortTypes::AF__PACKET__Unitdata const&)' [0m [91m AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::user_map(char [0m [91m const*, Map_Params& [0m [91m)' [0m [91m AF_PACKET_PortType.so: [0m [91mundefined reference to [0m [91m `AF__PACKET__PortType:: [0m [91mAF__PACKET__PT_PROVIDER::user_unmap(char const*, Map_Params&)' AF_PACKET_PortType.so: undefined reference to ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER:: [0m [91m~AF__PACKET__PT_PROVIDER()' [0m [91m AF_PACKET_PortType.so [0m [91m: undefined reference [0m [91mto ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER::Handle_Fd_Event(int, bool, bool, bool) [0m [91m' AF_PACKET_PortType.so: [0m [91mundefined [0m [91mreference to [0m [91m `AF__PACKET__PortType: [0m [91m:AF__PACKET__PT_PROVIDER::user_start()' Change-Id: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80 --- M gbproxy/regen_makefile.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/gbproxy/regen_makefile.sh b/gbproxy/regen_makefile.sh index 34bd3f4..93ef712 100755 --- a/gbproxy/regen_makefile.sh +++ b/gbproxy/regen_makefile.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 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: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80 Gerrit-Change-Number: 21229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in osmo-ttcn3-hacks[master]: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 ) Change subject: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash .. Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 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: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80 Gerrit-Change-Number: 21229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 11:38:02 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 ) Change subject: gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash .. gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash This fixes an ugly copile failure depending on which shell provides /bin/sh on the given system: AF_PACKET_PortType.so: undefined reference to `typeinfo for AF__PACKET__PortType::AF__PACKET__PT_PROVIDER' AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::AF__PACKET__PT_PROVIDER(char const*)' AF_PACKET_PortType.so: undefined [0m [91mreference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::set_parameter(char const*, char const [0m [91m*)' AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::outgoing_send(AF__PACKET__PortTypes::AF__PACKET__Unitdata const&)' [0m [91m AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::user_map(char [0m [91m const*, Map_Params& [0m [91m)' [0m [91m AF_PACKET_PortType.so: [0m [91mundefined reference to [0m [91m `AF__PACKET__PortType:: [0m [91mAF__PACKET__PT_PROVIDER::user_unmap(char const*, Map_Params&)' AF_PACKET_PortType.so: undefined reference to ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER:: [0m [91m~AF__PACKET__PT_PROVIDER()' [0m [91m AF_PACKET_PortType.so [0m [91m: undefined reference [0m [91mto ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER::Handle_Fd_Event(int, bool, bool, bool) [0m [91m' AF_PACKET_PortType.so: [0m [91mundefined [0m [91mreference to [0m [91m `AF__PACKET__PortType: [0m [91m:AF__PACKET__PT_PROVIDER::user_start()' Change-Id: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80 --- M gbproxy/regen_makefile.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/29/21229/1 diff --git a/gbproxy/regen_makefile.sh b/gbproxy/regen_makefile.sh index 34bd3f4..93ef712 100755 --- a/gbproxy/regen_makefile.sh +++ b/gbproxy/regen_makefile.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21229 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: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80 Gerrit-Change-Number: 21229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-sgsn[master]: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 ) Change subject: gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing .. gbproxy: Pass TLLI as LSP towards NS to facilitate load sharing Change-Id: I6aef26c126b330a393fc2be5f558b6d5f1d9f7f4 --- M src/gbproxy/gb_proxy.c 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/28/21228/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index fb58284..74a9327 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -811,6 +811,7 @@ struct gprs_ns2_inst *nsi = peer->cfg->nsi; struct osmo_gprs_ns2_prim nsp = {}; struct msgb *msg = bssgp_msgb_copy(old_msg, "msgb_relay2peer"); + uint32_t tlli; int rc; DEBUGP(DGPRS, "NSEI=%u proxying SGSN->BSS (NS_BVCI=%u, NSEI=%u)\n", @@ -822,6 +823,14 @@ /* Strip the old NS header, it will be replaced with a new one */ strip_ns_hdr(msg); + /* TS 48.018 Section 5.4.2: The link selector parameter is +* defined in 3GPP TS 48.016. At one side of the Gb interface, +* all BSSGP UNITDATA PDUs related to an MS shall be passed with +* the same LSP, e.g. the LSP contains the MS's TLLI, to the +* underlying network service. */ + if (gprs_gb_parse_tlli(msgb_data(msg), msgb_length(msg), ) == 1) + nsp.u.unitdata.link_selector = tlli; + osmo_prim_init(, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, ); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6aef26c126b330a393fc2be5f558b6d5f1d9f7f4 Gerrit-Change-Number: 21228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-sgsn[master]: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 ) Change subject: gprs_gb_parse: Add function to determine TLLI from encoded BSSGP .. gprs_gb_parse: Add function to determine TLLI from encoded BSSGP This will be needed to use the TLLI as link selector parameter in osmo-gbproxy in an upcoming patch. Depends: libosmocore.git I397b32a6e6ea3e9d218446138cceafa9b27685dd Change-Id: Ia6d5300e63ad23987cbdca824db620305bd583d7 --- M include/osmocom/sgsn/gprs_gb_parse.h M src/gprs/gprs_gb_parse.c 2 files changed, 51 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/27/21227/1 diff --git a/include/osmocom/sgsn/gprs_gb_parse.h b/include/osmocom/sgsn/gprs_gb_parse.h index 9f43fae..58de17f 100644 --- a/include/osmocom/sgsn/gprs_gb_parse.h +++ b/include/osmocom/sgsn/gprs_gb_parse.h @@ -51,6 +51,8 @@ int gprs_gb_parse_bssgp(uint8_t *bssgp, size_t bssgp_len, struct gprs_gb_parse_context *parse_ctx); +int gprs_gb_parse_tlli(const uint8_t *bssgp, size_t bssgp_len, uint32_t *tlli); + const char *gprs_gb_message_name(const struct gprs_gb_parse_context *parse_ctx, const char *default_msg_name); diff --git a/src/gprs/gprs_gb_parse.c b/src/gprs/gprs_gb_parse.c index e5de4d4..779cbfc 100644 --- a/src/gprs/gprs_gb_parse.c +++ b/src/gprs/gprs_gb_parse.c @@ -437,6 +437,55 @@ return gprs_gb_parse_dtap(ghp->data, ghp->data_len, parse_ctx); } +/*! Determine the TLLI from the given BSSGP message. + * \param[in] bssgp pointer to start of BSSGP header + * \param[in] bssgp_len length of BSSGP message in octets + * \param[out] tlli TLLI (if any) in host byte order + * \returns 1 if TLLI found; 0 if none found; negative on parse error */ +int gprs_gb_parse_tlli(const uint8_t *bssgp, size_t bssgp_len, uint32_t *tlli) +{ + const struct bssgp_normal_hdr *bgph; + const struct bssgp_ud_hdr *budh = NULL; + struct tlv_parsed tp; + uint8_t pdu_type; + const uint8_t *data; + size_t data_len; + + if (bssgp_len < sizeof(struct bssgp_normal_hdr)) + return -EINVAL; + + bgph = (struct bssgp_normal_hdr *)bssgp; + pdu_type = bgph->pdu_type; + + if (pdu_type == BSSGP_PDUT_UL_UNITDATA || + pdu_type == BSSGP_PDUT_DL_UNITDATA) { + if (bssgp_len < sizeof(struct bssgp_ud_hdr)) + return -EINVAL; + budh = (struct bssgp_ud_hdr *)bssgp; + bgph = NULL; + data = budh->data; + data_len = bssgp_len - sizeof(*budh); + } else { + data = bgph->data; + data_len = bssgp_len - sizeof(*bgph); + } + if (budh) { + *tlli = osmo_load32be((const uint8_t *)>tlli); + return 1; + } + + if (bssgp_tlv_parse(, data, data_len) < 0) + return -EINVAL; + + if (TLVP_PRESENT(, BSSGP_IE_TLLI)) { + *tlli = osmo_load32be(TLVP_VAL(, BSSGP_IE_TLLI)); + return 1; + } + + /* No TLLI present in message */ + return 0; +} + int gprs_gb_parse_bssgp(uint8_t *bssgp, size_t bssgp_len, struct gprs_gb_parse_context *parse_ctx) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia6d5300e63ad23987cbdca824db620305bd583d7 Gerrit-Change-Number: 21227 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in libosmocore[master]: bssgp: Input argument to bssgp_tlv_parse() should be 'const'
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21226 ) Change subject: bssgp: Input argument to bssgp_tlv_parse() should be 'const' .. bssgp: Input argument to bssgp_tlv_parse() should be 'const' Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd --- M include/osmocom/gprs/gprs_bssgp.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/21226/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 4eb9df4..e962b44 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -163,7 +163,7 @@ uint16_t cid); /* Wrapper around TLV parser to parse BSSGP IEs */ -static inline int bssgp_tlv_parse(struct tlv_parsed *tp, uint8_t *buf, int len) +static inline int bssgp_tlv_parse(struct tlv_parsed *tp, const uint8_t *buf, int len) { return tlv_parse(tp, _att_def, buf, len, 0, 0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I397b32a6e6ea3e9d218446138cceafa9b27685dd Gerrit-Change-Number: 21226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-ttcn3-hacks[master]: NS_Emulation: Include NS-VCI in NsUnitdataIndication
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224 ) Change subject: NS_Emulation: Include NS-VCI in NsUnitdataIndication .. NS_Emulation: Include NS-VCI in NsUnitdataIndication The primitive normally only contains NSE + BVCI, but in a tester we actually want to verify whcih NS-VC a given message has arrived on, and hence it makes sense to add the NSVCI, too. Change-Id: I9402bf0be47e5b93c9cfb081eb8f9fa6734c9227 --- M library/BSSGP_Emulation.ttcnpp M library/NS_Emulation.ttcnpp 2 files changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/24/21224/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index b9006a2..898b38d 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -553,6 +553,7 @@ var template (present) NsUnitdataIndication udi := { bvci := bvci, nsei := g_cfg.nsei, + nsvci := ?, sdu := *, bssgp := pdu } @@ -1232,6 +1233,7 @@ template (present) NsUnitdataIndication tr_ptp_BnsUdInd(template (present) PDU_BSSGP pdu, template (present) BssgpBvci bvci) := { bvci := bvci, nsei := ?, + nsvci := ?, sdu := *, bssgp := pdu } diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 2e03880..ab1c136 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -53,6 +53,7 @@ type record NsUnitdataIndication { BssgpBvci bvci, Nseinsei, + Nsvci nsvci, octetstring sdu optional, PDU_BSSGP bssgp optional } @@ -62,13 +63,15 @@ template octetstring sdu) := { bvci := bvci, nsei := nsei, + nsvci := ?, sdu := sdu, bssgp := ? } - template (value) NsUnitdataIndication ts_NsUdInd(Nsei nsei, BssgpBvci bvci, octetstring sdu) := { + template (value) NsUnitdataIndication ts_NsUdInd(Nsei nsei, Nsvci nsvci, BssgpBvci bvci, octetstring sdu) := { bvci := bvci, nsei := nsei, + nsvci := nsvci, sdu := sdu, bssgp := dec_PDU_BSSGP(sdu) } @@ -582,7 +585,7 @@ } /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ [] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { - NS_SP.send(ts_NsUdInd(g_config.nsei, + NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, oct2int(rf.pDU_NS_Unitdata.bVCI), rf.pDU_NS_Unitdata.nS_SDU)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21224 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: I9402bf0be47e5b93c9cfb081eb8f9fa6734c9227 Gerrit-Change-Number: 21224 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-ttcn3-hacks[master]: gbproxy: Add test for load sharing function in SGSN->PCU direction
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21225 ) Change subject: gbproxy: Add test for load sharing function in SGSN->PCU direction .. gbproxy: Add test for load sharing function in SGSN->PCU direction Related: SYS#5209 Change-Id: Ide733d7659ff7f341bedc61fc90947f74d7c4ac3 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 77 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/21225/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index e690f34..1fc041a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -757,6 +757,79 @@ } +/* test the load-sharing between multiple NS-VC on the BSS side */ +private function f_TC_dl_ud_unidir(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + + for (i := 0; i < 10; i := i+1) { + var octetstring payload := f_rnd_octstring(i); + var template (value) PDU_BSSGP pdu_tx := + ts_BSSGP_DL_UD(g_pars.tlli, payload, omit, ts_BSSGP_IMSI(g_pars.imsi)); + SGSN[0].send(pdu_tx); + } + setverdict(pass); +} +testcase TC_load_sharing_dl() runs on test_CT_NS +{ + const integer num_ue := 10; + var BSSGP_ConnHdlr vc_conn[num_ue]; + f_init(); + + /* all BVC are now fully brought up. We disconnect BSSGP from NS on the BSS +* side so we get the raw NsUnitdataIndication and hence observe different +* NSVCI */ + disconnect(g_pcu[0].vc_NS:NS_SP, g_pcu[0].vc_BSSGP:BSCP); + connect(g_pcu[0].vc_NS:NS_SP, self:NS); + + /* there may still be some NS-VCs coming up? After all, the BVC-RESET succeeds after the first +* of the NS-VC is ALIVE/UNBLOCKED */ + f_sleep(3.0); + + /* start parallel components generating DL-UNITDATA from the SGSN side */ + for (var integer i:= 0; i < num_ue; i := i+1) { + vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, 5+i); + } + + /* now start counting all the messages that were queued before */ + /* TODO: We have a hard-coded assumption of 4 NS-VC in one NSE/NS-VCG here! */ + var ro_integer rx_count := { 0, 0, 0, 0 }; + timer T := 2.0; + T.start; + alt { + [] as_NsUdiCount(0, rx_count); + [] as_NsUdiCount(1, rx_count); + [] as_NsUdiCount(2, rx_count); + [] as_NsUdiCount(3, rx_count); + [] NS.receive(NsUnitdataIndication:{0,?,?,*,*}) { repeat; } /* signaling BVC */ + [] NS.receive(NsStatusIndication:?) { repeat; } + [] NS.receive { + setverdict(fail, "Rx unexpected NS"); + mtc.stop; + } + [] T.timeout { + } + } + for (var integer i := 0; i < lengthof(rx_count); i := i+1) { + log("Rx on NSVCI ", mp_nsconfig_pcu[0].nsvc[i].nsvci, ": ", rx_count[i]); + if (rx_count[i] == 0) { + setverdict(fail, "Data not shared over all NSVC"); + } + } + setverdict(pass); +} +private altstep as_NsUdiCount(integer nsvc_idx, inout ro_integer roi) runs on test_CT_NS { + var NsUnitdataIndication udi; + var BssgpBvcConfig bvcc := g_pcu[0].cfg.bvc[0]; + [] NS.receive(NsUnitdataIndication:{bvcc.bvci, g_pcu[0].cfg.nsei, mp_nsconfig_pcu[0].nsvc[nsvc_idx].nsvci, *, *}) -> value udi { + roi[nsvc_idx] := roi[nsvc_idx] + 1; + repeat; + } +} +type component test_CT_NS extends test_CT { + port NS_PT NS; +}; + + control { @@ -765,6 +838,10 @@ execute( TC_dl_unitdata() ); execute( TC_ra_capability() ); execute( TC_ra_capability_upd() ); + if (false) { + /* don't enable this by default, as we don't yet have any automatic test setup for FR with 4 NS-VC */ + execute( TC_load_sharing_dl() ); + } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21225 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: Ide733d7659ff7f341bedc61fc90947f74d7c4ac3 Gerrit-Change-Number: 21225 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange
Change in osmo-bsc[master]: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21084 ) Change subject: abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS .. Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21084/7/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21084/7/src/osmo-bsc/abis_rsl.c@494 PS7, Line 494: msgb_tlv_put(msg, RSL_IE_OSMO_REP_ACCH_CAP, sizeof(cap), I think it should be possible to avoid allocating this structure on stack and then copying it over to the buffer on heap: struct abis_rsl_osmo_rep_acch_cap *cap; cap = (struct abis_rsl_osmo_rep_acch_cap *) msgb->tail; msgb_tlv_put(msg, RSL_IE_OSMO_REP_ACCH_CAP, sizeof(*cap), (uint8_t *) bts->repeated_acch_capability_bts); cap->foo = bar; // ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I39ae439d05562b35b2e47774dc92f8789fea1a57 Gerrit-Change-Number: 21084 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 18 Nov 2020 08:22:31 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: pcu: Implement ACKing EGPRS Dl TBF blocks
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21127 ) Change subject: pcu: Implement ACKing EGPRS Dl TBF blocks .. Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21127 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: I9f1b621a8365e69d2e1a33d59cb8c7a59639ad94 Gerrit-Change-Number: 21127 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 18 Nov 2020 08:09:07 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment