Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64

2021-01-19 Thread OBS Notification
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

2021-01-19 Thread OBS Notification
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread daniel
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

2021-01-19 Thread daniel
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

2021-01-19 Thread laforge
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

2021-01-19 Thread laforge
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

2021-01-19 Thread keith
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

2021-01-19 Thread pespin
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

2021-01-19 Thread fixeria
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread pespin
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread dexter
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread keith
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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_

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread keith
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

2021-01-19 Thread keith
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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_

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread keith
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

2021-01-19 Thread keith
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

2021-01-19 Thread keith
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

2021-01-19 Thread dexter
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

2021-01-19 Thread laforge
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

2021-01-19 Thread laforge
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

2021-01-19 Thread pespin
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

2021-01-19 Thread laforge
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

2021-01-19 Thread laforge
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

2021-01-19 Thread dexter
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

2021-01-19 Thread dexter
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

2021-01-19 Thread pespin
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

2021-01-19 Thread daniel
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

2021-01-19 Thread pespin
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

2021-01-19 Thread laforge
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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}

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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'

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread pespin
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

2021-01-19 Thread dexter
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

2021-01-19 Thread dexter
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

2021-01-19 Thread neels
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

2021-01-19 Thread neels
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

2021-01-19 Thread laforge
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

2021-01-19 Thread osmith
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

2021-01-19 Thread dexter
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

2021-01-19 Thread dexter
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread osmith
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

2021-01-19 Thread pespin
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

2021-01-19 Thread osmith
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

2021-01-19 Thread osmith
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

2021-01-19 Thread lynxis lazus
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()

2021-01-19 Thread lynxis lazus
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

2021-01-19 Thread pespin
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

2021-01-19 Thread osmith
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

2021-01-19 Thread lynxis lazus
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}

2021-01-19 Thread osmith
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

2021-01-19 Thread osmith
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'

2021-01-19 Thread osmith
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

2021-01-19 Thread osmith
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

2021-01-19 Thread osmith
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

2021-01-19 Thread daniel
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

2021-01-19 Thread laforge
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


  1   2   >