See <https://jenkins.osmocom.org/jenkins/job/osmocom-coverity/366/display/redire…>
------------------------------------------
[...truncated 686.45 KB...]
CC RANAP_MBMSHCIndicator.lo
CC RANAP_MBMSIPMulticastAddressandAPNRequest.lo
CC RANAP_MBMSLinkingInformation.lo
CC RANAP_MBMSRegistrationRequestType.lo
CC RANAP_MBMSServiceArea.lo
CC RANAP_MBMSSessionDuration.lo
CC RANAP_MBMSSessionIdentity.lo
CC RANAP_MBMSSessionRepetitionNumber.lo
CC RANAP_MDT-Activation.lo
CC RANAP_MDTAreaScope.lo
CC RANAP_MDT-Configuration.lo
CC RANAP_MDTMode.lo
CC RANAP_MDT-PLMN-List.lo
CC RANAP_MDT-Report-Parameters.lo
CC RANAP_MeasurementsToActivate.lo
CC RANAP_MeasurementQuantity.lo
CC RANAP_MSISDN.lo
CC RANAP_NAS-PDU.lo
CC RANAP_NAS-SequenceNumber.lo
CC RANAP_NAS-SynchronisationIndicator.lo
CC RANAP_NewBSS-To-OldBSS-Information.lo
CC RANAP_NonSearchingIndication.lo
CC RANAP_NRTLoadInformationValue.lo
CC RANAP_NumberOfIuInstances.lo
CC RANAP_NumberOfSteps.lo
CC RANAP_Offload-RAB-Parameters.lo
CC RANAP_Offload-RAB-Parameters-APN.lo
CC RANAP_Offload-RAB-Parameters-ChargingCharacteristics.lo
CC RANAP_OldBSS-ToNewBSS-Information.lo
CC RANAP_OMC-ID.lo
CC RANAP_Out-Of-UTRAN.lo
CC RANAP_PagingAreaID.lo
CC RANAP_PagingCause.lo
CC RANAP_PDP-TypeInformation.lo
CC RANAP_PDP-Type.lo
CC RANAP_PDP-TypeInformation-extension.lo
CC RANAP_PDP-Type-extension.lo
CC RANAP_PDUType14FrameSequenceNumber.lo
CC RANAP_PeriodicLocationInfo.lo
CC RANAP_PermanentNAS-UE-ID.lo
CC RANAP_PermittedEncryptionAlgorithms.lo
CC RANAP_PermittedIntegrityProtectionAlgorithms.lo
CC RANAP_LABased.lo
CC RANAP_LAI-List.lo
CC RANAP_LoggedMDT.lo
CC RANAP_LoggingInterval.lo
CC RANAP_LoggingDuration.lo
CC RANAP_PLMNidentity.lo
CC RANAP_PLMNs-in-shared-network.lo
CC RANAP_Port-Number.lo
CC RANAP_PositioningDataDiscriminator.lo
CC RANAP_PositioningDataSet.lo
CC RANAP_PositioningMethodAndUsage.lo
CC RANAP_PositioningPriority.lo
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:14,
from RANAP_PLMNs-in-shared-network.c:7:
../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: ‘struct MemberA’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberA {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberA {
^~~~~~~~~~~~~
../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: ‘struct MemberM’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberM {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberM {
^~~~~~~~~~~~~
CC RANAP_PositionData.lo
CC RANAP_PositionDataSpecificToGERANIuMode.lo
CC RANAP_Pre-emptionCapability.lo
CC RANAP_Pre-emptionVulnerability.lo
CC RANAP_PriorityLevel.lo
CC RANAP_Priority-Class-Indicator.lo
CC RANAP_ProvidedData.lo
CC RANAP_P-TMSI.lo
CC RANAP_QueuingAllowed.lo
CC RANAP_RAB-AsymmetryIndicator.lo
CC RANAP_RABased.lo
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:14,
from ../../include/osmocom/ranap/RANAP_Shared-Network-Information.h:14,
from ../../include/osmocom/ranap/RANAP_ProvidedData.h:14,
from RANAP_ProvidedData.c:7:
../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: ‘struct MemberA’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberA {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberA {
^~~~~~~~~~~~~
../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: ‘struct MemberM’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberM {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberM {
^~~~~~~~~~~~~
CC RANAP_RAI-List.lo
CC RANAP_RABDataVolumeReport.lo
CC RANAP_RAB-ID.lo
CC RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.lo
CC RANAP_RAB-Parameter-ExtendedMaxBitrateList.lo
CC RANAP_RAB-Parameter-GuaranteedBitrateList.lo
CC RANAP_RAB-Parameter-MaxBitrateList.lo
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:14,
from RANAP_RABDataVolumeReport.c:7:
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: ‘struct MemberN’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberN {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberN {
^~~~~~~~~~~~~
CC RANAP_RAB-Parameters.lo
CC RANAP_RABParametersList.lo
CC RANAP_RAB-SubflowCombinationBitRate.lo
CC RANAP_RAB-TrCH-Mapping.lo
CC RANAP_RAB-TrCH-MappingItem.lo
CC RANAP_RAC.lo
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_RABParametersList.h:14,
from RANAP_RABParametersList.c:7:
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: ‘struct MemberN’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberN {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberN {
^~~~~~~~~~~~~
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_RABParametersList.h:14,
from RANAP_RABParametersList.c:7:
../../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ‘struct MemberB’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberB {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberB {
^~~~~~~~~~~~~
CC RANAP_RAI.lo
CC RANAP_RAListofIdleModeUEs.lo
CC RANAP_NotEmptyRAListofIdleModeUEs.lo
CC RANAP_RAofIdleModeUEs.lo
CC RANAP_LAListofIdleModeUEs.lo
CC RANAP_RAT-Type.lo
CC RANAP_RateControlAllowed.lo
CC RANAP_RedirectAttemptFlag.lo
CC RANAP_RedirectionCompleted.lo
CC RANAP_RejectCauseValue.lo
CC RANAP_RelocationRequirement.lo
CC RANAP_RelocationType.lo
CC RANAP_RepetitionNumber0.lo
CC RANAP_RepetitionNumber1.lo
CC RANAP_ReportArea.lo
CC RANAP_ReportInterval.lo
CC RANAP_ReportAmount.lo
CC RANAP_RequestedGPSAssistanceData.lo
CC RANAP_RequestedGANSSAssistanceData.lo
CC RANAP_RequestedLocationRelatedDataType.lo
CC RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.lo
CC RANAP_MBMSIPMulticastAddressandAPNlist.lo
CC RANAP_RequestedMulticastServiceList.lo
CC RANAP_Requested-RAB-Parameter-Values.lo
CC RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.lo
CC RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.lo
CC RANAP_Requested-RAB-Parameter-MaxBitrateList.lo
CC RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.lo
CC RANAP_RequestType.lo
CC RANAP_ResidualBitErrorRatio.lo
CC RANAP_ResponseTime.lo
CC RANAP_RIMInformation.lo
CC RANAP_RIM-Transfer.lo
CC RANAP_RIMRoutingAddress.lo
CC RANAP_RNC-ID.lo
CC RANAP_RNCTraceInformation.lo
CC RANAP_RNSAPRelocationParameters.lo
CC RANAP_RRC-Container.lo
CC RANAP_RTLoadValue.lo
CC RANAP_RSRVCC-HO-Indication.lo
CC RANAP_RSRVCC-Information.lo
CC RANAP_RSRVCC-Operation-Possible.lo
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_RABParametersList.h:14,
from ../../include/osmocom/ranap/RANAP_RNSAPRelocationParameters.h:14,
from RANAP_RNSAPRelocationParameters.c:7:
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: ‘struct MemberN’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberN {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberN {
^~~~~~~~~~~~~
In file included from /home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SEQUENCE_OF.h:8:0,
from ../../include/osmocom/ranap/RANAP_RABParametersList.h:14,
from ../../include/osmocom/ranap/RANAP_RNSAPRelocationParameters.h:14,
from RANAP_RNSAPRelocationParameters.c:7:
../../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ‘struct MemberB’ declared inside parameter list will not be visible outside of this definition or declaration
A_SEQUENCE_OF(struct MemberB {
^
/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro ‘A_SET_OF’
void (*free)(type *); \
^~~~
../../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ‘A_SEQUENCE_OF’
A_SEQUENCE_OF(struct MemberB {
^~~~~~~~~~~~~
/bin/bash: line 1: 21336 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.4.0\" -DPACKAGE_STRING=\"osmo-iuh\ 0.4.0\" -DPACKAGE_BUGREPORT=\"openbsc(a)lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.4.0\" -DSTDC_HEADERS=1 -I. -Wall -I../../include -I/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/ -I/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/asn1c -I/home/osmocom-build/osmo-ci/coverity/install-Osmocom/include/ -g -O2 -Wall -MT RANAP_RSRVCC-Operation-Possible.lo -MD -MP -MF .deps/RANAP_RSRVCC-Operation-Possible.Tpo -c -o RANAP_RSRVCC-Operation-Possible.lo RANAP_RSRVCC-Operation-Possible.c
Makefile:2506: recipe for target 'RANAP_RSRVCC-Operation-Possible.lo' failed
make[4]: *** [RANAP_RSRVCC-Operation-Possible.lo] Error 139
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/osmo-iuh/src/ranap'
Makefile:642: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/osmo-iuh/src'
Makefile:454: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/osmo-iuh/src'
Makefile:458: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/osmo-iuh'
Makefile:382: recipe for target 'all' failed
make: *** [all] Error 2
[WARNING] Build command ./build_Osmocom.sh exited with code 2. Please verify that the build completed successfully.
Emitted 1278 C/C++ compilation units (100%) successfully
1278 C/C++ compilation units (100%) are ready for analysis
For more details, please look at:
/home/osmocom-build/osmo-ci/coverity/source-Osmocom/cov-int/build-log.txt
Build step 'Execute shell' marked build as failure
I think we all agree that what happened with the msgb_wrap_with_TL() is a prime
example about how absolutely *not* to do things.
This makes me want to rewrite libosmocore history.
After all the naming / API duplication mistakes around msgb_wrap_with_TL(), the
final state I am trying to finish my day to is that the osmo-msc and openbsc
master builds remain broken, while patches to fix that are idling on gerrit
with a commit log summary that mentions neither that they fix the build nor
that they are related to msgb_wrap_with_TL().
All this happens with a new release tag on libosmocore, which was tagged to
include a commit that is supposed to fix things instead of break them...
Let's try to avoid this kind of series of events in the future.
* Separate function definitions must not have identical names.
* This applies both to the master HEADs as well as throughout entire API history.
* Especially functions moved to another source tree *must* change their name.
* Such API changes in libosmocore should be tested with "all" depending programs.
* API fixes in libosmocore should ideally build with both past and future
versions of depending source trees, i.e. should not need a matching patch in
the other source trees.
* When a commit breaks the master build in depending programs,
* clearly mark that so in the commit log and/or gerrit comments, so it is not
merged on its own by accident.
* the author should not go away until either none or both of them are merged.
* Similarly obvious, avoid pouring water on burning oil.
Sure, we all make mistakes every now and then.
In this case we made a few more :P
I spent time now to merge fixes to the master builds instead of going to
sleep... (I hope I'm not adding mistakes to the minefield, though.)
Not sure what to do about osmocom-bb. It has lots of implicit function
definition warnings, only one of them is:
gsm480_ss.c:441:3: warning: implicit declaration of function ‘msgb_wrap_with_TL’
~N
I've been investigating today what is the cause of build failures like this:
https://build.opensuse.org/package/live_build_log/network:osmocom:latest/os…
where "make check" suddenly fails with things like
[ 80s] -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111
[ 80s] -
[ 80s] MESSAGE to BSS at 0x01020304:1111, msg length 1
[ 80s] 07
[ 80s]
[ 80s] +==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111
[ 80s] +
[ 80s] result (UNBLOCK) = 1
as the diff. So clearly some re-ordering happening here.
This appears when building the "latest" osmo-sgsn version (1.3.0) against a
current libosmocore. As libosmocore remains API compatible, this is building
fine, as expected.
However, ther is commit
commit 797558ea1768e464f9559c5f7a4f3f4285c5de25
Author: Stefan Sperling <ssperling(a)sysmocom.de>
Date: Mon Nov 19 17:18:41 2018 +0100
send NS_POUT_UNBLOCK_ACK before signalling S_NS_UNBLOCK
In gprs_ns_process_msg(), we were dispatching the S_NS_UNBLOCK
signal before sending out the NS_POUT_UNBLOCK_ACK message.
Signal handlers might send messages to the other side, assuming
that NS is now unblocked. However, since such messages will arrive
before the UNBLOCK_ACK message the receiver might discard them.
This problem has been observed with our TTCN3 BSSGP_Emulation
as a peer to osmo-pcu.
This patch makes TTCN3 PCU TC_paging() test pass regardless of
whether the test or osmo-pcu is started first. Before this patch,
this test would only pass if the test was started before osmo-pcu.
A remaining problem is that the test does not yet keep passing
reliably unless osmo-pcu is restarted between test runs.
Change-Id: I3af54a14bb6bcfa167c9a9d9f67835e7f5b9f1bb
Related: OS#2890
Related: OS#2388
which is a fix, and is appreciated. However, it causes breakage, at
least in unit tests that rely on testing the old behavior, such as the gbproxy
test.
This immediately showed up, and one day later we have the following commit
commit eefb70df2c6aa7b1362d5e8decf52af3ff95ecb9
Author: Stefan Sperling <ssperling(a)sysmocom.de>
Date: Tue Nov 20 11:33:17 2018 +0100
update gbproxy test expected output
libosmocore commit 797558ea1768e464f9559c5f7a4f3f4285c5de25
changed the order of NS_UNBLOCK_ACK transmission dispatching
of the NS_UNBLOCK signal. Update expected output of gbproxy
tests accordingly to make these tests pass again.
Change-Id: Ia3df811755b1c88cf7a27a466677b24a6c32fd8e
Related: OS#2388
which is making sure the test passes from now onwards, but which of course
doesn't do anything about older, already-released versions of osmo-sgsn, which
will all fail to pass "make check" - forever. There may be people who want
to rely on older versions of osmo-sgsn in the future, and they will think
they have non-working software if "make check" doesn't pass :/
So what do we take from this? Be careful with changing existing library code
semantics. Even if the function signature is not modified, there are existing
applications and/or test cases that make assumptions. And we should not break
those assumptions.
If something like this shows up ever again, I think the correct approach is to
1) keep the old semantics as it is, making sure that old applications/tests
will continue to work/pass, even on modern library versions or master of the day
2) introduce a new function/symbol implementing the new semantics. Or, in this
case (as it's some library-internal function dispatching events/signals), probably
some kind of flag is needed. New code, depending on new library
versions, may then set that flag and elicit the new behavior, while old code
gets the old behavior.
Please let's make sure we don't fall into the same trap in the future again.
The process of avoiding this can be helped by having automatic build
testing of old/previous applications against "master of the day" of the
libraries. Let's track the latter in #3765.
Happy hacking,
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)
Hi,
I really hope you can help me, I’m trying this for 10h.
I’m following your instruction:
https://osmocom.org/projects/gr-gsm/wiki/Installationhttps://osmocom.org/projects/libosmocore/wiki/Libosmocore
Installing gr-gsm I stay still at cmake .., for libosmocore (No package 'libosmocoding' found)
So I try to install libosmocore, everything work up to make command. Infact give a lot of error, here:
Air-di-Andrea:libosmocore andreapellegrin$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in include
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[3]: Nothing to be done for `all-am'.
Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
CC timer_clockgettime.lo
timer_clockgettime.c:78:7: error: use of undeclared identifier 'CLOCK_REALTIME_COARSE'
case CLOCK_REALTIME_COARSE:
^
timer_clockgettime.c:82:7: error: use of undeclared identifier 'CLOCK_MONOTONIC_COARSE'; did you mean '_CLOCK_MONOTONIC_RAW'?
case CLOCK_MONOTONIC_COARSE:
^~~~~~~~~~~~~~~~~~~~~~
_CLOCK_MONOTONIC_RAW
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/time.h:158:1: note: '_CLOCK_MONOTONIC_RAW' declared here
_CLOCK_MONOTONIC_RAW __CLOCK_AVAILABILITY = 4,
^
timer_clockgettime.c:86:7: error: use of undeclared identifier 'CLOCK_BOOTTIME'; did you mean '_CLOCK_REALTIME'?
case CLOCK_BOOTTIME:
^~~~~~~~~~~~~~
_CLOCK_REALTIME
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/time.h:153:1: note: '_CLOCK_REALTIME' declared here
_CLOCK_REALTIME __CLOCK_AVAILABILITY = 0,
^
timer_clockgettime.c:86:7: error: duplicate case value '_CLOCK_REALTIME'
case CLOCK_BOOTTIME:
^
timer_clockgettime.c:76:7: note: previous case defined here
case CLOCK_REALTIME:
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/time.h:154:24: note: expanded from macro 'CLOCK_REALTIME'
#define CLOCK_REALTIME _CLOCK_REALTIME
^
timer_clockgettime.c:84:7: error: duplicate case value '_CLOCK_MONOTONIC_RAW'
case CLOCK_MONOTONIC_RAW:
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/time.h:159:29: note: expanded from macro 'CLOCK_MONOTONIC_RAW'
#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW
^
timer_clockgettime.c:82:7: note: previous case defined here
case CLOCK_MONOTONIC_COARSE:
^
5 errors generated.
make[3]: *** [timer_clockgettime.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Air-di-Andrea:libosmocore andreapellegrin$
I’m really desperate, hoping you can help me! Really thanks.
Andrew
After a lot of work[1] the gsm tester can finally:
* Start a virtual bts
* Mobile/virtphy processes
* Complete LUs for 10 MS.
The next step (besides having a proper test verdict) is scaling this beyond what a simple physical set-up can provide. Let's go to 100+ BTS and 10k subscribers but somehow I am still holding it wrongly and would like to have feedback to see how to evolve the gsm tester.
What do I need to change to scale this up and how to externally parameterize it?
* suite.conf:
Add one line per virtual bts to reserve (I would prefer to specify type+num)
* resources.prod.conf:
Add more Virtual BTS. I started to pick IPs from 127.0.1.0/24 as it avoids having to configure special IPs.
* register_default_mass.py:
I need to somehow know how many BTS (and NITBs) were reserved. Or in the long run the topology of how to connect M BTS to N BSCs? Currently I can run until I get an exception but that is not desirable.
What's missing:
* High-level API of the SuiteRun to get me the toplogy of the network. It seems undesirable in the specific suite to discover how many BTSs were reserved in suite.conf or what the topology is.
* ARFCN usage. Besides the redundancy all my BTS currently have the same ARFCN. There should be an easy way to configure an band+arfcn pool.
* IMSI/MSISDN pooling. I would like to specify pools of IMSI/MSISDN pairs (and size) and then draw from it. I needs these to program into the mobile, NITB/HLR/AuC and for client to client SMS transfers.
* Configure these capacities from the outside. Changing from 1 to 256 BTS should be a single line (or even a parameter change).
Any idea or comment on how to achieve this?
cheers
holger
[1] Hindsight is 20/20 and the difficulty was not adding scripting to mobile but getting the GSM tester to spawn the network and we are unfortunately not done yet.
Hi!
I've been looking at tagging new versions of our libraries. I know Pau
in the past already used the abi-{dumper,tracer,...} toolkit, but I couldn't
find any instructions about it, nor has it been automatized it seems.
I've now started with this and have a setup that we can run nightly to generate
ABI/API compatibility reports.
There are unfortunately some issues in libosmogsm:
http://people.osmocom.org/laforge/abi-report/compat_report/libosmocore/0.12…
related to LCLS changes that (I believe) were mostly introduced by Max.
gsm0808_cause_name() changes the size of the argumetn from uint8_t to an
'int' that may be 32/64bit in size :( That breaks ABI, so we need to
bump soversion, or revert that change. As the gsup changes require a
version bump anyway, we should be fine.
gsm0808_create_lcls_conn_ctrl() has changed its argument type. Are we
sure there were no users of the function? The old signature was part of
the previous release!
In libosmocore we have some problem related to 'struct log_target':
http://people.osmocom.org/laforge/abi-report/compat_report/libosmocore/0.12…
I suppose this is "only" ABI breakage but not API breakage and hence a
new libversion can rescue us?
In libgtp we also have changes requiring a libveersion change:
http://people.osmocom.org/laforge/abi-report/compat_report/osmo-ggsn/1.2.2/…
Apart from that, it looks quite fine. libosmo-sigtran has two new
symbols, but remains fully backwwards compatible:
http://people.osmocom.org/laforge/abi-report/compat_report/libosmo-sccp/0.1…
Feel free to comment. The most important part is to get the
libosmocore/LCLS questions resolved.
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)
Hi folks,
just now while resolving some unrelated merge conflict, I notice this bit
of code we have in osmo-msc master. (It has recently been tweaked, but the
code in question has been like this for a long time.)
https://git.osmocom.org/osmo-msc/tree/src/libmsc/gsm_04_11.c#n1057
static struct gsm_trans *gsm411_alloc_mt_trans(struct gsm_network *net,
struct vlr_subscr *vsub)
{
struct ran_conn *conn;
struct gsm_trans *trans;
int tid;
LOGP(DLSMS, LOGL_INFO, "Going to send a MT SMS\n");
/* Generate a new transaction ID */
tid = trans_assign_trans_id(net, vsub, GSM48_PDISC_SMS, 0);
if (tid == -1) {
LOGP(DLSMS, LOGL_ERROR, "No available transaction IDs\n");
return NULL;
}
/* Attempt to find an existing connection */
conn = connection_for_subscr(vsub);
/* Allocate a new transaction */
trans = gsm411_trans_init(net, vsub, conn, tid);
if (!trans)
return NULL;
if (conn) { <===== if no active communication, this is NULL
/* Generate unique RP Message Reference */
trans->sms.sm_rp_mr = conn->next_rp_ref++; <===== here
}
/* Use SAPI 3 (see GSM 04.11, section 2.3) */
trans->dlci = UM_SAPI_SMS;
return trans;
}
We often create an MT SMS transaction when no connection to the subscriber is
currently available, which is the case if we create the SMS transaction and
only page later.
(To prove that, the call flow is
gsm411_send_sms(vsub)
trans = gsm411_alloc_mt_trans(vsub)
gsm411_rp_sendmsg(trans)
gsm411_smr_send()
srdownstatelist[0] = gsm411_rl_data_req()
gsm411_mn_send()
gsm411_mm_send()
gsm411_mmsms_est_req()
trans->paging_request = subscr_request_conn(...)
)
But we only assign an sm_rp_mr reference number when the conn is already
present. That means when we send an SMS, the sm_rp_mr reference is unset when
we still need to page first??
Does anyone know this code well? I'm almost certain we should always set
an RP reference? (i.e. drop the 'if (conn)' condition)
What errors could arise from this? It seems that we would always send an RP
reference of zero for all SMS that require paging. Could that be a reason
Rhizomatica sometimes saw SMS delivered to the wrong recipient?
So, does anyone already know that I'm on the wrong track here -- otherwise I'll
create an issue for this, probably also needing tests.
~N
Tue 15-jan-2019
LimeSDR transmit check.
Fired up old HP 8614A signal generator at 1880 Mhz, and let it stabilize
for 1 hour.
Level measurement after adjusting ALC, 0dBm = -0.4 dBm as checked with
spectrum analyzer
Checked level with HP L423A probe.
Check of LimeSDR mini output.
Output as seen on spectrum analyzer -1.0 dBm. This correlates with
LMS7002 datasheet with
a possible 1 dB loss between chip and analyzer, including SMA-BNC coax
adapter, 2 m foam
insulated RG58 size cable, BNC - N connector.
So, for practical purposes the LimeSDR mini provides 0 dBm ( +/- 1.4 dBm )
LimeSDR receive check.
Receive antenna rigged with a 1/10 dB splitter, -10 dB port connected to
spectrum analyzer, -1 dB
port to LimeSDR.
Connect single Nokia Handset, and make a call from osmobsc to fixed
phone, so that only one mobile
is using TCH. Move phone to get different uplink levels and correlate
these to spectrum analyzer.
Since carrier is TDMA, use peak hold on analyzer.
Active subscriber connections:
conn ID=31, MSC=0, hodec2_fail=0, mgw_ep=rtpbridge/1@mgw
BTS 1, TRX 0, Timeslot 1, Lchan 0: Type TCH_F
Connection: 1, State: ESTABLISHED
BS Power: 10 dBm, MS Power: 10 dBm
Channel Mode / Codec: SPEECH_V1
No Subscriber
Bound IP: 192.168.1.75 Port 16384 RTP_TYPE2=0 CONN_ID=0
Conn. IP: 192.168.1.70 Port 4110 RTP_TYPE=3 SPEECH_MODE=0x00
Measurement Report:
Flags:
MS Timing Offset: 0
L1 MS Power: 10 dBm, Timing Advance: 4
RXL-FULL-dl: -51 dBm, RXL-SUB-dl: -51 dBm RXQ-FULL-dl: 0,
RXQ-SUB-dl: 0
RXL-FULL-ul: -54 dBm, RXL-SUB-ul: -54 dBm RXQ-FULL-ul: 0,
RXQ-SUB-ul: 0
Level on uplink -54 dBm, indicated on spectrum analyzer -53 (-63) dBm.
OsmoBSC# show conn
Active subscriber connections:
conn ID=31, MSC=0, hodec2_fail=0, mgw_ep=rtpbridge/1@mgw
BTS 1, TRX 0, Timeslot 1, Lchan 0: Type TCH_F
Connection: 1, State: ESTABLISHED
BS Power: 10 dBm, MS Power: 10 dBm
Channel Mode / Codec: SPEECH_V1
No Subscriber
Bound IP: 192.168.1.75 Port 16384 RTP_TYPE2=0 CONN_ID=0
Conn. IP: 192.168.1.70 Port 4110 RTP_TYPE=3 SPEECH_MODE=0x00
Measurement Report:
Flags:
MS Timing Offset: 0
L1 MS Power: 10 dBm, Timing Advance: 4
RXL-FULL-dl: -69 dBm, RXL-SUB-dl: -69 dBm RXQ-FULL-dl: 0,
RXQ-SUB-dl: 0
RXL-FULL-ul: -59 dBm, RXL-SUB-ul: -59 dBm RXQ-FULL-ul: 0,
RXQ-SUB-ul: 0
Mobile moved to another location within the lab.
Level on uplink -59 dBm, indicated on spectrum analyzer -60 (-70) dBm.
Conclusion:
For such a simple low cost SDR, the accuracy seems within a couple of
dB. Instruments used
were are not "professional grade", at least not w.r. 2019, but I
estimate I can measure
within +/- 2 dB or so with this crude config. Power output is 10 times
lower than I expected,
I was probably mislead by some review on the web, and had to go down to
the actual scematic
and datasheet to understand that the expected level should be around 0 dBm.
(thanks for pointing this out, Harald)
For practical use outside a lab output is far too low. My plan is to add
a small simple booster
to bring level up to +15 which would allow me to cover my 2 acre lot
without breaking any rules.
Else, I am impressed, good value for a low price tag. I had expected far
worse than indicated accuracy.
Best Regards,
Gullik