Hi all.
I've noticed in osmo-bts logs several messages from L1:
238:<0006> oml.c:689 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PDTCH TxDL)
243:<0006> oml.c:689 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PDTCH TxDL)
246:<0006> oml.c:689 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PDTCH RxUL)
251:<0006> oml.c:689 (bts=0,trx=0,ts=4,ss=0) MPH-ACTIVATE.conf (PDTCH TxDL)
254:<0006> oml.c:689 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PDTCH RxUL)
260:<0006> oml.c:689 (bts=0,trx=0,ts=7,ss=0) MPH-ACTIVATE.conf (PDTCH TxDL)
263:<0006> oml.c:689 (bts=0,trx=0,ts=4,ss=0) MPH-ACTIVATE.conf (PDTCH RxUL)
274:<0006> oml.c:689 (bts=0,trx=0,ts=7,ss=0) MPH-ACTIVATE.conf (PDTCH RxUL)
Similarly, there are messages related to PTCCH:
257:<0006> oml.c:689 (bts=0,trx=0,ts=2,ss=0) MPH-ACTIVATE.conf (PTCCH TxDL)
266:<0006> oml.c:689 (bts=0,trx=0,ts=3,ss=0) MPH-ACTIVATE.conf (PTCCH TxDL)
277:<0006> oml.c:689 (bts=0,trx=0,ts=4,ss=0) MPH-ACTIVATE.conf (PTCCH TxDL)
288:<0006> oml.c:689 (bts=0,trx=0,ts=7,ss=0) MPH-ACTIVATE.conf (PTCCH TxDL)
Notice that while PDTCH is activated for both UL and DL, the PTCCH is
only activated for DL.
As far as I've understood continuous TA procedure I've got to have PTCCH
activated in both directions. The problem is that I have troubles
locating the code which triggers the activation above.
There is l1if_connect_pdch() in osmo-pcu src/sysmo_l1_if.c but it uses
GsmL1_PrimId_MphConnectReq while if I understood correctly
GsmL1_PrimId_MphActivateReq is necessary for channel activation. There
is mph_send_activate_req() in osmo-bts oml.c which uses it. It's called
from lchan_act_compl_cb() via sapi_queue_send() which is also in
mph_send_activate_req() - I have hard time understanding how this works
at all. Do we have this documented somewhere?
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hi.
While looking at http://projects.osmocom.org/issues/1616 I've noticed
that there seems to be no particular function which get signal quality
info from dsp. At least looking at code around ENABLE_DIRECT_PHY have
not enlightened me so far.
The question is - how exactly signal quality is obtained from dsp (on hw
with direct dsp access) to osmo-pcu. There is clear difference between
l1if_pdch_req() and pcu_tx_data_req() on TX path but what's the
equivalent for RX?
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hi.
While working on https://osmocom.org/issues/1531 I've found that I have
to update BTS's configuration (see src/bts.cpp) from osmo-pcu L1 code
(see src/osmo-bts-sysmo/sysmo_l1_hw.c). The problem is that the only
thing I got in L1 is struct femtol1_hdl which have trx_no but that's
about it.
Is there a way to get pointer to BTS so I can call bts->set_ta() using
trx_no? Or I shall somehow change interface for l1if_fd_cb() - that's
where my function with new data is called from?
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Good Morning all,
my real life distraction is mostly gone and I can be more active in developing and reviewing again. From my point of view Sysmocom and me have responded to all Gerrit reviews and we are waiting for the next iteration of the patchset. Before giving a high-level point of view of orders and dependencies I would like to say some words about testing.
(Automatic Unit-)testing is crucial. Sometimes it is the easiest way to test a behavior, it allows to hit/test error paths but are hit less frequently. Combined with regular execution of the tests and forbidding to merge code that breaks tests, features that worked once and have a good test will continue to work. It is the key for being able to move forward quickly.
For many patches I reviewed test + feature or test + bugfix were in separate commits and then the order is problematic. From my point of view there are only a few "right" combinations. Let me try to explain:
Assume some code is doing "if (res) " instead of "if (!res)" and after long debugging we have found that single line (and our code is full of printf now) and it is a path that has not been systematically tested yet. To move forward and create a patchset we should:
* Add a test case that triggers the broken behavior. With a xUnit framework we would add an expected failure, with our approach we either capture the broken output, comment the OSMO_ASSERT or revert the OSMO_ASSERT condition.
(See libosmocore
* Let's say that if is already in code like:
if (a)
if (b)
if (c)
if (d)
and we would like to re-factor it to be more readable. Then please do the refactoring _before_ applying the bugfix. The test output/result should not change as it is a refactoring.
* Finally apply the fix. For bugfixes try to make them as small and clear as possible. Let's say even if you don't like the algorithm used, fix it. As part of the fix the test assertions can be enabled and the output change. The smaller the fix, the better. See libosmocore 6ac70a41ee4cc9f3f286fb6b8f397215590fc2ac for such an example.
* If the algorithm is indeed bad now is the time to change it. It should just change the (refactored) method, test output and result should be stable and maybe add more tests as the new code is easier to test.
In general my preferred way:
New feature => one commit to add feature + test
Bugfix => First test, then bugfix+test output/result update
thank you
holger
Hi guys,
maybe a short summary helps to see where we are and where we need to go. Let me start with myself.
Besides reviewing code I have two GPRS related topics I want to look at. The first one is the missing state transition for single phase access to avoid having to revert, the second one is to use perf to look at the performance difference of the two compressed bitmap routines.
The bigger picture is that we have some features that work in parallel and the right order might be important to unlock them. My review/merging priority right now is:
* 11bit RACH decoding:
** Get the libosmocore change in. As 0x0 is used as a value it needs to be inside the enum
** PCU protocol change to transport this access burst type and update to uint16_t
** OpenBSC change to allow 11bit burst access
** PCU change
* T4 compression/decompression:
I am not sold on the look-up tree yet but I understand that for good compression the API in libosmocore needs to change.
a.) We remove T4 support from libosmocore as it is not used outside of the PCU and this gives us a way to mature the API without having to synchronize two projects
b.) We know which out variables we need to add and can define the API
The implementation (unrolled loop vs. tree) can be decided at a later point as we can hide it from the interface.
* Changing coding schemes on re-transmission/etc. These are features and fixes that only relate to the PCU. I can merge whatever patchset is ready first.
kind regards and looking forward to rebased patchsets
holger
Hi,
Currently i am working in LTE and would like to test SGW and PDN-GW along
with GTP protocol for my research aspect. I have already worked and used
OpenairInterface EPC. But, i wanted to explore other kernel or user-space
options of GTP.
Please let me know the procedure to access the code of ,
(i) Latest mainline linux kernel version with your GTP code and user space
GTP module.
(ii) Also, could you please kindly provide me access to the SGW/GGSN and
PGW codes.
Please kindly provide me access to the latest code, such that i could test
it and will even post the test results to the community.
Thanks & Regards
Vasu.
Hi Harald/Holger,
Please let me know any further updates on the pending review for ARQ2?. Since it is pending for long time we would like to know how to proceed over this.
Thanks,
Aravind Sirsikar
Hi Holger,
>Line 130: GprsCodingScheme cs_current_trans;
>I would prefer to cs and cs_current_trans being private here.
The cs_current_trans is made public to align with existing variables like block[RLC_MAX_LEN], len and others to have consistency. will it make sense to have cs and cs_current_trans as private?.
We can rename cs to cs_last_tx as suggested in review of other patch. But it will have modification in other source files to address compilation errors.
Thanks,
Aravind Sirsikar
I am a bit ambiguous on our use of comments in gerrit.
We do discuss at least some fairly interesting things in the comments on
patches waiting for approval in gerrit.
When these discussions are attempted on openbsc@ or osmocom-net-gprs@, you
tend to block off and redirect the discussion back to the gerrit comments
infrastructure.
However, we have moved the gerrit mails to a separate and very noisy
mailing list, and these potentially interesting discussions are moved
essentially out of the public focus.
Also, if we in future would like to investigate discussion on some topic,
we need to search both the main ML and the gerrit ML.
IMHO it would make sense to copy the human originated comments to our
"human" mailing lists, so that the automatic jenkins and gerrit
notifications remain on the noisy ML while we see all discussions here.
Is that easy to achieve (filter on originator of comment),
and would you guys agree?
~Neels
--
- Neels Hofmeyr <nhofmeyr(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschäftsführer / Managing Directors: Harald Welte
Today I've taken another close look at branches and gerrit, and have written
down my conclusions here:
http://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit#Submitting-…
In summary:
* Branch re-submission needs the workaround of tweaking the first commit.
It would be nice to fix gerrit to not need this, but for the time being the
effort of cosmetically changing the first commit log is acceptable.
* It *is* possible to have private branches in the gerrit repos and still be
able to submit them to master, with the proper project config.
I have thus switched all our gerrit projects' configs to rebase-if-necessary
with the flags as described on the wiki page.
(Except for osmo-pcap, where we still disallow content merges.)
I will now go back to pushing my "private" developments to the public
repository (gerrit) under the neels/ or sysmocom/ namespaces.
~Neels
--
- Neels Hofmeyr <nhofmeyr(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschäftsführer / Managing Directors: Harald Welte