Project

General

Profile

NanoBTS » History » Version 1

laforge, 02/19/2016 10:48 PM
documentation

1 1 laforge
The ip.access nanoBTS are small BTS with an A-bis over IP interface.  RSL and OML are encapsulated in a single TCP session, whereas the TRAU frames on the actual TCH seem to be inside RTP/UDP.
2
3
== A-bis over IP protocol ==
4
5
This is the description of the A-bis over IP protocol as we have reverse engineered it by looking at protocol traces between a commercial BSC and a nanoBTS.  We did not and do not have access to the protocol specification of ip.access.
6
7
=== Signalling Link ===
8
9
After obtaining an IP address from DHCP, the nanoBTS will attempt to make TCP connections to a IP address and port number pre-configured in the device.  The standard port seems to be 3002.
10
11
Inside the TCP connection, every message is prefixed by a three-byte header:
12
{{{
13
struct ipaccess_head {
14
        u_int8_t zero;
15
        u_int8_t len;
16
        u_int8_t proto;
17
} __attribute__ ((packed));
18
}}}
19
20
where the first byte is zero, the second byte indicates the length of the message payload following the header, and the third byte indicates the protocol.  The following protocol values have been observed:
21
22
 * 0x00 RSL messages as per GSM 08.58
23
 * 0xfe ip.access specific messages
24
 * 0xff OML messages as per GSM 12.21
25
26
The ip.access specific messages that we have seen are of the following message types (message type is the first byte behind the ipaccess_head):
27
 * 0x00 PING (from BTS to BSC)
28
 * 0x01 PONG (from BSC to BTS), indicates that the link is still alive
29
 * 0x04 Identity Get (from BSC to BTS)
30
 * 0x05 Identity Response (from BTS to BSC)
31
 * 0x06 Identity confirm (both ways, BTS->BSC is a request, BSC->BTS is acknowledgement)
32
33
=== TRAU link ===
34
35
Not yet reverse engineered.
Add picture from clipboard (Maximum size: 48.8 MB)