Project

General

Profile

Virtual Um » History » Version 2

laforge, 07/19/2017 03:11 PM
add graphviz drawings

1 1 laforge
h1. Virtual Um
2 1 laforge
3 1 laforge
In July 2017, the Osmocom project has inroduced a _Virtual Um interface_ (i.e. virtual radio layer) between [[OsmoBTS:]] and [[OsmocomBB:]].  This allows us to run a complete GSM network with 1-N BTSs and 1-M MSs without any actual radio hardware, which is of course excellent for all kinds of testing scenarios.
4 1 laforge
5 1 laforge
The Virtual Um layer is based on sending L2 frames (blocks) encapsulated via GSMTAP UDP multicast packets.  There are two separate multicast groups, one for uplink and one for downlink.  The multicast nature simulates the shared medium and enables any simulated phone to receive the signal from multiple BTSs via the downlink multicast group.
6 1 laforge
7 1 laforge
In [[OsmoBTS:]], this is implemented via the new @osmo-bts-virtual@ BTS model.
8 1 laforge
9 1 laforge
In [[OsmocomBB:]], this is realized by adding @virtphy@ virtual L1, which speask the same [[OsmocomBB:L1A_L23_Interface|L1CTL]] protocol that is used between the _real_ OsmcoomBB Layer1 and the Layer2/3 programs such as [[OsmocomBB:Mobile] and the like.
10 1 laforge
11 1 laforge
This page describes how to set up the Virtual Um layer.  It assumes that you are famliar with classic operation of [[OsmocomBB:]] and [[OsmoBTS:]] and [[OsmoNITB:]] with a real radio layer.  In case of doubt, look at the genric documentation and tutorials for real RF hardware.
12 1 laforge
13 1 laforge
h1. The big picture
14 1 laforge
15 2 laforge
h2. Using OsmoNITB
16 1 laforge
17 2 laforge
{{graphviz_link()
18 2 laforge
digraph G {
19 2 laforge
  rankdir = LR;
20 2 laforge
  bts [label="osmo-bts-virtual"];
21 2 laforge
  mobile [label="OsmocomBB mobile"];
22 2 laforge
  network [label="GSMTAP multicast\nUDP/IP" shape="diamond"];
23 2 laforge
  subgraph cluster_ms {
24 2 laforge
    label = "Mobile Station side"
25 2 laforge
    mobile -> virtphy
26 2 laforge
  }
27 2 laforge
  virtphy -> network
28 2 laforge
  network -> bts
29 2 laforge
  subgraph cluster_net {
30 2 laforge
    label = "Network side"
31 2 laforge
    bts -> OsmoNITB
32 2 laforge
  }
33 2 laforge
}
34 2 laforge
}}
35 2 laforge
36 2 laforge
h2. Using OsmoBSC, OsmoMSC, OsmoHLR
37 2 laforge
38 2 laforge
{{graphviz_link()
39 2 laforge
digraph G {
40 2 laforge
  rankdir = LR;
41 2 laforge
  bts [label="osmo-bts-virtual"];
42 2 laforge
  mobile [label="OsmocomBB mobile"];
43 2 laforge
  network [label="GSMTAP multicast\nUDP/IP" shape="diamond"];
44 2 laforge
  subgraph cluster_ms {
45 2 laforge
    label = "Mobile Station side"
46 2 laforge
    mobile -> virtphy
47 2 laforge
  }
48 2 laforge
  virtphy -> network
49 2 laforge
  network -> bts
50 2 laforge
  subgraph cluster_net {
51 2 laforge
    label = "Network side"
52 2 laforge
    bts -> OsmoBSC
53 2 laforge
    OsmoBSC -> OsmoMSC
54 2 laforge
    OsmoMSC -> OsmoHLR
55 2 laforge
  }
56 2 laforge
}
57 2 laforge
}}
58 1 laforge
59 1 laforge
h1. The BTS side
60 1 laforge
61 1 laforge
62 1 laforge
h1. The MS side