blob: d3dab5ce33e448935dc7aabd6c84afb67d1aee65 [file] [log] [blame]
<?xml version="1.0"?>
<block>
<name>TRX Burst Interface</name>
<key>grgsm_trx_burst_if</key>
<import>import grgsm</import>
<make>grgsm.trx_burst_if($remote_addr, $base_port)</make>
<param>
<name>base_port</name>
<key>base_port</key>
<value>5700</value>
<type>string</type>
</param>
<param>
<name>remote_addr</name>
<key>remote_addr</key>
<value>127.0.0.1</value>
<type>string</type>
</param>
<sink>
<name>bursts</name>
<type>message</type>
<optional>1</optional>
</sink>
<source>
<name>bursts</name>
<type>message</type>
<optional>1</optional>
</source>
<doc>
OsmoTRX like UDP interface for external applications.
There are three UDP sockets: CLCK, CTRL and DATA.
Give a base port B (5700 by default), the SCH clock
interface is at port P=B. The TRX-side control interface
is on port P=B+100+1 and the data interface is on an odd
numbered port P=B+100+2.
Indications on the SCH Clock Interface (CLCK)
The SCH clock interface is output only (from the radio).
CLOCK gives the current value of the BTS clock to
be used by external applications. The indications are
sent whenever a transmission packet arrives that is too
late or too early.
Commands on Control Interface (CTRL)
The control interface uses a command-response protocol.
Commands are NULL-terminated ASCII strings. Each command
has a corresponding response. This interface isn't handled
by this particular block, and should be implemented outside.
Messages on the Data Interface
Messages on the data interface carry one radio burst per
UDP message.
Received Data Burst:
1 byte timeslot index
4 bytes GSM frame number, big endian
1 byte RSSI in -dBm
2 bytes correlator timing offset in 1/256 symbol steps,
2's-comp, big endian
148 bytes soft symbol estimates, 0 -&gt; definite "0",
255 -&gt; definite "1"
Transmit Data Burst:
1 byte timeslot index
4 bytes GSM frame number, big endian
1 byte transmit level wrt ARFCN max, -dB (attenuation)
148 bytes output symbol values, 0 &amp; 1
</doc>
</block>