Dear Osmocom team,
Omar has thankfully submitted patches for inclusion of OC-2G support
to gerrit, see https://gerrit.osmocom.org/#/c/osmo-bts/+/11447/ for the
bulk of the code.
An initial review showed there are *many* parts that are identical to
osmo-bts-litecell15, and we generally don't like "copy+paste"
programming. In the end we have multiple compies of essentially the
same source files, becoming a maintenance problem over time, when fixes
are applied to one copy, but not the other.
I've manually looked through each of the files and looked at the
differences between the oc2g and the lc15 counterpart.
== 100% identical to osmo-bts-sysmo or osmo-bts-lc15:
oml_router.c
oml_router.h
misc/oc2gbts_nl.c
== 99% identical to lc15 (just names changed)
hw_misc.h
hw_misc.c
l1_transp.h
l1_trans_hw.c
oc2gbts.c / lc15bts.c
oc2gbts_vty.c / lc15bts_vty.c
oml.c
tch.c
utils.c
utils.h
l1_if.h
misc/oc2gbts_bts.h
misc/oc2gbts_bid.h
misc/oc2gbts_clock.h
misc/oc2gbts_clock.c
misc/oc2gbts_led.c
misc/oc2gbts_swd.c
misc/oc2gbts_swd.h
== 80% identical to lc15 (some small changes)
l1_if.c
misc/oc2gbts_bts.c
misc/oc2gbts_mgr.c
misc/oc2gbts_mgr.h
misc/oc2gbts_mgr_nl.c
misc/oc2gbts_temp.c
misc/oc2gbts_temp.h
== more differences compared to lc15, possibly not intentional? / what to do?
misc/oc2gbts_temp.c
misc/oc2gbts_mgr_vty.c
misc/oc2gbts_misc.c
misc/oc2gbts_par.c
misc/oc2gbts_power.c
misc/oc2gbts_util.c
So we have to discuss how to go about this. The 100% identical files
are easy, one can simply lik the existing implementation. We could also
introduce a "src/nuran-common" directory for common code between the
different models.
For those parts with less similarity, this may require some refactoring,
so that common/shared code goes to common/shared files and really only
those bits that differ are handled in the respective implementations.
Given that osmo-bts-litecell15 also started as copy of osmo-bts-sysmo,
there may be room for further unification, but let's not conflate those
two discussions.
In terms of process,
* we could first merge all the copies and then further unify the code, or
* we could first modify the existing core/lc15 code to be able to merge
OC2G coe without introducing lots of copied code.
Any comments/suggestions/ideas?
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 all,
The demo EUSE application included with OsmoHLR [1] has been very
useful for understanding the flow of information during a USSD
session. I would like to extend it to request input from the user and
allow > 1 request/response.
I have tried changing the session state to
`OSMO_GSUP_SESSION_STATE_CONTINUE`, and the gsup_msg_type to
`OSMO_GSUP_MSGT_PROC_SS_REQUEST` in `euse_tx_ss`. I see the “You
sent…” response on my phone, but do not get an input field.
Can anyone advise if this is the correct general approach or point me
in the right direction? Thanks for your patience as I figure these
things out.
Best,
—Michael
[1] https://github.com/osmocom/osmo-hlr/blob/master/src/osmo-euse-demo.c
osmo-dev is my personal tooling for building and configuring Osmocom core net
components. Since osmith is also using it now and starting to send in patches
on gerrit, it is receiving some public attention.
Despite cosmetics I might have done differently if I were to rewrite it from
scratch, I do (obviously) like the way it works, and would welcome anyone else
to give it a spin, too. But I assume you have your own tooling anyway...?
So far only I have permission to +2 on gerrit for osmo-dev, I see it as my
private setup made available to others, so would retain the last say on it. But
it also increasingly becomes osmith's setup, so we can change permissions...
~N
Dear all,
I would like to get your input as to when we should schedule OsmoDevCon 2019.
NOTE: OsmoDevCon is our "for developers by developers" event, not to be confused
with OsmoCon, our public conference.
If we want to stay with the usual "Friday through Monday in April" arrangement,
we have the following options:
April 05-08, 2019
April 12-15, 2019
April 26-29, 2019
The one missing weekend in the list above is the easter weekend, which is probably
a good idea to exclude as flights and hotels are more expensive during that time,
and people might have other plans during holidays.
I would like to invite anyone planning to attend the Osmocom Developer Conference 2019
to participate in the poll at https://dudle.inf.tu-dresden.de/OsmoDevCon2019/ to
state their availability/preference. The Dudle only shows the first day of the four
days of OsmoDevCon.
Looking forward to your feedback so we can settle on a date soon. Thanks!
Kind 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 everyone,
is there some wiki entry / detailed description of how to properly set
up reporting to statsd for a set of given metrics (e.g. number of active
users / bytes sent per user) on a per component granularity?
Best regards,
Lars
See <https://jenkins.osmocom.org/jenkins/job/osmocom-coverity/280/display/redire…>
Changes:
[laforge] gerrot-osmo-bts: Don't use unsupported '/' in labels of axis/matrix jobs
------------------------------------------
[...truncated 720.95 KB...]
CC RANAP_LAI.lo
CC RANAP_LastKnownServiceArea.lo
CC RANAP_LastVisitedUTRANCell-Item.lo
CC RANAP_LHN-ID.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_LA-LIST.h:14,
from RANAP_LA-LIST.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 {
^~~~~~~~~~~~~
CC RANAP_Links-to-log.lo
CC RANAP_ListOF-SNAs.lo
CC RANAP_ListOfInterfacesToTrace.lo
CC RANAP_InterfacesToTraceItem.lo
CC RANAP_LoadValue.lo
CC RANAP_LocationRelatedDataRequestType.lo
CC RANAP_LocationRelatedDataRequestTypeSpecificToGERANIuMode.lo
CC RANAP_LocationReportingTransferInformation.lo
CC RANAP_ReportChangeOfSAI.lo
CC RANAP_PeriodicReportingIndicator.lo
CC RANAP_DirectReportingIndicator.lo
CC RANAP_L3-Information.lo
CC RANAP_M1Report.lo
CC RANAP_M2Report.lo
CC RANAP_M4Report.lo
CC RANAP_M4-Collection-Parameters.lo
CC RANAP_M4-Period.lo
CC RANAP_M4-Threshold.lo
CC RANAP_M5Report.lo
CC RANAP_M5-Period.lo
CC RANAP_M6Report.lo
CC RANAP_M7Report.lo
CC RANAP_M7-Period.lo
CC RANAP_M6-Period.lo
CC RANAP_Management-Based-MDT-Allowed.lo
CC RANAP_MaxBitrate.lo
CC RANAP_MaxSDU-Size.lo
CC RANAP_MBMS-PTP-RAB-ID.lo
CC RANAP_MBMSBearerServiceType.lo
CC RANAP_MBMSCNDe-Registration.lo
CC RANAP_MBMSCountingInformation.lo
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_MeasurementQuantity.lo
CC RANAP_MeasurementsToActivate.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
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_PositioningMethodAndUsage.lo
CC RANAP_PositioningPriority.lo
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
CC RANAP_RAI-List.lo
CC RANAP_RABDataVolumeReport.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_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
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_RAC.lo
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
/bin/bash: line 1: 9675 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.3.0.10-9aad\" -DPACKAGE_STRING=\"osmo-iuh\ 0.3.0.10-9aad\" -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.3.0.10-9aad\" -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_RequestedGANSSAssistanceData.lo -MD -MP -MF .deps/RANAP_RequestedGANSSAssistanceData.Tpo -c -o RANAP_RequestedGANSSAssistanceData.lo RANAP_RequestedGANSSAssistanceData.c
Makefile:2506: recipe for target 'RANAP_RequestedGANSSAssistanceData.lo' failed
make[4]: *** [RANAP_RequestedGANSSAssistanceData.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 1233 C/C++ compilation units (100%) successfully
1233 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
Hey all,
First of all let me thanks Neels for his help with the silent_call
problem I've been having, which led me to a successful fix.
Secondly I was wandering if I could get a bit more help with regards to
ipaccess-proxy this time.
Now that silent_call is working I want to start manipulating traffic and
do some fuzzing. I understand that the ipaccess-proxy is the right tool
to use, but I don't seem to get it working.
In my current NON ipaccess-proxy setup (which works) I have an osmo-bts
which gets data from a USRP B210 via osmo-trx-uhd. On the same machine I
also run the osmo-osc. I have configured the OML remote address in the
BTS (bts 0 -> oml remote-ip) to a unique localhost (127.0.127.1) and the
BSC to listen on that (e1_input -> ipa bind 127.0.127.1).
What I want to do is interleave the ipaccess-proxy on this connection
(e.g. receive OML from BTS on 127.0.127.2) and forward to the BSC on
127.0.127.1. I have successfully managed to make ipaccess-proxy bind to
the specific address (by changing the default IP binding from
0.0.0.0:3002 and 0.0.0.0:3003 to 127.0.127.2:3002 and 3003), and I am
receiving traffic from the BTS. However, traffic is never forwarded to
the BSC. There seems to be some issue with unrecognized IPA message types.
Would anyone be able to provide me with some insight, or perhaps a setup
in which ipaccess-proxy worked successfully?
I'm also not clear on what ipaccess-proxy is supposed to do. Is it a
sniffer (since it binds on 0.0.0.0 by default) or is it a "MITM" relay
type of software.
I am attaching the output log I get from ipaccess-proxy.
--
Mihai
Hi everyone,
I'm currently struggling with getting the NITB example
(https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_I…)
running.
My problem looks as follows: I do see messages reaching the HNBGW
component but whenever the HNBGW tries to reach the SGSN component I get
the following error:
DLSS7 <000c> osmo_ss7_hmrt.c:278 m3ua_hmdc_rx_from_l2(): dpc=188=0.23.4
not local, message is for routing
DLSS7 <000c> osmo_ss7_hmrt.c:258 MTP-TRANSFER.req for DPC 188: no route!
Using the VTY interface I can see that only HNBGW and MSC annouced their
code points towards STP. :
as-rkm-1 AS_ACTIVE 1 0.23.5
as-rkm-2 AS_ACTIVE 2 0.23.1
However, I can not see the code point 0.23.4 (SGSN). In addition, I'm
also not sure if the routes are valid as they are:
7.255.7 0 as-rkm-1 ? ? ?
7.255.7 0 as-rkm-2 ? ? ?
Here are my configurations (without the logging parts):
################### osmo-hnbgw.cfg ###################
cs7 instance 0
# HNBGW's local point code
point-code 0.23.5
# Address book entries, used below
sccp-address my_msc
point-code 0.23.1
sccp-address my_sgsn
point-code 0.23.4
hnbgw
iucs
remote-addr my_msc
iups
remote-addr my_sgsn
iuh
local-ip 10.1.1.1
hnbap-allow-tmsi 1
################### osmo-sgsn.cfg ###################
sgsn
gtp local-ip 10.1.1.1
ggsn 0 remote-ip 10.1.1.2
ggsn 0 gtp-version 1
!auth-policy accept-all
auth-policy remote
gsup remote-ip 127.0.0.1
gsup remote-port 4222
ns
timer tns-block 3
timer tns-block-retries 3
timer tns-reset 3
timer tns-reset-retries 3
timer tns-test 30
timer tns-alive 3
timer tns-alive-retries 10
encapsulation udp local-ip 127.0.0.1
encapsulation udp local-port 23000
encapsulation framerelay-gre enabled 0
bssgp
################### osmo-hnbgw.cfg ###################
network
network country code 901
mobile network code 98
short name OsmoMSC
long name OsmoMSC
encryption a5 0
rrlp mode none
mm info 1
msc
mgw remote-ip 10.1.1.2
mgw endpoint-range 1 32
################### osmo-stp.cfg ###################
cs7 instance 0
xua rkm routing-key-allocation dynamic-permitted
listen m3ua 2905
accept-asp-connections dynamic-permitted
I hope someone can spot my mistake!
Best regards,
Lars
Hi all,
This is my second email here so I will start with a quick introduction
before a question:
I’m part of of an early stage company called Hover (www.usehover.com). We
offer an Android software development kit written in Java that helps
smartphone app developers automate USSD sessions in the background of
native apps. A typical use case is to build a nicer user interface for, eg.
mobile money transfers or airtime top-up.
Colleagues at the University of Washington pointed me to this exciting
project, and I have a B210 set up so I can register a phone on an Osmocom
network and run *#100# to see my MSISDN from OsmoHLR. Which brings me to my
question:
I see that Rowan Phipps at UW has modified an earlier version of the
Osmocom stack to run arbitrary USSD sessions from a Python web server. It
looks like related work was started in 9658 and 9661 [1], [2]. Are these
commits working, and what would be the best way for me to contribute to or
test this work? I would prefer to run the newer Osmo* projects rather than
try to use OsmoNITB. I am in the process of reading Rowan and Fairwaves'
work and will happily share anything I learn.
As context, we have 50k+ USSD session logs (i.e. menu text, not Wireshark
traces) from various markets. My end goal is to be able to test new apps
against these logs and otherwise experiment with arbitrary USSD sessions
locally. Thank you for any suggestions you can offer.
—Michael
[1] https://gerrit.osmocom.org/#/c/osmo-msc/+/9658/
[2] https://gerrit.osmocom.org/#/c/osmo-msc/+/9661/
Hello everybody,
I hope I'm in the right place here, for my question, if not please
ignore or maybe point me to a better place.
For start, I'm quit new to the whole GSM stack and still in the process
of understanding it, so please if you have the feeling I maybe
misunderstood something horrible, I probably have! Feel free to point
that out :D.
I working together with other peoble on a project witch aims to connect
refugee camps in the middle east, to enable easy, safer and non profit
communication between them, this is often a big need for example to find
relatives, but also to communicate with in the camps because sometimes
they are huge etc..
One part (an at the moment my part) of this is to build up independent
GSM Networks per camp witch are interconnected with the other camps.
The idea is to build GSM networks with in the camp witch are autonomous.
If there is power they run, if there is internet peoble can call the
other camps (if they have internet).
Every thing need's to be done without any central entity (like an HLR
for all camps, run on a Server in Frankfurt) so that when, let say
government xy decides to only allow nation wide networking an cut's the
internet (happened since I'm here 2 times, it's annoying as f**k), the
camp's within the country and in the camp it self can still communicate.
The question is how to do this interconnection? As fare as I understand
in classical GSM infrastructure, this is done by SS7, but since we are
not interested (at least by know) to interconnect with "big" providers,
and also I did not found an open source implementation (but maybe I
missed it) this seems not an option, so the plan now is to do this
over VPN's and SIP/VOIP Server (probably asterisk). We like to be able
to scale the camps number, and to be relative easy to maintain so we can
enable people to run this them self (after we learned to run this our
self of course ;)). And these protocols are fare better documented then
SS7 so also much more esay to learn and to debug.
We are still testing and researching and so I thought it is maybe a good
time to ask her if this is a valid way or I missing something, or maybe
you can point me towards some documentations where people did some
similar things. We are all not professionals and do this more or less
with learning by doing, but we don't need to do all the mistakes other
did before us :D (maybe some but not all)
thx in advance and for this great project witch enabled us to do stuff
like this
naif
Hey,
I am trying to set up test bench for base-band fuzzing using the Osmocom
stack and a couple of SDRs (b210 and bladerf).
I have managed to setup everything to my liking in terms of a functional
network using the tutorial
(https://osmocom.org/projects/cellular-infrastructure/wiki/Osmocom_Network_I…)
and the latest stable packages from
https://osmocom.org/projects/cellular-infrastructure/wiki/Latest_Builds
Now I want to enable the silent_call functionality to begin testing but
I can't seem able to do so.
I have reverted the silent_call patch
(https://gerrit.osmocom.org/#/c/openbsc/+/1930/) for OpenBSC inside the
"new" OsmoMSC but unfortunately that did not work.
I have then started trying to figure out how the silent_call interacts
with the rest of the state machine, but I don't seem to be making much
progress.
Please see attached a log for the communication between OsmoMSC (which
triggers silent_call) and OsmoBSC. The connection seems to fail due to
issues related to either "Congestion" (if GPRS is enabled) or a timeout
of T0 (if GPRS is disabled).
Can anyone help?
Thanks
--
Mihai
== OsmoCon 2018 ==
OsmoCon (Osmocom Conference) 2018 is the technical conference for
Osmocom users, operators and developers!
We are happy to announce the date of OsmoCon 2018. It has been scheduled
on October 18 + 19, 2018 and will happen in Berlin, Germany.
For the second time, the Osmocom Conference brings together users,
operators and developers of the Osmocom Open Source cellular
infrastructure projects, such as OsmoBTS, OsmoBSC, OsmoSGSN, OpenGGSN
and others.
Join us for two days of presentations and discussions with the main
developers behind Open Source Mobile Communications, as well as
commercial and non-profit users of the Osmocom cellular infrastructure
software.
You can find some initial information in our wiki at
http://osmocom.org/projects/osmo-dev-con/wiki/OsmoCon2018
which will be updated as more information becomes available.
== Call for Participation ==
We're also at the same time announcing the Call for Participation and
call on everyone with experiences to share around the Osmocom member
projects to submit talks, workshops, discussions or other proposals.
You can find the CfP at https://pretalx.sysmocom.de/osmocon2018/cfp
We are particularly looking for contributions about:
* updates on features/functionality/status of individual Osmocom projects
* success stories on how Osmocom projects are deployed in practice
* migration from OsmoNITB to the post-NITB architecture
* tutorials / workshops on how to setup / analyze Osmocom projects
* statistics, reporting, operations aspects of Osmocom projects
* third-party open source utilities to be used with Osmocom projects
Looking forward to meeting many existing and new Osmocom users at OsmCon
this October!
Regards,
Harald Welte
--
- 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'm wondering where I can source the Siemens BS11 firmware. It looks
like OpenBSC is not providing any firmware images.
# bs11_config -p /dev/ttyUSB0
bs11_config (C) 2009-2010 by Harald Welte and Dieter Spaar
This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY
LMT LOGON: ACK
PHASE: 1 Software required Abis-link: Down
No valid Safety Load file "BTSBMC76.SWI"
Thanks,
Andrew
Recently, dexter has added this commit:
http://git.osmocom.org/osmo-bsc/commit/?id=b9d3c71af347906cef2bb54be57418a9…
Our osmo-gsm-tester tests fail to pass since this commit thwarts all L3
Complete.
The commit refuses to compose a Layer-3-Complete message if the speech codecs
supported by the BSS cannot be included, either because none are configured, or
because none remain after all the criteria of finding codecs permitted.
It may be mandatory to include the speech codecs or not, what bugs me is that
we even refuse a mere attach to the network just because speech codecs are not
available. Those only become interesting much much later, only for voice.
The backwards-compatibility consideration: configurations that have always
worked well are suddenly likely to fail. Users will wonder what happened, and
we need to avoid that.
I think instead of thwarting L3 Complete entirely, we should loudly error-log,
but still send out an L3 Complete while simply omitting the speech codec list.
It might be a spec violation for AoIP, but practically works fine, AFAICT.
Again, the way to handle this spec violation should be to log an error, not to
break all access.
The alternative would be, IMHO, to abort osmo-bsc startup right away,
complaining about misconfiguration, if that is possible at all. But no.
Let's allow L3 Complete even in the absence of speech codecs that all
participants support. There are USSD and SMS and GPRS that are all going to be
broken just because codecs don't match.
The commit right after sets, apparently, the full list of codecs as supported
by default. Is that not working? Do we override that in the osmo-gsm-tester
config? Either way, even if the allowed codecs are all configured properly, but
there is simply no match between MS,BTS,BSC,MSC, we would still refuse LU,
right?
Hence I would like to revert above commit / replace with error logging.
@dexter, what do you think? Am I making sense, or am I missing something?
Thanks!
~N
P.S.: in that commit log, it would have been nice to mention the config items
that would help solve the situation. It's not entirely clear to me yet what the
misconfigured items are on the osmo-gsm-tester setup.
Hi All.
This is very brief, but something that's been on my mind to make a
ticket about.
I realise maybe it's better to ask first if there is a plan.
The issue is about restarting MSC or BSC (or both).
I still really haven't looked at the split setup enough yet, in terms of
getting familiar with all the info available from logging in both
programs, so I don't have a good analysis of what's going on. Sorry.
But my point here is not to describe a bug to be fixed but just asking
in general what is the strategy to deal with daemon restarts,
intentional or not. Is there a plan to implement some kind of
non-volatile state?
The problem in terms of usability, from simple observation:
In the case of restarting the MSC with two phones connected, of course
the phones don't notice anything. One now needs to attempt a call setup
at least 3 times, including a call setup attempt from the "callee" phone
before we can even call it.
I tried restarting both BSC and MSC, in various orders, and I did not
get a satisfactory result. Of course, restarting the BSC restarts
osmo-bts which causes (some) phones to notice the temporary loss of
BCCH, but of course no LUR or anything as LAC doesn't change, so there's
some state that is not getting set right someplace on restart, as I
said. both phones need to interact before one of them can be called.
Yeah, so, sorry for the lame analysis, but I think this should be pretty
easy to reproduce, and at this time there are people who are MUCH more
familiar with osmo-msc and osmo-bsc than me, who probably know what I'm
talking about and can comment.
Thanks!
k/
Hi all
Another one not quite ready for a ticket, but maybe worth mentioning here.
A while back I noticed a phone of mine was holding channels open all the
time. Turns out in does checks for call forwarding status and such on
camping.
This got fixed in Legacy OpenBSC:
https://gerrit.osmocom.org/#/c/openbsc/+/503/
I noticed this, or something similar is back with the split setup.
Try dialing *#21# for example. or pick a code from here:
http://www.geckobeach.com/cellular/secrets/gsmcodes.php
Then make a call. On some phones you can't, but if it does proceed, then
hangup. On all the phones I tried you now have not only a lingering
SDCCH, but also a TCH/F and on one phone, it doesn't ever go away, until
you turn off the phone, or drop the BCCH.
sorry again for the lame bug report. I don't want to forget it and I
can't pay it due attention in the coming days.
k/
[private hacking hat on]
Thinking ahead to the 35C3, I have tinkered with IuUP a bit.
I'm at the point where I have an IuUP core net node in the osmo-mgw, which
auto-detects IuUP peers and removes IuUP headers coming from a 3G RNC, and
inserts IuUP headers in RTP going to a 3G RNC. So far we were merely hacking
over the IuUP header to mimick an Initialization ACK, and were otherwise just
handing the IuUP headers through from one 3G peer to the other. I realized now
that hacking up an Initialization ACK like we currently do on osmo-mgw master
produces a header CRC error, which the femto cells we currently tested
completely don't care about, thankfully.
Ok, so now I am de/encapsulating the IuUP from/to RTP, so that IuUP is present
only on the last leg to/from an RNC. 3G to 3G calls still work well with that,
now also having correct IuUP header CRCs.
And, the naive idea was that now the 2G would simply understand the RTP from
the 3G and vice versa. But that's not the case, apparently. The phones at best
crackle some random artifacts.
I picked a codec-list of fr3 hr3 in osmo-bsc, and tried a few AMR rates (12.2k,
5.9k, 5.2k).
So I think there's still some fundamental concept that I'm lacking. Is there
anyone more familiar with AMR and/or the way 3G encodes audio, and whether
there's a simple way to make them match? Where should I read on?
Would a call router like we use in the C3 POC be able to transcode when the
IuUP is stripped? (I'm not even sure what the POC side is doing to connect SIP
with GSM.)
I've noticed the laforge/iu_up branch in libosmocore only later, which includes
an FSM that apparently does only state transitions so far. My patch has no FSM
yet, since all I see on the wire is Init->InitAck, then Data PDUs, and maybe an
occasional error report. Do those FSM states convey a secret of making 3G
encoding readable by 2G?
Various pcaps of the status quo are here:
http://kleinekatze.de/eeD0ouCo/
My IuUP branch: osmo-mgw neels/iuup
http://git.osmocom.org/osmo-mgw/log/?h=neels/iuup
IuUP protocol spec: 3GPP TS 25.415 (I've so far ignored most of it)
~N
Hi all.
Was just thinking today about if it was ever considered to write the VTY
history out to a file on exiting (and load it on startup)
I'm quite the fan of the up arrow and it's been something that sometimes
annoys that I have no history after leaving the VTY.
It would seem reasonably trivial to implement, and I suppose you could
write out to files in $HOME/.osmo-bsc_history or $HOME/.config or somesuch.
Just wondering if this was ever discussed before, if there's any
unforseen problem with it on my part + if it would be a desirable
feature for anybody else?
k/
Dear all,
In this mail I would like to negotiate and discuss some details
about further development of the Osmocom CNI, in particular the
way of handling of SMS messages.
At this time, all SMS messages within the Osmocom CNI are terminated
at OsmoMSC. There we have some basic routing configuration, either
internal, or SMPP. This approach has some disadvantages, at least:
- MSC is not a proper place for terminating SMS messages,
in commercial networks it's usually done by SMS Center;
- in case if a network based on the Osmocom CNI does contain
multiple MSCs, one has to configure / update the SMS routing
configuration for each MSC individually;
- one would have to use SMPP in order to deliver SMS messages
to / from commercial networks, which in most cases "speak"
either MAP, or DIAMETER, or even both, but not SMPP;
- using SMPP (as it's the only external interface available)
involves the need to encode and decode complex SMS protocol,
what is not desired in some situations.
This is why it was decided to rip the SMS routing out of OsmoMSC,
and use generic (for Osmocom CNI) GSUP protocol as the transport.
Please see OS#3587 for more details about "SMS over GSUP".
So, we actually need a separate process, let's call it "OsmoSMSC"
in quotes for now, as I am not sure about the proper name. It
should implement at least basic functionality of the SMS Center.
Since we are using OsmoHLR as the main / central gateway in the
Osmocom CNI for all GSUP communications, this to be discussed
"OsmoSMSC" should basically be connected to OsmoHLR.
What I would like to discuss is how should we implement "OsmoSMSC"?
I think there are two possible ways: either write it from scratch,
or fork some existing project. Implementing from scratch would
require much more efforts and time than forking an existing
SMSC implementation, for sure.
I've recently discovered a project called Kannel - an Open Source
WAP and SMS gateway written in C and distributed under the Kannel
Software License, please see: https://www.kannel.org/index.shtml
What do I personally like:
- helpers for OTA configuration (e.g. WAP, MMS settings) messages;
- written in C and using automake as the build system;
- high performance (hundreds of messages per second);
- 7-bit, 8-bit and Unicode message coding.
So we could fork this project as "OsmoSMSC",
and extend in the following way:
- integrate generic Osmocom logging;
- integrate VTY interface and generic configuration;
- implement GSUP client from OsmoHLR.
I already started to read the source code and documentation.
If anyone has any experience with Kannel, please share!
And finally, how should we name "OsmoSMSC"? :)
With best regards,
Vadim Yanitskiy.
Thinking ahead to the 35C3, I have tinkered with IuUP a bit.
I'm at the point where I have an IuUP FSM which auto-detects IuUP peers and
removes IuUP headers coming from a 3G RNC, and inserts IuUP headers in RTP
going to a 3G RNC. So far we were merely hacking over the IuUP header to mimick
an Initialization ACK, and were otherwise just handing the IuUP headers through
from one 3G peer to the other. I realized now that hacking up an Initialization
ACK like we currently do on osmo-mgw master produces a header CRC error, which
the femto cells we currently tested completely don't care about, thankfully.
Ok, so now I am de/encapsulating the IuUP from/to RTP, so that IuUP is present
only on the last leg to/from an RNC. 3G to 3G calls still work well with that,
now also having correct IuUP header CRCs.
And, the naive idea was that now the 2G would simply understand the RTP from
the 3G and vice versa. But that's not the case, apparently. The phones at best
crackle some random artifacts.
I picked a codec-list of fr3 hr3 in osmo-bsc, and tried a few AMR rates (12.2k,
5.9k, 5.2k).
So I think there's still some fundamental concept that I'm lacking. Is there
anyone more familiar with AMR and/or the way 3G encodes audio, and whether
there's a simple way to make them match? Where should I read on?
Would a call router like we use in the C3 POC be able to transcode when the
IuUP is stripped? (I'm not even sure what the POC side is doing to connect SIP
with GSM.)
Various pcaps of the status quo are here:
http://kleinekatze.de/eeD0ouCo/
My IuUP branch: osmo-mgw neels/iuup
http://git.osmocom.org/osmo-mgw/log/?h=neels/iuup
IuUP protocol spec: 3GPP TS 25.415 (I've so far ignored most of it)
~N
Hi Community,
Is the auto provisioning (subscriber-create-on-demand) of OSMO-NITB is still present or available in OSMO-BSC/OSMO-MSC/OSMO-HLR version?
We tried to use the “authentication optional” under OSMO-MSC configuration but still, it checks if the subscriber is provisioned in OSMO-HLR.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Dear all,
I've just done one round of upgrades to our infrastructure, including
gerrit, gitolite, cgit, patchwork, redmine, jenkins.
Casual manual testing showed everything worked as expected at first sight.
Particularly the jenkins upgrae might have some fall-out, as we're jumping
6 months of jenkins LTS releases in one step.
Please report any issues to http://osmocom.org/projects/osmocom-servers/issues
[or if that is broken, by e-mail here].
Thanks!
--
- 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)
> Are you referring to the ones from 2015 or so with
> Russian titles? Those are the only ones I am aware of
Yes. There are few. Check out this one:
https://youtu.be/jw-63aOOPk0
> how do you know that phone was running against an
> Osmocom network [...]
I know the author. Also, you can see the logs of OpenBSC
on the background of the mentioned video.
> The relation is simple: if phones like Mot C1xx running
> Motorola's original factory fw don't work with Osmocom
> networks, [...]
In order to confirm, I just tested a Motorola C118 running
the original firmware with Osmocom-based network. LimeSDR-Mini
was used as PHY for OsmoTRX. Everything works fine, including:
SDCCH: SMS, USSD, other signaling
TCH/H: both HR and AMR codecs
TCH/F: FR, AMR and EFR codecs
Probably, the author of this topic has some problems
with codec / network configuration.
With best regards,
Vadim Yanitskiy.
Hello! Please help me to run projects like GSM Base Station and others on my LimeSDR. I have only notebook on Windows (can lauch Linux on VirtualBox) and LimeSDR. I have spent much days and nights and even still cant run anything! I am very new to Linux, its strange builds, dependences, cross-compliers etc. I just can do something in terminal (CMD) step-by-step. Please I need a full step-by-step guide or ready IMAGE to run PREBUILD LIVE-CD so I can run .iso at virtual box. Please help me,I am very need to do things like in this videos: https://youtu.be/LV-CRJWC5_o or https://youtu.be/QOu3xNahmqI