Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 110s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 110s] [COMPILING libboard/qmod/source/card_pres.c] [ 110s] [COMPILING libboard/qmod/source/wwan_led.c] [ 111s] [COMPILING libboard/qmod/source/i2c.c] [ 111s] [COMPILING libboard/qmod/source/board_qmod.c] [ 111s] [COMPILING apps/dfu/main.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 111s] Memory region Used Size Region Size %age Used [ 111s] rom: 16588 B16 KB101.25% [ 111s] ram: 11672 B48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 111s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 111s] collect2: error: ld returned 1 exit status [ 111s] % [ 111s] make[2]: *** [Makefile:234: flash] Error 1 [ 111s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 111s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 111s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 111s] dh_auto_build: error: make -j1 returned exit code 2 [ 111s] make: *** [debian/rules:16: build] Error 25 [ 111s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 111s] ### VM INTERACTION START ### [ 114s] [ 108.473701] sysrq: Power Off [ 114s] [ 108.478852] reboot: Power down [ 115s] ### VM INTERACTION END ### [ 115s] [ 115s] goat15 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 20 01:43:02 UTC 2021. [ 115s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/)
Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64
Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 132s] [COMPILING apps/dfu/main.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 132s] Memory region Used Size Region Size %age Used [ 132s] rom: 16580 B16 KB101.20% [ 132s] ram: 11672 B48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 132s] collect2: error: ld returned 1 exit status [ 132s] % [ 132s] make[2]: *** [Makefile:234: flash] Error 1 [ 132s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 132s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 132s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 132s] dh_auto_build: error: make -j1 returned exit code 2 [ 132s] make: *** [debian/rules:16: build] Error 25 [ 132s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 132s] ### VM INTERACTION START ### [ 135s] [ 122.387176] sysrq: Power Off [ 135s] [ 122.395997] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] sheep82 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 20 01:42:02 UTC 2021. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/)
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 17: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@123 PS13, Line 123: char idbuf[32]; > You could drop the idbuf then as well. already done. otherwise the build fails :) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 20:48:11 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 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: I742ecf01de15e3edbf0719371f0217a5739b7c8e Gerrit-Change-Number: 22315 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 19 Jan 2021 20:20:30 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 17: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@123 PS13, Line 123: char idbuf[32]; You could drop the idbuf then as well. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 20:13:05 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22322 ) Change subject: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix .. vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix Callers other than "show fsm" / "show fsm-instances" may want to indent the output. Change-Id: I10e01ef91116369868cdb878a99634c8681728af --- M include/osmocom/vty/misc.h M src/vty/fsm_vty.c 2 files changed, 48 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/22322/1 diff --git a/include/osmocom/vty/misc.h b/include/osmocom/vty/misc.h index 2ad9650..ea31c5b 100644 --- a/include/osmocom/vty/misc.h +++ b/include/osmocom/vty/misc.h @@ -28,7 +28,9 @@ struct osmo_fsm; struct osmo_fsm_inst; void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm); +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm); void vty_out_fsm_inst(struct vty *vty, struct osmo_fsm_inst *fsmi); +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi); void osmo_fsm_vty_add_cmds(void); void osmo_talloc_vty_add_cmds(void); diff --git a/src/vty/fsm_vty.c b/src/vty/fsm_vty.c index 3169ee7..83a8e79 100644 --- a/src/vty/fsm_vty.c +++ b/src/vty/fsm_vty.c @@ -51,60 +51,80 @@ /*! Print information about a FSM [class] to the given VTY * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] fsm The FSM class to print */ -void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm) { unsigned int i; const struct value_string *evt_name; - vty_out(vty, "FSM Name: '%s', Log Subsys: '%s'%s", fsm->name, + vty_out(vty, "%sFSM Name: '%s', Log Subsys: '%s'%s", prefix, fsm->name, log_category_name(fsm->log_subsys), VTY_NEWLINE); /* list the events */ if (fsm->event_names) { for (evt_name = fsm->event_names; evt_name->str != NULL; evt_name++) { - vty_out(vty, " Event %02u (0x%08x): '%s'%s", evt_name->value, + vty_out(vty, "%s Event %02u (0x%08x): '%s'%s", prefix, evt_name->value, (1 << evt_name->value), evt_name->str, VTY_NEWLINE); } } else - vty_out(vty, " No event names are defined for this FSM! Please fix!%s", VTY_NEWLINE); + vty_out(vty, "%s No event names are defined for this FSM! Please fix!%s", prefix, VTY_NEWLINE); /* list the states */ - vty_out(vty, " Number of States: %u%s", fsm->num_states, VTY_NEWLINE); + vty_out(vty, "%s Number of States: %u%s", prefix, fsm->num_states, VTY_NEWLINE); for (i = 0; i < fsm->num_states; i++) { const struct osmo_fsm_state *state = &fsm->states[i]; - vty_out(vty, " State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", + vty_out(vty, "%s State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", prefix, state->name, state->in_event_mask, state->out_state_mask, VTY_NEWLINE); } } +/*! Print information about a FSM [class] to the given VTY + * \param vty The VTY to which to print + * \param[in] fsm The FSM class to print + */ +void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +{ + vty_out_fsm2(vty, "", fsm); +} + +/*! Print a FSM instance to the given VTY + * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) + * \param[in] fsmi The FSM instance to print + */ +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi) +{ + struct osmo_fsm_inst *child; + + vty_out(vty, "%sFSM Instance Name: '%s', ID: '%s'%s", prefix, + fsmi->name, fsmi->id, VTY_NEWLINE); + vty_out(vty, "%s Log-Level: '%s', State: '%s'%s", prefix, + log_level_str(fsmi->log_level), + osmo_fsm_state_name(fsmi->fsm, fsmi->state), + VTY_NEWLINE); + if (fsmi->T) + vty_out(vty, "%s Timer: %u%s", prefix, fsmi->T, VTY_NEWLINE); + if (fsmi->proc.parent) { + vty_out(vty, "%s Parent: '%s', Term-Event: '%s'%s", prefix, + fsmi->proc.parent->name, + osmo_fsm_event_name(fsmi->proc.parent->fsm, + fsmi->proc.parent_term_event), + VTY_NEWLINE); + } + llist_for_each_entry(child, &fsmi->proc.children, proc.child) { + vty_out(vty, "%s Child: '%s'%s", prefix, child->name, VTY_NEWLINE); + } +} + /*! Print a FSM instance to the given VTY * \param vty The VTY to which to print *
Change in libosmocore[master]: ns2: Properly indent VTY output
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22323 ) Change subject: ns2: Properly indent VTY output .. ns2: Properly indent VTY output If multiple objects are printed in the VTY, only the first line of each object should be on the first character of the line, all others should be indented. With this patch the "snow ns entities" output becomes much more readable: OsmoGbProxy> show ns entities NSEI 00102: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00102-SNS)[0x612018a0]', ID: 'NSE00102-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.11]: NSEI 00101: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00101-SNS)[0x612015a0]', ID: 'NSE00101-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.10]: Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c 4 files changed, 20 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/22323/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5404ed3..6cd2ea1 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -245,7 +245,7 @@ struct msgb *gprs_ns2_msgb_alloc(void); void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats); +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); void ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, uint16_t bvci, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index e574b44..72e4ea7 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1499,28 +1499,29 @@ #include #include -static void vty_dump_sns_ip4(struct vty *vty, const struct gprs_ns_ie_ip4_elem *ip4) +static void vty_dump_sns_ip4(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip4_elem *ip4) { struct in_addr in = { .s_addr = ip4->ip_addr }; - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, inet_ntoa(in), ntohs(ip4->udp_port), ip4->sig_weight, ip4->data_weight, VTY_NEWLINE); } -static void vty_dump_sns_ip6(struct vty *vty, const struct gprs_ns_ie_ip6_elem *ip6) +static void vty_dump_sns_ip6(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip6_elem *ip6) { char ip_addr[INET6_ADDRSTRLEN] = {}; if (!inet_ntop(AF_INET6, &ip6->ip_addr, ip_addr, (INET6_ADDRSTRLEN))) strcpy(ip_addr, "Invalid IPv6"); - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, ip_addr, ntohs(ip6->udp_port), ip6->sig_weight, ip6->data_weight, VTY_NEWLINE); } /*! Dump the IP-SNS state to a vty. * \param[in] vty VTY to which the state shall be printed + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] nse NS Entity whose IP-SNS state shall be printed * \param[in] stats Whether or not statistics shall also be printed */ -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats) +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) { struct ns2_sns_state *gss; unsigned int i; @@ -1528,30 +1529,30 @@ if (!nse->bss_sns_fi) return; - vty_out_fsm_inst(vty, nse->bss_sns_fi); + vty_out_fsm_inst2(vty, prefix, nse->bss_sns_fi); gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - vty_out(vty, "Maximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", - gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); + vty_out(vty, "%sMaximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", + prefix, gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); if (gss->num_ip4_local && gss->num_ip4_remote) { - vty_out(vty, "Local IPv4 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sLocal IPv4 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip4_local; i++) -
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers .. Patch Set 7: > Patch Set 7: > > > Patch Set 7: > > > > What about scheduling a timer for a few ms later after printing every X > > records, then exiting? > > This sounds like over-complication for no benefit to me. Even if you schedule > the guard timer, it would never expire until you finish everything in the > current select() loop iteration. Thanks, yes. I tried to figure out if it could be done, It looks like a lot for not much. Really not sure how to deal with this. I'm also not sure how the C implementation of sqlite3 works and what the implications doing SELECT * from . on a table with several hundred thousand records is. Should be sql also include LIMIT and OFFSET or is it just the blocking vty printing to be concerned about? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 19:53:21 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU .. Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h@89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) > That would be also possible. I don't have a strong opinion. I do, given we call this on every message and that the macro takes care of setting it for us, it means we skip 1 parameter (can be inlined in the fmt parameter) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:31:14 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers .. Patch Set 7: > Patch Set 7: > > What about scheduling a timer for a few ms later after printing every X > records, then exiting? This sounds like over-complication for no benefit to me. Even if you schedule the guard timer, it would never expire until you finish everything in the current select() loop iteration. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 19:29:26 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22291 ) Change subject: osmo-ns-dummy: don't leak primitive messages .. osmo-ns-dummy: don't leak primitive messages The message in the primitive must be freed by the user Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 --- M utils/osmo-ns-dummy.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index a2070ca..58e8152 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -188,6 +188,9 @@ /* called by the ns layer */ int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + if (oph->msg) + msgb_free(oph->msg); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU .. Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h@89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) > why not passing "RX" "TX" directly instead of true/false? That would be also possible. I don't have a strong opinion. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:23:34 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator .. Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:23:01 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator .. Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c@350 PS1, Line 350: osmo_timer_del(&fi->timer); > why is this timer deleting? it we are blocked I'd expect this to be a NOP, > and simply send an ACK. the timer doesn't need to be started. I've removed it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:22:07 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL .. gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 7b9450c..a7455d7 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -101,7 +101,8 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { - OSMO_ASSERT(nsvc); + if (!nsvc) + return; if (!nsvc->priv) return; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 1037b19..2a335c1 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -73,6 +73,9 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { + if (!nsvc) + return; + if (!nsvc->priv) return; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: gprs_ns2: add assert on most bind calls
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls .. gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 19 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c1bed6c..7b9450c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -106,6 +106,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_fr_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -137,6 +138,7 @@ { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!bind) return; @@ -158,6 +160,7 @@ if (!priv) return NULL; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc->priv = priv; priv->dlci = dlci; priv->dlc = osmo_fr_dlc_alloc(privb->link, dlci); @@ -180,6 +183,7 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!result) return -EINVAL; @@ -740,6 +744,7 @@ struct priv_bind *bpriv = bind->priv; char idbuf[64]; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); if (nsvc) { goto err; @@ -780,7 +785,10 @@ { bool created_nse = false; struct gprs_ns2_vc *nsvc = NULL; - struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); + struct gprs_ns2_nse *nse; + + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); + nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) @@ -812,6 +820,7 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index d93b66d..1037b19 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -63,6 +63,8 @@ if (!bind) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + priv = bind->priv; osmo_fd_close(&priv->fd); @@ -74,6 +76,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -116,6 +119,8 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family) @@ -397,6 +402,8 @@ char *sockaddr_str; char idbuf[64]; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", @@ -492,6 +499,7 @@ const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind) { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; return &priv->addr; @@ -509,6 +517,7 @@ struct priv_bind *priv; int rc = 0; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; if (dscp != priv->dscp) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22318 to look at the new patch set (#2). Change subject: gprs_ns2: correct handle BLOCK message on initator .. gprs_ns2: correct handle BLOCK message on initator A BLOCK message can be received when waiting for a UNBLOCK message in state BLOCK Related: SYS#5208 Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/22318/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 19 Jan 2021 19:12:46 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator .. Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c@350 PS1, Line 350: osmo_timer_del(&fi->timer); why is this timer deleting? it we are blocked I'd expect this to be a NOP, and simply send an ACK. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:11:50 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 17: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:07:55 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers .. gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers The current version of libosmocore only supports NACC related RIM application containers. If the parser detects a different application container it returns with EINVAL. Unfortunately this means that the caller can not distinguish if there is a lack of support or a real parsing error. Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/22319/1 diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 7094f5f..2096977 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -405,7 +405,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -475,7 +475,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -528,7 +528,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -547,7 +547,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -594,7 +594,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -613,7 +613,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -810,7 +810,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -849,7 +849,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange
Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU .. Patch Set 7: (1 comment) I find the macros introduced in this commit a bit strange. Why not use usual LOG macros we introduce with a fixed prefix and wahtever the user wants after it? https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h@89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) why not passing "RX" "TX" directly instead of true/false? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:59:54 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_message: remove wrong comment
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment .. Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:56:07 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state .. Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:55:44 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf .. Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:55:07 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator .. gprs_ns2: correct handle BLOCK message on initator A BLOCK message can be received when waiting for a UNBLOCK message in state BLOCK Related: SYS#5208 Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/22318/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 8604bbe..849e74f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -345,6 +345,10 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { + case GPRS_NS2_EV_BLOCK: + ns2_tx_block_ack(priv->nsvc); + osmo_timer_del(&fi->timer); + break; case GPRS_NS2_EV_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#17). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 206 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/17 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers .. Patch Set 7: What about scheduling a timer for a few ms later after printing every X records, then exiting? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:44:23 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 ) Change subject: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 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: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 Gerrit-Change-Number: 22303 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 18:38:13 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: gbproxy: Change logging settings
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 ) Change subject: gbproxy: Change logging settings .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 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: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd Gerrit-Change-Number: 22302 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 18:36:59 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 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: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:36:45 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU .. Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 19 Jan 2021 18:35:02 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_message: remove wrong comment
lynxis lazus has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment .. gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22316 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state .. gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/22316/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf
Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22293 to look at the new patch set (#6). Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf .. gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22293/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_
Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22292 to look at the new patch set (#6). Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ .. gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 69 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 15: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@163 PS13, Line 163: nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); > Here aswell i'll leave it as it is. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:33:14 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#15). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 211 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/15 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#7). Change subject: Add vty command to show summary of all or filtered subscribers .. Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 226 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers .. Patch Set 6: > Patch Set 5: > > (5 comments) > > one important element of reading from a database is to limit the amount of > entries, I see your point. I did not think of an entire continent, but I guess a HLR can be huge! I'm not sure how to handle it, I don't want show subscribers all to NOT print all of them, but obviously I don't want it to print 20,000. As an operator if you knew there were 20,000 subs then you might not issue the command, but that is just the.. oh, I didn't expect you would do _THAT_! strategy. Is there any simple possibility to have this code attend to the main loop after printing say 100 subs? I guess not, right? I'd have to store the state someplace global and return to pick it up where left off? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:29:11 + Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_message: remove wrong comment
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment .. gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index dd76c59..dd2ca27 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -256,7 +256,6 @@ if (!msg) return -ENOMEM; - /* be conservative and mark it as blocked even now! */ msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; nsh->pdu_type = NS_PDUT_BLOCK_ACK; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state
lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state .. gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/22316/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index e5057d4..e7c959e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -463,7 +463,7 @@ /* ST_ALIVE is only used on VC without RESET/BLOCK */ [GPRS_NS2_ST_ALIVE] = { .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK), - .out_state_mask = S(GPRS_NS2_ST_RESET) | + .out_state_mask = S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "ALIVE", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#14). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 212 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/14 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_
Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22292 to look at the new patch set (#4). Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ .. gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 69 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers .. Patch Set 6: (7 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c@626 PS5, Line 626: } > (add a blank line) Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c@638 PS5, Line 638: int db_subscrs_get_print(struct vty *vty, struct db_context *dbc, const char *filter_type, const char *filter, > Good solution: in fact this uses a callback function -- which is more elegant > than using the vty dir […] Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c@644 PS5, Line 644: subscr > Why do you need this pointer? I think you can use 'sub' directly. The code I modelled this on had a pointer to a hlr_subscriber struct passed in, so I was mimicking that. I think it might be OK now, but I'm never 100% sure. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c@689 PS5, Line 689: subscr->id = sqlite3_column_int64(stmt, 0); > (along with fixeria's comment: here you could do […] Does it zero init the entire struct? I sort of depend on that later https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c@229 PS5, Line 229: rc = db_subscrs_get_print(vty, g_hlr->dbc, filter_type, filter, subscr_dump_summary_vty, &count, &err); > to call the pre-existing subscr_dump_summary_vty(): to match the 'void *data' > as I described before […] No objection, but can I ask why, just to understand? Is it better to cast data to a vty struct this way rather than the declaration in: subscr_dump_summary_vty(struct hlr_subscriber *subscr, void *data) { struct vty *vty = data; . } https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c@230 PS5, Line 230: if (count > 40) { > hm, this code dup is not so nice. […] Yep... I was doubting it also, but given that the patch set was unlikely to attract +2 on first run, I left it for comments. 40 was just an arbitrary number - of course we have no idea what size the terminal is. All the same, if somebody modifies the header without modifying the footer, then they get a slap on the wrist...? I could just drop the footer, it's not like it's not obvious which column is which. I don't like reprinting the header, in can get in the way if one did want to copy rows from the terminal or screen scrape the vty (not suggesting I wanty to do this) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty File tests/test_nodes.vty: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty@17 PS5, Line 17: show subscribers filter (imsi|msisdn) FILTER : show subscribers filter (cs|ps) (on|off) > I would actually go for just "show subscribers (imsi|msisdn) FILTER" without > the "filter' part. […] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:20:17 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment
Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#6). Change subject: Add vty command to show summary of all or filtered subscribers .. Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [] As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 226 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset
Change in osmo-hlr[master]: Correct vty inline help for show subscriber
keith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22310 ) Change subject: Correct vty inline help for show subscriber .. Correct vty inline help for show subscriber Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 --- M src/hlr_vty_subscr.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index 3dbc383..f5066c1 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -188,6 +188,7 @@ #define SUBSCR_CMD "subscriber " #define SUBSCR_CMD_HELP "Subscriber management commands\n" +#define SUBSCR_SHOW_HELP "Show subscriber information\n" #define SUBSCR_ID "(imsi|msisdn|id|imei) IDENT" #define SUBSCR_ID_HELP \ @@ -207,7 +208,7 @@ DEFUN(subscriber_show, subscriber_show_cmd, SUBSCR "show", - SUBSCR_HELP "Show subscriber information\n") + SUBSCR_HELP SUBSCR_SHOW_HELP) { struct hlr_subscriber subscr; const char *id_type = argv[0]; @@ -222,7 +223,7 @@ ALIAS(subscriber_show, show_subscriber_cmd, "show " SUBSCR_CMD SUBSCR_ID, - SHOW_STR SUBSCR_CMD_HELP SUBSCR_ID_HELP); + SHOW_STR SUBSCR_SHOW_HELP SUBSCR_ID_HELP); DEFUN(subscriber_create, subscriber_create_cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 9: (2 comments) Thanks for merging. https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c@678 PS9, Line 678: if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) > IIUC this means the container is never decoded here right? because > decoded=false (memset(0)) The decoded_present flag is not set by the parser, if decoded_present==true, then the user knows that the decoded information is available. https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c@689 PS9, Line 689: rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); > This is wrong. […] in line 708 rc is checked, or do I overlook something here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:30:14 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC
laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC .. NS_Emulation: Add CTRL port to administratively disable a NS-VC This feature is useful in simulating intermittent or permanent transport network outage by simply halting processing of all rx+tx in the specified NS-VC until it is administratively re-enabled. Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e RelateD: OS#4521 --- M library/NS_Emulation.ttcnpp 1 file changed, 66 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/15/22315/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 61ebe95..dc8e0ec 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -107,6 +107,7 @@ } type enumerated NsvcState { + NSVC_S_DISABLED,/* administratively disabled */ NSVC_S_DEAD_BLOCKED, NSVC_S_WAIT_RESET, NSVC_S_ALIVE_BLOCKED, @@ -128,6 +129,25 @@ out NsUnitdataRequest; } with { extension "internal" }; + /* port from our (internal) point of view */ + type port NS_CTRL_SP_PT message { + in NsDisableVcRequest, + NsEnableVcRequest; + } with { extension "internal" }; + + /* port from the user point of view */ + type port NS_CTRL_PT message { + out NsEnableVcRequest, + NsDisableVcRequest; + } with { extension "internal" }; + + type record NsDisableVcRequest { + Nsvci nsvci + }; + type record NsEnableVcRequest { + Nsvci nsvci + }; + type component NS_Provider_CT { /* upper port, facing to NS_Emulation:NSCP */ port NS_PROVIDER_PT NSE; @@ -187,6 +207,9 @@ /* port towards the per-NSVC components */ port NSint_PT NSVC; + /* control port, used to manipulate at runtime */ + port NS_CTRL_SP_PT NS_CTRL; + /* all of the NS configuration a user passes to us */ var NSConfiguration g_config; var charstring g_id; @@ -239,7 +262,9 @@ }; type enumerated NsCtrlRequest { - StartAliveProcedure (0) + StartAliveProcedure (0), + DisableReq (1),/* administratively disable NS-VC */ + EnableReq (2) /* administratively enable NS-VC */ }; /* add one NSVC (component and table entry */ @@ -346,6 +371,8 @@ var NsStatusIndication rx_nssi; var NsUnitdataIndication rx_nsudi; var NsUnitdataRequest rx_nsudr; + var NsDisableVcRequest rx_disar; + var NsEnableVcRequest rx_enar; /* pass from NS-VCs up to user */ [] NSVC.receive(tr_NsStsInd(g_config.nsei, ?, ?, NSVC_S_ALIVE_UNBLOCKED)) -> value rx_nssi { /* check if this one is the first to be unblocked */ @@ -384,6 +411,14 @@ log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); } /* from user down to NS-VC */ + [] NS_CTRL.receive(NsDisableVcRequest:?) -> value rx_disar { + var integer nsvc_idx := f_nsvc_find_idx(rx_disar.nsvci); + NSVC.send(NsCtrlRequest:DisableReq) to g_nsvcs[nsvc_idx].vc_conn; + } + [] NS_CTRL.receive(NsEnableVcRequest:?) -> value rx_enar { + var integer nsvc_idx := f_nsvc_find_idx(rx_enar.nsvci); + NSVC.send(NsCtrlRequest:EnableReq) to g_nsvcs[nsvc_idx].vc_conn; + } [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, *)) -> value rx_nsudr { /* load distribution function */ var integer nsvc_idx := g_unblocked_nsvcs_sig[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_sig)]; @@ -577,6 +612,15 @@ var PDU_NS rf; var ASP_Event evt; + [] NS_SP.receive(NsCtrlRequest:DisableReq) { + /* To make NS-VCG remove us from list of active NS-VC */ + f_change_state(NSVC_S_DEAD_BLOCKED); + log("Disabling NSVC on user request"); + f_change_state(NSVC_S_DISABLED); + Tns_test.stop; + Tns_alive.stop; + } + /* transition to DEAD if t_alive times out */ [] Tns_alive.timeout { log("Tns-alive expired: changing t
Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 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: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 19 Jan 2021 17:18:21 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 9: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c@678 PS9, Line 678: if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) IIUC this means the container is never decoded here right? because decoded=false (memset(0)) https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c@689 PS9, Line 689: rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); This is wrong. If you fail to decode the container, you shouldn't return 0 (success) and set pdu->decoded_pesent=true below as you do. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:11:30 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 269 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 9255661..a7b363b 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -11,6 +11,7 @@ #include #include +#include /* gprs_bssgp_util.c */ @@ -41,6 +42,39 @@ /* Chapter 10.4.14: Status */ int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg); +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +struct bssgp_ran_information_pdu { + struct bssgp_rim_routing_info routing_info_dest; + struct bssgp_rim_routing_info routing_info_src; + + /* Encoded variant of the RIM container */ + uint8_t rim_cont_iei; + const uint8_t *rim_cont; + unsigned int rim_cont_len; + + /* Decoded variant of the RIM container */ + bool decoded_present; + union { + struct bssgp_ran_inf_req_rim_cont req_rim_cont; + struct bssgp_ran_inf_rim_cont rim_cont; + struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; + struct bssgp_ran_inf_err_rim_cont err_rim_cont; + struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; + } decoded; + + /* When receiving a PDU from BSSGP the encoded variant of the RIM +* container will always be present. The decoded variant will be +* present in addition whenever BSSGP was able to decode the container. +* +* When sending a PDU to BSSGP, then the decoded variant is used when +* it is available. The encoded variant (if present) will be ignored +* then. */ +}; +int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); + +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); +struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu); + enum bssgp_prim { PRIM_BSSGP_DL_UD, PRIM_BSSGP_UL_UD, @@ -75,6 +109,7 @@ struct { uint8_t suspend_ref; } resume; + struct bssgp_ran_information_pdu rim_pdu; } u; }; diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 7f3a0e4..7e9efcd 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -54,6 +54,10 @@ }; }; +/* The encoded result of the rim routing information is, depending on the + * address type (discr) of variable length. */ +#define BSSGP_RIM_ROUTING_INFO_MAXLEN 14 + int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, unsigned int len); int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 4551427..6fdacce 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -675,6 +675,8 @@ nmp.nsei = nsei; nmp.bvci = bvci; nmp.tp = tp; + if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); bssgp_prim_cb(&nmp.oph, NULL); @@ -,7 +1113,7 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - bssgp_rx_rim(msg, tp, bvci); + rc = bssgp_rx_rim(msg, tp, bvci); break; /* those only exist in the SGSN -> BSS direction */ diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 0dc6d21..7094f5f 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -96,6 +96,7 @@ { int rc; struct gprs_ra_id raid_temp; + int len; buf[0] = ri->discr & 0x0f; buf++; @@ -105,11 +106,13 @@ rc = bssgp_create_cell_id(buf, &ri->geran.raid, ri->geran.cid); if (rc < 0) return -EINVAL; - return rc + 1; + len = rc + 1; + break; case BSSGP_RIM_ROUTING_INFO_UTRAN: gsm48_encod
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 9: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c@709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); > The reason for this is that it is not en error condition of the parser is > unable to decode the RIM P […] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:07:33 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: dexter Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 9: (2 comments) Its updated. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c@709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); > I understand that the "default" clause above has "return 0", as per the > comment above the switch sta […] The reason for this is that it is not en error condition of the parser is unable to decode the RIM PDU. The result is then just that decoded_present = false. The API user must check this and see if this is is satisfactory. There are cases in which the decoded version of the RIM container is not necessarily needed. The idea behind this is that in osmo_sgen we just route the RIM container as it is, and we do not necessarly have parsers in libosmocore for each and every RIM application. What we could do is to extend bssgp_dec_ran_inf... functions in a way that they return -ENOTSUP when they hit an unsupported application container. Then we could distinguish here. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c@725 PS8, Line 725: > check for !msg and return NULL. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:04:59 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#9). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 269 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-pcu[master]: Allow multiple bts objects in PCU
Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 to look at the new patch set (#5). Change subject: Allow multiple bts objects in PCU .. Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 26 files changed, 354 insertions(+), 263 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset
Change in osmo-sgsn[master]: gbproxy: WIP RIM support
daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 ) Change subject: gbproxy: WIP RIM support .. gbproxy: WIP RIM support Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 72 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/14/22314/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index d988cae..f916b8f 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -112,6 +113,10 @@ /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; + struct { + struct gprs_ra_id raid; + uint16_t cid; + } id; /* pointer to the BSS-side BVC */ struct gbproxy_bvc *bss_bvc; @@ -264,6 +269,7 @@ struct gbproxy_cell *gbproxy_cell_alloc(struct gbproxy_config *cfg, uint16_t bvci); struct gbproxy_cell *gbproxy_cell_by_bvci(struct gbproxy_config *cfg, uint16_t bvci); +struct gbproxy_cell *gbproxy_cell_by_cellid(struct gbproxy_config *cfg, const struct gprs_ra_id *raid, uint16_t cid); void gbproxy_cell_free(struct gbproxy_cell *cell); bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index edd9f29..63153a0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -944,9 +944,34 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - /* FIXME: route based in RIM Routing IE */ - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + { + struct gbproxy_cell *cell; + struct gbproxy_sgsn *sgsn; + struct bssgp_rim_routing_info ri; + + /* TODO: Check the RIM src addr and insure it matches a Cell we have for this BSS */ + /* Reply with STATUS if BSSGP didn't negotiate RIM feature */ + /* FIXME: Check negotiated features + if (0) { + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + } */ + + rc = bssgp_parse_rim_ri(&ri, TLVP_VAL(&tp, BSSGP_IE_RIM_ROUTING_INFO), TLVP_LEN(&tp, BSSGP_IE_RIM_ROUTING_INFO)); + + /* Check RIM destination addr */ + if (ri.discr == BSSGP_RIM_ROUTING_INFO_GERAN) { + cell = gbproxy_cell_by_cellid(nse->cfg, &ri.geran.raid, ri.geran.cid); + if (cell) { + /* Destination is known by gbproxy, route directly */ + return gbprox_relay2peer(msg, cell->bss_bvc, 0); + } + } + /* Otherwise pass on to a RIM-capable SGSN */ + /* TODO: Check SGSN is RIM-capable */ + sgsn = gbproxy_select_sgsn(nse->cfg, NULL); + gbprox_relay2nse(msg, sgsn->nse, 0); break; + } case BSSGP_PDUT_LLC_DISCARD: case BSSGP_PDUT_FLUSH_LL_ACK: /* route based on BVCI + TLLI */ @@ -1242,9 +1267,33 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - /* FIXME: route based in RIM Routing IE */ - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + { + struct gbproxy_cell *cell; + struct bssgp_rim_routing_info ri; + + /* TODO: Check the RIM src addr and insure it matches a Cell we have for this BSS */ + /* Reply with STATUS if BSSGP didn't negotiate RIM feature */ + /* FIXME: Check negotiated features + if (0) { + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + } */ + + rc = bssgp_parse_rim_ri(&ri, TLVP_VAL(&tp, BSSGP_IE_RIM_ROUTING_INFO), TLVP_LEN(&tp, BSSGP_IE_RIM_ROUTING_INFO)); + + /* Check RIM destination addr */ + if (ri.discr == BSSGP_RIM_ROUTING_INFO_GERAN) { + cell = gbproxy_cell_by_cellid(cfg, &ri.geran.raid, ri.geran.cid); + if (!cell) { + /* TODO: Log error */ + } else { + return gbprox_relay2peer(msg, cell->bss_bvc, 0); + } + } + /* If it's not a GERAN Cell or it's a Cell gbproxy doesn't know about: Return STATUS PDU with +* "Unknown Destination Address" */ + rc = bssgp_tx_status(BSSGP
Change in osmo-pcu[master]: Allow multiple bts objects in PCU
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU .. Patch Set 4: (9 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c@213 PS3, Line 213: /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ > Sounds like looping over the attached BTS and their MS would solve it. […] Yes it's out of the scope of this patch. This patch is not aiming at properly supporting multibts at runtime, simply adapting the code architecture for allowing it in the future. In the only event contemplated here (1 BTS), looping does 1 iteration so no change in behavior. This patch is already too big to try to do more stuff :) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c@823 PS3, Line 823: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); > Why not add bts as parameter to gprs_bssgp_pcu_rx_ptp()? because caller of this function, bvc_timeout(), is called in lots of places with NULL param where specific BTS object is not available. In any case, I put this here because this function is already super fucked up and should be completely rewritten independently of this patch (see FIXME below). I also remember myself seeing the calculations were wrong for other reasons in the past. So, to keep old behavior, the easiest here is to take the first BTS in list. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c File src/osmo-bts-litecell15/lc15_l1_if.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c@160 PS3, Line 160: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); > add bts parameter instead, or at least a FIXME comment like above? […] It's not a current limitation. If we are using the direct_phy backend, it means we are attached to the BTS directly, so there's only 1 BTS announced in PCUIF, and hence taking the first one is fine (because it's the only one to be ever available). Same applies for file sysmo_l1_if.c, oc2g_l1_if.c. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c File src/osmobts_sock.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c@64 PS4, Line 64: bool retry = !llist_empty(&the_pcu->bts_list); > I think the ! is wrong, shouldn't retry be true if the list is empty? Indeed, thanks! In general is not a big issue because pcu_tx_txt_ind() is sent during successful port open in pcu_l1if_open(), but indeed you are right. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c@114 PS4, Line 114: llist_for_each_entry(bts, &the_pcu->bts_list, list) { > My understanding is, that if one bts closes the socket to the pcu, the pcu > will give up completely, […] There's only 1 PCUIF unix socket, which can be connected to a BTS or a BSC. In the later, BSC sends several info_ind, one for each BTS. But in this patch, when the unix socket is closed, we want to drop all BTS. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h File src/pcu_l1_if.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h@159 PS4, Line 159: struct gprs_rlcmac_bts; > its declared above already in the "ifdef __cplusplus" section. […] Yes, because I need it on top of the pcu_l1if_tx_* functions, but if a C file is including this header, then I also need to put the struct gprs_rlcmac_bts here since the block above will not be seen by it. I agree some headers may look a bit messy but I expect them to become cleaner as more and more helper classes are moved to C over time. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp@845 PS4, Line 845: bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); > this is called twice: […] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c File src/pcu_vty.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c@1073 PS4, Line 1073: pcu_vty_show_tbf_all(vty, bts, flags); > Print out the BTS number too? Otherwise it will just be "UL TBFs", "DL TBFs", > "UL TBFs", ... Which is fine since I don't want to change current behavior in this code. This is printing TBFs, not BTS and its associated TBFs. If at all, one should decide whether it makes sense to print the BTS number inside each TBF block in pcu_vty_show_tbf_all(). But in any case, I'm not willing to change that here. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c@1085 PS4, Line 1085: pcu_vty_show_ms_all(vty, bts); > How about extending show_ms() to mention the BTS number? Same reason as above,this lists MS, I don't pla
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 8: (2 comments) sorry, two more minor issues. But then it's all good. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c@709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); I understand that the "default" clause above has "return 0", as per the comment above the switch statement. But this clause is about an actual error code returned from one of the parser functions for the supported IEs. Shouldn't this be logged as NOTICE/ERROR and return rc instead of 0? https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c@725 PS8, Line 725: check for !msg and return NULL. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:45:54 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS .. hodec2: fix congestion balancing on dyn TS When balancing congestion, not only look at TCH/F or TCH/H separately, but also to take into account the effects on the other TCH kind from using/freeing dynamic TS. Related: OS#5298 Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 109 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 598f05b..0bfae9b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -106,8 +106,18 @@ struct gsm_lchan *lchan; struct gsm_bts *bts; int rxlev; + /* free/min-free for the current TCH kind, same as either free_tch_f or free_tch_h below */ int free_tch; int min_free_tch; + /* free/min-free for the two TCH kinds, to calculate F<->H cross effects for dynamic timeslots */ + int free_tchf; + int min_free_tchf; + int free_tchh; + int min_free_tchh; + /* Effects of freeing a dynamic timeslot, i.e. turning it into PDCH mode and making available more free +* TCH: */ + int lchan_frees_tchf; + int lchan_frees_tchh; } current; struct { struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ @@ -119,7 +129,8 @@ int min_free_tchf; int free_tchh; int min_free_tchh; - /* Effects of occupying a dynamic timeslot: */ + /* Effects of occupying a dynamic timeslot, i.e. turning from PDCH into a specific TCH kind, and +* reducing the number of free TCH for both TCH/F and TCH/H: */ int next_tchf_reduces_tchh; int next_tchh_reduces_tchf; } target; @@ -155,6 +166,17 @@ static void congestion_check_cb(void *arg); +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; +} + /* This function gets called on ho2 init, whenever the congestion check interval is changed, and also * when the timer has fired to trigger again after the next congestion check timeout. */ static void reinit_congestion_timer(struct gsm_network *net) @@ -659,21 +681,75 @@ * congestion on the current cell, hence the - 1 on the target. */ current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { + bool ok; int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); - if (target_overbooked < current_overbooked) + ok = target_overbooked < current_overbooked; + /* Look at dynamic timeslot effects on TCH/H: */ + if (ok && c->target.next_tchf_reduces_tchh) { + /* Looking at the current TCH type and the target cell's TCH/F alone, congestion balancing +* should happen. However, what if the target TCH/F is a dynamic timeslot -- would that cause +* congestion on TCH/H above the current cell's TCH/H congestion? */ + int32_t current_tchh_overbooked = load_above_congestion(c->current.free_tchh, + c->current.min_free_tchh); + int32_t target_tchh_overbooked; + int target_free_tchh_after_ho = c->target.free_tchh - c->target.next_tchf_reduces_tchh; + /* If this is a re-assignment within the same cell, and if the current candidate would free a +* dynamic timeslot, then the target-overbooking after HO is reduced again by the freed dynamic +* TS. */
Change in osmo-bsc[master]: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22266 ) Change subject: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty .. add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index f9adca9..e1e35a9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -18,6 +18,7 @@ pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty new file mode 100644 index 000..ef71d3e --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty @@ -0,0 +1,34 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/H has better rxlev at a neighbor, and the neighbor's TCH/H slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/H +# would reduce the TCH/F availability to cause congestion on TCH/F. No HO. + +network + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# no handover because that results in congestion on TCH/F in bts 1 +expect-no-chan + + +# Now the same situation, except there already is a half occupied TCH/H, hence an added TCH/H would not change the TCH/F +# situation. The handover is performed. + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/H- pdch * + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +expect-ho from lchan 0 0 4 0 to lchan 1 0 5 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22266 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 Gerrit-Change-Number: 22266 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22268 ) Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty .. show bug: add test_dyn_ts_balance_congestion.ho_vty Related: SYS#5298 Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 32 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index e1e35a9..2658f8b 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,7 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_balance_congestion.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_dyn_ts_balance_congestion.ho_vty b/tests/handover/test_dyn_ts_balance_congestion.ho_vty new file mode 100644 index 000..ad9d6a5 --- /dev/null +++ b/tests/handover/test_dyn_ts_balance_congestion.ho_vty @@ -0,0 +1,31 @@ +# To balance congestion, consider cross effects between TCH/F and TCH/H when occupying a dynamic timeslot in the target: +# when balancing of TCH/F congestion would take up a dyn TS in the target, reducing TCH/H availability, the handover +# should not cause worse TCH/H congestion than in the source cell. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F dyn dyn PDCH + +# for this test, avoid changing a TCH/F to a TCH/H by using a non-AMR codec +codec tch/f FR + +network + bts 0 + handover2 min-free-slots tch/f 2 + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states*TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * +set-ts-use trx 1 0 states*TCH/F TCH/F TCH/F TCH/F pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# bts 0 is full for TCH/F. Looking at TCH/F, by target_overbooked_after_ho==75% < current_overbooked_before_ho==100%, a +# congestion balancing to bts 1 would be performed. But the TCH/F on the target cell would occupy a dynamic timeslot. +# That would reduce the TCH/H free slots by two and cause TCH/H being overbooked by 50%. On the source cell, TCH/H is +# not congested. No handover is performed because 50% in the target is more congestion for TCH/H than 0% in the source +# cell. +congestion-check +# FAIL: should not increase TCH/H congestion by occupying a dyn TS +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 .. lchan_avail(): omit logging for handover decision 2 Add bool log argument to lchan_avail_by_type() and omit logging when passed as false. From handover_decision_2.c, pass 'log' as false, from all other callers pass true, i.e. for unchanged behavior. Rationale: Usually, we use lchan_avail_by_type() to select a new lchan to initiate actual service. For that, it is interesting to see how osmo-bsc decides which lchan will be used. For handover decision 2, we since recently call lchan_avail_by_type() for each and every handover candidate, to determine whether it will occupy a dynamic timeslot or not (to know whether we would congest the other TCH kind). So this happens for each permutation of source lchan and target cell. That produces a lot of logging, out of proportion of being useful to the maintainer. Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed --- M include/osmocom/bsc/lchan_select.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/handover_decision_2.c M src/osmo-bsc/lchan_select.c 4 files changed, 25 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/lchan_select.h b/include/osmocom/bsc/lchan_select.h index 41e7015..11f63b0 100644 --- a/include/osmocom/bsc/lchan_select.h +++ b/include/osmocom/bsc/lchan_select.h @@ -4,4 +4,4 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type); struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate); -struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type); +struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type, bool log); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index a68c9fb..321bcb4 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1610,12 +1610,12 @@ /* First check the situation on the BTS, if we have TCH/H or TCH/F resources available for another (EMERGENCY) * call. If yes, then no (further) action has to be carried out. */ - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/F is (now) available!\n"); return false; } - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/H is (now) available!\n"); return false; diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 92374e9..598f05b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -921,7 +921,7 @@ c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); /* Would the next TCH/F lchan occupy a dynamic timeslot that currently counts for free TCH/H timeslots? */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) c->target.next_tchf_reduces_tchh = 2; else @@ -929,7 +929,7 @@ /* Would the next TCH/H lchan occupy a dynamic timeslot that currently counts for free TCH/F timeslots? * Note that a dyn TS already in TCH/H mode (half occupied) would not reduce free TCH/F. */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) c->target.next_tchh_reduces_tchf = 1; diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 64f4939..626520c 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -32,13 +32,14 @@ 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, bool allow_pchan_switch) +enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch, bool log) { struct gsm_lchan *lchan; struct gsm_bts_trx_ts *ts; int j, start, stop, dir; #define LOGPLCHANALLOC(fmt, args...) \ + i
Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS .. hodec2: fix congestion resolution on dyn TS For handover algorithm 2, properly figure out what effects the target cell will see for the *other* TCH kind when a handover would occupy a dynamic timeslot. Before this, only TCH/F or TCH/H would be regarded at a time. This introduces detection of whether a dynamic timeslot would be occupied by a handover, and how losing one unused dynamic timeslot affects the congestion situation for the TCH kind that is not targeted by the handover. In other words, if a handover to TCH/F causes congestion in TCH/H because of a dynamic timeslot becoming occupied, the handover will not be performed. Before this, oscillation situations could occur. A subsequent patch will do the same for congestion balancing. Related: SYS#5297 Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 38 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 0362c9b..92374e9 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -40,6 +40,7 @@ #include #include #include +#include #define LOGPHOBTS(bts, level, fmt, args...) \ LOGP(DHODEC, level, "(BTS %u) " fmt, bts->nr, ## args) @@ -118,6 +119,9 @@ int min_free_tchf; int free_tchh; int min_free_tchh; + /* Effects of occupying a dynamic timeslot: */ + int next_tchf_reduces_tchh; + int next_tchh_reduces_tchf; } target; }; @@ -637,11 +641,15 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (c->target.free_tchf - 1 >= c->target.min_free_tchf) + if ((c->target.free_tchf - 1) >= c->target.min_free_tchf + && (!c->target.next_tchf_reduces_tchh + || (c->target.free_tchh - c->target.next_tchf_reduces_tchh) >= c->target.min_free_tchh)) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (c->target.free_tchh - 1 >= c->target.min_free_tchh) + if ((c->target.free_tchh - 1) >= c->target.min_free_tchh + && (!c->target.next_tchh_reduces_tchf + || (c->target.free_tchf - c->target.next_tchh_reduces_tchf) >= c->target.min_free_tchf)) requirement |= REQUIREMENT_B_TCHH; } @@ -894,6 +902,8 @@ static void candidate_set_free_tch(struct ho_candidate *c) { + struct gsm_lchan *next_lchan; + c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); switch (c->current.lchan->ts->pchan_is) { case GSM_PCHAN_TCH_F: @@ -909,6 +919,22 @@ c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); + + /* Would the next TCH/F lchan occupy a dynamic timeslot that currently counts for free TCH/H timeslots? */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) + c->target.next_tchf_reduces_tchh = 2; + else + c->target.next_tchf_reduces_tchh = 0; + + /* Would the next TCH/H lchan occupy a dynamic timeslot that currently counts for free TCH/F timeslots? +* Note that a dyn TS already in TCH/H mode (half occupied) would not reduce free TCH/F. */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH + && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) + c->target.next_tchh_reduces_tchf = 1; + else + c->target.next_tchh_reduces_tchf = 0; } /* add candidate for re-assignment within the current cell */ diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index bc2c884..c5890a5 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -20,12 +20,8 @@ expect-no-chan meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 n
Change in osmo-bsc[master]: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22264 ) Change subject: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty .. fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty The test shows a cascade of failures. When we fix the first failure, it will change the sequence of events that follow after that. But it will still be interesting to evaluate all the situations currently shown. Hence fixate each stage's initial situation, by duplicating the expect-ts-use with an identical set-ts-use. Then, when each individual scenario gets fixed, subsequent scenarios still remain unchanged. Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b --- M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 1 file changed, 24 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index 1273d75..bc2c884 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -25,6 +25,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * + + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check @@ -34,12 +40,24 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + congestion-check # more FAIL: TCH/H moves to worse bts 0 due to congestion expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + congestion-check expect-no-chan @@ -53,6 +71,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + congestion-check expect-no-chan # Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22264 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b Gerrit-Change-Number: 22264 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-bsc[master]: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22263 ) Change subject: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty .. show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty Related: SYS#5297 Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 59 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index d0c1c00..f9adca9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,7 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty new file mode 100644 index 000..1273d75 --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -0,0 +1,58 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/F has better rxlev at a neighbor, and the neighbor's TCH/F slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/F +# would reduce the TCH/H availability to cause congestion on TCH/H. No HO. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * TCH/F - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# FAIL: should not handover because that results in congestion on TCH/H in bts 1 +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 + +congestion-check +# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS. +# TCH/H congestion hence actually gets worse. +expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0 +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +congestion-check +# more FAIL: TCH/H moves to worse bts 0 due to congestion +expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +congestion-check +expect-no-chan + +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40 +# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!? +expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +congestion-check +expect-no-chan +# Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 Gerrit-Change-Number: 22263 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h}
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} .. Get rid of unused gsm_timer.{cpp,h} Those files are not really being used other than for calling get_current_fn() which is just a placeholder to call bts_current_frame_number on the global bts object. Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f --- M debian/copyright M src/Makefile.am M src/gprs_rlcmac.h D src/gsm_timer.cpp D src/gsm_timer.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/tbf.cpp M src/tbf.h 9 files changed, 7 insertions(+), 346 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/debian/copyright b/debian/copyright index 0069d0c..99ea408 100644 --- a/debian/copyright +++ b/debian/copyright @@ -34,8 +34,6 @@ src/gprs_debug.h src/pcu_main.cpp src/pcu_l1_if.h - src/gsm_timer.cpp - src/gsm_timer.h Copyright: 2012 Ivan Klyuchnikov License: GPL-2.0+ @@ -131,4 +129,3 @@ . On Debian systems, the complete text of the GNU General Public License Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - diff --git a/src/Makefile.am b/src/Makefile.am index c9c7aa3..05fac55 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -50,7 +50,6 @@ gprs_ms.c \ gprs_ms_storage.cpp \ gprs_pcu.c \ - gsm_timer.cpp \ pcu_l1_if.cpp \ pcu_vty.c \ pcu_vty_functions.cpp \ @@ -87,7 +86,6 @@ gprs_ms_storage.h \ gprs_pcu.h \ pcu_l1_if.h \ - gsm_timer.h \ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 3d5ea99..d779d08 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -24,7 +24,6 @@ #include #ifdef __cplusplus -#include #include extern "C" { diff --git a/src/gsm_timer.cpp b/src/gsm_timer.cpp deleted file mode 100644 index 0627753..000 --- a/src/gsm_timer.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/* gsm_timer.cpp - * - * Copyright (C) 2012 Ivan Klyuchnikov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/* These store the amount of frame number that we wait until next timer expires. */ -static int nearest; -static int *nearest_p; - -/*! \addtogroup gsm_timer - * @{ - */ - -/*! \file gsm_timer.cpp - */ - -#include -#include -#include -#include -#include -#include - - -static struct rb_root timer_root = RB_ROOT; - -/* - * TODO: make this depend on the BTS. This means that - * all time functions schedule based on the BTS they - * are scheduled on. - */ -int get_current_fn() -{ - return bts_current_frame_number(the_pcu->bts); -} - -static void __add_gsm_timer(struct osmo_gsm_timer_list *timer) -{ - struct rb_node **new_node = &(timer_root.rb_node); - struct rb_node *parent = NULL; - - while (*new_node) { - struct osmo_gsm_timer_list *this_timer; - - this_timer = container_of(*new_node, struct osmo_gsm_timer_list, node); - - parent = *new_node; - if (timer->fn < this_timer->fn) - new_node = &((*new_node)->rb_left); - else - new_node = &((*new_node)->rb_right); - } - - rb_link_node(&timer->node, parent, new_node); - rb_insert_color(&timer->node, &timer_root); -} - -/*! \brief add a new timer to the timer management - * \param[in] timer the timer that should be added - */ -void osmo_gsm_timer_add(struct osmo_gsm_timer_list *timer) -{ - osmo_gsm_timer_del(timer); - timer->active = 1; - INIT_LLIST_HEAD(&timer->list); - __add_gsm_timer(timer); -} - -/*! \brief schedule a gsm timer at a given future relative time - * \param[in] timer the to-be-added timer - * \param[in] number of frames from now - * - * This function can be used to (re-)schedule a given timer at a - * specified number of frames in the future. It will - * internally add it to the timer management data structures, thus - * osmo_timer_add() is automatically called. - */ -void -osmo_gsm_timer_schedule(str
Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C .. Convert gprs_bssgp_pcu.cpp to C There's no real use of C++ in that file, and it causes problems when using llist_head entry macros in future patches adding initial support for multiple BTS in PCU object, so let's move it to plain C. Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 --- M src/Makefile.am M src/decoding.cpp M src/decoding.h R src/gprs_bssgp_pcu.c M src/gprs_bssgp_pcu.h M src/gprs_rlcmac.h M src/pdch.cpp M src/rlc.h M src/tbf_dl.cpp M src/tbf_dl.h M tests/rlcmac/RLCMACTest.cpp M tests/tbf/TbfTest.cpp 12 files changed, 91 insertions(+), 59 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/Makefile.am b/src/Makefile.am index 05fac55..60f05a5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -42,7 +42,7 @@ gprs_debug.cpp \ csn1.c \ gsm_rlcmac.c \ - gprs_bssgp_pcu.cpp \ + gprs_bssgp_pcu.c \ gprs_rlcmac.cpp \ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ diff --git a/src/decoding.cpp b/src/decoding.cpp index 0437994..e40496d 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -291,7 +291,7 @@ return num_chunks; } -uint8_t Decoding::get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; @@ -306,7 +306,7 @@ return 0; } -uint8_t Decoding::get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; diff --git a/src/decoding.h b/src/decoding.h index 23d3e17..28af3c4 100644 --- a/src/decoding.h +++ b/src/decoding.h @@ -19,16 +19,23 @@ */ #pragma once +#ifdef __cplusplus extern "C" { -#include "gsm_rlcmac.h" -} +#endif -#include "rlc.h" +#include "gsm_rlcmac.h" +#include "coding_scheme.h" + +#ifdef __cplusplus +} +#endif #include struct bitvec; +#ifdef __cplusplus + class Decoding { public: /* represents (parts) LLC PDUs within one RLC Data block */ @@ -42,8 +49,6 @@ const struct gprs_rlc_data_block_info *rdbi, enum CodingScheme cs, const uint8_t *data, RlcData *chunks, unsigned int chunks_size, uint32_t *tlli); - static uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); - static uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); static void extract_rbb(const uint8_t *rbb, char *extracted_rbb); static void extract_rbb(const struct bitvec *rbb, char *show_rbb); @@ -82,3 +87,16 @@ bitvec *bits, int *bsn_begin, int *bsn_end, gprs_rlc_dl_window *window); }; + +#endif /* #ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.c similarity index 97% rename from src/gprs_bssgp_pcu.cpp rename to src/gprs_bssgp_pcu.c index 997cb1b..288bc45 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.c @@ -28,14 +28,15 @@ #include #include -extern "C" { - #include - #include - #include - #include - #include "coding_scheme.h" - #include "tbf_dl.h" -} +#include +#include +#include +#include +#include +#include "coding_scheme.h" +#include "tbf_dl.h" +#include "llc.h" +#include "gprs_rlcmac.h" /* Tuning parameters for BSSGP flow control */ #define FC_DEFAULT_LIFE_TIME_SECS 10 /* experimental value, 10s */ @@ -55,7 +56,7 @@ static int parse_ra_cap(struct tlv_parsed *tp, MS_Radio_Access_capability_t *rac) { - bitvec *block; + struct bitvec *block; uint8_t cap_len; uint8_t *cap; @@ -132,9 +133,8 @@ /* parse ms radio access capability */ if (parse_ra_cap(tp, &rac) >= 0) { /* Get the EGPRS class from the RA capability */ - ms_class = Decoding::get_ms_class_by_capability(&rac); - egprs_ms_class = - Decoding::get_egprs_ms_class_by_capability(&rac); + ms_class = get_ms_class_by_capability(&rac); + egprs_ms_class = get_egprs_ms_class_by_capability(&rac); LOGP(DBSSGP, LOGL_DEBUG, "Got downlink MS class %d/%d\n", ms_class, egprs_ms_class); } @@ -166,7 +166,7 @@ LOGP(DBSSGP, LOGL_INFO, "LLC [SGSN -> PCU] = TLLI: 0x%08x IMSI: %s len: %d\n", tlli, mi_imsi.imsi, len); - return gprs_rlcmac_dl_tbf::handle(the_pcu->bssgp.bts, tlli, tlli_o
Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C .. Convert osmo_bts_sock.cpp to C There's no real point in using C++ there, and using C++ makes the compiler fail to use llist_head in multi-bts patches added later due to: """ 'offsetof' within non-standard-layout type is conditionally-supported """ Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb --- M src/Makefile.am R src/osmobts_sock.c M src/pcu_l1_if.h M src/pdch.cpp M src/pdch.h M tests/tbf/TbfTest.cpp 6 files changed, 17 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/Makefile.am b/src/Makefile.am index 60f05a5..de924a6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -65,7 +65,7 @@ decoding.cpp \ llc.cpp \ rlc.cpp \ - osmobts_sock.cpp \ + osmobts_sock.c \ gprs_codel.c \ coding_scheme.c \ egprs_rlc_compression.cpp \ diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.c similarity index 98% rename from src/osmobts_sock.cpp rename to src/osmobts_sock.c index c68b7b9..ec9d7ce 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.c @@ -25,13 +25,13 @@ #include #include #include -extern "C" { + #include #include #include #include #include -} + #include #include @@ -41,9 +41,7 @@ #include #include -extern "C" { int l1if_close_pdch(void *obj); -} /* * osmo-bts PCU socket functions @@ -115,7 +113,7 @@ } #endif for (ts = 0; ts < 8; ts++) - bts->trx[trx].pdch[ts].disable(); + pdch_disable(&bts->trx[trx].pdch[ts]); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ bts_trx_free_all_tbf(&bts->trx[trx]); diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 674ccca..8ef262c 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -150,19 +150,18 @@ void pcu_l1if_tx_agch(bitvec * block, int len); void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup); - -int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); - -int pcu_l1if_open(void); -void pcu_l1if_close(void); - -int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); -int pcu_sock_send(struct msgb *msg); #endif #ifdef __cplusplus extern "C" { #endif +int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); +int pcu_l1if_open(void); +void pcu_l1if_close(void); +int pcu_sock_send(struct msgb *msg); + +int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); + int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, diff --git a/src/pdch.cpp b/src/pdch.cpp index 15fd139..5a329f3 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1031,3 +1031,7 @@ tbf_free(tbf); } } + +void pdch_disable(struct gprs_rlcmac_pdch *pdch) { + pdch->disable(); +} diff --git a/src/pdch.h b/src/pdch.h index 57e0f43..8871986 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -188,6 +188,7 @@ extern "C" { #endif void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +void pdch_disable(struct gprs_rlcmac_pdch *pdch); #ifdef __cplusplus } #endif diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index fbcb503..798dc3c 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -166,7 +166,7 @@ /* override, requires '-Wl,--wrap=pcu_sock_send' */ int __real_pcu_sock_send(struct msgb *msg); -int __wrap_pcu_sock_send(struct msgb *msg) +extern "C" int __wrap_pcu_sock_send(struct msgb *msg) { return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts'
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' .. Rename 'bts_data' leftovers to 'bts' Before, we used tho have a BTs object split into 2 parts, a C gprs_rlcmac_bts struct and a C++ BTS struct, and "bts_data" naming was used to distinguish them in variable names. Nowadays the struct is finally combined into one, so there's no point in using this "bts_data" terminology, we use always "bts". Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 --- M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/pcu_l1_if.cpp M src/pcu_vty_functions.cpp M src/pcu_vty_functions.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 9 files changed, 40 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 39e22c0..40c194c 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -130,29 +130,29 @@ } struct msgb *sched_app_info(struct gprs_rlcmac_tbf *tbf) { - struct gprs_rlcmac_bts *bts_data; + struct gprs_rlcmac_bts *bts; struct msgb *msg = NULL; if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts_data = the_pcu->bts; + bts = the_pcu->bts; - if (bts_data->app_info) { + if (bts->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); - msg = msgb_copy(bts_data->app_info, "app_info_msg_sched"); + msg = msgb_copy(bts->app_info, "app_info_msg_sched"); } else LOGP(DRLCMACSCHED, LOGL_ERROR, "MS has app_info_pending flag set, but no Packet Application Information" " message stored in BTS!\n"); tbf->ms()->app_info_pending = false; - bts_data->app_info_pending--; + bts->app_info_pending--; - if (!bts_data->app_info_pending) { + if (!bts->app_info_pending) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Packet Application Information successfully sent to all MS with active" " TBF\n"); - msgb_free(bts_data->app_info); - bts_data->app_info = NULL; + msgb_free(bts->app_info); + bts->app_info = NULL; } return msg; } diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index f8b1c1f..4c68a87 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -239,7 +239,7 @@ attach_tbf_to_pdch(pdch, tbf); } -static int find_trx(const struct gprs_rlcmac_bts *bts_data, const GprsMs *ms, int8_t use_trx) +static int find_trx(const struct gprs_rlcmac_bts *bts, const GprsMs *ms, int8_t use_trx) { unsigned trx_no; unsigned ts; @@ -252,8 +252,8 @@ return use_trx; /* Find the first TRX that has a PDCH with a free UL and DL TFI */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) @@ -272,14 +272,14 @@ return -EBUSY; } -static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts_data) +static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts) { unsigned trx_no; unsigned ts; /* Find the first PDCH with an unused DL TS */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index ce0f55e..e5ad1de 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -814,36 +814,35 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { struct gprs_rlcmac_bts *bts = the_pcu->bts; - struct gprs_rlcmac_bts *bts_data = bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); - bts_data->app_info_pending = 0; + bts->app_info_pend
Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files .. Move tbf::free_all static methods to proper object files Move each method to the object on which they operate, be it a trx or a pdch ts. Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 --- M src/bts.cpp M src/bts.h M src/osmobts_sock.cpp M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 7 files changed, 31 insertions(+), 25 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index 0e08091..499c033 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -70,6 +70,12 @@ } } +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx) +{ + for (uint8_t ts = 0; ts < 8; ts++) + pdch_free_all_tbf(&trx->pdch[ts]); +} + static struct osmo_tdef T_defs_bts[] = { { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="timer (s)", .val=0 }, { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, diff --git a/src/bts.h b/src/bts.h index 8d06939..37fc5dc 100644 --- a/src/bts.h +++ b/src/bts.h @@ -65,6 +65,7 @@ #endif void bts_trx_reserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx); void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index d94c7e7..c68b7b9 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -118,7 +118,7 @@ bts->trx[trx].pdch[ts].disable(); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ - gprs_rlcmac_tbf::free_all(&bts->trx[trx]); + bts_trx_free_all_tbf(&bts->trx[trx]); } gprs_bssgp_destroy(bts); diff --git a/src/pdch.cpp b/src/pdch.cpp index c48c63f..15fd139 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -152,7 +152,7 @@ return; /* kick all TBF on slot */ - gprs_rlcmac_tbf::free_all(this); + pdch_free_all_tbf(this); /* flush all pending paging messages */ while ((pag = dequeue_paging())) @@ -1017,3 +1017,17 @@ OSMO_ASSERT(tai < PTCCH_TAI_NUM); ptcch_msg[tai] = ta; } + +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch) +{ + for (uint8_t tfi = 0; tfi < 32; tfi++) { + struct gprs_rlcmac_tbf *tbf; + + tbf = pdch->ul_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + tbf = pdch->dl_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + } +} diff --git a/src/pdch.h b/src/pdch.h index 2413ef7..57e0f43 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -183,3 +183,11 @@ } #endif /* __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +#ifdef __cplusplus +} +#endif diff --git a/src/tbf.cpp b/src/tbf.cpp index 859ebcd..37af21f 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1045,26 +1045,6 @@ return NULL; } -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_trx *trx) -{ - for (uint8_t ts = 0; ts < 8; ts++) - free_all(&trx->pdch[ts]); -} - -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_pdch *pdch) -{ - for (uint8_t tfi = 0; tfi < 32; tfi++) { - struct gprs_rlcmac_tbf *tbf; - - tbf = pdch->ul_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - tbf = pdch->dl_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - } -} - int gprs_rlcmac_tbf::establish_dl_tbf_on_pacch() { struct gprs_rlcmac_dl_tbf *new_tbf = NULL; diff --git a/src/tbf.h b/src/tbf.h index 460de70..d616076 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -215,9 +215,6 @@ gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); virtual ~gprs_rlcmac_tbf() {} - static void free_all(struct gprs_rlcmac_trx *trx); - static void free_all(struct gprs_rlcmac_pdch *pdch); - virtual gprs_rlc_window *window() = 0; int setup(int8_t use_trx, bool single_slot); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37
Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods .. bts: combine bts_{init,cleanup} into consturctor/destructor methods The bts_init/cleanup functions were kept during the C and C++ structure merge process to make the patch simpler. It's not needed anymore, let's move all the destructor logic into one function and keep that together. Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 --- M src/bts.cpp 1 file changed, 34 insertions(+), 43 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 92cbca5..0e08091 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -192,8 +192,40 @@ bts_stat_item_description, }; -static void bts_init(struct gprs_rlcmac_bts *bts, struct gprs_pcu *pcu) +static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) { + /* this can cause counter updates and must not be left to the +* m_ms_store's destructor */ + bts->ms_store->cleanup(); + delete bts->ms_store; + delete bts->sba; + delete bts->pollController; + + if (bts->ratectrs) { + rate_ctr_group_free(bts->ratectrs); + bts->ratectrs = NULL; + } + + if (bts->statg) { + osmo_stat_item_group_free(bts->statg); + bts->statg = NULL; + } + + if (bts->app_info) { + msgb_free(bts->app_info); + bts->app_info = NULL; + } + return 0; +} + +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) +{ + struct gprs_rlcmac_bts* bts; + bts = talloc_zero(pcu, struct gprs_rlcmac_bts); + if (!bts) + return bts; + talloc_set_destructor(bts, bts_talloc_destructor); + bts->pcu = pcu; bts->pollController = new PollController(*bts); @@ -247,31 +279,8 @@ bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); OSMO_ASSERT(bts->statg); -} -static void bts_cleanup(gprs_rlcmac_bts *bts) -{ - /* this can cause counter updates and must not be left to the -* m_ms_store's destructor */ - bts->ms_store->cleanup(); - delete bts->ms_store; - delete bts->sba; - delete bts->pollController; - - if (bts->ratectrs) { - rate_ctr_group_free(bts->ratectrs); - bts->ratectrs = NULL; - } - - if (bts->statg) { - osmo_stat_item_group_free(bts->statg); - bts->statg = NULL; - } - - if (bts->app_info) { - msgb_free(bts->app_info); - bts->app_info = NULL; - } + return bts; } void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int fn) @@ -1057,24 +1066,6 @@ return ms; } - -static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) -{ - bts_cleanup(bts); - return 0; -} - -struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) -{ - struct gprs_rlcmac_bts* bts; - bts = talloc_zero(pcu, struct gprs_rlcmac_bts); - if (!bts) - return bts; - talloc_set_destructor(bts, bts_talloc_destructor); - bts_init(bts, pcu); - return bts; -} - struct SBAController *bts_sba(struct gprs_rlcmac_bts *bts) { return bts->sba; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-pcu[master]: Get rid of bts singletons
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons .. Get rid of bts singletons There's no BTS single global object anymore, get rid of those APIs. Move users to use "pcu->bts", which will evolve to a linked list in the future. Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_vty.c M tests/emu/pcu_emu.cpp 7 files changed, 17 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 294739c..92cbca5 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -249,16 +249,6 @@ OSMO_ASSERT(bts->statg); } -struct gprs_rlcmac_bts *bts_main_data() -{ - return the_pcu->bts; -} - -struct rate_ctr_group *bts_main_data_stats() -{ - return bts_rate_counters(the_pcu->bts); -} - static void bts_cleanup(gprs_rlcmac_bts *bts) { /* this can cause counter updates and must not be left to the diff --git a/src/bts.h b/src/bts.h index d316370..8d06939 100644 --- a/src/bts.h +++ b/src/bts.h @@ -318,9 +318,6 @@ struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); -struct gprs_rlcmac_bts *bts_main_data(); -struct rate_ctr_group *bts_main_data_stats(); -struct osmo_stat_item_group *bts_main_data_stat_items(); void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 92fa845..997cb1b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -808,7 +808,7 @@ LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); return -EIO; } - bts = bts_main_data(); + bts = the_pcu->bts; max_cs_dl = max_coding_scheme_dl(bts); diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index 6addda6..d94c7e7 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -62,7 +62,7 @@ static void pcu_tx_txt_retry(void *_priv) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->active) return; @@ -90,7 +90,7 @@ static void pcu_sock_close(int lost) { struct osmo_fd *bfd = &pcu_sock_state.conn_bfd; - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t trx, ts; LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n", diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 1a47b37..ce0f55e 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -201,7 +201,7 @@ uint32_t fn, uint8_t block_nr) { #ifdef ENABLE_DIRECT_PHY - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->trx[trx].fl1h) { l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, @@ -286,13 +286,13 @@ { struct gprs_rlcmac_pdch *pdch; - pdch = &bts_main_data()->trx[trx_no].pdch[ts_no]; + pdch = &the_pcu->bts->trx[trx_no].pdch[ts_no]; return pdch->rcv_block(data, len, fn, meas); } static int pcu_rx_data_ind_bcch(uint8_t *data, uint8_t len) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (len == 0) { bts->si13_is_set = false; @@ -384,13 +384,13 @@ extern "C" int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - return gprs_rlcmac_rcv_rts_block(bts_main_data(), + return gprs_rlcmac_rcv_rts_block(the_pcu->bts, trx, ts, fn, block_nr); } extern "C" int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_pdch *pdch; /* Prevent buffer overflow */ @@ -544,7 +544,7 @@ static int pcu_rx_info_ind(const struct gsm_pcu_if_info_ind *info_ind) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_bssgp_pcu *pcu; int rc = 0; unsigned int trx_nr, ts_nr; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index ed1a6a4..9beb4c1 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -753,7 +753,7 @@ "show bts statistics", SHOW_STR "BTS related functionality\nStatistics\n") { - vty_out_rate_ctr_group(vty, "", bts_main_data_stats()); + vty_out_rate_ctr_group(vty, "", bts_rate_counters(the_pcu->bts)); return CMD_SUCCESS; } @@ -762,7 +762,7 @@ "show bts pdc
Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:39:54 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 8: (1 comment) I have changed it now. I hope its now better. https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c@739 PS7, Line 739: bssgp_encode_rim_pdu > I'm sorry, but why is this function not pushing the BSSGP header? IMHO, the > encoder function should […] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:39:50 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#8). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 265 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C .. Patch Set 2: Code-Review+2 is there ever a point in using C++? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:27:01 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files .. Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:23:21 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c@739 PS7, Line 739: bssgp_encode_rim_pdu I'm sorry, but why is this function not pushing the BSSGP header? IMHO, the encoder function should return a compete BSSGP message including its header. Thisis what we always have whenever we have an encoder function somewhere. I don't see a reason why the BSSGP header is pushed only in the transmit function? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:15:24 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-pcu[master]: Allow multiple bts objects in PCU
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU .. Patch Set 4: Code-Review-1 (11 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/bts.cpp@1132 PS3, Line 1132: void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) (line too long) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c@213 PS3, Line 213: /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ Sounds like looping over the attached BTS and their MS would solve it. Is this out of scope for this patch? (same with _ps below) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c@823 PS3, Line 823: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); Why not add bts as parameter to gprs_bssgp_pcu_rx_ptp()? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_rlcmac.h File src/gprs_rlcmac.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_rlcmac.h@116 PS3, Line 116: (space) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c File src/osmo-bts-litecell15/lc15_l1_if.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c@160 PS3, Line 160: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); add bts parameter instead, or at least a FIXME comment like above? Same with all other "bts = llist_first_entry_or_null" lines below / in other files. Alternatively / additionally to FIXME everywhere, maybe add a note in README under "Current limitations". https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c File src/osmobts_sock.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c@64 PS4, Line 64: bool retry = !llist_empty(&the_pcu->bts_list); I think the ! is wrong, shouldn't retry be true if the list is empty? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c@114 PS4, Line 114: llist_for_each_entry(bts, &the_pcu->bts_list, list) { My understanding is, that if one bts closes the socket to the pcu, the pcu will give up completely, drop all bts and exit. So this could use another FIXME. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h File src/pcu_l1_if.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h@159 PS4, Line 159: struct gprs_rlcmac_bts; its declared above already in the "ifdef __cplusplus" section. is that on purpose? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp@845 PS4, Line 845: bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); this is called twice: gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c File src/pcu_vty.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c@1073 PS4, Line 1073: pcu_vty_show_tbf_all(vty, bts, flags); Print out the BTS number too? Otherwise it will just be "UL TBFs", "DL TBFs", "UL TBFs", ... https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c@1085 PS4, Line 1085: pcu_vty_show_ms_all(vty, bts); How about extending show_ms() to mention the BTS number? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:12:52 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. Patch Set 6: (2 comments) Thanks for reviewing! https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h@73 PS6, Line 73: in > those two messages are not symmetric. […] Done https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c@701 PS6, Line 701: rc = > why is this re-inventing a simplistic BSSGP message parser? We do have a > "proper" BSSGP parser whih […] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:57:45 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs
Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#7). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs .. gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 263 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc .. ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc With the change to NS_Provider the configruation has to be extended to also include the other nsvcs. osmo-ttcn3-hacks: c316572db111 ("RAW_NS: rework NS connection to use NS_Provider") Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 24 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 9cd4b38..c6af8a6 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -22,6 +22,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23001, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23002, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 } } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc .. Patch Set 1: Code-Review+2 1+1 = 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:44:58 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Unify BTS into a C usable structure
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure .. Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:33:55 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Unify BTS into a C usable structure
Hello osmith, Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 to look at the new patch set (#7). Change subject: Unify BTS into a C usable structure .. Unify BTS into a C usable structure Previous work on BTS class started to get stuff out of the C++ struct into a C struct (BTS -> struct gprs_glcmac_bts) so that some parts of it were accessible from C code. Doing so, however, ended up being messy too, since all code needs to be switching from one object to another, which actually refer to the same logical component. Let's instead rejoin the structures and make sure the struct is accessible and usable from both C and C++ code by rewriting all methods to be C compatible and converting 3 allocated suboject as pointers. This way BTS can internally still use those C++ objects while providing a clean APi to both C and C++ code. Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_ms.h M src/gprs_ms_storage.cpp M src/gprs_ms_storage.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/gsm_timer.cpp M src/llc.cpp M src/llc.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/pcu_vty_functions.cpp M src/pdch.cpp M src/pdch.h M src/poll_controller.cpp M src/poll_controller.h M src/rlc.cpp M src/rlc.h M src/sba.cpp M src/sba.h M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_dl.h M src/tbf_ul.cpp M src/tbf_ul.h M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 41 files changed, 1,048 insertions(+), 1,194 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/22196/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset
Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:16:31 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:14:27 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test .. test: gprs_ns2: free the nsi after each test Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 4c47b6a..bcfd460 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -142,6 +142,7 @@ ns2_nse_notify_unblocked(nsvc[1], false); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42 + 23); + gprs_ns2_free(nsi); printf("--- Finish NSE transfer cap\n"); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in libosmocore[master]: test: gprs_ns2: replace free_bind() with clear_pdus()
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: replace free_bind() with clear_pdus() .. test: gprs_ns2: replace free_bind() with clear_pdus() free_bind() should free up all driver specific state but NOT the bind itself. As the only thing left is clearing the pdus rename the function to it. Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 --- M tests/gb/gprs_ns2_test.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 7c28dca..4c47b6a 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -44,15 +44,15 @@ return 0; } -void free_bind(struct gprs_ns2_vc_bind *bind) +static void clear_pdus(struct gprs_ns2_vc_bind *bind) { - OSMO_ASSERT(bind); - talloc_free(bind); + struct osmo_wqueue *queue = bind->priv; + osmo_wqueue_clear(queue); } struct gprs_ns2_vc_driver vc_driver_dummy = { .name = "GB UDP dummy", - .free_bind = free_bind, + .free_bind = clear_pdus, }; static int vc_sendmsg(struct gprs_ns2_vc *nsvc, struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged
Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch .. pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch Allow ignoring for received dumy packets while waiting for a Pkt Ass on PACCH. This fixes some tests failing sometimes due to race condition where rlcmac packet is requested too quicky, after the PCU has received the BSSGP packet we sent to it. The function is splitted into an internal altestep + a wrap function which is compatible with tests already using it. Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 53 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/22313/1 diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 16036ad..54839d4 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -498,38 +498,62 @@ function f_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, template RlcmacDlBlock t_pkt_ass := ?, - template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true) runs on MS_BTS_IFACE_CT return RlcmacDlBlock { var RlcmacDlBlock dl_block; - var uint32_t dl_fn; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + as_ms_rx_pkt_ass_pacch(ms, poll_fn, t_pkt_ass, nr, ignore_dummy, dl_block); + return dl_block; +} - f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr); - if (not match(dl_block, t_pkt_ass)) { - setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); - f_shutdown(__BFILE__, __LINE__); - } +altstep as_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, + template RlcmacDlBlock t_pkt_ass := ?, + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true, + out RlcmacDlBlock dl_block) +runs on MS_BTS_IFACE_CT { + var PCUIF_Message pcu_msg; + [] BTS.receive(tr_PCUIF_DATA_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, +sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { + var uint32_t dl_fn; + dl_block := dec_RlcmacDlBlock(pcu_msg.u.data_req.data); + if (ignore_dummy and match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + /* TODO: sleep? */ + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + repeat; + } - poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); - - if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { - ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); - if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received vs exp ", ms.tlli); - f_shutdown(__BFILE__, __LINE__); - } - } else if (match(dl_block, tr_RLCMAC_DL_PACKET_ASS)) { - ms.dl_tbf := f_dltbf_new_from_ass_pacch(dl_block); - if (ischosen(ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli) and - ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli, " received vs exp ", ms.tlli); + if (not match(dl_block, t_pkt_ass)) { + setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); f_shutdown(__BFILE__, __LINE__); } - } else { - setverdict(fail, "Should not happen:", dl_block); - f_shutdown(__BFILE__, __LINE__); - } - return dl_block; + dl_fn := pcu_msg.u.data_req.fn; + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); + + if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { + ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); + if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { + setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received v
Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C .. Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:05:07 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 13: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@147 PS13, Line 147: nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); > you miss passing idbuf here. i'll drop the snprintf line https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@155 PS13, Line 155: nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); > Here aswell no. i this was not my patch. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:03:41 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h}
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f Gerrit-Change-Number: 22280 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:55:38 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:53:18 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts'
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 Gerrit-Change-Number: 22276 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:49:52 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Get rid of bts singletons
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 Gerrit-Change-Number: 22275 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:45:39 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-pcu[master]: Unify BTS into a C usable structure
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure .. Patch Set 6: (9 comments) Found some minor things, otherwise +1. Well done, Pau! https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h File src/bts.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h@199 PS6, Line 199: uint16_t mcs_mask; /* Allowed MCS mask from struct gprs_rlcmac_bts */ "from BTS" -> "from struct gprs_rlcmac_bts" looks like unintentional replacement. Or if not, what do you mean with it? https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h@227 PS6, Line 227: // BTS: Looks like this "// BTS:" comment separates old C and C++ code. Did you intend to leave that in? (if so: different comment style, make it more descriptive?) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h@264 PS6, Line 264: void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int frame_number); What about the 'TODO: change the number to unsigned' comment that was removed? https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h@271 PS6, Line 271: int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx); (line > 120 characters) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.cpp@569 PS6, Line 569: int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) (line too long) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp@116 PS6, Line 116: static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) (long line) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp@708 PS6, Line 708: bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); (while add it, add line breaks in both lines?) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/app_info/AppInfoTest.cpp File tests/app_info/AppInfoTest.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/app_info/AppInfoTest.cpp@158 PS6, Line 158: /* FIXME: talloc report disabled, because bts_alloc_ms(bts, ) in prepare_bts_with_two_dl_tbf_subscr() causes leak */ (long line) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/tbf/TbfTest.cpp File tests/tbf/TbfTest.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/tbf/TbfTest.cpp@2206 PS6, Line 2206: bts = bts; bts = bts ? ;) $ git grep -n 'bts = bts;' ... tests/alloc/AllocTest.cpp:467: bts = bts; tests/app_info/AppInfoTest.cpp:86: bts = bts; tests/edge/EdgeTest.cpp:1158: bts = bts; tests/tbf/TbfTest.cpp:487: bts = bts; tests/tbf/TbfTest.cpp:533: bts = bts; tests/tbf/TbfTest.cpp:692: bts = bts; tests/tbf/TbfTest.cpp:838: bts = bts; tests/tbf/TbfTest.cpp:1272: bts = bts; tests/tbf/TbfTest.cpp:1587: bts = bts; tests/tbf/TbfTest.cpp:2206: bts = bts; tests/tbf/TbfTest.cpp:2271: bts = bts; tests/tbf/TbfTest.cpp:2318: bts = bts; tests/tbf/TbfTest.cpp:2401: bts = bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:40:52 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty .. Patch Set 13: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@155 PS13, Line 155: nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); Here aswell https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c@163 PS13, Line 163: nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); Here aswell -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:07:10 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf .. Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c@60 PS3, Line 60: bool initiator; > what does true and false mean here? true == we are the 'initiator', false if not? Am I missing something? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:06:27 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment