Fork 0
Commit Graph

226 Commits

Author SHA1 Message Date
Harald Welte d987da3f05 actually connect and open the BCCH logical channel 2011-11-13 17:23:34 +01:00
Harald Welte 5d46791fb0 include lchan reference when signalling nexWtime to ThreadMuxer 2011-11-13 15:54:57 +01:00
Harald Welte 2ff390643f declare operator overloading for standard << 2011-11-13 15:53:03 +01:00
Harald Welte a7b5fd9c77 Introduce OsmoLchanBCCH 2011-11-13 15:45:07 +01:00
Harald Welte 0e1fc5e809 fix constructor reordering warning 2011-11-13 15:34:19 +01:00
Harald Welte 3cabf472d9 propagate 'nextWriteTime' signal from L1 upwards
We drive it via SAPmux through OsmoLogicalChannel up into OsmoThreadMux
2011-11-13 15:21:58 +01:00
Harald Welte 086a6a61cb Add missing header files to Makefile 2011-11-13 15:21:26 +01:00
Harald Welte 615eb3f0ea OsmoLogChan: Make sure mL1 and mSACCHL1 are initialized to NULL 2011-11-13 15:21:03 +01:00
Harald Welte 12a1ff7317 Connect SAPmux upper end with Lchan during connect() 2011-11-13 15:19:57 +01:00
Harald Welte ae48a74ee2 OsmoLogicalChannel: cosmetic cleanup, more comments 2011-11-13 13:46:35 +01:00
Harald Welte 9a6d6578bb OsmoLogicalChannel: Don't forget SACCHL1FEC for TCH and SDCCH 2011-11-13 13:46:15 +01:00
Harald Welte daaeb91a3b TrueBTS: make sure we don't exit the main thread 2011-11-12 23:44:07 +01:00
Harald Welte f1f5dbbaa4 OsmoComb5TS: make sure we don't put logical channels on stack 2011-11-12 23:38:22 +01:00
Harald Welte 5116420cb2 Make sure we lookup trxmgr->ARFCN() with TRX number, not TS number 2011-11-12 23:37:07 +01:00
Harald Welte dd9ba70f53 TrueBTS: first compiling L1-only BTS code (TrueBTS)
This is far from being complete, but it should be a nice Layer1-only BTS
code.  There is no interface to higher layers yet...
2011-11-12 20:35:10 +01:00
Harald Welte 1c41c4e0ae TrueBTS: add a new skeleton OsmoSAPMux
We will use this SAPMux replacement to tie the OpenBTS L1 to osmo-bts L2.
2011-11-12 17:57:43 +01:00
Harald Welte 98cdb03713 GSM: Move BCCHL1Encoder::generate() into separate file
BCCHL1Encoder actually belongs to layer3, but is implemented as part of
Layer1.  If we keep it linked into GSML1FEC.o, it will cause
dependencies to higher layers (through gBTS)
2011-11-12 17:54:47 +01:00
Harald Welte 7a2026ab44 GSM: Slit and
The purpose of this exercise is to make sure the L1 can be used
independent of the higher layers.
2011-11-12 17:52:23 +01:00
Harald Welte efd2e6e25f Introduce gBTSL1 global and use it from the GSM L1
The purpose of this is to find a way how we can just configure the L1
without depending on the higher layers of the protocol stack.
2011-11-12 17:43:31 +01:00
Harald Welte bc570dd885 Introduce GSMConfigL1 as base class for GSMConfig
GSMConfigL1 only contains those fields applicable for the Layer1,
while GSMConfig contains all fields for higher layers.
2011-11-12 17:43:25 +01:00
Thomas Tsou fa05e2e7c4 transceiver, resamp: enlarge transmit resampler output buffer
It was possible to reach a state where a resampled burst would
overrun the transmit output buffer and corrupt the global
allocated signal vectors. The result was a segmentation fault
when attempting to access heap allocated signal vectors since
the pointers were garbage.

Whether the segfault occured or not appears to depend on the
memory location of the signal vector pointers, since it does
not occur on all systems.

Double buffer size to accomodate an incoming burst plus up to
a full chunk that may be remaining from the previous resampling

Signed-off-by: Thomas Tsou <>
2011-11-10 19:32:55 -05:00
Thomas Tsou 6445a3bf86 transceiver, resamp: insert missing filter values
With transceiver integration, the resampling filter files were
dropped. This created a working resampling implementation for
the USRP2 / N200, but with spectrum irregulaties that likely
caused issues at longer range operation. Simply reinsert the
filter files and modify the filter initialization to use them.

Signed-off-by: Thomas Tsou <>
2011-11-04 12:58:03 -04:00
Thomas Tsou 3800745c6a config: remove non-52MHz transceiver from configuration file
It no longer exists; 64MHz USRP1 support is out. Enable the
resampler in the 52MHz transceiver at build time for
external reference capable USRP2 and N2xx devices.

Signed-off-by: Thomas Tsou <>
2011-10-21 12:27:20 -04:00
Thomas Tsou d93729a806 transceiver: usrp1: select single dboard use at compile time
The following option selects single daughterboard use on
side A only. Otherwise, the default setting is TX on A and
Rx on B.

  ./configure --with-singledb

Other options are possible, as per the following enum, but
for simplicity with configure options, there are only two

  enum dboardConfigType {

Signed-off-by: Thomas Tsou <>
2011-10-21 12:06:01 -04:00
Thomas Tsou 515c859556 transceiver: uhd: make external reference a compile time option
External reference selection was already compile-time
determined by a hard coded value. Make it selectable
as a configure option.

Signed-off-by: Thomas Tsou <>
2011-10-21 12:05:51 -04:00
Thomas Tsou 03fd84469e transceiver: update main to accommodate resampling
With the unified transceiver, we need to select between
two device sample rates, GSM symbol rate and 400ksps for
resampler use. Make this selection available for configure
time options.

Signed-off-by: Thomas Tsou <>
2011-10-21 12:03:54 -04:00
Thomas Tsou 44fe0df73f build: insert autofoo for usrp transceiver and options

  ./configure --with-usrp1

  Enable non-UHD USRP1 support through the gnuradio-based
  driver. Requires gnuradio (libusrp) to be installed.

 ./configure --with-resample

  Enable host-based 400ksps to 270.833ksps resampling.
  Only supported for UHD devices. If not enabled, the GSM
  sample rate is requested directly from the device.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:10:41 -04:00
Thomas Tsou ba7a18d80d transceiver: add a newline for uhd information outputs
Minor change to clarify the logging output.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:10:41 -04:00
Thomas Tsou 1928417a66 transceiver: reject usrp1 if detected using uhd 2011-10-20 21:10:41 -04:00
Thomas Tsou eb10d9b31d transceiver: make the transmit drive loop bus dependent
With the introduction of the B100, there is USB support
using UHD devices. The characteristics of the trasmit
side burst submissions are more reflective of the bus
type than the device or driver.

Use a fixed latency interval for network devices and the
adaptive underrun approach for USB devices - regardless
of driver or device type.

The GPMC based transport on the E100 appears unaffected
by either latency scheme, which defaults to network.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:10:41 -04:00
Thomas Tsou cdbfa6910f transceiver: clean variable init of radio interface constructor
Signed-off-by: Thomas Tsou <>
2011-10-20 21:10:00 -04:00
Thomas Tsou 84ba2673e4 transceiver: move various radio interface definitions
Move them out of the interface file - primarily for

Signed-off-by: Thomas Tsou <>
2011-10-20 21:03:41 -04:00
Thomas Tsou 9d0beae1a5 transceiver: rename getting radio vector time to getTime()
Small name change to match setTime for a get/set pair.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:03:41 -04:00
Thomas Tsou bb1c2f2ad2 transceiver: add option for host based resampling
The resampling transceiver is unified with the 52MHz
version. The option to resample 400ksps from the device
to a GSM appropriate 270.833ksps is enabled at compile
time with the following option.

   ./configure --with-resamp

Signed-off-by: Thomas Tsou <>
2011-10-20 21:02:37 -04:00
Thomas Tsou b667ea6267 uhd: keep reading on overrun or other non-fatal errors
The readSamples call does not return less than the
number of samples requested. Doing otherwise is a
fatal error. So on overruns, which are not fatal,
continue reading until the requested number of
samples is received.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:02:12 -04:00
Thomas Tsou 7e3692c087 transceiver: separate I/O portion of radio interface implementation
Move push and pull of buffers into a dedicated file. This will
allow us to swap out resampling, non-resampling, and possibly
floating point device interfaces while presenting a single
floating point abstration in the interface itself.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:01:39 -04:00
Thomas Tsou f5575b9240 transceiver: separate radio clock and vector interfaces
Remove radio clock and vector interfaces into their own
files. This clears up and simplifies the radio interface
and, additionaly, prepares for a further split of the I/O
portion for optional resampler use.

Signed-off-by: Thomas Tsou <>
2011-10-20 21:00:22 -04:00
Thomas Tsou 285b0a481c transceiver: uhd: update copyright header
Signed-off-by: Thomas Tsou <>
2011-10-20 20:49:34 -04:00
Thomas Tsou 0b974109a8 transceiver: minor cleanup of sample type sizing in uhd
A small simplification of buffer indexing and sizing.

Signed-off-by: Thomas Tsou <>
2011-10-20 20:49:34 -04:00
Thomas Tsou 331755f458 transceiver: remove extraneous comments
These lines are virtually never enabled.

Signed-off-by: Thomas Tsou <>
2011-10-20 20:49:34 -04:00
Thomas Tsou 86545d1ab9 transceiver: remove extra typedefs to remove warnings
These typedefs serve no purpose and the compiler complains.

Signed-off-by: Thomas Tsou <>
2011-10-20 20:48:56 -04:00
Thomas Tsou 4fcc2bd352 transceiver: remove old resampling transceiver 2011-10-20 20:45:20 -04:00
Thomas Tsou 1898c37e43 transceiver: reroute UHD messages to logging facility
Pipe the following uhd message types to standard warning
levels (INFO, WARN, ERROR) respectively. Ignore fastpath
logging messages and, instead, catch them from the
asynchronous device interface.

    enum type_t{
        status  = 's',
        warning = 'w',
        error   = 'e',
        fastpath= 'f'

Signed-off-by: Thomas Tsou <>
2011-10-07 13:45:06 -04:00
Ivan Kluchnikov 20ea06422d Merge commit 'USSD' 2011-08-22 16:52:29 +04:00
Thomas Tsou 980d31a404 uhd: remove external clock polarity setting
Unused and causes the follwing errors on certain UHD versions.

"ValueError: unhandled clock configuration reference source: _external_"

Signed-off-by: Thomas Tsou <>
2011-08-10 16:52:09 -07:00
Thomas Tsou d71ce7c294 uhd: output more informative error message on make failure
The device make generally only fails on failure to find an
appropriate device.

Signed-off-by: Thomas Tsou <>
2011-08-05 12:30:19 -07:00
Thomas Tsou fda11abe6c uhd: verify setting of master clock rate
If the master clock rate fails to set - this basically only happens
when the wrong transceiver is choosen for the particular device -
the error is fatal and the transceiver should exit. The clock rate
setting was previously never verified.

Signed-off-by: Thomas Tsou <>
2011-08-05 12:29:31 -07:00
Thomas Tsou f8838172ad transceiver: fix bug in setting low-level attenuation
This patch fixes some confusion in gain vs. attenuation
setting. The UHD device is controlled through gain
settings but OpenBTS represents gain in terms of
attenuation relative to maximum - 0 dB attenuation.

Signed-off-by: Thomas Tsou <>
2011-08-01 19:56:16 -07:00
Alexander Chemeris e64e4119ae CLI: Fix sendsms CLI command to actually accept text strings.
Now we have two commands - "sendsms" which behaves as intended and "sendsmsrpdu" which accepts a hex string of RPDU.
2011-07-25 14:37:34 -04:00
Alexander Chemeris 3d2c5ecfbc Update .gitignore to include new executables and config files. 2011-07-25 14:36:20 -04:00