hi,
just experiences some problems with my jolly branch (osmo-pcu):
commit e6228b34a75efcb6b0700ac29672d62539860fbf
Author: Andreas Eversberg <jolly(a)eversberg.eu>
Date: Tue Jul 3 13:36:03 2012 +0200
TBF acknowledged mode finished for both link directions
commit c7e7f6868b6f24346424dee904f4e76d3f216ff4
Author: Ivan Kluchnikov <kluchnikovi(a)gmail.com>
Date: Fri Jun 29 22:53:15 2012 +0400
Implemented Paging procedure on CCCH.
Added functions:
- gprs_bssgp_pcu_rx_paging_ps() for handling paging message from BSSGP;
- write_paging_request() for writing paging request message;
- gprs_rlcmac_paging_request() and pcu_l1if_tx_pch() for sending
paging request message to BTS.
the lower commit adds paging procedure, but if i diff between these
commits, i see that my upper commit removes the paging procedure. but i
don't see it, if i "git show e6228b...". any ideas?
regards,
andreas
Hi,
please check jenkins.osmocom.org for details. In general it is a good
idea to subscribe to the RSS log of build failures.
holger
--
- Holger Freyther <hfreyther(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Schivelbeiner Str. 5
* 10439 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Directors: Holger Freyther, Harald Welte
hi,
i like to announce that multislot supports has been finished and is
working well.
it supports all classes, but i could not test other classes than
semi-duplex class 12. the algorithm allocates as many downlink slots as
allowed by class and as avaiable. it will only allocate a single uplink
slot. there is no dynamic dl/up allocation depending on traffic.
the code is located at osmo-pcu: jolly branch: git log 4b470ffe
regards,
andreas
Hi,
this is not meant as an intensive review on memory allocations
in the PCU code. While browsing the code of the ready-to-send
method to select the next payload I noticed the code below:
RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)malloc(sizeof(RlcMacDownlink_t));
LOGP(DRLCMAC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Paging Request +++++++++++++++++++++++++\n");
decode_gsm_rlcmac_downlink(pag_vec, mac_control_block);
LOGPC(DCSN1, LOGL_NOTICE, "\n");
LOGP(DRLCMAC, LOGL_DEBUG, "------------------------- TX : Packet Paging Request -------------------------\n");
bitvec_free(pag_vec);
This and other all other places really should use talloc to make finding
memory leaks more easy (e.g. by printing the leak report), the second part
is that we appear to leak this on every paging message sent by the PCU and
the third is actually a question. Should we use a GCC extension that
helps dealing with local variables? GCC can call a cleanup function
on exit of the scope, an example can be seen here[1] nad this[2] is
the description of the feature.
holger
[1] https://mail.gnome.org/archives/gtk-devel-list/2011-November/msg00050.html
[2] http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable-Attribu…
--
- Holger Freyther <hfreyther(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Schivelbeiner Str. 5
* 10439 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Directors: Holger Freyther, Harald Welte
Hi,
one more email for tonight. Using clang/smatch from time to time
can highlight certain issues. The easiest way to invoke it is this:
$ make CC="clang --analyze" CXX="clang++ --analyze"
1.)
gprs_bssgp_pcu.cpp:241:6: warning: Access to field 'state' results in a dereference of a null pointer (loaded from variable 'bctx')
if (bctx->state & BVC_S_BLOCKED && pdu_type != BSSGP_PDUT_STATUS)
^~~~
the handling of bctx is a bit weird, in theory it can be NULL but
I am not sure if we are likely to receive the messages that would
make the PCU crash though. gprs_bssgp_pcu_rcvmsg can call the above
function/line with a NULL bctx.
2.)
gprs_rlcmac.cpp:728:25: warning: Assigned value is garbage or undefined
tbf->dir.ul.usf[ts] = usf[ts];
^ ~~~~~~~
Probably true, alloc_algorithm_b is really too big to be readable to
verify that this is not a false positive.
cheers
holger
--
- Holger Freyther <hfreyther(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Schivelbeiner Str. 5
* 10439 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Directors: Holger Freyther, Harald Welte
Holger Hans Peter Freyther wrote:
> in the above it is possible that !poll_tbf and usf == 0x7, is this the
> right behavior in case no TBF could be found?
hi holger,
if poll_tbf is set, we must use an unassigned usf, because only the
polled mobile may transmit. (usf 7 is never assigned.) if poll_tbf is
not set and if no uplink ressource is required, i use usf 7 (any other
usf would also be ok, since we don't need any mobile to transmit on
uplink, but i use 7, because it is never assigend to any mobile).
regards,
andreas
From: Holger Hans Peter Freyther <holger(a)freyther.de>
libosmocore might not be in the standard include path,
add the CFLAGS to the preprocessor flags. This is fixing
the build on the Osmocom Jenkins.
---
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 041831f..98574fa 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES)
+AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS)
AM_CXXFLAGS = -Wall -ldl -pthread
noinst_LTLIBRARIES = libgprs.la
--
1.7.10.4
Hi all!
while reviewing the current PCU code in the git repository, it occurred
to me that somehow the jolly_new branch doesn't seem to be based on
master, and the only common ancestor is
9b06ff0c4c49f1927b9029d38e16670a7b7301fb from June 15.
In fact, Ivan seems to have made a number of changes concurrently with
Andreas, but not basing on each other's code. It's really a big mess,
from what I can tell.
I'm referring to the followign commit's by Ivan:
a9e6dc5084627e7c279ba08de7a7809e97ebc539
d78ee736239414021fde8010179f42b86464a238
Which are completely unrelated to the work that Andreas has been doing
at the same time (all his commit's from 2012-06-27 on, i.e.
39621c41f303e24b7324dc4c91447a449d2a654b and later.
I strongly recomend that you coordinate more and re-view each others'
code better.
And regarding the messy situatin with master vs. jolly_new: I think the
only practical solution is to drop one of the two parallel and
incompatible changes regarding the RLC/MAC and TBF establishment
changes.
Do you have any input on how to resolve this specific issue? I think
none of us can afford to waste resources on duplication of work and
creating virtually un-mergeable branches :/
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)