Hi all,
Just wanted to share an issue and a quick workaround I found for it in case
anyone else has the same problem. I believe a cmd2 update is causing
pySim-shell to fail. After installing it on a fresh install of Ubuntu
Server 20.04 and getting the following error when I run "python3
pySim-shell -p0":
>Using PC/SC reader interface
>Autodetected card type: sysmoUSIM-SJS1
>AIDs on card:
> USIM: a0000000871002ffffffff8907090000
>Traceback (most recent call last):
> File "pySim-shell.py", line 512, in <module>
> app = PysimApp(card, rs, opts.script)
> File "pySim-shell.py", line 59, in __init__
> super().__init__(persistent_history_file='~/.pysim_shell_history',
allow_cli_args=False, use_ipython=True, auto_load_commands=False,
command_sets=basic_commands, >startup_script=script)
>TypeError: __init__() got an unexpected keyword argument 'use_ipython'
If you run into this you can fix it by uninstalling cmd2 and reinstalling
cmd2 with "pip3 install cmd2==1.5".
Best,
Bryan
> I don't understand. This callback will be called with data you need to
write
> to the network. In case of MTP Level3 you will need to wrap that around
the
> msgb you got.
I means: is the interaction with mtp3 layer implemented (is sending sccp
data by mtp3 implemented by the library?)?
Also, what about the reception of data from mtp3 layer. is that implemented
in the sccp lib.
I am asking these questions because I see the code of mtp3 in the lib but no
significant call is present in the sccp part of the lib.
Thank you for your help.
On Tue, Jun 28, 2016 at 10:05:28AM +0200, Harald Welte wrote:
> [translated from german]
> is it certain that we switch a channel to PDCH only when
> gprs mode != none?
A TS can be GSM_PCHAN_TCH_F_PDCH; those are the only ones for which we
send a PDCH ACT message.
We send a PDCH ACT message
- during init (CHANNEL OML's state changed to enabled -> send PDCH ACT),
- and upon channel release ack when pchan == GSM_PCHAN_TCH_F_PDCH.
So the question is, when we receive a channel release ack, could that be
the PDCH release and we switch PDCH right back on by accident? No, because
we only receive a chan rel ack when the *TCH/F* is being released.
That is because the PDCH release is initiated "internally" from the PDCH
DEACT, and thus this condition in common/rsl.c rsl_tx_rf_rel_ack() catches
on, which existed before dyn PDCH:
if (lchan->rel_act_kind != LCHAN_REL_ACT_RSL) {
LOGP(DRSL, LOGL_NOTICE, "%s not sending REL ACK\n",
gsm_lchan_name(lchan));
return 0;
}
In rsl_rx_rf_chan_rel() the rel_act_kind is set to LCHAN_REL_ACT_RSL, but
not in the rsl_rx_dyn_pdch().
This is analogous to the ip.access way -- the ip.access nanobts replies to
a PDCH DEACT with a PDCH DEACT ACK and doesn't send a separate channel
release ack.
Maybe we could set rel_act_kind to some new LCHAN_REL_ACT_IPAC_DYN_PDCH
for clarity? (But we shouldn't actually send a release ack, to stay
compatible.)
Even though it works as-is, we should indeed add another flag check:
- We do check the flags that no ACT/DEACT is already pending;
- And we do send a PDCH DEACT only if ts->flags & TS_F_PDCH_ACTIVE;
- But we would send a PDCH ACT despite ts->flags & TS_F_PDCH_ACTIVE.
This should never happen, but it would make sense to ensure that.
~Neels
Hello everyone,
I am experiencing problems when trying to run osmotrx with a b205mini and I connect another USB device to a different port on the machine. When I do this, osmotrx crashes instantly. Also, when I have the other device already plugged in when I start osmotrx, it takes ~20 seconds to crash.
Sometimes it just crashes without giving a reason, like here:
DLGLOBAL NOTICE Setting SCHED_RR priority 18 (cpu_sched_vty.c:471)
DLGLOBAL NOTICE Setting SCHED_RR priority 18 (cpu_sched_vty.c:471)
DLGLOBAL NOTICE Available via telnet 127.0.0.1 4237 (telnet_interface.c:88)
DLCTRL NOTICE CTRL at 127.0.0.1 4236 (control_if.c:1024) [INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.1.0.5-3
DMAIN NOTICE -- Transceiver active with 1 channel(s) (osmo-trx.cpp:621)
DLSTATS NOTICE Stats timer expire_count=7: We missed 6 timers (stats.c:169)
DLGLOBAL NOTICE Stats timer expire_count=31: We missed 30 timers (rate_ctr.c:350)
DTRXCTRL NOTICE Changing TSC from 0 to 7 (Transceiver.cpp:1032)
DTRXCTRL NOTICE [chan=0] switching to TRXD version 1 (Transceiver.cpp:1059)
DMAIN NOTICE Starting the transceiver (Transceiver.cpp:287)
LLDTRXCLK NOTICE Sending CLOCK indications (Transceiver.cpp:1198)
UDDEV ERROR No packet received, implementation timed-out (UHDDevice.cpp:782)
DDEV FATAL UHD: Receive timed out (UHDDevice.cpp:786)
DMAIN FATAL Receive error 0 (radioInterface.cpp:340)
DTRXDUL FATAL Something went wrong in thread RxLower, requesting stop (Transceiver.cpp:1359)
DMAIN NOTICE Shutting down transceiver... (osmo-trx.cpp:588)
DMAIN NOTICE Stopping the transceiver (Transceiver.cpp:345) terminate called without an active exception Aborted
And sometimes it reports an USB error and shows the talloc report:
DMAIN NOTICE -- Transceiver active with 1 channel(s) (osmo-trx.cpp:621)
DLSTATS NOTICE Stats timer expire_count=6: We missed 5 timers (stats.c:169)
DLGLOBAL NOTICE Stats timer expire_count=26: We missed 25 timers (rate_ctr.c:350)
DTRXCTRL NOTICE Changing TSC from 0 to 7 (Transceiver.cpp:1032)
DTRXCTRL NOTICE [chan=0] switching to TRXD version 1 (Transceiver.cpp:1059)
DMAIN NOTICE Starting the transceiver (Transceiver.cpp:287)
DTRXCLK NOTICE Sending CLOCK indications (Transceiver.cpp:1198)
LLUterminate called after throwing an instance of 'uhd::io_error'
what(): EnvironmentError: IOError: usb rx6 transfer status: LIBUSB_TRANSFER_OVERFLOW
signal 6 received
talloc report on 'OsmoTRX' (total 8531 bytes in 29 blocks)
rate_ctr.c:233 contains 1160 bytes in 1 blocks (ref 0) 0x559c72388720
trx_rate_ctr.cpp:343 contains 8 bytes in 1 blocks (ref 0) 0x559c723886b0
trx_rate_ctr.cpp:342 contains 40 bytes in 1 blocks (ref 0) 0x559c72389540
trx_rate_ctr.cpp:341 contains 32 bytes in 1 blocks (ref 0) 0x559c723895d0
telnet_connection contains 1 bytes in 1 blocks (ref 0) 0x559c723893d0
struct sched_vty_opts contains 72 bytes in 1 blocks (ref 0) 0x559c723489f0
logging contains 6197 bytes in 13 blocks (ref 0) 0x559c722c5d10
struct trx_ctx contains 1021 bytes in 8 blocks (ref 0) 0x559c722a0e80
msgb contains 0 bytes in 1 blocks (ref 0) 0x559c722c3ac0
full talloc report on 'OsmoTRX' (total 8531 bytes in 29 blocks)
rate_ctr.c:233 contains 1160 bytes in 1 blocks (ref 0) 0x559c72388720
trx_rate_ctr.cpp:343 contains 8 bytes in 1 blocks (ref 0) 0x559c723886b0
trx_rate_ctr.cpp:342 contains 40 bytes in 1 blocks (ref 0) 0x559c72389540
trx_rate_ctr.cpp:341 contains 32 bytes in 1 blocks (ref 0) 0x559c723895d0
telnet_connection contains 1 bytes in 1 blocks (ref 0) 0x559c723893d0
struct sched_vty_opts contains 72 bytes in 1 blocks (ref 0) 0x559c723489f0
logging contains 6197 bytes in 13 blocks (ref 0) 0x559c722c5d10
vty_logp_doc_str contains 1377 bytes in 1 blocks (ref 0) 0x559c7231c040
vty_logp_cmd_str contains 260 bytes in 1 blocks (ref 0) 0x559c7231ba00
vty_log_level_doc_str contains 1170 bytes in 1 blocks (ref 0) 0x559c722ff430
vty_log_level_cmd_str contains 236 bytes in 1 blocks (ref 0) 0x559c722ff2d0
vty_log_level_doc_str contains 1305 bytes in 1 blocks (ref 0) 0x559c722fc610
vty_log_level_cmd_str contains 257 bytes in 1 blocks (ref 0) 0x559c722fc4a0
struct log_target contains 330 bytes in 3 blocks (ref 0) 0x559c7220c550
struct osmo_wqueue contains 96 bytes in 1 blocks (ref 0) 0x7ff689ff4090
struct log_category contains 74 bytes in 1 blocks (ref 0) 0x559c722c6290
struct log_info contains 1261 bytes in 3 blocks (ref 0) 0x559c722ac370
uint8_t contains 37 bytes in 1 blocks (ref 0) 0x559c722c6350
struct log_info_cat contains 1184 bytes in 1 blocks (ref 0) 0x559c722c5d80
struct trx_ctx contains 1021 bytes in 8 blocks (ref 0) 0x559c722a0e80
127.0.0.1 contains 10 bytes in 1 blocks (ref 0) 0x559c722c5c20
127.0.0.1 contains 10 bytes in 1 blocks (ref 0) 0x559c722c5ba0
struct cmd_element contains 122 bytes in 2 blocks (ref 0) 0x559c72369030
logging level lms (debug|info|notice|error|fatal) contains 50 bytes in 1 blocks (ref 0) 0x559c7236c1a0
utils.c:386 contains 405 bytes in 1 blocks (ref 0) 0x559c7225e5b0
utils.c:386 contains 65 bytes in 1 blocks (ref 0) 0x559c723524f0
contains 1 bytes in 1 blocks (ref 0)
msgb contains 0 bytes in 1 blocks (ref 0)
On the BTS side I see several messages of missed timers, but this is something I see also when I don't have the USB plugged in:
<0006> scheduler_trx.c:489 GSM clock started, waiting for clock indications
<0006> scheduler_trx.c:578 GSM clock skew: old fn=0, new fn=2555007
<0006> scheduler_trx.c:428 FN timer expire_count=4: We missed 3 timers
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=6: We missed 5 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 2 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:435 No more clock from transceiver
Does anyone know if this is a software or hardware problem? I am thinking maybe it is related to the power supply of the USB port, but I have no idea. I really need to have both devices connected at the same time.
Any help or suggestion is appreciated,
Jonathan
Hi all,
we're planning to tag a new libosmocore release.
If anyone has concerns about some APIs not being stable in master, then
please speak up :)
Best regards,
Oliver
--
- Oliver Smith <osmith(a)sysmocom.de> https://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Siemensstr. 26a
* 10551 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
I'm happy to announce that [finally], the osmo-epdg development has
reached its first release: 0.1.0.
[Link to news item: https://osmocom.org/news/262]
osmo-epdg[1] is combined ePDG and AAA to support Voice over Wifi (VoWiFi) calls.
An ePDG allows a UE to connect over regular wireless networks to an IMS
(untrusted non-3GPP network access).
The combined ePDG/AAA is using a modified strongSwan[2] together with
osmo-epdg[3], a daemon written in erlang/OTP.
The osmo-epdg has been tested with open5gs as EPC and kamailio as IMS.
To allow an easy setup of a fully working ePDG/epc/IMS there are ansible
playbooks[4] which has been used to create our Hosted ePDG playground
Thanks a lot to NLNet[5] for funding development of this project.
Thanks also to the main developers of this project:
Alexander "lynxis" Couzens and Pau "pespin" Espin Pedrol.
Best regards,
Harald
[1] https://osmocom.org/projects/osmo-epdg/wiki
[2] https://gitea.osmocom.org/ims-volte-vowifi/strongswan-epdg
[3] https://gitea.osmocom.org/Erlang/osmo-epdg
[4] https://gitea.osmocom.org/ims-volte-vowifi/ansible-prototype
[5] https://nlnet.nl/project/Osmocom-ePDG/
--
- Harald Welte <laforge(a)osmocom.org> https://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I am using osmo-bts-trx with a B205-mini-i, using only CS services. I am currently running the following elements on Ubuntu 22.04, all built from source from the latest version:
- osmo-trx-uhd
- osmo-bts-trx
- osmo-bsc
- osmo-msc
- osmo-hlr
- osmo-mgw
- osmo-stp
- osmo-sip-connector
I have been testing the range of the cell, and I can't seem to get more than around 50 meters, even when I transmit at ~21 dBm using a power amplifier at TX. I find this range too low, since I am used to getting 200-300 meters out of the box when running 4G and 5G networks with the same device, so I suspect I am not configuring the network correctly. I've tried looking at every parameter, so far I've only noticed improvements when setting the min-qual-* to the minimum values and ms_max_power to the maximum.
These are my configs for TRX, BTS and BSC:
OsmoTRX:
```
log stderr
...
!
line vty
no login
!
cpu-sched
policy rr 18
trx
bind-ip 127.0.0.1
remote-ip 127.0.0.1
egprs disable
tx-sps 4
rx-sps 4
clock-ref gpsdo
chan 0
```
```
!
! OsmoBTS () configuration saved from vty
!!
!
log stderr
...
!
line vty
no login
!
phy 0
instance 0
osmotrx tx-attenuation 0
osmotrx rx-gain 50
osmotrx ip local 127.0.0.1
osmotrx ip remote 127.0.0.1
bts 0
band GSM900
ipa unit-id 1234 0
oml remote-ip 127.0.0.1
gsmtap-remote-host 127.0.0.1
gsmtap-sapi enable-all
min-qual-rach -100
min-qual-norm -100
trx 0
phy 0 instance 0
nominal-tx-power 10
```
```
! osmo-bsc default configuration
! (assumes STP to run on 127.0.0.1 and uses default point codes)
!
log stderr
logging color 1
logging print category-hex 0
logging print category 1
logging timestamp 0
logging print file basename last
logging print level 1
e1_input
e1_line 0 driver ipa
network
network country code 1
mobile network code 1
encryption a5 0
neci 1
paging any use tch 0
handover 0
handover algorithm 1
handover1 window rxlev averaging 10
handover1 window rxqual averaging 1
handover1 window rxlev neighbor averaging 10
handover1 power budget interval 6
handover1 power budget hysteresis 3
handover1 maximum distance 9999
! T3212 is in units of 6min, so below we set 5 * 6 = 30min
timer net T3212 5
mgw 0
remote-ip 127.0.0.1
remote-port 2427
local-port 2727
bts 0
type osmo-bts
band GSM900
cell_identity 1234
location_area_code 0x0001
base_station_id_code 63
ms max power 40
!default: cell reselection hysteresis 4
cell reselection hysteresis 14
radio-link-timeout 32
channel allocator mode set-all ascending
rxlev access min 0
rach tx integer 9
rach max transmission 7
channel-description attach 1
channel-description bs-pa-mfrms 5
channel-description bs-ag-blks-res 1
early-classmark-sending forbidden
ipa unit-id 1234 0
oml ipa stream-id 255 line 0
codec-support fr
gprs mode none
trx 0
rf_locked 0
! 945M DL/900M UL
arfcn 50
nominal power 10
max_power_red 0
rsl e1 tei 0
timeslot 0
phys_chan_config CCCH+SDCCH4
hopping enabled 0
timeslot 1
phys_chan_config TCH/F
hopping enabled 0
timeslot 2
phys_chan_config TCH/F
hopping enabled 0
timeslot 3
phys_chan_config TCH/F
hopping enabled 0
timeslot 4
phys_chan_config TCH/F
hopping enabled 0
timeslot 5
phys_chan_config TCH/F
hopping enabled 0
timeslot 6
phys_chan_config TCH/F
hopping enabled 0
timeslot 7
phys_chan_config TCH/F
hopping enabled 0
ms-power-control
mode dyn-bts
rxlev-thresh lower 0 upper 63
msc 0
allow-emergency allow
amr-config 12_2k forbidden
amr-config 10_2k forbidden
amr-config 7_95k forbidden
amr-config 7_40k forbidden
amr-config 6_70k forbidden
amr-config 5_90k allowed
amr-config 5_15k forbidden
amr-config 4_75k forbidden
bsc
mid-call-timeout 0
```
You might notice I am using the gpsdo as the clock-ref. That's because I've also tried with a B210 with the internal GPSDO, but the results are the same.
Thanks in advance,
Jonathan Pichel