NanoBTS Getting Started » History » Version 3
laforge, 02/19/2016 10:48 PM
fix formatting
1 | 1 | laforge | [[PageOutline]] |
---|---|---|---|
2 | = Getting started with Openbsc and an ip.access nanoBTS = |
||
3 | |||
4 | This page describes how ot configure + set up an ip.access nanoBTS to use it in conjunction with OpenBSC (i.e. [osmo-nitb] or [osmo-bsc]). |
||
5 | |||
6 | Please note once again that the Osmocom project has no affiliation and no contact with ip.access. All information here is presented |
||
7 | based on our own experience only. If you have official documentation by the manufacturer, you should probably consult that instead |
||
8 | of using this wiki page. |
||
9 | |||
10 | == Physical set-up == |
||
11 | |||
12 | === Power supply === |
||
13 | The nanoBTS uses PoE (Power-over-Ethernet). It does not have any other power connector, so you will have to use a PoE-Injector (aka ''mid-span'') |
||
14 | or a PoE capable switch (like the Netgear FS-108P for a small desktop switch). |
||
15 | |||
16 | Please note the power demand of the nanoBTS is quite high for a PoE powered device. You may not be able to use all the PoE ports of your switch |
||
17 | for nanoBTSs. Check with your switch vendor and/or ip.access. |
||
18 | |||
19 | On first sight, there appear to be three RJ-45 jacks on the nanoBTS. However, two of them are actually RJ-69 (10-pin) and only used in stacking |
||
20 | 3 | laforge | configurations (see [wiki:nanoBTS/multiTRX] for details). This leaves only 1 real RJ-45 marked '''LAN/48VDC''', and that's where you connect your |
21 | 1 | laforge | powered Ethernet. |
22 | |||
23 | === Antennas === |
||
24 | |||
25 | There are four SMA connectors, one on each corner. |
||
26 | * RX (receive antenna for uplink) |
||
27 | * TX (transmit antenna for downlink) |
||
28 | * NWL (network listen, a special mode where the BTS behaves like a MS to receive other BTSs) |
||
29 | 3 | laforge | * AUX (once again only used for stacking, see [wiki:nanoBTS/multiTRX]) |
30 | 1 | laforge | |
31 | RX and TX should each be connected to an antenna, either the small factory-supplied antennas, or some larger antenna or even an RF distribution |
||
32 | system or an external LNA + PA + Duplexer kit. |
||
33 | |||
34 | '''Do not power up the device without a TX antenna''' |
||
35 | |||
36 | 2 | laforge | == Software configuration == |
37 | |||
38 | 3 | laforge | The nanoBTS has a number of parameters that are stored in NVRAM. Those essential parameters are required for the nanoBTS to know how to |
39 | use the network and to which BSC to connect. All other operational parameters are volatile and configured after booting from the BSC |
||
40 | 2 | laforge | through A-bis/IP by means of the GSM TS 12.21 SET ATTRIBUTE messages. |
41 | |||
42 | === Network configuration === |
||
43 | |||
44 | The nanoBTS can either be configured to use a static IP address (IPv4 address, netmask, default gateway) or to use DHCP. |
||
45 | |||
46 | 3 | laforge | ip.access supplies some official tools for this purpose. OpenBSC contains the [wiki:ipaccess-find] and [wiki:ipaccess-config] utilities, |
47 | 2 | laforge | which implement a sub-set of the features. |
48 | |||
49 | The remainder of this presentation assumes that the nanoBTS is configured for use with DHCP. |
||
50 | |||
51 | In any case, after the unit has been attached to the Ethernet, other systems attached to the same Ethernet link-layer segment (broadcast domain) |
||
52 | 3 | laforge | can use the [wiki:ipaccess-find] tool to identify the BTS attached to the network. This looks like: |
53 | 2 | laforge | {{{ |
54 | $ openbsc/src/ipaccess/ipaccess-find |
||
55 | 1 | laforge | ipaccess-find (C) 2009 by Harald Welte |
56 | 2 | laforge | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
57 | |||
58 | you might need to specify the outgoing |
||
59 | network interface, e.g. ``./ipaccess/ipaccess-find eth0'' |
||
60 | Trying to find ip.access BTS by broadcast UDP... |
||
61 | 3 | laforge | MAC_Address='00:11:22:33:44:55' IP_Address='192.168.100.193' Unit_ID='102/0/0' Location_1='' Location_2='BTS_NBT131G' |
62 | Equipment_Version='165g029_79' Software_Version='168a352_v142b30d0' Unit_Name='nbts-00-11-22-33-44-55' Serial_Number='01234567' |
||
63 | 2 | laforge | }}} |
64 | |||
65 | As you can see, it prints the MAC and IP address information, as well as the serial number of the unit. |
||
66 | |||
67 | Most importantly, it also contains the so-called ''Unit-ID'', which is a unique identifier for this unit inside the BSC area. A Unit ID is structured into three components, separated by '/'. |
||
68 | |||
69 | ==== Setting the Unit ID ==== |
||
70 | |||
71 | You can use [ipaccess-config] to set the Unit ID of the device like this: |
||
72 | {{{ |
||
73 | openbsc/src/ipaccess/ipaccess-config -u 1234/0/0 -r 192.168.100.193 |
||
74 | ipaccess-config (C) 2009-2010 by Harald Welte and others |
||
75 | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
||
76 | |||
77 | Trying to connect to ip.access BTS ... |
||
78 | <0005> abis_nm.c:398 OC=SITE-MANAGER(00) INST=(ff,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) |
||
79 | <0005> abis_nm.c:398 OC=BTS(01) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
80 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
81 | OML link established using TRX 0 |
||
82 | setting Unit ID to '1234/0/0' |
||
83 | restarting BTS |
||
84 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,00) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
85 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,01) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
86 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,02) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
87 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,03) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
88 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,04) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
89 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,05) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
90 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,06) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
91 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,07) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
92 | <0005> abis_nm.c:398 OC=RADIO-CARRIER(02) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
93 | <0005> abis_nm.c:398 OC=GPRS-NSE(f0) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
94 | <0005> abis_nm.c:398 OC=GPRS-CELL(f1) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
95 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
96 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,01,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
97 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) IPACCESS(0xf0): SET NVATTR ACK |
||
98 | Set the NV Attributes. |
||
99 | The BTS has acked the restart. Exiting. |
||
100 | }}} |
||
101 | where 192.168.100.193 is the IP address of the BTS. |
||
102 | |||
103 | The BTS will re-start in order to use the new unit-id. You can again use [ipaccess-find] to verify the configuration. |
||
104 | Please note that the BTS restart can easily take some minutes. Wait until the LED is no longer in 'permanent orange on' mode. |
||
105 | |||
106 | ==== Setting the Primary OML address ==== |
||
107 | |||
108 | The BTS needs to know the IP address of the BSC in order to be able to establish an Abis/IP link to it. This is what's |
||
109 | called the primary OML address. You can set it like this: |
||
110 | {{{ |
||
111 | $ ./ipaccess/ipaccess-config -o 192.168.100.11 192.168.100.193 |
||
112 | ipaccess-config (C) 2009-2010 by Harald Welte and others |
||
113 | This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY |
||
114 | |||
115 | Trying to connect to ip.access BTS ... |
||
116 | <0005> abis_nm.c:398 OC=SITE-MANAGER(00) INST=(ff,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) |
||
117 | <0005> abis_nm.c:398 OC=BTS(01) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
118 | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
119 | OML link established using TRX 0 |
||
120 | setting primary OML link IP to '192.168.100.11' |
||
121 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,00) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
122 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,01) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
123 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,02) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
124 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,03) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
125 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,04) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
126 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,05) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
127 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,06) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
128 | <0005> abis_nm.c:398 OC=CHANNEL(03) INST=(00,00,07) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
129 | <0005> abis_nm.c:398 OC=RADIO-CARRIER(02) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
130 | <0005> abis_nm.c:398 OC=GPRS-NSE(f0) INST=(00,ff,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
131 | <0005> abis_nm.c:398 OC=GPRS-CELL(f1) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
132 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,00,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
133 | <0005> abis_nm.c:398 OC=GPRS-NSVC(f2) INST=(00,01,ff) STATE CHG: OP_STATE=Disabled AVAIL=Not installed(07) ADM=Locked |
||
134 | 1 | laforge | <0005> abis_nm.c:398 OC=BASEBAND-TRANSCEIVER(04) INST=(00,00,ff) IPACCESS(0xf0): SET NVATTR ACK |
135 | 2 | laforge | Set the NV Attributes. |
136 | }}} |
||
137 | where ''192.168.100.11'' is the IP address of your BSC, and ''192.168.100.193'' is once again the IP address of the BTS itself. |
||
138 | |||
139 | From this point on, the BTS should try to make TCP connections to 192.168.100.11 TCP Port 3002. You can verify this in |
||
140 | tcpdump or wireshark. |
||
141 | |||
142 | 3 | laforge | Once you start OpenBSC ([wiki:osmo-nitb] or [wiki:osmo-bsc] on the machine that owns the specified IP address (192.168.100.11 in the example above), |
143 | 2 | laforge | the BTS should connect to OpenBSC and you should see something like this in the OpenBSC log file: |
144 | {{{ |
||
145 | <000d> input/ipaccess.c:696 accept()ed new OML link from 192.168.100.193 |
||
146 | }}} |