mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-bts.git
synced 2025-11-07 15:43:25 +00:00
Compare commits
1962 Commits
0.0.1
...
laforge/tm
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30afa983e1 | ||
|
|
2bb3d23f87 | ||
|
|
ee8f4b0a91 | ||
|
|
24e702b7d0 | ||
|
|
66c17cfc2d | ||
|
|
a2392f0f9e | ||
|
|
e1766f1b7d | ||
|
|
7544f5a45b | ||
|
|
99ba515985 | ||
|
|
397a43c38a | ||
|
|
e571fd60e6 | ||
|
|
80f9b84a64 | ||
|
|
bd3eabc13e | ||
|
|
6bb700e9d2 | ||
|
|
e3a4530919 | ||
|
|
0d8cd8ce39 | ||
|
|
3cb61d902c | ||
|
|
a070e863e2 | ||
|
|
1d9f6efccb | ||
|
|
522fc939e0 | ||
|
|
595eb576fc | ||
|
|
5c5ad3cb4a | ||
|
|
ae5e1d7110 | ||
|
|
19857fbdaa | ||
|
|
8a98255fb5 | ||
|
|
b37b3263a9 | ||
|
|
c693067b7e | ||
|
|
d0a2caa021 | ||
|
|
38c12e9df9 | ||
|
|
2149b0ff47 | ||
|
|
f0e66d90f8 | ||
|
|
e717aec2f7 | ||
|
|
869091011c | ||
|
|
18bfa91a26 | ||
|
|
e5e1226301 | ||
|
|
d8d459c7e2 | ||
|
|
d93669289b | ||
|
|
80f2bc4855 | ||
|
|
000b13ef52 | ||
|
|
a9d88af594 | ||
|
|
132987daf4 | ||
|
|
3533c3f6ad | ||
|
|
725b3158e2 | ||
|
|
5a60287e44 | ||
|
|
1e9d4feba5 | ||
|
|
a456f2bd15 | ||
|
|
be1651bb51 | ||
|
|
e4abc63e42 | ||
|
|
583f2b86c9 | ||
|
|
fc5f20a713 | ||
|
|
b378fccef1 | ||
|
|
b58fb35754 | ||
|
|
8ff35d3c91 | ||
|
|
5fee4d1ff5 | ||
|
|
a4c54b531c | ||
|
|
df51be6329 | ||
|
|
d73832bc35 | ||
|
|
2cbdeba5cf | ||
|
|
43a8ed2b55 | ||
|
|
d8284eec63 | ||
|
|
eb43c947c1 | ||
|
|
29e47ffc20 | ||
|
|
d7103f9172 | ||
|
|
91fc2b9e30 | ||
|
|
e83c1196b8 | ||
|
|
1c6a56fb97 | ||
|
|
dc4d36d7bb | ||
|
|
b6be055e6b | ||
|
|
ca574b19d3 | ||
|
|
9e1f0e1a13 | ||
|
|
96cb0c54a9 | ||
|
|
4b72ee924c | ||
|
|
520954cd93 | ||
|
|
accbf5bc73 | ||
|
|
972c243146 | ||
|
|
41c7b05283 | ||
|
|
0772cd0460 | ||
|
|
df5b813c0f | ||
|
|
76837bddb7 | ||
|
|
16da58d0c0 | ||
|
|
ccf9498865 | ||
|
|
35d4291a5e | ||
|
|
c91997b2cc | ||
|
|
474eeed78d | ||
|
|
a1f2b6931b | ||
|
|
b86e9260e8 | ||
|
|
3061e1d14a | ||
|
|
ec228cc08c | ||
|
|
e6a72c2b80 | ||
|
|
454b034521 | ||
|
|
9d5acaad5c | ||
|
|
af2a8a6c81 | ||
|
|
faf861b881 | ||
|
|
2588b2abf6 | ||
|
|
f53fde91a3 | ||
|
|
cb57028d52 | ||
|
|
fc917d91bf | ||
|
|
258856b329 | ||
|
|
ca8aa07127 | ||
|
|
f9e67f44d4 | ||
|
|
b4d8f5cf13 | ||
|
|
cb0cb897ad | ||
|
|
e8e864b219 | ||
|
|
89f06e6c54 | ||
|
|
160b624da8 | ||
|
|
291468694b | ||
|
|
e6372cff1b | ||
|
|
aa54224e56 | ||
|
|
4ff47ff39a | ||
|
|
b777c0f3ec | ||
|
|
9649a42d5a | ||
|
|
db6c786350 | ||
|
|
37ea11e072 | ||
|
|
33ed0f8876 | ||
|
|
2131a7931e | ||
|
|
af6f39025f | ||
|
|
1ea7fd0609 | ||
|
|
dc48fd8810 | ||
|
|
54e104496a | ||
|
|
01cc8c0d21 | ||
|
|
55dbafc497 | ||
|
|
139b8caa79 | ||
|
|
e059aa3db7 | ||
|
|
04e980dd10 | ||
|
|
7d1d294807 | ||
|
|
3f2283cd3c | ||
|
|
a99c41bac5 | ||
|
|
b06cd9f439 | ||
|
|
d1e7d0dafa | ||
|
|
b5c23092c7 | ||
|
|
f2271d0888 | ||
|
|
5b9212d6c5 | ||
|
|
876edd5e35 | ||
|
|
5a3eb6470d | ||
|
|
46d62b984a | ||
|
|
1ff0a2addd | ||
|
|
8ea9ba6af8 | ||
|
|
b24ef23570 | ||
|
|
01c539284e | ||
|
|
2dec9fff1c | ||
|
|
8576477de1 | ||
|
|
a52c78dd3e | ||
|
|
f6b6c48c8b | ||
|
|
aaca1217be | ||
|
|
8ec940ce9a | ||
|
|
9d083ab236 | ||
|
|
e50903df9d | ||
|
|
e05279a296 | ||
|
|
5abae93dad | ||
|
|
34711de016 | ||
|
|
1e96e31c10 | ||
|
|
347fea69a0 | ||
|
|
9ef6fa0798 | ||
|
|
0cb2829f17 | ||
|
|
dfa3bb8a10 | ||
|
|
b8265c63cc | ||
|
|
7f1b61df5f | ||
|
|
f2419bf8c3 | ||
|
|
03e3fae639 | ||
|
|
095654d361 | ||
|
|
b1a9a77727 | ||
|
|
839b0f264f | ||
|
|
bf5d8eed11 | ||
|
|
29aee05f75 | ||
|
|
b07e271994 | ||
|
|
482564b422 | ||
|
|
590b23ce3c | ||
|
|
d7be09caf8 | ||
|
|
57f9a279e0 | ||
|
|
519f588715 | ||
|
|
396dc59ae8 | ||
|
|
0f9595f462 | ||
|
|
067824841f | ||
|
|
89bfea63c9 | ||
|
|
5567d71d39 | ||
|
|
0b682f4997 | ||
|
|
dde2f1d5cf | ||
|
|
8294368b23 | ||
|
|
7240062b75 | ||
|
|
1873a30a4a | ||
|
|
bac9224b3b | ||
|
|
d96fd011d6 | ||
|
|
2f251843f9 | ||
|
|
ad7b8bee71 | ||
|
|
c6c2aa9ecd | ||
|
|
a7ee918284 | ||
|
|
5b1c1b2184 | ||
|
|
5f9e42a891 | ||
|
|
9354474b0f | ||
|
|
27ee75e4c0 | ||
|
|
038a1fa047 | ||
|
|
5efbd4e862 | ||
|
|
40b1b4b20d | ||
|
|
57e26c3e16 | ||
|
|
ab5eff60e1 | ||
|
|
19bd4f818d | ||
|
|
d16b69f29e | ||
|
|
43033e6923 | ||
|
|
d16322f5ed | ||
|
|
77b98d4a16 | ||
|
|
d1e9ded94d | ||
|
|
b873b91c5f | ||
|
|
ac3924e093 | ||
|
|
73d174e35f | ||
|
|
720971c6a0 | ||
|
|
620c74b7fe | ||
|
|
a89581b22d | ||
|
|
668d20cc1d | ||
|
|
45a8d4b2be | ||
|
|
41723e1508 | ||
|
|
945c09381d | ||
|
|
a5a03d6b35 | ||
|
|
891ba1568a | ||
|
|
c49df5d144 | ||
|
|
749b878eb1 | ||
|
|
2f5e7093bf | ||
|
|
dd7cc3cc7c | ||
|
|
7b96b8832f | ||
|
|
eac4d23421 | ||
|
|
a4332be9e9 | ||
|
|
6bc6d78b36 | ||
|
|
965b911583 | ||
|
|
708adf1a1f | ||
|
|
3dd90a09e4 | ||
|
|
fc17dc763f | ||
|
|
f748c4530c | ||
|
|
b509023d34 | ||
|
|
de3262fd27 | ||
|
|
5eddf98dfc | ||
|
|
b3fb33adea | ||
|
|
d8afcc143a | ||
|
|
6b5bbee25f | ||
|
|
546056c9c8 | ||
|
|
f3fa1d384d | ||
|
|
45b9021eb8 | ||
|
|
b3e7a888c9 | ||
|
|
3713b59368 | ||
|
|
f788aefe6f | ||
|
|
12d362fe09 | ||
|
|
fa8b9e2aa3 | ||
|
|
de9e2092c9 | ||
|
|
3933e930c3 | ||
|
|
906357c5e2 | ||
|
|
e160ac6ea5 | ||
|
|
96bded3ebd | ||
|
|
ccc7ba17c0 | ||
|
|
055c29bc6b | ||
|
|
e57a62deee | ||
|
|
268ba55a6e | ||
|
|
742dad5b69 | ||
|
|
02231177a9 | ||
|
|
893e499e0c | ||
|
|
3c89e2c36a | ||
|
|
9c9232c993 | ||
|
|
5c205639f1 | ||
|
|
3bf27cefbb | ||
|
|
e8ebbe300c | ||
|
|
e1dade0471 | ||
|
|
5a266511bf | ||
|
|
a4649308eb | ||
|
|
5c93677be5 | ||
|
|
5d9cb9f555 | ||
|
|
a4f5622408 | ||
|
|
3379250b51 | ||
|
|
719c6a9135 | ||
|
|
8564ececa5 | ||
|
|
17ffb08de0 | ||
|
|
fc88d8e7dc | ||
|
|
9c4a6facdb | ||
|
|
c606103d9f | ||
|
|
19ff607e99 | ||
|
|
11465b5ba1 | ||
|
|
26701bbe85 | ||
|
|
0133b65da1 | ||
|
|
b7eaf282dd | ||
|
|
473be4f89f | ||
|
|
9bcda3742d | ||
|
|
094b22ea82 | ||
|
|
035d209809 | ||
|
|
446f368fd0 | ||
|
|
0a421119c8 | ||
|
|
ea9d5b9499 | ||
|
|
2283831b64 | ||
|
|
eaef0af3a2 | ||
|
|
fa53c9eafe | ||
|
|
683b775c7a | ||
|
|
7000ef5dea | ||
|
|
3b835505bf | ||
|
|
8a1dfa0b77 | ||
|
|
f87f1113ca | ||
|
|
dd4160e003 | ||
|
|
08b14a2fac | ||
|
|
5fd42960d6 | ||
|
|
dbb4c0389e | ||
|
|
932f6753d1 | ||
|
|
a9b521e2cb | ||
|
|
d61b59bb18 | ||
|
|
d7f1457bed | ||
|
|
529c1f04cb | ||
|
|
8be01aac1e | ||
|
|
c1ac0d8b6a | ||
|
|
2c160a5dc4 | ||
|
|
a4683812ed | ||
|
|
8580b9717f | ||
|
|
236e9d575e | ||
|
|
3537fa6224 | ||
|
|
8b633e885b | ||
|
|
e332b4ca4e | ||
|
|
de954a1aa0 | ||
|
|
e834518123 | ||
|
|
9c74ccc4c8 | ||
|
|
2729bcfb93 | ||
|
|
ad4866b35f | ||
|
|
00d13cf84c | ||
|
|
00ad09612e | ||
|
|
e10b4d3713 | ||
|
|
51c04e0fd7 | ||
|
|
7a3ec76a2f | ||
|
|
c03c9c81fb | ||
|
|
47d5ba4012 | ||
|
|
a998d1040a | ||
|
|
8f1eae6642 | ||
|
|
b14f6569fd | ||
|
|
e61a2eb734 | ||
|
|
1454a2c752 | ||
|
|
bfb1257dce | ||
|
|
e0064a8d2a | ||
|
|
d7c4778aca | ||
|
|
f450f40c12 | ||
|
|
0078ba7af2 | ||
|
|
391c057769 | ||
|
|
524fdd3ac8 | ||
|
|
a6a18b66ee | ||
|
|
e3cb8715f5 | ||
|
|
47c8f37c9f | ||
|
|
3c12325d28 | ||
|
|
133a3d96dc | ||
|
|
52fdef79cc | ||
|
|
ecfb83d3cc | ||
|
|
faf501e432 | ||
|
|
70eb683622 | ||
|
|
07af4e1751 | ||
|
|
6dacc35c75 | ||
|
|
36a61df7a6 | ||
|
|
825797cfcb | ||
|
|
9d17840f83 | ||
|
|
fc2ff394e0 | ||
|
|
20284c4dbc | ||
|
|
0716a20f98 | ||
|
|
116ac855cc | ||
|
|
eebb6a4216 | ||
|
|
e5f4654ee3 | ||
|
|
2910b78305 | ||
|
|
9c75c387c0 | ||
|
|
ee9e8e9eb2 | ||
|
|
34018dd4c9 | ||
|
|
e6ce1718ae | ||
|
|
44bfa4c7fd | ||
|
|
2fb4a8d825 | ||
|
|
0bbc56b8f3 | ||
|
|
84f3ec644a | ||
|
|
36413548e0 | ||
|
|
2d21c9ff22 | ||
|
|
3ee09a47c1 | ||
|
|
173555dab7 | ||
|
|
2c1a46a2dd | ||
|
|
85485c3db4 | ||
|
|
eeba57652a | ||
|
|
4e3fdbc738 | ||
|
|
73dd4ff027 | ||
|
|
080302f870 | ||
|
|
b9f3e14ba6 | ||
|
|
9ce4d91948 | ||
|
|
b222f6666d | ||
|
|
6434ba9f90 | ||
|
|
c799c70c59 | ||
|
|
3c87f5c3ea | ||
|
|
3941cf4479 | ||
|
|
7c82b4a872 | ||
|
|
19795c5ab2 | ||
|
|
a8041edb5b | ||
|
|
5fceb9fc3a | ||
|
|
0c1ca01084 | ||
|
|
755088a79c | ||
|
|
27a86005f3 | ||
|
|
c78759055a | ||
|
|
6d701d0e05 | ||
|
|
8a6f6c5a16 | ||
|
|
65d3cc7753 | ||
|
|
17577b7c00 | ||
|
|
734eb40e72 | ||
|
|
cb01259804 | ||
|
|
386c33fa84 | ||
|
|
d9a1cd994c | ||
|
|
02d99db08b | ||
|
|
4280829dfa | ||
|
|
dcde6145bf | ||
|
|
cfc052743b | ||
|
|
0b6c1762c5 | ||
|
|
bd3462f355 | ||
|
|
bf87717cc8 | ||
|
|
9680a4746f | ||
|
|
fb70a2edda | ||
|
|
42495a156d | ||
|
|
324a3cd66e | ||
|
|
9b41b36e97 | ||
|
|
76c292ea5d | ||
|
|
510158256b | ||
|
|
1dcd63d36a | ||
|
|
9f5203d243 | ||
|
|
02c79f12a4 | ||
|
|
08062e6dcc | ||
|
|
0e11bea2a7 | ||
|
|
0b2893f6fc | ||
|
|
092e4e85b3 | ||
|
|
9bffa87c11 | ||
|
|
0ab50934d5 | ||
|
|
4553890d70 | ||
|
|
9feddb7edf | ||
|
|
b5a28bd967 | ||
|
|
829263afc4 | ||
|
|
1c3240c2f1 | ||
|
|
2222091560 | ||
|
|
5d17b97a5b | ||
|
|
6575f0c3e9 | ||
|
|
eee7247ebe | ||
|
|
ed9a13e670 | ||
|
|
20278252b5 | ||
|
|
e04e4d423d | ||
|
|
319b1d5bd7 | ||
|
|
a9a35419ed | ||
|
|
91e7bd7d30 | ||
|
|
a1f09d9105 | ||
|
|
500b7945f0 | ||
|
|
2cefb87a48 | ||
|
|
46491d15cd | ||
|
|
cf55fbede9 | ||
|
|
b7b5c4219c | ||
|
|
685ded1929 | ||
|
|
0257f52835 | ||
|
|
954e4d8321 | ||
|
|
9215f76443 | ||
|
|
70fb6d70b1 | ||
|
|
74fce9e12d | ||
|
|
ba3fa11ae2 | ||
|
|
5fd4aaaebb | ||
|
|
63051b96cc | ||
|
|
31b113774b | ||
|
|
d03f311406 | ||
|
|
f926d9549c | ||
|
|
db330522ea | ||
|
|
868c67fed3 | ||
|
|
a1a2556c2a | ||
|
|
ef1356c06c | ||
|
|
44a35902ad | ||
|
|
f1e2d08022 | ||
|
|
ae3da5f8c3 | ||
|
|
19080d531f | ||
|
|
5a0f85d00b | ||
|
|
33da462a2b | ||
|
|
6a9a799c9c | ||
|
|
e152fd2614 | ||
|
|
d241f98262 | ||
|
|
95d66c2d68 | ||
|
|
8b70d9f749 | ||
|
|
09e49eed61 | ||
|
|
2f54c5f297 | ||
|
|
ff7eb840ad | ||
|
|
ba7ed220be | ||
|
|
0958278fb9 | ||
|
|
8799619d27 | ||
|
|
6bdbf67273 | ||
|
|
c0b7193bae | ||
|
|
94b093bffd | ||
|
|
ac5e2bc329 | ||
|
|
ca262ffa73 | ||
|
|
e25d00f10a | ||
|
|
c45a04bf58 | ||
|
|
c7b206e850 | ||
|
|
4ad781412e | ||
|
|
5a8c0b2b5d | ||
|
|
12ee1e12b3 | ||
|
|
71fa788bc8 | ||
|
|
261b6fdc8f | ||
|
|
69d0d50677 | ||
|
|
dd4a6518f2 | ||
|
|
e5518b07d6 | ||
|
|
6496edd2e9 | ||
|
|
254326de3d | ||
|
|
d4c346a931 | ||
|
|
113e30cb06 | ||
|
|
091fcf147a | ||
|
|
f038b73520 | ||
|
|
d16b0adef3 | ||
|
|
ec674ac745 | ||
|
|
5f17e6138e | ||
|
|
f397993340 | ||
|
|
5b51fe78b4 | ||
|
|
caeef44699 | ||
|
|
553535f87b | ||
|
|
6d0c67684c | ||
|
|
d8cd756da4 | ||
|
|
7c4a22dbc4 | ||
|
|
5cef5056ff | ||
|
|
fbf0eac21b | ||
|
|
5b8889ce6b | ||
|
|
7d648b4657 | ||
|
|
f72bdfaaa9 | ||
|
|
02d1fe87f0 | ||
|
|
29cd7a8408 | ||
|
|
58a95ac799 | ||
|
|
c2045474b1 | ||
|
|
7eed026efc | ||
|
|
4e959b2aa0 | ||
|
|
1ef544ea24 | ||
|
|
4f14804f8a | ||
|
|
0dfe137009 | ||
|
|
53bdf4d949 | ||
|
|
10aa1cd6f6 | ||
|
|
8a28868b29 | ||
|
|
2f052f33de | ||
|
|
16929dc75c | ||
|
|
4046e3b3dd | ||
|
|
f03a3a584c | ||
|
|
94a74e1b1c | ||
|
|
80dddfd90d | ||
|
|
cb0a076728 | ||
|
|
d5988d27e9 | ||
|
|
0be8200455 | ||
|
|
bae7af9c13 | ||
|
|
70a0ee56f7 | ||
|
|
e1ff92b8dd | ||
|
|
5bd6132c04 | ||
|
|
916d508bf6 | ||
|
|
acefd0586e | ||
|
|
c092f4e1de | ||
|
|
d5bbd8ccf7 | ||
|
|
b3a2a3e24f | ||
|
|
c2b4c668f3 | ||
|
|
b60d9e9464 | ||
|
|
0d6c3e8110 | ||
|
|
3a80a56b9b | ||
|
|
6381900677 | ||
|
|
bcc20a871c | ||
|
|
591c8993e9 | ||
|
|
f100992a20 | ||
|
|
49a8969bd6 | ||
|
|
de3b4a248e | ||
|
|
989f779cfc | ||
|
|
9c4ea743fd | ||
|
|
756bfca599 | ||
|
|
681be20a8c | ||
|
|
42c50727b5 | ||
|
|
d3875a8fcb | ||
|
|
84de287da0 | ||
|
|
d7f8a1c16e | ||
|
|
c113501513 | ||
|
|
19da7fdea8 | ||
|
|
6e92255cc7 | ||
|
|
fc169ba7bb | ||
|
|
815ff00d23 | ||
|
|
aa9ce821a0 | ||
|
|
1effad1004 | ||
|
|
2de8f6c7ec | ||
|
|
b82b81b256 | ||
|
|
a38deee5f1 | ||
|
|
232f53adf0 | ||
|
|
ac0254c000 | ||
|
|
6eb3752511 | ||
|
|
22c07d1f1f | ||
|
|
04719d19b9 | ||
|
|
a4bca11555 | ||
|
|
b93748a170 | ||
|
|
bfe9af4ae1 | ||
|
|
e0bfd675d1 | ||
|
|
4847a1688b | ||
|
|
5e60186bec | ||
|
|
df72b1fdbd | ||
|
|
0829a1704e | ||
|
|
7cf144b27d | ||
|
|
ca6021fa5d | ||
|
|
bf1fea0928 | ||
|
|
efa55a4541 | ||
|
|
54be46949e | ||
|
|
98f3f70079 | ||
|
|
9955cc4306 | ||
|
|
c2e3ff58bc | ||
|
|
322cfc4942 | ||
|
|
aa0f964ce2 | ||
|
|
50cc22a30c | ||
|
|
845e995b5a | ||
|
|
40ec238762 | ||
|
|
f9d19ee85c | ||
|
|
1948aeb269 | ||
|
|
6dcbe4836a | ||
|
|
bbb23cfc5b | ||
|
|
61da9b3d2c | ||
|
|
131db780cc | ||
|
|
5cef0623ef | ||
|
|
40c05f07f4 | ||
|
|
7d62629ca2 | ||
|
|
75d0fcdfcd | ||
|
|
0e176264f4 | ||
|
|
d6d4b50911 | ||
|
|
5675afa6b9 | ||
|
|
cedad415fc | ||
|
|
e5b613d29b | ||
|
|
2d1f53439b | ||
|
|
71506d70d7 | ||
|
|
d11e8cf341 | ||
|
|
f5a810d6f7 | ||
|
|
e95ad79d6c | ||
|
|
8c1d157643 | ||
|
|
1f80e9815f | ||
|
|
9a57c7bed4 | ||
|
|
63948b033d | ||
|
|
f37fcc9c7b | ||
|
|
e91723a967 | ||
|
|
e81347f216 | ||
|
|
d1f0a7e927 | ||
|
|
bef6eae05b | ||
|
|
5df57cb84c | ||
|
|
ef8cdfbacb | ||
|
|
f28b660666 | ||
|
|
1adfc52a72 | ||
|
|
667b0f1fe5 | ||
|
|
a11d8e95ee | ||
|
|
0bac3efc17 | ||
|
|
3c96db29fa | ||
|
|
035fc9a134 | ||
|
|
8f12047157 | ||
|
|
4a43618332 | ||
|
|
4848c2c445 | ||
|
|
33942ed156 | ||
|
|
4b4c2ec4b3 | ||
|
|
62b575db67 | ||
|
|
28cb32a74b | ||
|
|
6f9d76e66c | ||
|
|
5b70bb673d | ||
|
|
70c4dc8d70 | ||
|
|
be4a208809 | ||
|
|
5112c45d22 | ||
|
|
a7bfb6c8da | ||
|
|
57ce53d8aa | ||
|
|
6b264c5344 | ||
|
|
cbcd3c5034 | ||
|
|
62a6a2680f | ||
|
|
41d471351f | ||
|
|
478f2f7696 | ||
|
|
536ebeed08 | ||
|
|
f78caac25c | ||
|
|
2564756296 | ||
|
|
80117acba6 | ||
|
|
14566e3ced | ||
|
|
bb8037b7eb | ||
|
|
8e202b595c | ||
|
|
d8d402099f | ||
|
|
6733906f62 | ||
|
|
a73177b190 | ||
|
|
b1f5c71da6 | ||
|
|
a5ed03fe5c | ||
|
|
6bf97927f1 | ||
|
|
a39dab4b7c | ||
|
|
2757cbc2a8 | ||
|
|
9982b95069 | ||
|
|
bf9298eb0f | ||
|
|
fe291a97c2 | ||
|
|
36fa0bd079 | ||
|
|
0a21b7a5f8 | ||
|
|
0c9bc5422a | ||
|
|
8c9bc5c6c7 | ||
|
|
3552247ae8 | ||
|
|
2d3aa02ba3 | ||
|
|
236269397e | ||
|
|
d49915eccf | ||
|
|
ec33b0397f | ||
|
|
8a89c7d3c3 | ||
|
|
ab4696bb2f | ||
|
|
9605b695fa | ||
|
|
ae134f896a | ||
|
|
cb9f608094 | ||
|
|
9e36dca82a | ||
|
|
bbf6c435f6 | ||
|
|
6384c73fbf | ||
|
|
fab4efdaf5 | ||
|
|
1283e3d543 | ||
|
|
b026d38703 | ||
|
|
8876a507ff | ||
|
|
aa11997480 | ||
|
|
9a30b77813 | ||
|
|
01e84be54f | ||
|
|
2bbf98afa3 | ||
|
|
4d5df2ebd1 | ||
|
|
ed662e0799 | ||
|
|
b0578dda95 | ||
|
|
d4450051fc | ||
|
|
b78fc1eeee | ||
|
|
69ec4a419e | ||
|
|
506a7f98b2 | ||
|
|
fb78397cbd | ||
|
|
fe6c75d24a | ||
|
|
bd65b72f91 | ||
|
|
cd1b08b14f | ||
|
|
bc56094cac | ||
|
|
de99be4afb | ||
|
|
d1f8001cdf | ||
|
|
6fe823a7e1 | ||
|
|
d208132ab9 | ||
|
|
dc469994f3 | ||
|
|
82987f7a7d | ||
|
|
d6da809d2f | ||
|
|
69e0461674 | ||
|
|
bbd4d54e46 | ||
|
|
8edfe03595 | ||
|
|
cbb64cffa5 | ||
|
|
824764fa6b | ||
|
|
db4ab8e5ce | ||
|
|
69de62a573 | ||
|
|
9dccaa2064 | ||
|
|
0ebf985492 | ||
|
|
8785978c37 | ||
|
|
0e9dadc3d8 | ||
|
|
d7546ed090 | ||
|
|
f66d2fc1e6 | ||
|
|
2d2fca4342 | ||
|
|
b2bbc81921 | ||
|
|
91cecc051a | ||
|
|
173a4f1f79 | ||
|
|
f690e5d45c | ||
|
|
a59fb6220b | ||
|
|
df07f0a9cb | ||
|
|
3617fd1cb6 | ||
|
|
e0e2b9e303 | ||
|
|
576408b651 | ||
|
|
e3b8279f26 | ||
|
|
6feae225eb | ||
|
|
3cda4ff532 | ||
|
|
1f45db0ff5 | ||
|
|
81335edae3 | ||
|
|
5eb17e28ac | ||
|
|
152c2f489c | ||
|
|
9a2187e7b1 | ||
|
|
65db0f5c41 | ||
|
|
9a280eba48 | ||
|
|
7887ce7aea | ||
|
|
6a538a0921 | ||
|
|
390742b3ed | ||
|
|
f06ba300c4 | ||
|
|
ffdc05bc4e | ||
|
|
c2d3f14bfb | ||
|
|
f588b5f91d | ||
|
|
0bd7a19114 | ||
|
|
aa15504097 | ||
|
|
3ae0be0f12 | ||
|
|
523ae04e5e | ||
|
|
171d80a8d6 | ||
|
|
8baa45a8e3 | ||
|
|
3902e4d9c4 | ||
|
|
9b97d0f683 | ||
|
|
a38d34112f | ||
|
|
cc1602f592 | ||
|
|
f2eaba8869 | ||
|
|
cdf20fec7c | ||
|
|
bb71947829 | ||
|
|
c19ab9ed2f | ||
|
|
7738f5282f | ||
|
|
0ada527bc0 | ||
|
|
dd3c7815a5 | ||
|
|
b7425f3642 | ||
|
|
8d645dd0e5 | ||
|
|
250d77f8df | ||
|
|
53ce11ab95 | ||
|
|
59d0c2cca6 | ||
|
|
5047fbe3b8 | ||
|
|
521ab50dcc | ||
|
|
ae7ece1064 | ||
|
|
4962ed1811 | ||
|
|
d0846651a3 | ||
|
|
620bd83b12 | ||
|
|
2a4c5fa2b3 | ||
|
|
4699ebaa26 | ||
|
|
7a6b178fc0 | ||
|
|
53216b5d1f | ||
|
|
50f8165540 | ||
|
|
61f9158eaf | ||
|
|
1ba0cfe9c0 | ||
|
|
9d294c9cb1 | ||
|
|
5466ff9c1b | ||
|
|
94bdcfd803 | ||
|
|
114293a414 | ||
|
|
d4806db1e5 | ||
|
|
71ad40c647 | ||
|
|
5b87144f91 | ||
|
|
d5971d0681 | ||
|
|
aa5edff477 | ||
|
|
f4544573f8 | ||
|
|
186c6bac07 | ||
|
|
340cff51f4 | ||
|
|
0b7a3e9f62 | ||
|
|
0227e4d04c | ||
|
|
61d36212b1 | ||
|
|
de9357251c | ||
|
|
b7793ed8fd | ||
|
|
1dcbee3420 | ||
|
|
78a5073dfb | ||
|
|
16b8f51839 | ||
|
|
0e7886d379 | ||
|
|
3e2de526b0 | ||
|
|
88b2cc30a6 | ||
|
|
67d3b8b136 | ||
|
|
95d2505e57 | ||
|
|
d22b5b84c0 | ||
|
|
d5fdcfe6d9 | ||
|
|
e3a3906ee9 | ||
|
|
8a8d73a691 | ||
|
|
d36b3a8463 | ||
|
|
e91cd2b088 | ||
|
|
9eeb0b1a13 | ||
|
|
a8bf666a09 | ||
|
|
cb5a969a45 | ||
|
|
450714b19c | ||
|
|
43c763f5af | ||
|
|
440930be44 | ||
|
|
05ba5c2a10 | ||
|
|
3f97e4b1fc | ||
|
|
538475259c | ||
|
|
524e3e3170 | ||
|
|
ed9e022eb4 | ||
|
|
a493ce9e66 | ||
|
|
031e8fedac | ||
|
|
b4c9c8f35d | ||
|
|
ed51c3d145 | ||
|
|
72993079ed | ||
|
|
e0fb3ae52d | ||
|
|
27b022e0c4 | ||
|
|
3aeb9301f4 | ||
|
|
efbef50efc | ||
|
|
9c1d3f9606 | ||
|
|
2f028c4e2c | ||
|
|
67d8c72c2e | ||
|
|
b16eed22c7 | ||
|
|
2c841100a9 | ||
|
|
17a09507b8 | ||
|
|
e3de64cd67 | ||
|
|
22704a88e2 | ||
|
|
2d848a061e | ||
|
|
8913b29be2 | ||
|
|
028820510e | ||
|
|
9563039a2a | ||
|
|
9d5ec1af74 | ||
|
|
91685096f8 | ||
|
|
40dca8f991 | ||
|
|
d62a58dbfb | ||
|
|
322252d793 | ||
|
|
fce5b31b94 | ||
|
|
b4bf603c98 | ||
|
|
25742a5929 | ||
|
|
e4403464ed | ||
|
|
7a21dccec1 | ||
|
|
d040bf97de | ||
|
|
1fde15c8bd | ||
|
|
8e7a51d8c3 | ||
|
|
416ee3ec89 | ||
|
|
dafb363533 | ||
|
|
bbe90fd651 | ||
|
|
e16b593574 | ||
|
|
957843959d | ||
|
|
f4816fa577 | ||
|
|
a80c7024f8 | ||
|
|
b609ee879e | ||
|
|
f9eef0ce3e | ||
|
|
83c4fbc2dc | ||
|
|
f462c87581 | ||
|
|
339b9329ff | ||
|
|
9dfdf54d30 | ||
|
|
6f5e398ccb | ||
|
|
a1b891aab4 | ||
|
|
4acc98e68a | ||
|
|
758522947f | ||
|
|
64d16028eb | ||
|
|
70c68853c2 | ||
|
|
6b4c6aa375 | ||
|
|
c4ac69dcc2 | ||
|
|
b390dfb90d | ||
|
|
0418ef588c | ||
|
|
e2e0ed5a89 | ||
|
|
d5414cc30e | ||
|
|
ae50f7dac2 | ||
|
|
7a18906cfa | ||
|
|
d15dc832c9 | ||
|
|
1631266993 | ||
|
|
3c144069da | ||
|
|
69d297ce75 | ||
|
|
df5ac9aa11 | ||
|
|
13d0feb404 | ||
|
|
4ba7363286 | ||
|
|
eb4a3392e1 | ||
|
|
1beb9bcbe0 | ||
|
|
1965b0d880 | ||
|
|
67bc885c5d | ||
|
|
a760a043c4 | ||
|
|
16b4179fbe | ||
|
|
42ffb325f8 | ||
|
|
9344080109 | ||
|
|
8c45ae59f9 | ||
|
|
d81e5e963a | ||
|
|
c1d8f5a490 | ||
|
|
f65b57a707 | ||
|
|
871e0bec7e | ||
|
|
10b11325a7 | ||
|
|
8be9d7a6fe | ||
|
|
ea5ccfa481 | ||
|
|
2b763cc30c | ||
|
|
70b71507c2 | ||
|
|
c37fd88985 | ||
|
|
1e399f888e | ||
|
|
0e5b12f981 | ||
|
|
df75195666 | ||
|
|
b76043e6f4 | ||
|
|
de6d25e21d | ||
|
|
4723a19508 | ||
|
|
962b33ea9d | ||
|
|
563b744b38 | ||
|
|
792573dc97 | ||
|
|
ec11a85929 | ||
|
|
c038cb7903 | ||
|
|
94dd5060c8 | ||
|
|
2cf6b73a42 | ||
|
|
f3763590bd | ||
|
|
bfd42c2b0a | ||
|
|
f9778b2a26 | ||
|
|
c2ecca6b04 | ||
|
|
86d7843712 | ||
|
|
304420ca42 | ||
|
|
fbe655f320 | ||
|
|
fed8ce3c5a | ||
|
|
2c95ae6a09 | ||
|
|
a1fa955212 | ||
|
|
55a7b07417 | ||
|
|
960dd993cd | ||
|
|
20363d165e | ||
|
|
4a85828462 | ||
|
|
b58aa60d78 | ||
|
|
36153239bf | ||
|
|
aabeb2eae4 | ||
|
|
f4b238f91e | ||
|
|
103ddc7155 | ||
|
|
704fba5dc2 | ||
|
|
dd8a4a85e4 | ||
|
|
6f4ce14ed7 | ||
|
|
8ea93a8a7d | ||
|
|
ae5405e2a4 | ||
|
|
be671bc61f | ||
|
|
f7b559f960 | ||
|
|
b2fbdd023b | ||
|
|
66325aee71 | ||
|
|
bdf10eb705 | ||
|
|
c43352dbc4 | ||
|
|
c757272443 | ||
|
|
388a91cbd1 | ||
|
|
5ee3dba39f | ||
|
|
9f936344ea | ||
|
|
57b5fb8819 | ||
|
|
203ea2c209 | ||
|
|
38843fbf48 | ||
|
|
acfccb3f02 | ||
|
|
4008ebb925 | ||
|
|
9d102508a8 | ||
|
|
bce25a60f4 | ||
|
|
efb4a4baeb | ||
|
|
64a2bd72f5 | ||
|
|
ced9a5d0e2 | ||
|
|
5a4f4d12e1 | ||
|
|
c22da59342 | ||
|
|
068918f990 | ||
|
|
c88a10cece | ||
|
|
ebb483b69a | ||
|
|
b0c1d21581 | ||
|
|
21142f7898 | ||
|
|
b058778df1 | ||
|
|
de9dbe7958 | ||
|
|
babd05661d | ||
|
|
c09e5a44c3 | ||
|
|
93f3102da9 | ||
|
|
b8b939faa9 | ||
|
|
4ca5be766c | ||
|
|
9f9b96a67b | ||
|
|
c1b86d80d1 | ||
|
|
8b39ff8bcf | ||
|
|
f5494e84e8 | ||
|
|
3f192f2291 | ||
|
|
fac02d3d75 | ||
|
|
5f2e2de84f | ||
|
|
067ef3f1ce | ||
|
|
9959f45d90 | ||
|
|
7dffd553df | ||
|
|
94fa25295f | ||
|
|
1559678fa2 | ||
|
|
654175f33b | ||
|
|
eb08a87be5 | ||
|
|
a570e05ec8 | ||
|
|
e2069d968c | ||
|
|
c77b574d1f | ||
|
|
70460814ce | ||
|
|
527dd402c7 | ||
|
|
80473a113d | ||
|
|
0a05181603 | ||
|
|
b4969cc915 | ||
|
|
a91b2d9691 | ||
|
|
ac84afa409 | ||
|
|
d44f0772f9 | ||
|
|
3cc91746a3 | ||
|
|
c9a1f284ac | ||
|
|
ed6b48e4a5 | ||
|
|
8431bbb80f | ||
|
|
bf6bae2b23 | ||
|
|
8a148613b4 | ||
|
|
4dfc3da96b | ||
|
|
9faaf4ecf0 | ||
|
|
3b2e5de3ae | ||
|
|
988f634c97 | ||
|
|
e77bcaecb6 | ||
|
|
43d082e6f1 | ||
|
|
55c46022e1 | ||
|
|
37af36e85e | ||
|
|
63849ebf71 | ||
|
|
67a056c122 | ||
|
|
ef8e2ef681 | ||
|
|
b7cdd381d6 | ||
|
|
4b76a323b3 | ||
|
|
b0f8fa8143 | ||
|
|
44663c17e7 | ||
|
|
d6920df630 | ||
|
|
af3443385b | ||
|
|
0d4b37d641 | ||
|
|
45d3bbfb44 | ||
|
|
576071d6ca | ||
|
|
5069c1c518 | ||
|
|
108b60faba | ||
|
|
ba656fff91 | ||
|
|
2b34ae32cf | ||
|
|
53d792c3b0 | ||
|
|
dab54b9178 | ||
|
|
9407e644b0 | ||
|
|
e07ba54d62 | ||
|
|
a888e95efa | ||
|
|
dd34540ce4 | ||
|
|
7b186adb0a | ||
|
|
b0f77ce685 | ||
|
|
090a41f897 | ||
|
|
78458a3811 | ||
|
|
21ffe07894 | ||
|
|
6e656748b7 | ||
|
|
73cb583e51 | ||
|
|
c9582ac2d7 | ||
|
|
c57304b65e | ||
|
|
9ab51522da | ||
|
|
8e22ac3d1a | ||
|
|
ee2299c8fa | ||
|
|
95dec9ff4a | ||
|
|
334df9441a | ||
|
|
290c7d954f | ||
|
|
7f1365c05e | ||
|
|
2479ef4133 | ||
|
|
ae65ccd0b2 | ||
|
|
8a2f026cf0 | ||
|
|
4355021b8a | ||
|
|
2ed03cd640 | ||
|
|
cff0d44e53 | ||
|
|
b8f5f4e176 | ||
|
|
b151301c6c | ||
|
|
1c1b0e843d | ||
|
|
e3edc17426 | ||
|
|
7267a0d37e | ||
|
|
d5f95c308b | ||
|
|
bb1e3b089b | ||
|
|
c03d3ae7af | ||
|
|
5c0d88e69d | ||
|
|
4fa641d7b2 | ||
|
|
64e3813b06 | ||
|
|
9797a72cd7 | ||
|
|
99642656a0 | ||
|
|
c2874c4360 | ||
|
|
3f919171ef | ||
|
|
a4c6802315 | ||
|
|
0eaa27a6be | ||
|
|
037dcfe981 | ||
|
|
380a2e6d90 | ||
|
|
ccb1148717 | ||
|
|
724412a49a | ||
|
|
f0d6d6ba02 | ||
|
|
dd084e6e57 | ||
|
|
61372a20de | ||
|
|
c3fb0dcc8c | ||
|
|
274d29bedd | ||
|
|
7efc2f3c5b | ||
|
|
b231e0f6cd | ||
|
|
63b296bdd9 | ||
|
|
57fc1124e1 | ||
|
|
294fbe104b | ||
|
|
24a31cfe43 | ||
|
|
0d10f0e482 | ||
|
|
f8bf95fa6b | ||
|
|
e6cc04827a | ||
|
|
9375aa9a68 | ||
|
|
bfc9ff3118 | ||
|
|
6b60611a4d | ||
|
|
bc9c42663d | ||
|
|
8a75e60d0c | ||
|
|
ae2a8b75f9 | ||
|
|
3686005180 | ||
|
|
ea40bd60e7 | ||
|
|
a8168271eb | ||
|
|
e951042475 | ||
|
|
65efa691f8 | ||
|
|
6ab1ed580d | ||
|
|
213db32e30 | ||
|
|
703c2d6eb8 | ||
|
|
ecd5bc2aef | ||
|
|
7cc3c3156e | ||
|
|
58e4e18206 | ||
|
|
cbbce0be09 | ||
|
|
d0d2c9217a | ||
|
|
7158c2ed08 | ||
|
|
a55b166c6c | ||
|
|
3f3f34ba52 | ||
|
|
495fed9f43 | ||
|
|
a10ac248c6 | ||
|
|
60970056c8 | ||
|
|
8ecadc66ce | ||
|
|
9302abe054 | ||
|
|
45e97ac59a | ||
|
|
3a1f1b8e91 | ||
|
|
4582222757 | ||
|
|
c1586388dc | ||
|
|
51bfebec39 | ||
|
|
ef30f50d5d | ||
|
|
201b424b73 | ||
|
|
0778cd488a | ||
|
|
ed494443cc | ||
|
|
b61850248a | ||
|
|
c8da1ac9a6 | ||
|
|
227015e52e | ||
|
|
460e1b7387 | ||
|
|
21fc6e45fb | ||
|
|
925fcf48ed | ||
|
|
0fe3b215b9 | ||
|
|
06968beab9 | ||
|
|
ae5a737c18 | ||
|
|
c4fc00d851 | ||
|
|
3044a26d71 | ||
|
|
b857f27704 | ||
|
|
9591b6c253 | ||
|
|
bb0cc685f1 | ||
|
|
6044785a22 | ||
|
|
b2b1112a6e | ||
|
|
f3ee66207d | ||
|
|
0be80aa2d1 | ||
|
|
710e99c2e3 | ||
|
|
40e8365854 | ||
|
|
d5c658b22e | ||
|
|
91565b2d51 | ||
|
|
2278fdc580 | ||
|
|
cb20c83323 | ||
|
|
94bb3769f3 | ||
|
|
e81cc6a158 | ||
|
|
69b959e557 | ||
|
|
ad7f7a7117 | ||
|
|
81cc8cdba5 | ||
|
|
e634fd256b | ||
|
|
433863e4c9 | ||
|
|
634c3e4648 | ||
|
|
a9a7120c82 | ||
|
|
5dfb115eaf | ||
|
|
c6723c8206 | ||
|
|
3b4d9e7c07 | ||
|
|
53e0291df6 | ||
|
|
e9a17292e8 | ||
|
|
9b5cff87ec | ||
|
|
9684099ae9 | ||
|
|
38933afdd9 | ||
|
|
6a0f0f9e21 | ||
|
|
4dd8bd84a4 | ||
|
|
8f0266b885 | ||
|
|
234309878e | ||
|
|
1dcb97eaa3 | ||
|
|
29a0197ead | ||
|
|
ccc7a1bf46 | ||
|
|
b936bd7162 | ||
|
|
6e1aed4b23 | ||
|
|
2a711887b7 | ||
|
|
5a945dad0c | ||
|
|
b1d2dd316f | ||
|
|
f5b42c3421 | ||
|
|
a02bf125ac | ||
|
|
fcef6b2b52 | ||
|
|
d784e50747 | ||
|
|
f58542899a | ||
|
|
1a5b00ebe2 | ||
|
|
48726242ad | ||
|
|
67311cc1f2 | ||
|
|
b6b42d150d | ||
|
|
11db925f15 | ||
|
|
2b0e209029 | ||
|
|
5538f5cff8 | ||
|
|
5f17720fcd | ||
|
|
5d212055b7 | ||
|
|
6f9beedc48 | ||
|
|
131ab36e3a | ||
|
|
2ed116efec | ||
|
|
5f8c85bf9c | ||
|
|
3ca59512d2 | ||
|
|
111a02f214 | ||
|
|
0d19e48487 | ||
|
|
728448a7f1 | ||
|
|
0db18d030d | ||
|
|
0048a788dd | ||
|
|
611ef23700 | ||
|
|
a0192b859b | ||
|
|
ec3be11ec6 | ||
|
|
69fc57b028 | ||
|
|
32d681ab98 | ||
|
|
e60b9d1de6 | ||
|
|
3d431bb4eb | ||
|
|
5e8d8a1e75 | ||
|
|
f9de18ea15 | ||
|
|
97cb71971a | ||
|
|
dd562d84ba | ||
|
|
773ab8b2c5 | ||
|
|
69ace680dd | ||
|
|
1bdd08d07d | ||
|
|
519a639cf3 | ||
|
|
6323d2e617 | ||
|
|
601781f463 | ||
|
|
695d8eb277 | ||
|
|
5b500f5d8f | ||
|
|
2bf00d7729 | ||
|
|
12992d86dc | ||
|
|
d93bd21185 | ||
|
|
8250800d3b | ||
|
|
6d101a79a8 | ||
|
|
20e8770df0 | ||
|
|
866f9b979d | ||
|
|
3e98f942e5 | ||
|
|
7bd2251dcb | ||
|
|
0c017618cd | ||
|
|
8d198f3598 | ||
|
|
bca8d3b8f8 | ||
|
|
a9003acb1c | ||
|
|
dad89e50a2 | ||
|
|
b92100ad36 | ||
|
|
e9f12acbeb | ||
|
|
7d6860b114 | ||
|
|
056c267b89 | ||
|
|
2b7728cd9d | ||
|
|
65b4a7ba2b | ||
|
|
74269054a6 | ||
|
|
a62e3221b6 | ||
|
|
085569df55 | ||
|
|
21b020b336 | ||
|
|
e28a20a2d9 | ||
|
|
2da932c7a0 | ||
|
|
2ecbf87130 | ||
|
|
62d7502b82 | ||
|
|
2d5481da27 | ||
|
|
44bc9408b1 | ||
|
|
02337e1d1d | ||
|
|
437deb5f3a | ||
|
|
48e99fd05a | ||
|
|
3c161bb7df | ||
|
|
bbcf703be8 | ||
|
|
94da045be5 | ||
|
|
33f234f278 | ||
|
|
55d89d17b2 | ||
|
|
94a05abb98 | ||
|
|
45e597cc16 | ||
|
|
9a9ddc1203 | ||
|
|
13947b3408 | ||
|
|
1009a87f3c | ||
|
|
f1fb0fa3af | ||
|
|
caa648d92e | ||
|
|
88a31e2a99 | ||
|
|
307bfc81c1 | ||
|
|
5becc4613a | ||
|
|
b812839dfa | ||
|
|
ae525a8761 | ||
|
|
29ea40f538 | ||
|
|
e9abc5a4f3 | ||
|
|
17be7fa73b | ||
|
|
68e8b2b1d5 | ||
|
|
391ff14977 | ||
|
|
cf18dcd5fd | ||
|
|
6fceaca584 | ||
|
|
ddc0bf14d5 | ||
|
|
deb01a2652 | ||
|
|
3cfc9d5fa3 | ||
|
|
a7d0c5ef5a | ||
|
|
f39c739bd6 | ||
|
|
f66f5b3ddc | ||
|
|
c241afa87c | ||
|
|
178d618d5a | ||
|
|
c9ddb2ba22 | ||
|
|
73d3f46994 | ||
|
|
b2482a8574 | ||
|
|
812fdd92c7 | ||
|
|
ec6225e3e0 | ||
|
|
ef6eb5442c | ||
|
|
f0072a8de8 | ||
|
|
3cf28aa924 | ||
|
|
578340c7a7 | ||
|
|
3caf3b7c45 | ||
|
|
ee47913389 | ||
|
|
f5aaf523c5 | ||
|
|
8c8998e551 | ||
|
|
da0c44a9db | ||
|
|
798c1bba9d | ||
|
|
db0b93ac39 | ||
|
|
86c936cbb1 | ||
|
|
b9a917a138 | ||
|
|
6527dffc94 | ||
|
|
fb04746bce | ||
|
|
05597a7ddb | ||
|
|
82676c13ee | ||
|
|
c2ee307fd4 | ||
|
|
2e4a26a0e9 | ||
|
|
6508f21130 | ||
|
|
c5241c3aa4 | ||
|
|
c910a332b2 | ||
|
|
f62a64e440 | ||
|
|
a7f5e07712 | ||
|
|
5e2341411f | ||
|
|
917cf7018b | ||
|
|
84b9a44535 | ||
|
|
7ff22823ca | ||
|
|
9855e8bd48 | ||
|
|
219ece83a3 | ||
|
|
889890da43 | ||
|
|
23a5183767 | ||
|
|
ce0f20b597 | ||
|
|
7bd6e8b89b | ||
|
|
d692b6e054 | ||
|
|
89e36c0e64 | ||
|
|
801c182c02 | ||
|
|
7451ce29a7 | ||
|
|
450d32919a | ||
|
|
78b2080027 | ||
|
|
9de67ca962 | ||
|
|
b9880bc812 | ||
|
|
d10eaee4cc | ||
|
|
b104aed5ec | ||
|
|
cd463dd72a | ||
|
|
7d684d6866 | ||
|
|
e0959e7929 | ||
|
|
2ea68e2b7b | ||
|
|
2c8787224f | ||
|
|
74d63b7212 | ||
|
|
d0603d96e9 | ||
|
|
414faaca19 | ||
|
|
7a0d11dd68 | ||
|
|
cd0581d815 | ||
|
|
1de7085d31 | ||
|
|
acc71ffb4b | ||
|
|
c64fa4f888 | ||
|
|
79bc80102c | ||
|
|
5fa388c366 | ||
|
|
75f105bbb5 | ||
|
|
2340b88ede | ||
|
|
329085a8ff | ||
|
|
819b50e1a7 | ||
|
|
f449842053 | ||
|
|
9cfbf27d4c | ||
|
|
a450ef73ed | ||
|
|
04b5d65575 | ||
|
|
90e543bd83 | ||
|
|
75caaf2949 | ||
|
|
5027e122a8 | ||
|
|
a313bb0a47 | ||
|
|
923e324abc | ||
|
|
bac087c207 | ||
|
|
80f039973e | ||
|
|
3a381367a6 | ||
|
|
12472df8f0 | ||
|
|
7cc199ea95 | ||
|
|
793e713c4b | ||
|
|
faba84b9b7 | ||
|
|
7cf313c75b | ||
|
|
21b5e6318e | ||
|
|
4fe00da9f8 | ||
|
|
75be092b99 | ||
|
|
c9441b3c0b | ||
|
|
ace9a8742f | ||
|
|
54eceac257 | ||
|
|
d410eb9787 | ||
|
|
9ae5b50d78 | ||
|
|
52476fc1d4 | ||
|
|
e969f08892 | ||
|
|
7b1b832618 | ||
|
|
e0146997a6 | ||
|
|
a391d3691a | ||
|
|
5e90f2a809 | ||
|
|
1eaa3d72ea | ||
|
|
668f8df3be | ||
|
|
cc4a08bdc7 | ||
|
|
862807504b | ||
|
|
a7c276b72b | ||
|
|
f869a95f3b | ||
|
|
0ddd4b6c25 | ||
|
|
24839068f5 | ||
|
|
b631bd21d2 | ||
|
|
579651bf30 | ||
|
|
0d6946741c | ||
|
|
7e10bd6401 | ||
|
|
84e4dd92d4 | ||
|
|
55da9874c0 | ||
|
|
d8d5f5904f | ||
|
|
9acc82ce4a | ||
|
|
c017e309c4 | ||
|
|
2e59b20204 | ||
|
|
fd425b1484 | ||
|
|
50131c125e | ||
|
|
5a03e129a6 | ||
|
|
b7ebf545e6 | ||
|
|
8fc2630dd4 | ||
|
|
bd988f6ad3 | ||
|
|
1e245336ec | ||
|
|
4457c0d9ba | ||
|
|
660116fb9d | ||
|
|
b15d2c9d2f | ||
|
|
50dc96507c | ||
|
|
c265bef48c | ||
|
|
02a2afa962 | ||
|
|
ffc193443c | ||
|
|
8968b48643 | ||
|
|
641a934931 | ||
|
|
69897d7eed | ||
|
|
0d09e75f9c | ||
|
|
42cc96e2c1 | ||
|
|
8381a6a483 | ||
|
|
4d4dc26742 | ||
|
|
48eb374a96 | ||
|
|
2fa6ef2687 | ||
|
|
6d8bcbd192 | ||
|
|
b89a5fa55d | ||
|
|
9f0002b52b | ||
|
|
1cce69364d | ||
|
|
8332e29c9f | ||
|
|
be63f03254 | ||
|
|
9f22fcfd36 | ||
|
|
11b14fd662 | ||
|
|
9e873335ec | ||
|
|
04585dd90a | ||
|
|
645cba8532 | ||
|
|
adddb65f46 | ||
|
|
fbf04438b7 | ||
|
|
e0e9b30f5c | ||
|
|
68b9b376cf | ||
|
|
d0866fe477 | ||
|
|
913044ecc5 | ||
|
|
3dd6ebe0b8 | ||
|
|
1fb66c8e6a | ||
|
|
ab09e27d72 | ||
|
|
c0a3030277 | ||
|
|
be18984959 | ||
|
|
9d0fd073e9 | ||
|
|
8e4cc1cbb8 | ||
|
|
993575bcd8 | ||
|
|
0ff0f2d00f | ||
|
|
d9a2aa8d99 | ||
|
|
e43feaf231 | ||
|
|
fcca2e8218 | ||
|
|
15f899f89e | ||
|
|
3a54b7aa30 | ||
|
|
1f8053e366 | ||
|
|
e02d7796c3 | ||
|
|
714ccb9992 | ||
|
|
b0674e9636 | ||
|
|
d036cce744 | ||
|
|
c42bf5fdf5 | ||
|
|
ca71d07e44 | ||
|
|
c7ee5acba9 | ||
|
|
9698570d47 | ||
|
|
7be58a173a | ||
|
|
631945a367 | ||
|
|
5e1363071f | ||
|
|
4059e29a29 | ||
|
|
46c085d794 | ||
|
|
b1ceb40363 | ||
|
|
3ecb2bb604 | ||
|
|
ffe1d2e1e0 | ||
|
|
575f633483 | ||
|
|
54a8b313b4 | ||
|
|
c84ca8c82f | ||
|
|
035187b44e | ||
|
|
013df51ca8 | ||
|
|
07198750b2 | ||
|
|
ac76388c77 | ||
|
|
bc82b0189a | ||
|
|
fcd5c367d1 | ||
|
|
88d60a1f86 | ||
|
|
2cc37035d7 | ||
|
|
6cf49380cd | ||
|
|
caca1899ce | ||
|
|
fcdfb690ca | ||
|
|
dbc2731887 | ||
|
|
0655cac6f1 | ||
|
|
9e1dbf532e | ||
|
|
b05d72d21b | ||
|
|
b3d1779b96 | ||
|
|
bc8de14671 | ||
|
|
a19912db34 | ||
|
|
eececf5fa9 | ||
|
|
bc24955e91 | ||
|
|
bac0ff7f6d | ||
|
|
94a63851b7 | ||
|
|
3674645e20 | ||
|
|
a2b806c375 | ||
|
|
a7f9b58e44 | ||
|
|
0e2b624418 | ||
|
|
7996134d2a | ||
|
|
ac26607fe4 | ||
|
|
9d8aeab0b6 | ||
|
|
44980347f3 | ||
|
|
7d36e5ed46 | ||
|
|
afee0b7929 | ||
|
|
f5f41e8051 | ||
|
|
13a224063d | ||
|
|
0a1699ff8a | ||
|
|
14c60b425f | ||
|
|
b4280963c0 | ||
|
|
76c309e9f7 | ||
|
|
c64d425738 | ||
|
|
c5fedd24c9 | ||
|
|
c6ab90b270 | ||
|
|
73d9d3af6c | ||
|
|
d75c648871 | ||
|
|
8b5b993d29 | ||
|
|
9ed6b95c90 | ||
|
|
3e5b6db2d2 | ||
|
|
d59bbd16a7 | ||
|
|
f547bee878 | ||
|
|
57a4d121c4 | ||
|
|
0859795878 | ||
|
|
14ff925555 | ||
|
|
64a4327c34 | ||
|
|
a276b98236 | ||
|
|
71d98050f3 | ||
|
|
83dc54fb95 | ||
|
|
ae2473c2ca | ||
|
|
fb067905d5 | ||
|
|
3e317ea4f0 | ||
|
|
b45c8a6b6c | ||
|
|
2dca8f37e5 | ||
|
|
4b614a0246 | ||
|
|
bd26784362 | ||
|
|
4e3aa93681 | ||
|
|
06387d89e8 | ||
|
|
e030dfd443 | ||
|
|
21104720f7 | ||
|
|
b26b8fc776 | ||
|
|
9c4a524444 | ||
|
|
bb76d816da | ||
|
|
cfce4d65f2 | ||
|
|
00b4e064ff | ||
|
|
8ade45e795 | ||
|
|
3058854535 | ||
|
|
a37e239961 | ||
|
|
d863f9cbea | ||
|
|
4fcda92d7b | ||
|
|
0148d4e7d5 | ||
|
|
fae0149260 | ||
|
|
7503540959 | ||
|
|
2d725e77f7 | ||
|
|
35a8144e41 | ||
|
|
4fbe06b3f2 | ||
|
|
20f5422803 | ||
|
|
e5bda88c9d | ||
|
|
5030972316 | ||
|
|
fcd4026e7b | ||
|
|
f550a6a574 | ||
|
|
d290ee029a | ||
|
|
d242ec2ed9 | ||
|
|
37c332e5bf | ||
|
|
bbfd21a36c | ||
|
|
4160e3d0f8 | ||
|
|
2755f6e5b4 | ||
|
|
572ed461b6 | ||
|
|
1375a4b153 | ||
|
|
f91799eecf | ||
|
|
023739fc94 | ||
|
|
1817447c24 | ||
|
|
2e93a8683c | ||
|
|
bc7d6fbdbb | ||
|
|
bc48e26fc9 | ||
|
|
8196de46ad | ||
|
|
3c8ff3c70b | ||
|
|
15bc64c6cd | ||
|
|
06c098e2cb | ||
|
|
d76211dc3b | ||
|
|
5899b2d346 | ||
|
|
1881e46cb9 | ||
|
|
810fbff380 | ||
|
|
19224b4b9b | ||
|
|
3e110ae141 | ||
|
|
a4ffc44eac | ||
|
|
c28a5b0b25 | ||
|
|
623d97a0d3 | ||
|
|
9c279945a1 | ||
|
|
19e87d332f | ||
|
|
cdc6e3028c | ||
|
|
540f608c2c | ||
|
|
0a51e1a337 | ||
|
|
ef852ae86e | ||
|
|
96264b6dd9 | ||
|
|
2800b347e9 | ||
|
|
f56d56c439 | ||
|
|
ed9d643036 | ||
|
|
e14ddaf204 | ||
|
|
e968c4224d | ||
|
|
082e21dbb5 | ||
|
|
a82cc5321e | ||
|
|
897f97f632 | ||
|
|
5eef61414a | ||
|
|
5b69ec3e72 | ||
|
|
08571b1588 | ||
|
|
9ef742f5e7 | ||
|
|
f3108fafab | ||
|
|
0133ff3866 | ||
|
|
f9dd260ee5 | ||
|
|
99fb43f41a | ||
|
|
b8687024ea | ||
|
|
501673fcf3 | ||
|
|
6321c72522 | ||
|
|
e851e13413 | ||
|
|
d57e67e8da | ||
|
|
ac3fc27257 | ||
|
|
ad142f84b3 | ||
|
|
b2a8a642d6 | ||
|
|
5c0e7b1f2c | ||
|
|
e843f80832 | ||
|
|
cfa54328e2 | ||
|
|
50e63fa9e7 | ||
|
|
19009f2d7a | ||
|
|
de0ca823f1 | ||
|
|
6d76c1c701 | ||
|
|
d92774b4ac | ||
|
|
359fb8caf4 | ||
|
|
b77ae3bc60 | ||
|
|
6d5dc060ea | ||
|
|
b469e73148 | ||
|
|
33fe4ca97b | ||
|
|
870f1f1f84 | ||
|
|
7410bc3020 | ||
|
|
ff41a47c65 | ||
|
|
ad89cd978a | ||
|
|
971a95d259 | ||
|
|
ac98b545a8 | ||
|
|
ad10f0f533 | ||
|
|
fbf97e35eb | ||
|
|
91d204e2db | ||
|
|
f333387748 | ||
|
|
95c6eed436 | ||
|
|
612f387fc9 | ||
|
|
ed966f0428 | ||
|
|
481f14d87f | ||
|
|
89582f7e77 | ||
|
|
270cf418fc | ||
|
|
eebdfb8e6f | ||
|
|
2523cdbc7f | ||
|
|
6404a76661 | ||
|
|
48eca2524c | ||
|
|
0089ce4178 | ||
|
|
123caa3c83 | ||
|
|
593080ebab | ||
|
|
f169a75fc4 | ||
|
|
43b4176f0e | ||
|
|
266af543e3 | ||
|
|
718cc9dcac | ||
|
|
44eec601bc | ||
|
|
25346fe0d7 | ||
|
|
a7e7537776 | ||
|
|
ee43f46cb0 | ||
|
|
40ca16766d | ||
|
|
2563267757 | ||
|
|
a899146aea | ||
|
|
6002d17c24 | ||
|
|
d675de9c23 | ||
|
|
6ebabb560e | ||
|
|
d98f2f35ec | ||
|
|
fcdba6bfac | ||
|
|
19cefb0097 | ||
|
|
d07ee75fc6 | ||
|
|
c03fe5af31 | ||
|
|
9be5f8c9c0 | ||
|
|
0d194268fb | ||
|
|
bd3250a456 | ||
|
|
3a6220cae2 | ||
|
|
6a4c8a8596 | ||
|
|
17dd79a3ae | ||
|
|
636cad95a7 | ||
|
|
0809ae6941 | ||
|
|
4c4fd284ae | ||
|
|
42cc93efb6 | ||
|
|
4e46cb8961 | ||
|
|
5643130664 | ||
|
|
376183fcf0 | ||
|
|
fb0c9f0613 | ||
|
|
9d91c60875 | ||
|
|
470a6ced9a | ||
|
|
118eb43ba5 | ||
|
|
cdc5a4dc38 | ||
|
|
5cbc7e9167 | ||
|
|
4ad8d4d3c0 | ||
|
|
e45fc86359 | ||
|
|
54dd949e62 | ||
|
|
620be0bbed | ||
|
|
f0bdc1e562 | ||
|
|
294fd1b650 | ||
|
|
19f212951a | ||
|
|
cf4e3501a1 | ||
|
|
d9da7813a6 | ||
|
|
b7eb9865df | ||
|
|
dd2a51ed32 | ||
|
|
faba73a812 | ||
|
|
305d8314bc | ||
|
|
5e46e4b488 | ||
|
|
3d383c22c7 | ||
|
|
654fe73b78 | ||
|
|
6142f9262a | ||
|
|
64c5e3a19c | ||
|
|
b6942ffeb9 | ||
|
|
ff4f789249 | ||
|
|
0890e274b1 | ||
|
|
60b090ac53 | ||
|
|
dc9148d035 | ||
|
|
1897f03d4c | ||
|
|
6ac2e68467 | ||
|
|
225cf82290 | ||
|
|
18708dd3b6 | ||
|
|
98407bd457 | ||
|
|
0bb2974b37 | ||
|
|
550d22be5b | ||
|
|
6a2d89f48d | ||
|
|
3ff2fc4378 | ||
|
|
bcd50d3219 | ||
|
|
f0c5a424af | ||
|
|
76a1bf6136 | ||
|
|
e210f1a864 | ||
|
|
61e739912f | ||
|
|
4a303c7c38 | ||
|
|
8597a278d6 | ||
|
|
6ddd632adf | ||
|
|
0903001d9b | ||
|
|
c2371cc011 | ||
|
|
91816acfb8 | ||
|
|
fad5b08625 | ||
|
|
24b2128e29 | ||
|
|
3177f2b42f | ||
|
|
552989ad57 | ||
|
|
222a6a5e23 | ||
|
|
0670138ffc | ||
|
|
19cf0e81b3 | ||
|
|
5f408f934c | ||
|
|
fc9920830e | ||
|
|
c559dde69d | ||
|
|
3bcf3a5fd0 | ||
|
|
359b2cf469 | ||
|
|
20c5702e0f | ||
|
|
ce7559fbec | ||
|
|
0d30b5d818 | ||
|
|
56698b84e0 | ||
|
|
db51f0d73e | ||
|
|
bcae2abff8 | ||
|
|
d1ffab96ca | ||
|
|
61a1f99680 | ||
|
|
4fd0a84cf8 | ||
|
|
9bd5afa014 | ||
|
|
8d8ff80890 | ||
|
|
6f93861cfc | ||
|
|
6ae49691af | ||
|
|
2bad1363e9 | ||
|
|
9858a7defe | ||
|
|
a57fac59c6 | ||
|
|
36e73dd7ed | ||
|
|
17dd7fad72 | ||
|
|
ce826f3fc4 | ||
|
|
7350736054 | ||
|
|
fffbfd9890 | ||
|
|
a066e334dd | ||
|
|
dd4b8a2507 | ||
|
|
d1335d878b | ||
|
|
98a4404279 | ||
|
|
5705cfaebc | ||
|
|
c3646a80a7 | ||
|
|
8debeeeeea | ||
|
|
255343db4b | ||
|
|
4fe622cf9c | ||
|
|
4168d885cf | ||
|
|
c1ad2ac20f | ||
|
|
0efca9a1f9 | ||
|
|
ef2cb5ab7f | ||
|
|
4d197c96d8 | ||
|
|
d127ddbfcc | ||
|
|
f91924bb18 | ||
|
|
8c3d807b3f | ||
|
|
7daa093df7 | ||
|
|
b86bf060d3 | ||
|
|
fde8e6dc0c | ||
|
|
a9dee426d7 | ||
|
|
d777a19bb8 | ||
|
|
e5a04ea35d | ||
|
|
1c74191ff0 | ||
|
|
93c087892c | ||
|
|
7c2427c020 | ||
|
|
678321d013 | ||
|
|
e729a3d595 | ||
|
|
1195148fc6 | ||
|
|
1ddb183736 | ||
|
|
c2d3e45571 | ||
|
|
27baa4c3de | ||
|
|
b3eb6da2db | ||
|
|
d40d4d6071 | ||
|
|
08fce19cfc | ||
|
|
0390d54ade | ||
|
|
0c470759da | ||
|
|
5a53eff4cb | ||
|
|
990d1da8a4 | ||
|
|
65d4d5108a | ||
|
|
0cfefa0e12 | ||
|
|
4253150bab | ||
|
|
38420fb951 | ||
|
|
3696c6946d | ||
|
|
438a28714d | ||
|
|
c1368d4ebe | ||
|
|
744f745d7a | ||
|
|
8169b0bd85 | ||
|
|
07b37853a4 | ||
|
|
bf2a18e623 | ||
|
|
66f1fe15e9 | ||
|
|
07891a0908 | ||
|
|
343cae60b6 | ||
|
|
ea15101896 | ||
|
|
b57e17394b | ||
|
|
b19592f713 | ||
|
|
cb7697074e | ||
|
|
71b216d995 | ||
|
|
d53ae2d0f1 | ||
|
|
5f8a3149fe | ||
|
|
eda6c26360 | ||
|
|
6b561bb7ba | ||
|
|
fa8014f181 | ||
|
|
61fb64d252 | ||
|
|
54b8af0f64 | ||
|
|
9fdefc6ffe | ||
|
|
13e92be8bf | ||
|
|
e01a47aad4 | ||
|
|
babbbbf6ee | ||
|
|
821bf067e4 | ||
|
|
c882b85d8c | ||
|
|
565cf0d8ab | ||
|
|
a540332df3 | ||
|
|
ad3e31dc4b | ||
|
|
1c069cd0a0 | ||
|
|
0455e51cd5 | ||
|
|
ad09615acb | ||
|
|
2100a2e16f | ||
|
|
c58968be02 | ||
|
|
799ea59c2f | ||
|
|
700c645478 | ||
|
|
346e531222 | ||
|
|
b18f00f162 | ||
|
|
268c7f02fd | ||
|
|
388b9d0a35 | ||
|
|
9de1e9f914 | ||
|
|
7fe0838588 | ||
|
|
3af5426d71 | ||
|
|
e6ed814dc3 | ||
|
|
f7fd2e4798 | ||
|
|
36a3b0d85b | ||
|
|
36179bbcdf | ||
|
|
227c57728a | ||
|
|
baa88d542c | ||
|
|
d28b9940b9 | ||
|
|
2b7aace0b5 | ||
|
|
b1644b22d0 | ||
|
|
bcd08888f9 | ||
|
|
9aa6d9496b | ||
|
|
ff9e904926 | ||
|
|
f19ee66096 | ||
|
|
4301b09137 | ||
|
|
f5a0a439e9 | ||
|
|
bf91f06eca | ||
|
|
b0150b7ad4 | ||
|
|
d7718280c9 | ||
|
|
1e2b3259b9 | ||
|
|
29e1fdd994 | ||
|
|
af02387183 | ||
|
|
f78f35880f | ||
|
|
eac221b4ea | ||
|
|
f4f69ee6fc | ||
|
|
f1052b812d | ||
|
|
0be33e3add | ||
|
|
b03f8ae4f0 | ||
|
|
d9ab45d1aa | ||
|
|
51f9693ba6 | ||
|
|
b34faf6f8c | ||
|
|
bc74b7f432 | ||
|
|
f4a5bd2dd2 | ||
|
|
58f419c7ce | ||
|
|
11a787df24 | ||
|
|
caaa7e9d7b | ||
|
|
666fec7ff2 | ||
|
|
76aa95453f | ||
|
|
c623c4e589 | ||
|
|
2ed209c758 | ||
|
|
a0970249bf | ||
|
|
f4d14b3f2e | ||
|
|
d25b6a752b | ||
|
|
3cf942792a | ||
|
|
21724bbaed | ||
|
|
12b95405ff | ||
|
|
452112e823 | ||
|
|
d0e6749327 | ||
|
|
b81c5d4699 | ||
|
|
fe0c13f8bd | ||
|
|
3525f2c038 | ||
|
|
20d73555a2 | ||
|
|
47589f10a4 | ||
|
|
f1cbd81984 | ||
|
|
818cb2d314 | ||
|
|
6dd7c4fb57 | ||
|
|
bb9647f651 | ||
|
|
2e677958d2 | ||
|
|
771e77dff0 | ||
|
|
62579c7a34 | ||
|
|
4cd68dc4d7 | ||
|
|
eab71534ef | ||
|
|
6e121417a5 | ||
|
|
7a44e47ed6 | ||
|
|
6aa2a574fb | ||
|
|
fd58d925a8 | ||
|
|
b0985e3fa5 | ||
|
|
467e149763 | ||
|
|
127ec05b4e | ||
|
|
79da6f3283 | ||
|
|
143bb812dc | ||
|
|
fe4893e625 | ||
|
|
2660812084 | ||
|
|
5cdcf8a837 | ||
|
|
efdb45d5d0 | ||
|
|
477f35e78c | ||
|
|
187871e2ca | ||
|
|
b10d74d821 | ||
|
|
9582883235 | ||
|
|
c373448e03 | ||
|
|
7899dc5fcf | ||
|
|
215d9eecdd | ||
|
|
06636b6155 | ||
|
|
9508fb80a4 | ||
|
|
4ccca1ce36 | ||
|
|
a4a3574b1d | ||
|
|
2c40d02f27 | ||
|
|
16c0ab92c1 |
82
.gitignore
vendored
82
.gitignore
vendored
@@ -4,17 +4,95 @@ Makefile.in
|
|||||||
Makefile
|
Makefile
|
||||||
.deps
|
.deps
|
||||||
|
|
||||||
|
btsconfig.h
|
||||||
|
btsconfig.h.in
|
||||||
|
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
config.log
|
config.log
|
||||||
config.status
|
config.status
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
configure
|
configure
|
||||||
|
compile
|
||||||
depcomp
|
depcomp
|
||||||
install-sh
|
install-sh
|
||||||
missing
|
missing
|
||||||
|
stamp-h1
|
||||||
|
libtool
|
||||||
|
ltmain.sh
|
||||||
core
|
core
|
||||||
core.*
|
core.*
|
||||||
|
|
||||||
|
# git-version-gen magic
|
||||||
|
.tarball-version
|
||||||
|
.version
|
||||||
|
|
||||||
|
src/osmo-bts-sysmo/sysmobts-calib
|
||||||
src/osmo-bts-sysmo/l1fwd-proxy
|
src/osmo-bts-sysmo/l1fwd-proxy
|
||||||
src/osmo-bts-sysmo/sysmobts
|
src/osmo-bts-sysmo/osmo-bts-sysmo
|
||||||
src/osmo-bts-sysmo/sysmobts-remote
|
src/osmo-bts-sysmo/osmo-bts-sysmo-remote
|
||||||
|
src/osmo-bts-sysmo/sysmobts-mgr
|
||||||
|
src/osmo-bts-sysmo/sysmobts-util
|
||||||
|
|
||||||
|
src/osmo-bts-litecell15/lc15bts-mgr
|
||||||
|
src/osmo-bts-litecell15/lc15bts-util
|
||||||
|
src/osmo-bts-litecell15/misc/.dirstamp
|
||||||
|
src/osmo-bts-litecell15/osmo-bts-lc15
|
||||||
|
|
||||||
|
src/osmo-bts-trx/osmo-bts-trx
|
||||||
|
|
||||||
|
src/osmo-bts-octphy/osmo-bts-octphy
|
||||||
|
|
||||||
|
src/osmo-bts-virtual/osmo-bts-virtual
|
||||||
|
src/osmo-bts-omldummy/osmo-bts-omldummy
|
||||||
|
|
||||||
|
src/osmo-bts-oc2g/osmo-bts-oc2g
|
||||||
|
src/osmo-bts-oc2g/oc2gbts-mgr
|
||||||
|
src/osmo-bts-oc2g/oc2gbts-util
|
||||||
|
src/osmo-bts-oc2g/misc/.dirstamp
|
||||||
|
|
||||||
|
tests/atconfig
|
||||||
|
tests/package.m4
|
||||||
|
tests/agch/agch_test
|
||||||
|
tests/paging/paging_test
|
||||||
|
tests/cipher/cipher_test
|
||||||
|
tests/sysmobts/sysmobts_test
|
||||||
|
tests/meas/meas_test
|
||||||
|
tests/misc/misc_test
|
||||||
|
tests/handover/handover_test
|
||||||
|
tests/tx_power/tx_power_test
|
||||||
|
tests/testsuite
|
||||||
|
tests/testsuite.log
|
||||||
|
|
||||||
|
# Possible generated file
|
||||||
|
doc/vty_reference.xml
|
||||||
|
|
||||||
|
# Backups, vi, merges
|
||||||
|
*~
|
||||||
|
*.sw?
|
||||||
|
*.orig
|
||||||
|
*.sav
|
||||||
|
|
||||||
|
# debian
|
||||||
|
.tarball-version
|
||||||
|
debian/autoreconf.after
|
||||||
|
debian/autoreconf.before
|
||||||
|
debian/files
|
||||||
|
debian/*.debhelper.log
|
||||||
|
debian/*.substvars
|
||||||
|
debian/osmo-bts-trx-dbg/
|
||||||
|
debian/osmo-bts-trx/
|
||||||
|
debian/tmp/
|
||||||
|
/tests/power/power_test
|
||||||
|
|
||||||
|
# manuals
|
||||||
|
doc/manuals/*.html
|
||||||
|
doc/manuals/*.svg
|
||||||
|
doc/manuals/*.pdf
|
||||||
|
doc/manuals/*__*.png
|
||||||
|
doc/manuals/*.check
|
||||||
|
doc/manuals/generated/
|
||||||
|
doc/manuals/osmomsc-usermanual.xml
|
||||||
|
doc/manuals/common
|
||||||
|
doc/manuals/build
|
||||||
|
|||||||
3
.gitreview
Normal file
3
.gitreview
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[gerrit]
|
||||||
|
host=gerrit.osmocom.org
|
||||||
|
project=osmo-bts
|
||||||
12
.mailmap
Normal file
12
.mailmap
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Harald Welte <laforge@gnumonks.org>
|
||||||
|
Harald Welte <laforge@gnumonks.org> <laflocal@hanuman.gnumonks.org>
|
||||||
|
Harald Welte <laforge@gnumonks.org> <laflocal@goeller.de.gnumonks.org>
|
||||||
|
Holger Hans Peter Freyther <holger@moiji-mobile.com> <zecke@selfish.org>
|
||||||
|
Holger Hans Peter Freyther <holger@moiji-mobile.com> <ich@tamarin.(none)>
|
||||||
|
Holger Hans Peter Freyther <holgre@moiji-mobile.com> <holger@freyther.de>
|
||||||
|
Andreas Eversberg <jolly@eversberg.eu>
|
||||||
|
Andreas Eversberg <jolly@eversberg.eu> <Andreas.Eversberg@versatel.de>
|
||||||
|
Andreas Eversberg <jolly@eversberg.eu> <root@nuedel.(none)>
|
||||||
|
Pablo Neira Ayuso <pablo@soleta.eu> <pablo@gnumonks.org>
|
||||||
|
Max Suraev <msuraev@sysmocom.de>
|
||||||
|
Tom Tsou <tom.tsou@ettus.com> <tom@tsou.cc>
|
||||||
21
Makefile.am
21
Makefile.am
@@ -1,3 +1,22 @@
|
|||||||
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
|
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
|
||||||
|
|
||||||
SUBDIRS = include src
|
SUBDIRS = include src tests doc contrib
|
||||||
|
|
||||||
|
|
||||||
|
# package the contrib and doc
|
||||||
|
EXTRA_DIST = \
|
||||||
|
contrib/dump_docs.py \
|
||||||
|
git-version-gen .version \
|
||||||
|
README.md
|
||||||
|
|
||||||
|
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||||
|
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
|
||||||
|
|
||||||
|
@RELMAKE@
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(top_srcdir)/.version
|
||||||
|
|
||||||
|
$(top_srcdir)/.version:
|
||||||
|
echo $(VERSION) > $@-t && mv $@-t $@
|
||||||
|
dist-hook:
|
||||||
|
echo $(VERSION) > $(distdir)/.tarball-version
|
||||||
|
|||||||
10
README
10
README
@@ -1,10 +0,0 @@
|
|||||||
Repsoitory for new BTS-side A-bis code
|
|
||||||
|
|
||||||
This is the code that was originally developed inside osmocom-bb.git
|
|
||||||
for turning modified OsmocomBB-supported phones into a simplistic BTS.
|
|
||||||
|
|
||||||
However, the BTS-side A-bis is also going to be needed for other projects, thus
|
|
||||||
the split.
|
|
||||||
|
|
||||||
It doesn't really build yet, as a lot of dependencies have not yet been
|
|
||||||
resolved.
|
|
||||||
119
README.md
Normal file
119
README.md
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
osmo-bts - Osmocom BTS Implementation
|
||||||
|
====================================
|
||||||
|
|
||||||
|
This repository contains a C-language implementation of a GSM Base
|
||||||
|
Transceiver Station (BTS). It is part of the
|
||||||
|
[Osmocom](https://osmocom.org/) Open Source Mobile Communications
|
||||||
|
project.
|
||||||
|
|
||||||
|
This code implements Layer 2 and higher of a more or less conventional GSM BTS
|
||||||
|
(Base Transceiver Station) - however, using an Abis/IP interface, rather than
|
||||||
|
the old-fashioned E1/T1.
|
||||||
|
|
||||||
|
Specifically, this includes
|
||||||
|
* BTS-side implementation of TS 08.58 (RSL) and TS 12.21 (OML)
|
||||||
|
* BTS-side implementation of LAPDm (using libosmocore/libosmogsm)
|
||||||
|
* A somewhat separated interface between those higher layer parts and the
|
||||||
|
Layer1 interface.
|
||||||
|
|
||||||
|
Several kinds of BTS hardware are supported:
|
||||||
|
* sysmocom sysmoBTS
|
||||||
|
* Octasic octphy
|
||||||
|
* Nutaq litecell 1.5
|
||||||
|
* software-defined radio based osmo-bts-trx (e.g. USRP B210, UmTRX, LimeSDR)
|
||||||
|
|
||||||
|
Homepage
|
||||||
|
--------
|
||||||
|
|
||||||
|
The official homepage of the project is
|
||||||
|
https://osmocom.org/projects/osmobts/wiki
|
||||||
|
|
||||||
|
GIT Repository
|
||||||
|
--------------
|
||||||
|
|
||||||
|
You can clone from the official osmo-bts.git repository using
|
||||||
|
|
||||||
|
git clone git://git.osmocom.org/osmo-bts.git
|
||||||
|
|
||||||
|
There is a cgit interface at http://git.osmocom.org/osmo-bts/
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
We provide a
|
||||||
|
[User Manual](http://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf)
|
||||||
|
as well as a
|
||||||
|
[VTY Reference Manual](http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf)
|
||||||
|
and a
|
||||||
|
[Abis reference MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf)
|
||||||
|
describing the OsmoBTS specific A-bis dialect.
|
||||||
|
|
||||||
|
Mailing List
|
||||||
|
------------
|
||||||
|
|
||||||
|
Discussions related to osmo-bts are happening on the
|
||||||
|
openbsc@lists.osmocom.org mailing list, please see
|
||||||
|
https://lists.osmocom.org/mailman/listinfo/openbsc for subscription
|
||||||
|
options and the list archive.
|
||||||
|
|
||||||
|
Please observe the [Osmocom Mailing List
|
||||||
|
Rules](https://osmocom.org/projects/cellular-infrastructure/wiki/Mailing_List_Rules)
|
||||||
|
when posting.
|
||||||
|
|
||||||
|
Contributing
|
||||||
|
------------
|
||||||
|
|
||||||
|
Our coding standards are described at
|
||||||
|
https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
|
||||||
|
|
||||||
|
We us a gerrit based patch submission/review process for managing
|
||||||
|
contributions. Please see
|
||||||
|
https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for
|
||||||
|
more details
|
||||||
|
|
||||||
|
The current patch queue for osmo-bts can be seen at
|
||||||
|
https://gerrit.osmocom.org/#/q/project:osmo-bts+status:open
|
||||||
|
|
||||||
|
Known Limitations
|
||||||
|
=================
|
||||||
|
|
||||||
|
As of March 17, 2017, the following known limitations exist in this
|
||||||
|
implementation:
|
||||||
|
|
||||||
|
Common Core
|
||||||
|
-----------
|
||||||
|
|
||||||
|
* No Extended BCCH support
|
||||||
|
* System Information limited to 1,2,2bis,2ter,2quater,3,4,5,6,9,13
|
||||||
|
* No RATSCCH in AMR
|
||||||
|
* Will reject TS 12.21 STARTING TIME in SET BTS ATTR / SET CHAN ATTR
|
||||||
|
* No support for frequency hopping
|
||||||
|
* No reporting of interference levels as part of TS 08.58 RF RES IND
|
||||||
|
* No error reporting in case PAGING COMMAND fails due to queue overflow
|
||||||
|
* No use of TS 08.58 BS Power and MS Power parameters
|
||||||
|
* No support of TS 08.58 MultiRate Control
|
||||||
|
* No support of TS 08.58 Supported Codec Types
|
||||||
|
* No support of Bter frame / ENHANCED MEASUREMENT REPORT
|
||||||
|
|
||||||
|
osmo-bts-sysmo
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* No CSD / ECSD support (not planned)
|
||||||
|
* GSM-R frequency band supported, but no NCH/ASCI/SoLSA
|
||||||
|
* All timeslots on one TRX have to use same training sequence (TSC)
|
||||||
|
* No multi-TRX support yet, though hardware+L1 support stacking
|
||||||
|
* Makes no use of 12.21 Intave Parameters and Interference
|
||||||
|
Level Boundaries
|
||||||
|
* MphConfig.CNF can be returned to the wrong callback. E.g. with Tx Power
|
||||||
|
and ciphering. The dispatch should take a look at the hLayer3.
|
||||||
|
|
||||||
|
osmo-bts-octphy
|
||||||
|
---------------
|
||||||
|
|
||||||
|
* No support of EFR, HR voice codec (lack of PHY support?)
|
||||||
|
* No re-transmission of PHY primitives in case of time-out
|
||||||
|
* Link Quality / Measurement processing incomplete
|
||||||
|
* impossible to modify encryption parameters using RSL MODE MODIFY
|
||||||
|
* no clear indication of nominal transmit power, various power related
|
||||||
|
computations are likely off
|
||||||
|
* no OML attribute validation during bts_model_check_oml()
|
||||||
370
configure.ac
370
configure.ac
@@ -1,43 +1,393 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script
|
dnl Process this file with autoconf to produce a configure script
|
||||||
AC_INIT([osmo-bts],
|
AC_INIT([osmo-bts],
|
||||||
m4_esyscmd([./git-version-gen .tarball-version]),
|
m4_esyscmd([./git-version-gen .tarball-version]),
|
||||||
[openbsc-devel@lists.openbsc.org])
|
[openbsc@lists.osmocom.org])
|
||||||
|
|
||||||
|
dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
|
||||||
|
AC_CONFIG_AUX_DIR([.])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
AM_INIT_AUTOMAKE([dist-bzip2])
|
||||||
|
AC_CONFIG_TESTDIR(tests)
|
||||||
|
|
||||||
dnl kernel style compile messages
|
dnl kernel style compile messages
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
dnl include release helper
|
||||||
|
RELMAKE='-include osmo-release.mk'
|
||||||
|
AC_SUBST([RELMAKE])
|
||||||
|
|
||||||
dnl checks for programs
|
dnl checks for programs
|
||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_RANLIB
|
LT_INIT
|
||||||
|
|
||||||
|
dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
|
||||||
|
AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
|
||||||
|
if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
|
||||||
|
AC_MSG_WARN([You need to install pkg-config])
|
||||||
|
fi
|
||||||
|
PKG_PROG_PKG_CONFIG([0.20])
|
||||||
|
|
||||||
dnl checks for header files
|
dnl checks for header files
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
|
|
||||||
dnl Checks for typedefs, structures and compiler characteristics
|
dnl Checks for typedefs, structures and compiler characteristics
|
||||||
|
|
||||||
dnl checks for libraries
|
AC_ARG_ENABLE(sanitize,
|
||||||
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.3.9)
|
[AS_HELP_STRING([--enable-sanitize], [Compile with address sanitizer enabled], )],
|
||||||
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty)
|
[sanitize=$enableval], [sanitize="no"])
|
||||||
PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 0.0.7)
|
if test x"$sanitize" = x"yes"
|
||||||
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.3.3)
|
then
|
||||||
|
CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
|
||||||
|
CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
|
||||||
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable sysmocom-bts hardware support])
|
AC_ARG_ENABLE(werror,
|
||||||
|
[AS_HELP_STRING(
|
||||||
|
[--enable-werror],
|
||||||
|
[Turn all compiler warnings into errors, with exceptions:
|
||||||
|
a) deprecation (allow upstream to mark deprecation without breaking builds);
|
||||||
|
b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
|
||||||
|
]
|
||||||
|
)],
|
||||||
|
[werror=$enableval], [werror="no"])
|
||||||
|
if test x"$werror" = x"yes"
|
||||||
|
then
|
||||||
|
WERROR_FLAGS="-Werror"
|
||||||
|
WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
|
||||||
|
WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
|
||||||
|
CFLAGS="$CFLAGS $WERROR_FLAGS"
|
||||||
|
CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl checks for libraries
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOCODING, libosmocoding >= 1.3.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.6.0)
|
||||||
|
PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 0.6.0)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable support for sysmobts calibration tool])
|
||||||
|
AC_ARG_ENABLE(sysmobts-calib,
|
||||||
|
AC_HELP_STRING([--enable-sysmobts-calib],
|
||||||
|
[enable code for sysmobts calibration tool [default=no]]),
|
||||||
|
[enable_sysmobts_calib="yes"],[enable_sysmobts_calib="no"])
|
||||||
|
AC_MSG_RESULT([$enable_sysmobts_calib])
|
||||||
|
AM_CONDITIONAL(ENABLE_SYSMOBTS_CALIB, test "x$enable_sysmobts_calib" = "xyes")
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable support for sysmoBTS L1/PHY support])
|
||||||
AC_ARG_ENABLE(sysmocom-bts,
|
AC_ARG_ENABLE(sysmocom-bts,
|
||||||
AC_HELP_STRING([--enable-sysmocom-bts],
|
AC_HELP_STRING([--enable-sysmocom-bts],
|
||||||
[enable code for sysmocom femto-bts [default=no]]),
|
[enable code for sysmoBTS L1/PHY [default=no]]),
|
||||||
[enable_sysmocom_bts="yes"],[enable_sysmocom_bts="no"])
|
[enable_sysmocom_bts="yes"],[enable_sysmocom_bts="no"])
|
||||||
|
AC_ARG_WITH([sysmobts], [AS_HELP_STRING([--with-sysmobts=INCLUDE_DIR], [Location of the sysmobts API header files, implies --enable-sysmocom-bts])],
|
||||||
|
[sysmobts_incdir="$withval"],[sysmobts_incdir="$incdir"])
|
||||||
|
if test "x$sysmobts_incdir" != "x"; then
|
||||||
|
# --with-sysmobts was passed, imply enable_sysmocom_bts
|
||||||
|
enable_sysmocom_bts="yes"
|
||||||
|
fi
|
||||||
|
AC_SUBST([SYSMOBTS_INCDIR], -I$sysmobts_incdir)
|
||||||
AC_MSG_RESULT([$enable_sysmocom_bts])
|
AC_MSG_RESULT([$enable_sysmocom_bts])
|
||||||
AM_CONDITIONAL(ENABLE_SYSMOBTS, test "x$enable_sysmocom_bts" = "xyes")
|
AM_CONDITIONAL(ENABLE_SYSMOBTS, test "x$enable_sysmocom_bts" = "xyes")
|
||||||
|
if test "$enable_sysmocom_bts" = "yes"; then
|
||||||
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
|
CPPFLAGS="$CPPFLAGS $SYSMOBTS_INCDIR -I$srcdir/include"
|
||||||
|
AC_CHECK_HEADER([sysmocom/femtobts/superfemto.h],[],
|
||||||
|
[AC_MSG_ERROR([sysmocom/femtobts/superfemto.h can not be found in $sysmobts_incdir])],
|
||||||
|
[#include <sysmocom/femtobts/superfemto.h>])
|
||||||
|
|
||||||
|
# Check for the sbts2050_header.h that was added after the 3.6 release
|
||||||
|
AC_CHECK_HEADER([sysmocom/femtobts/sbts2050_header.h], [sysmo_uc_header="yes"], [])
|
||||||
|
if test "$sysmo_uc_header" = "yes" ; then
|
||||||
|
AC_DEFINE(BUILD_SBTS2050, 1, [Define if we want to build SBTS2050])
|
||||||
|
fi
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(LIBGPS, libgps)
|
||||||
|
CPPFLAGS=$oldCPPFLAGS
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(BUILD_SBTS2050, test "x$sysmo_uc_header" = "xyes")
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable support for osmo-trx based L1/PHY support])
|
||||||
|
AC_ARG_ENABLE(trx,
|
||||||
|
AC_HELP_STRING([--enable-trx],
|
||||||
|
[enable code for osmo-trx L1/PHY [default=no]]),
|
||||||
|
[enable_trx="yes"],[enable_trx="no"])
|
||||||
|
AC_MSG_RESULT([$enable_trx])
|
||||||
|
AM_CONDITIONAL(ENABLE_TRX, test "x$enable_trx" = "xyes")
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable support for Octasic OCTPHY-2G])
|
||||||
|
AC_ARG_ENABLE(octphy,
|
||||||
|
AC_HELP_STRING([--enable-octphy],
|
||||||
|
[enable code for Octasic OCTPHY-2G [default=no]]),
|
||||||
|
[enable_octphy="yes"],[enable_octphy="no"])
|
||||||
|
AC_ARG_WITH([octsdr-2g], [AS_HELP_STRING([--with-octsdr-2g], [Location of the OCTSDR-2G API header files])],
|
||||||
|
[octsdr2g_incdir="$withval"],[octsdr2g_incdir="`cd $srcdir; pwd`/src/osmo-bts-octphy/"])
|
||||||
|
AC_SUBST([OCTSDR2G_INCDIR], -I$octsdr2g_incdir)
|
||||||
|
AC_MSG_RESULT([$enable_octphy])
|
||||||
|
AM_CONDITIONAL(ENABLE_OCTPHY, test "x$enable_octphy" = "xyes")
|
||||||
|
if test "$enable_octphy" = "yes" ; then
|
||||||
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
|
CPPFLAGS="$CPPFLAGS $OCTSDR2G_INCDIR -I$srcdir/include"
|
||||||
|
|
||||||
|
AC_CHECK_HEADER([octphy/octvc1/gsm/octvc1_gsm_default.h],[],
|
||||||
|
[AC_MSG_ERROR([octphy/octvc1/gsm/octvc1_gsm_default.h can not be found in $octsdr2g_incdir])],
|
||||||
|
[#include <octphy/octvc1/gsm/octvc1_gsm_default.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_GSM_TRX_CONFIG.usCentreArfcn],
|
||||||
|
AC_DEFINE([OCTPHY_MULTI_TRX],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support multi-trx]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_RF_PORT_RX_STATS.Frequency],
|
||||||
|
AC_DEFINE([OCTPHY_USE_FREQUENCY],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support tOCTVC1_RADIO_FREQUENCY_VALUE type]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_RSP.TxConfig],
|
||||||
|
AC_DEFINE([OCTPHY_USE_TX_CONFIG],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support tOCTVC1_HW_RF_PORT_ANTENNA_TX_CONFIG type]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_RSP.RxConfig],
|
||||||
|
AC_DEFINE([OCTPHY_USE_RX_CONFIG],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support tOCTVC1_HW_RF_PORT_ANTENNA_RX_CONFIG type]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_GSM_RF_CONFIG.ulTxAntennaId],
|
||||||
|
AC_DEFINE([OCTPHY_USE_ANTENNA_ID],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support antenna ids in tOCTVC1_GSM_RF_CONFIG]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP.ulClkSourceSelection],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLK_SOURCE_SELECTION],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulClkSourceSelection in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.lClockError],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_CLOCK_ERROR],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports lClockError in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.lDroppedCycles],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DROPPED_CYCLES],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports lDroppedCycles in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulPllFreqHz],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FREQ_HZ],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulPllFreqHz in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulPllFractionalFreqHz],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FRACTIONAL_FREQ_HZ],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulPllFractionalFreqHz in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSlipCnt],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SLIP_CNT],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulSlipCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSyncLosseCnt],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSSE_CNT],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulSyncLosseCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSyncLossCnt],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSS_CNT],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulSyncLossCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSourceState],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SOURCE_STATE],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulSourceState in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulDacState],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DAC_STATE],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulDacState in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulDriftElapseTimeUs],
|
||||||
|
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DRIFT_ELAPSE_TIME_US],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files supports ulDriftElapseTimeUs in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD.ulOversample16xEnableFlag],
|
||||||
|
AC_DEFINE([OCTPHY_USE_16X_OVERSAMPLING],
|
||||||
|
[1],
|
||||||
|
[Define to 1 if your octphy header files support 16x oversampling]),
|
||||||
|
[],
|
||||||
|
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
||||||
|
|
||||||
|
CPPFLAGS=$oldCPPFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable NuRAN Wireless Litecell 1.5 hardware support])
|
||||||
|
AC_ARG_ENABLE(litecell15,
|
||||||
|
AC_HELP_STRING([--enable-litecell15],
|
||||||
|
[enable code for NuRAN Wireless Litecell15 bts [default=no]]),
|
||||||
|
[enable_litecell15="yes"],[enable_litecell15="no"])
|
||||||
|
AC_ARG_WITH([litecell15], [AS_HELP_STRING([--with-litecell15=INCLUDE_DIR], [Location of the litecell 1.5 API header files])],
|
||||||
|
[litecell15_incdir="$withval"],[litecell15_incdir="$incdir"])
|
||||||
|
AC_SUBST([LITECELL15_INCDIR], -I$litecell15_incdir)
|
||||||
|
AC_MSG_RESULT([$enable_litecell15])
|
||||||
|
AM_CONDITIONAL(ENABLE_LC15BTS, test "x$enable_litecell15" = "xyes")
|
||||||
|
if test "$enable_litecell15" = "yes"; then
|
||||||
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
|
CPPFLAGS="$CPPFLAGS $LITECELL15_INCDIR -I$srcdir/include"
|
||||||
|
AC_CHECK_HEADER([nrw/litecell15/litecell15.h],[],
|
||||||
|
[AC_MSG_ERROR([nrw/litecell15/litecell15.h can not be found in $litecell15_incdir])],
|
||||||
|
[#include <nrw/litecell15/litecell15.h>])
|
||||||
|
PKG_CHECK_MODULES(LIBSYSTEMD, libsystemd)
|
||||||
|
CPPFLAGS=$oldCPPFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to enable NuRAN Wireless OC-2G hardware support])
|
||||||
|
AC_ARG_ENABLE(oc2g,
|
||||||
|
AC_HELP_STRING([--enable-oc2g],
|
||||||
|
[enable code for NuRAN Wireless OC-2G bts [default=no]]),
|
||||||
|
[enable_oc2g="yes"],[enable_oc2g="no"])
|
||||||
|
AC_ARG_WITH([oc2g], [AS_HELP_STRING([--with-oc2g=INCLUDE_DIR], [Location of the OC-2G API header files])],
|
||||||
|
[oc2g_incdir="$withval"],[oc2g_incdir="$incdir"])
|
||||||
|
AC_SUBST([OC2G_INCDIR], -I$oc2g_incdir)
|
||||||
|
AC_MSG_RESULT([$enable_oc2g])
|
||||||
|
AM_CONDITIONAL(ENABLE_OC2GBTS, test "x$enable_oc2g" = "xyes")
|
||||||
|
if test "$enable_oc2g" = "yes"; then
|
||||||
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
|
CPPFLAGS="$CPPFLAGS $OC2G_INCDIR -I$srcdir/include"
|
||||||
|
AC_CHECK_HEADER([nrw/oc2g/oc2g.h],[],
|
||||||
|
[AC_MSG_ERROR([nrw/oc2g/oc2g.h can not be found in $oc2g_incdir])],
|
||||||
|
[#include <nrw/oc2g/oc2g.h>])
|
||||||
|
PKG_CHECK_MODULES(LIBSYSTEMD, libsystemd)
|
||||||
|
PKG_CHECK_MODULES(LIBGPS, libgps)
|
||||||
|
CPPFLAGS=$oldCPPFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate manuals
|
||||||
|
AC_ARG_ENABLE(manuals,
|
||||||
|
[AS_HELP_STRING(
|
||||||
|
[--enable-manuals],
|
||||||
|
[Generate manual PDFs [default=no]],
|
||||||
|
)],
|
||||||
|
[osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"])
|
||||||
|
AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"])
|
||||||
|
AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals"
|
||||||
|
fallback])
|
||||||
|
if test x"$osmo_ac_build_manuals" = x"yes"
|
||||||
|
then
|
||||||
|
# Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback)
|
||||||
|
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
||||||
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)"
|
||||||
|
else
|
||||||
|
OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)"
|
||||||
|
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
||||||
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)"
|
||||||
|
else
|
||||||
|
OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals"
|
||||||
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! test -d "$OSMO_GSM_MANUALS_DIR"; then
|
||||||
|
AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find and run check-depends
|
||||||
|
CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh"
|
||||||
|
if ! test -x "$CHECK_DEPENDS"; then
|
||||||
|
CHECK_DEPENDS="osmo-gsm-manuals-check-depends"
|
||||||
|
fi
|
||||||
|
if ! $CHECK_DEPENDS; then
|
||||||
|
AC_MSG_ERROR("missing dependencies for --enable-manuals")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Put in Makefile with absolute path
|
||||||
|
OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")"
|
||||||
|
AC_SUBST([OSMO_GSM_MANUALS_DIR])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://www.freedesktop.org/software/systemd/man/daemon.html
|
||||||
|
AC_ARG_WITH([systemdsystemunitdir],
|
||||||
|
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
|
||||||
|
[with_systemdsystemunitdir=auto])
|
||||||
|
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
|
||||||
|
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
||||||
|
|
||||||
|
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
|
||||||
|
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
|
||||||
|
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
|
||||||
|
with_systemdsystemunitdir=no],
|
||||||
|
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
|
||||||
|
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
||||||
|
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
||||||
|
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
|
||||||
|
|
||||||
|
AC_MSG_RESULT([CFLAGS="$CFLAGS"])
|
||||||
|
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
|
||||||
|
|
||||||
|
AM_CONFIG_HEADER(btsconfig.h)
|
||||||
|
|
||||||
AC_OUTPUT(
|
AC_OUTPUT(
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/common/Makefile
|
src/common/Makefile
|
||||||
|
src/osmo-bts-virtual/Makefile
|
||||||
|
src/osmo-bts-omldummy/Makefile
|
||||||
src/osmo-bts-sysmo/Makefile
|
src/osmo-bts-sysmo/Makefile
|
||||||
src/osmo-bts-bb/Makefile
|
src/osmo-bts-litecell15/Makefile
|
||||||
|
src/osmo-bts-oc2g/Makefile
|
||||||
|
src/osmo-bts-trx/Makefile
|
||||||
|
src/osmo-bts-octphy/Makefile
|
||||||
include/Makefile
|
include/Makefile
|
||||||
include/osmo-bts/Makefile
|
include/osmo-bts/Makefile
|
||||||
|
tests/Makefile
|
||||||
|
tests/paging/Makefile
|
||||||
|
tests/agch/Makefile
|
||||||
|
tests/cipher/Makefile
|
||||||
|
tests/sysmobts/Makefile
|
||||||
|
tests/misc/Makefile
|
||||||
|
tests/handover/Makefile
|
||||||
|
tests/tx_power/Makefile
|
||||||
|
tests/power/Makefile
|
||||||
|
tests/meas/Makefile
|
||||||
|
doc/Makefile
|
||||||
|
doc/examples/Makefile
|
||||||
|
doc/manuals/Makefile
|
||||||
|
contrib/Makefile
|
||||||
|
contrib/systemd/Makefile
|
||||||
Makefile)
|
Makefile)
|
||||||
|
|||||||
1
contrib/Makefile.am
Normal file
1
contrib/Makefile.am
Normal file
@@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = systemd
|
||||||
89
contrib/dtx_check.gawk
Executable file
89
contrib/dtx_check.gawk
Executable file
@@ -0,0 +1,89 @@
|
|||||||
|
#!/usr/bin/gawk -f
|
||||||
|
|
||||||
|
# Expected input format: FN TYPE
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
DELTA = 0
|
||||||
|
ERR = 0
|
||||||
|
FORCE = 0
|
||||||
|
FN = 0
|
||||||
|
SILENCE = 0
|
||||||
|
TYPE = ""
|
||||||
|
CHK = ""
|
||||||
|
U_MAX = 8 * 20 + 120 / 26
|
||||||
|
U_MIN = 8 * 20 - 120 / 26
|
||||||
|
F_MAX = 3 * 20 + 120 / 26
|
||||||
|
F_MIN = 3 * 20 - 120 / 26
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if (NR > 2) { # we have data from previous record to compare to
|
||||||
|
DELTA = ($1 - FN) * 120 / 26
|
||||||
|
CHK = "OK"
|
||||||
|
if ("FACCH" == $2 && "ONSET" == TYPE) { # ONSET due to FACCH is NOT a talkspurt
|
||||||
|
SILENCE = 1
|
||||||
|
}
|
||||||
|
if (("UPDATE" == TYPE || "FIRST" == TYPE) && ("FACCH" == $2 || "SPEECH" == $2)) { # check for missing ONSET:
|
||||||
|
CHK = "FAIL: missing ONSET (" $2 ") after " TYPE "."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("SID_P1" == $2) {
|
||||||
|
CHK = "FAIL: regular AMR payload with FT SID and STI=0 (should be either pyaload Update or STI=1)."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("FORCED_FIRST" == $2 || "FORCED_NODATA" == $2 || "FORCED_F_P2" == $2 || "FORCED_F_INH" == $2 || "FORCED_U_INH" == $2) {
|
||||||
|
CHK = "FAIL: event " $2 " inserted by DSP."
|
||||||
|
FORCE++
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("FIRST_P2" != $2 && "FIRST_P1" == TYPE) {
|
||||||
|
CHK = "FAIL: " TYPE " followed by " $2 " instead of P2."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("FIRST" == $2 && "FIRST" == TYPE) {
|
||||||
|
CHK = "FAIL: multiple SID FIRST in a row."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("OK" == CHK && "ONSET" != $2) { # check inter-SID distances:
|
||||||
|
if ("UPDATE" == TYPE) {
|
||||||
|
if (DELTA > U_MAX) {
|
||||||
|
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too big " DELTA "ms > " U_MAX "ms."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("UPDATE" == $2 && DELTA < U_MIN) {
|
||||||
|
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too small " DELTA "ms < " U_MIN "ms."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("FIRST" == TYPE) {
|
||||||
|
if (DELTA > F_MAX) {
|
||||||
|
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID FIRST (@" FN ") too big " DELTA "ms > " F_MAX "ms."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
if ("UPDATE" == $2 && DELTA < F_MIN) {
|
||||||
|
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too small " DELTA "ms < " F_MIN "ms."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("FACCH" == TYPE && "FIRST" != $2 && "FACCH" != $2 && 1 == SILENCE) { # check FACCH handling
|
||||||
|
CHK = "FAIL: incorrect silence resume with " $2 " after FACCH."
|
||||||
|
ERR++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("SPEECH" == $2 || "ONSET" == $2) { # talkspurt
|
||||||
|
SILENCE = 0
|
||||||
|
}
|
||||||
|
if ("UPDATE" == $2 || "FIRST" == $2) { # silence
|
||||||
|
SILENCE = 1
|
||||||
|
}
|
||||||
|
print $1, $2, CHK
|
||||||
|
if ($2 != "EMPTY") { # skip over EMPTY records
|
||||||
|
TYPE = $2
|
||||||
|
FN = $1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
print "Check completed: found " ERR " errors (" FORCE " events inserted by DSP) in " NR " records."
|
||||||
|
}
|
||||||
40
contrib/dump_docs.py
Executable file
40
contrib/dump_docs.py
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
"""
|
||||||
|
Start the process and dump the documentation to the doc dir
|
||||||
|
"""
|
||||||
|
|
||||||
|
import socket, subprocess, time,os
|
||||||
|
|
||||||
|
env = os.environ
|
||||||
|
env['L1FWD_BTS_HOST'] = '127.0.0.1'
|
||||||
|
|
||||||
|
bts_proc = subprocess.Popen(["./src/osmo-bts-sysmo/sysmobts-remote",
|
||||||
|
"-c", "./doc/examples/sysmo/osmo-bts-sysmo.cfg"], env = env,
|
||||||
|
stdin=None, stdout=None)
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
try:
|
||||||
|
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
sck.setblocking(1)
|
||||||
|
sck.connect(("localhost", 4241))
|
||||||
|
sck.recv(4096)
|
||||||
|
|
||||||
|
# Now send the command
|
||||||
|
sck.send("show online-help\r")
|
||||||
|
xml = ""
|
||||||
|
while True:
|
||||||
|
data = sck.recv(4096)
|
||||||
|
xml = "%s%s" % (xml, data)
|
||||||
|
if data.endswith('\r\nOsmoBTS> '):
|
||||||
|
break
|
||||||
|
|
||||||
|
# Now write everything until the end to the file
|
||||||
|
out = open('doc/vty_reference.xml', 'w')
|
||||||
|
out.write(xml[18:-11])
|
||||||
|
out.close()
|
||||||
|
finally:
|
||||||
|
# Clean-up
|
||||||
|
bts_proc.kill()
|
||||||
|
bts_proc.wait()
|
||||||
|
|
||||||
91
contrib/eeprom_reader.c
Normal file
91
contrib/eeprom_reader.c
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/* GPLv3+ to read sysmobts-v2 revD or later EEPROM from userspace */
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <linux/i2c.h>
|
||||||
|
#include <linux/i2c-dev.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Can read a 16bit at24 eeprom with 8192 byte in storage (24c64) */
|
||||||
|
static int dump_eeprom(int fd, int out)
|
||||||
|
{
|
||||||
|
#define STEP 8192
|
||||||
|
#define SIZE 8192
|
||||||
|
uint8_t buf[STEP + 2];
|
||||||
|
int rc = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < SIZE; i += STEP) {
|
||||||
|
/* write the address */
|
||||||
|
buf[0] = i >> 8;
|
||||||
|
buf[1] = i;
|
||||||
|
rc = write(fd, buf, 2);
|
||||||
|
if (rc != 2) {
|
||||||
|
fprintf(stderr, "writing address failed: %d/%d/%s\n", rc, errno, strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* execute step amount of reads */
|
||||||
|
rc = read(fd, buf, STEP);
|
||||||
|
if (rc != STEP) {
|
||||||
|
fprintf(stderr, "Failed to read: %d/%d/%s\n", rc, errno, strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
write(out, buf, STEP);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int i2c_fd, out_fd;
|
||||||
|
char *filename = "/dev/i2c-1";
|
||||||
|
char *out_file = "eeprom.out";
|
||||||
|
int addr = 0x50;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
i2c_fd = open(filename, O_RDWR);
|
||||||
|
if (i2c_fd < 0) {
|
||||||
|
fprintf(stderr, "Failed to open i2c device %d/%d/%s\n",
|
||||||
|
i2c_fd, errno, strerror(errno));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* force using that address it is already bound with a driver */
|
||||||
|
rc = ioctl(i2c_fd, I2C_SLAVE_FORCE, addr);
|
||||||
|
if (rc < 0) {
|
||||||
|
fprintf(stderr, "Failed to claim i2c device %d/%d/%s\n",
|
||||||
|
rc, errno, strerror(errno));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc >= 2)
|
||||||
|
out_file = argv[1];
|
||||||
|
out_fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||||
|
if (out_fd < 0) {
|
||||||
|
fprintf(stderr, "Failed to open out device %s %d/%d/%s\n",
|
||||||
|
out_file, rc, errno, strerror(errno));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dump_eeprom(i2c_fd, out_fd) != 0) {
|
||||||
|
unlink(out_file);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
57
contrib/jenkins_bts_model.sh
Executable file
57
contrib/jenkins_bts_model.sh
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts. This is how we build on jenkins.osmocom.org
|
||||||
|
#
|
||||||
|
# environment variables:
|
||||||
|
# * FIRMWARE_VERSION: which firmware version to build ("master", "femtobts_v2.7", ...)
|
||||||
|
# * WITH_MANUALS: build manual PDFs if set to "1"
|
||||||
|
# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1")
|
||||||
|
#
|
||||||
|
# usage: jenkins_bts_model.sh BTS_MODEL
|
||||||
|
# * BTS_MODEL: which BTS model specific script to run ("sysmo", "oct", ...)
|
||||||
|
#
|
||||||
|
|
||||||
|
bts_model="$1"
|
||||||
|
|
||||||
|
if [ "x$bts_model" = "x" ]; then
|
||||||
|
echo "Error: You have to specify the BTS model as first argument, e.g. $0 sysmo"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "./contrib" ]; then
|
||||||
|
echo "Run ./contrib/jenkins_bts_model.sh from the root of the osmo-bts tree"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -x -e
|
||||||
|
|
||||||
|
case "$bts_model" in
|
||||||
|
|
||||||
|
sysmo)
|
||||||
|
./contrib/jenkins_sysmobts.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
oct)
|
||||||
|
./contrib/jenkins_oct.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
lc15)
|
||||||
|
./contrib/jenkins_lc15.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
oc2g)
|
||||||
|
./contrib/jenkins_oc2g.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
trx)
|
||||||
|
./contrib/jenkins_bts_trx.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
oct+trx)
|
||||||
|
./contrib/jenkins_oct_and_bts_trx.sh
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
set +x
|
||||||
|
echo "Unknown BTS model '$bts_model'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
24
contrib/jenkins_bts_trx.sh
Executable file
24
contrib/jenkins_bts_trx.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-trx
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-sanitize \
|
||||||
|
--enable-werror \
|
||||||
|
--enable-trx \
|
||||||
|
"
|
||||||
|
|
||||||
|
build_bts "osmo-bts-trx" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
62
contrib/jenkins_common.sh
Normal file
62
contrib/jenkins_common.sh
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# this is a common helper script that is shared among all BTS model
|
||||||
|
# specific helper scripts like jenkins_sysmobts.sh. You shouldn't call
|
||||||
|
# this directly, but rather indirectly via the bts-specific scripts
|
||||||
|
|
||||||
|
if ! [ -x "$(command -v osmo-deps.sh)" ]; then
|
||||||
|
echo "Error: We need to have scripts/osmo-deps.sh from http://git.osmocom.org/osmo-ci/ in PATH !"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
base="$PWD"
|
||||||
|
deps="$base/deps"
|
||||||
|
inst="$deps/install"
|
||||||
|
|
||||||
|
export deps inst
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
|
|
||||||
|
mkdir -p "$deps"
|
||||||
|
|
||||||
|
verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
|
||||||
|
|
||||||
|
# generic project build function, usage:
|
||||||
|
# build "PROJECT-NAME" "CONFIGURE OPTIONS"
|
||||||
|
build_bts() {
|
||||||
|
set +x
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
echo " =============================== $1 ==============================="
|
||||||
|
echo
|
||||||
|
set -x
|
||||||
|
|
||||||
|
cd $deps
|
||||||
|
osmo-deps.sh libosmocore
|
||||||
|
cd $base
|
||||||
|
shift
|
||||||
|
|
||||||
|
# Manuals: build
|
||||||
|
conf_flags="$*"
|
||||||
|
if [ "$WITH_MANUALS" = "1" ]; then
|
||||||
|
conf_flags="$conf_flags --enable-manuals"
|
||||||
|
osmo-build-dep.sh osmo-gsm-manuals
|
||||||
|
export PATH="$inst/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
autoreconf --install --force
|
||||||
|
./configure $conf_flags
|
||||||
|
$MAKE $PARALLEL_MAKE
|
||||||
|
$MAKE check || cat-testlogs.sh
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS="$conf_flags" $MAKE distcheck || cat-testlogs.sh
|
||||||
|
|
||||||
|
# Manuals: publish
|
||||||
|
if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then
|
||||||
|
$MAKE -C "$base/doc/manuals" publish
|
||||||
|
fi
|
||||||
|
|
||||||
|
$MAKE maintainer-clean
|
||||||
|
}
|
||||||
25
contrib/jenkins_lc15.sh
Executable file
25
contrib/jenkins_lc15.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-lc15
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
osmo-layer1-headers.sh lc15 "$FIRMWARE_VERSION"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-sanitize \
|
||||||
|
--with-litecell15=$deps/layer1-headers/inc/ \
|
||||||
|
--enable-litecell15 \
|
||||||
|
"
|
||||||
|
|
||||||
|
build_bts "osmo-bts-lc15" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
25
contrib/jenkins_oc2g.sh
Executable file
25
contrib/jenkins_oc2g.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-oc2g
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
osmo-layer1-headers.sh oc2g "$FIRMWARE_VERSION"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-sanitize \
|
||||||
|
--with-oc2g=$deps/layer1-headers/inc/ \
|
||||||
|
--enable-oc2g \
|
||||||
|
"
|
||||||
|
|
||||||
|
build_bts "osmo-bts-oc2g" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
26
contrib/jenkins_oct.sh
Executable file
26
contrib/jenkins_oct.sh
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-octphy
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
osmo-layer1-headers.sh oct "$FIRMWARE_VERSION"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-sanitize \
|
||||||
|
--enable-werror \
|
||||||
|
--with-octsdr-2g=$deps/layer1-headers/ \
|
||||||
|
--enable-octphy \
|
||||||
|
"
|
||||||
|
|
||||||
|
build_bts "osmo-bts-octphy" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
27
contrib/jenkins_oct_and_bts_trx.sh
Executable file
27
contrib/jenkins_oct_and_bts_trx.sh
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-octphy + osmo-bts-trx
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
|
||||||
|
osmo-layer1-headers.sh oct "$FIRMWARE_VERSION"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-werror \
|
||||||
|
--with-octsdr-2g=$deps/layer1-headers/ \
|
||||||
|
--enable-octphy \
|
||||||
|
--enable-trx \
|
||||||
|
"
|
||||||
|
|
||||||
|
build_bts "osmo-bts-octphy+trx" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
33
contrib/jenkins_sysmobts.sh
Executable file
33
contrib/jenkins_sysmobts.sh
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# jenkins build helper script for osmo-bts-sysmo
|
||||||
|
|
||||||
|
# shellcheck source=contrib/jenkins_common.sh
|
||||||
|
. $(dirname "$0")/jenkins_common.sh
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
||||||
|
|
||||||
|
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
export LD_LIBRARY_PATH="$inst/lib"
|
||||||
|
|
||||||
|
osmo-build-dep.sh libosmo-abis
|
||||||
|
|
||||||
|
cd "$deps"
|
||||||
|
osmo-layer1-headers.sh sysmo "$FIRMWARE_VERSION"
|
||||||
|
mkdir -p "$inst/include/sysmocom/femtobts"
|
||||||
|
ln -s $deps/layer1-headers/include/* "$inst/include/sysmocom/femtobts/"
|
||||||
|
|
||||||
|
configure_flags="\
|
||||||
|
--enable-sanitize \
|
||||||
|
--enable-werror \
|
||||||
|
--enable-sysmocom-bts \
|
||||||
|
--with-sysmobts=$inst/include/ \
|
||||||
|
"
|
||||||
|
|
||||||
|
# This will not work for the femtobts
|
||||||
|
if [ $FIRMWARE_VERSION != "femtobts_v2.7" ]; then
|
||||||
|
configure_flags="$configure_flags --enable-sysmobts-calib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
build_bts "osmo-bts-sysmo" "$configure_flags"
|
||||||
|
|
||||||
|
osmo-clean-workspace.sh
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: l1fwd
|
|
||||||
# Required-Start:
|
|
||||||
# Required-Stop: $local_fs
|
|
||||||
# Default-Start: 5
|
|
||||||
# Default-Stop: 0 6
|
|
||||||
# Short-Description: Start screen session with l1fwd software
|
|
||||||
# Description:
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
. /etc/default/rcS
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
/usr/bin/screen -d -m -c /etc/osmocom/screenrc-l1fwd
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
echo "This script doesn't support stop"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
restart|reload|force-reload)
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
show)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: sysmobts {start|stop|show|reload|restart}" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
while [ -e /etc/passwd ]; do
|
|
||||||
$*
|
|
||||||
done
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
chdir /tmp
|
|
||||||
screen -t BTS 0 /etc/osmocom/respawn.sh /usr/bin/l1fwd-proxy
|
|
||||||
detach
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
chdir /tmp
|
|
||||||
screen -t BTS 0 /etc/osmocom/respawn.sh /usr/bin/sysmobts -c /etc/osmocom/osmo-bts.cfg
|
|
||||||
detach
|
|
||||||
91
contrib/si_check.gawk
Executable file
91
contrib/si_check.gawk
Executable file
@@ -0,0 +1,91 @@
|
|||||||
|
#!/usr/bin/gawk -f
|
||||||
|
|
||||||
|
# Usage example:
|
||||||
|
# tshark -2 -t r -E 'header=n' -E 'separator=,' -E 'quote=n' -T fields -e gsmtap.frame_nr -e gsmtap.ts -e gsmtap.arfcn -e _ws.col.Info -Y 'gsmtap' -r test.pcapng.gz | grep Information | env ARFCN=878 ./si_check.gawk
|
||||||
|
# read summary on number of bis/ter messages and adjust BT_BOTH and BT_NONE environment variables accordingly
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
FS = ","
|
||||||
|
FAILED = 0
|
||||||
|
IGNORE = 0
|
||||||
|
BIS = 0
|
||||||
|
TER = 0
|
||||||
|
QUA = 0
|
||||||
|
BT_BOTH = ENVIRON["BOTH"]
|
||||||
|
BT_NONE = ENVIRON["NONE"]
|
||||||
|
TC_INDEX = 0
|
||||||
|
TC4[4] = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
{ # expected .csv input as follows: gsmtap.frame_nr,gsmtap.ts,gsmtap.arfcn,_ws.col.Info
|
||||||
|
if ("ARFCN" in ENVIRON) { # ARFCN filtering is enabled
|
||||||
|
if (ENVIRON["ARFCN"] != $3) { # ignore other ARFCNs
|
||||||
|
IGNORE++
|
||||||
|
next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type = get_si_type($4)
|
||||||
|
tc = get_tc($1)
|
||||||
|
result = "FAIL"
|
||||||
|
|
||||||
|
if (1 == check_si_tc(tc, type)) { result = "OK" }
|
||||||
|
else { FAILED++ }
|
||||||
|
|
||||||
|
if (4 == tc) {
|
||||||
|
TC4[TC_INDEX] = type
|
||||||
|
TC_INDEX = int((TC_INDEX + 1) % 4)
|
||||||
|
if (0 == check_tc4c(type) && "OK" == result) {
|
||||||
|
result = "FAIL"
|
||||||
|
FAILED++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (type == "2bis") { BIS++ }
|
||||||
|
if (type == "2ter") { TER++ }
|
||||||
|
if (type == "2quater") { QUA++ }
|
||||||
|
# for (i in TC4) print TC4[i] # debugging
|
||||||
|
printf "ARFCN=%d FN=%d TS=%d TC=%d TYPE=%s %s\n", $3, $1, $2, tc, type, result
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
printf "check completed: total %d, failed %d, ignored %d, ok %d\nSI2bis = %d, SI2ter = %d, SI2quater = %d\n", NR, FAILED, IGNORE, NR - FAILED - IGNORE, BIS, TER, QUA
|
||||||
|
if ((BIS > 0 || TER > 0) && BT_NONE) { printf "please re-run with correct environment: unset 'NONE' variable\n" }
|
||||||
|
if ((BIS > 0 && TER > 0) && !BT_BOTH) { printf "please re-run with correct environment: set 'BOTH' variable\n" }
|
||||||
|
}
|
||||||
|
|
||||||
|
func get_si_type(s, x) { # we rely on format of Info column in wireshark output - if it's changed we're screwed
|
||||||
|
return x[split(s, x, " ")]
|
||||||
|
}
|
||||||
|
|
||||||
|
func get_tc(f) { # N. B: all numbers in awk are float
|
||||||
|
return int(int(f / 51) % 8)
|
||||||
|
}
|
||||||
|
|
||||||
|
func check_tc4c(si, count) { # check for "once in 4 consecutive occurrences" rule
|
||||||
|
count = 0
|
||||||
|
if ("2quater" != si || "2ter" != si) { return 1 } # rules is not applicable to other types
|
||||||
|
if (BT_NONE && "2quater" == si) { return 0 } # should be on TC=5 instead
|
||||||
|
if (!BT_BOTH && "2ter" == si) { return 0 } # should be on TC=5 instead
|
||||||
|
if (0 in TC4 && 1 in TC4 && 2 in TC4 && 3 in TC4) { # only check if we have 4 consecutive occurrences already
|
||||||
|
if (si == TC4[0]) { count++ }
|
||||||
|
if (si == TC4[1]) { count++ }
|
||||||
|
if (si == TC4[2]) { count++ }
|
||||||
|
if (si == TC4[3]) { count++ }
|
||||||
|
if (0 == count) { return 0 }
|
||||||
|
}
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
func check_si_tc(tc, si) { # check that SI scheduling on BCCH Norm is matching rules from 3GPP TS 05.02 § 6.3.1.3
|
||||||
|
switch (si) {
|
||||||
|
case "1": return (0 == tc) ? 1 : 0
|
||||||
|
case "2": return (1 == tc) ? 1 : 0
|
||||||
|
case "2bis": return (5 == tc) ? 1 : 0
|
||||||
|
case "13": return (4 == tc) ? 1 : 0
|
||||||
|
case "9": return (4 == tc) ? 1 : 0
|
||||||
|
case "2ter": if (BT_BOTH) { return (4 == tc) ? 1 : 0 } else { return (5 == tc) ? 1 : 0 }
|
||||||
|
case "2quater": if (BT_NONE) { return (5 == tc) ? 1 : 0 } else { return (4 == tc) ? 1 : 0 }
|
||||||
|
case "3": return (2 == tc || 6 == tc) ? 1 : 0
|
||||||
|
case "4": return (3 == tc || 7 == tc) ? 1 : 0
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
110
contrib/superfemto.sh
Executable file
110
contrib/superfemto.sh
Executable file
@@ -0,0 +1,110 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Split common DSP call log file (produced by superfemto-compatible firmware) into 4 separate call leg files (MO/MT & DL/UL) with events in format "FN EVENT_TYPE":
|
||||||
|
# MO Mobile Originated
|
||||||
|
# MT Mobile Terminated
|
||||||
|
# DL DownLink (BTS -> L1)
|
||||||
|
# UL UpLink (L1 -> BTS)
|
||||||
|
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
echo "expecting DSP log file name as parameter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# MO handle appear 1st in the logs
|
||||||
|
MO=$(grep 'h=' $1 | head -n 1 | cut -f2 -d',' | cut -f2 -d= | cut -f1 -d']')
|
||||||
|
|
||||||
|
# direction markers:
|
||||||
|
DLST="_CodeBurst"
|
||||||
|
ULST="_DecodeAndIdentify"
|
||||||
|
|
||||||
|
# DL sed filters:
|
||||||
|
D_EMP='s/ Empty frame request!/EMPTY/i'
|
||||||
|
D_FAC='s/ Coding a FACCH\/. frame !!/FACCH/i'
|
||||||
|
D_FST='s/ Coding a RTP SID First frame !!/FIRST/i'
|
||||||
|
D_FS1='s/ Coding a SID First P1 frame !!/FIRST_P1/i'
|
||||||
|
D_FS2='s/ Coding a SID First P2 frame !!/FIRST_P2/i'
|
||||||
|
D_RP1='s/ Coding a RTP SID P1 frame !!/SID_P1/i'
|
||||||
|
D_UPD='s/ Coding a RTP SID Update frame !!/UPDATE/i'
|
||||||
|
D_SPE='s/ Coding a RTP Speech frame !!/SPEECH/i'
|
||||||
|
D_ONS='s/ Coding a Onset frame !!/ONSET/i'
|
||||||
|
D_FO1='s/ A speech frame is following a NoData or SID First without an Onset./FORCED_FIRST/i'
|
||||||
|
D_FO2='s/ A speech frame is following a NoData without an Onset./FORCED_NODATA/i'
|
||||||
|
D_FP2='s/ A speech frame is following a NoData or SID_FIRST_P2 without an Onset./FORCED_F_P2/i'
|
||||||
|
D_FIN='s/ A speech frame is following a SID_FIRST without inhibit. A SID_FIRST_INH will be inserted./FORCED_F_INH/i'
|
||||||
|
D_UIN='s/ A speech frame is following a SID_UPDATE without inhibit. A SID_UPDATE_INH will be inserted./FORCED_U_INH/i'
|
||||||
|
|
||||||
|
# UL sed filters:
|
||||||
|
U_NOD='s/ It is a No Data frame !!/NODATA/i'
|
||||||
|
U_ONS='s/ It is an ONSET frame !!/ONSET/i'
|
||||||
|
U_UPD='s/ It is a SID UPDATE frame !!/UPDATE/i'
|
||||||
|
U_FST='s/ It is a SID FIRST frame !!/FIRST/i'
|
||||||
|
U_FP1='s/ It is a SID-First P1 frame !!/FIRST_P1/i'
|
||||||
|
U_FP2='s/ It is a SID-First P2 frame !!/FIRST_P2/i'
|
||||||
|
U_SPE='s/ It is a SPEECH frame *!!/SPEECH/i'
|
||||||
|
U_UIN='s/ It is a SID update InH frame !!/UPD_INH/i'
|
||||||
|
U_FIN='s/ It is a SID-First InH frame !!/FST_INH/i'
|
||||||
|
U_RAT='s/ It is a RATSCCH data frame !!/RATSCCH/i'
|
||||||
|
|
||||||
|
DL () { # filter downlink-related entries
|
||||||
|
grep $DLST $1 > $1.DL.tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
UL () { # uplink does not require special fix
|
||||||
|
grep $ULST $1 > $1.UL.tmp.fix
|
||||||
|
}
|
||||||
|
|
||||||
|
DL $1
|
||||||
|
UL $1
|
||||||
|
|
||||||
|
FIX() { # add MO/MT marker from preceding line to inserted ONSETs so filtering works as expected
|
||||||
|
cat $1.DL.tmp | awk 'BEGIN{ FS=" h="; H="" } { if (NF > 1) { H = $2; print $1 "h=" $2 } else { print $1 ", h=" H } }' > $1.DL.tmp.fix
|
||||||
|
}
|
||||||
|
|
||||||
|
FIX $1
|
||||||
|
|
||||||
|
MO() { # filter MO call DL or UL logs
|
||||||
|
grep "h=$MO" $1.tmp.fix > $1.MO.raw
|
||||||
|
}
|
||||||
|
|
||||||
|
MT() { # filter MT call DL or UL logs
|
||||||
|
grep -v "h=$MO" $1.tmp.fix > $1.MT.raw
|
||||||
|
}
|
||||||
|
|
||||||
|
MO $1.DL
|
||||||
|
MT $1.DL
|
||||||
|
MO $1.UL
|
||||||
|
MT $1.UL
|
||||||
|
|
||||||
|
PREP() { # prepare logs for reformatting
|
||||||
|
cat $1.raw | cut -f2 -d')' | cut -f1 -d',' | cut -f2 -d'>' | sed 's/\[u32Fn/fn/' | sed 's/\[ u32Fn/fn/' | sed 's/fn = /fn=/' | sed 's/fn=//' | sed 's/\[Fn=//' | sed 's/ An Onset will be inserted.//' > $1.tmp1
|
||||||
|
}
|
||||||
|
|
||||||
|
PREP "$1.DL.MT"
|
||||||
|
PREP "$1.DL.MO"
|
||||||
|
PREP "$1.UL.MT"
|
||||||
|
PREP "$1.UL.MO"
|
||||||
|
|
||||||
|
RD() { # reformat DL logs for consistency checks
|
||||||
|
cat $1.tmp1 | sed "$D_FST" | sed "$D_SPE" | sed "$D_FS1" | sed "$D_FS2" | sed "$D_UIN" | sed "$D_FIN" | sed "$D_UPD" | sed "$D_INH" | sed "$D_RP1" | sed "$D_ONS" | sed "$D_EMP" | sed "$D_FAC" | sed "$D_FO1" | sed "$D_FO2" | sed "$D_FP2" > $1.tmp2
|
||||||
|
}
|
||||||
|
|
||||||
|
RU() { # reformat UL logs for consistency checks
|
||||||
|
cat $1.tmp1 | sed "$U_FST" | sed "$U_SPE" | sed "$U_FP1" | sed "$U_FP2" | sed "$U_UPD" | sed "$U_ONS" | sed "$U_NOD" | sed "$U_UIN" | sed "$U_FIN" | sed "$U_RAT" > $1.tmp2
|
||||||
|
}
|
||||||
|
|
||||||
|
RD "$1.DL.MT"
|
||||||
|
RD "$1.DL.MO"
|
||||||
|
RU "$1.UL.MT"
|
||||||
|
RU "$1.UL.MO"
|
||||||
|
|
||||||
|
SW() { # swap fields
|
||||||
|
cat $1.tmp2 | awk '{ print $2, $1 }' > $1
|
||||||
|
}
|
||||||
|
|
||||||
|
SW "$1.DL.MT"
|
||||||
|
SW "$1.DL.MO"
|
||||||
|
SW "$1.UL.MT"
|
||||||
|
SW "$1.UL.MO"
|
||||||
|
|
||||||
|
rm $1.*.tmp*
|
||||||
@@ -9,14 +9,12 @@
|
|||||||
# Description:
|
# Description:
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
. /etc/default/rcS
|
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
/usr/bin/screen -d -m -c /etc/osmocom/screenrc-sysmobts
|
/usr/bin/screen -d -m -c /etc/osmocom/screenrc-sysmobts -S sysmobts
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
echo "This script doesn't support stop"
|
/usr/bin/screen -d -r sysmobts -X quit
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
restart|reload|force-reload)
|
restart|reload|force-reload)
|
||||||
|
|||||||
32
contrib/systemd/Makefile.am
Normal file
32
contrib/systemd/Makefile.am
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
EXTRA_DIST = \
|
||||||
|
lc15bts-mgr.service \
|
||||||
|
oc2gbts-mgr.service \
|
||||||
|
osmo-bts-lc15.service \
|
||||||
|
osmo-bts-oc2g.service \
|
||||||
|
osmo-bts-sysmo.service \
|
||||||
|
osmo-bts-trx.service \
|
||||||
|
osmo-bts-virtual.service \
|
||||||
|
sysmobts-mgr.service
|
||||||
|
|
||||||
|
if HAVE_SYSTEMD
|
||||||
|
SYSTEMD_SERVICES = osmo-bts-virtual.service
|
||||||
|
|
||||||
|
|
||||||
|
if ENABLE_SYSMOBTS
|
||||||
|
SYSTEMD_SERVICES += osmo-bts-sysmo.service sysmobts-mgr.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_TRX
|
||||||
|
SYSTEMD_SERVICES += osmo-bts-trx.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_LC15BTS
|
||||||
|
SYSTEMD_SERVICES += osmo-bts-lc15.service lc15bts-mgr.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_OC2GBTS
|
||||||
|
SYSTEMD_SERVICES += osmo-bts-oc2g.service oc2gbts-mgr.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
systemdsystemunit_DATA = $(SYSTEMD_SERVICES)
|
||||||
|
endif # HAVE_SYSTEMD
|
||||||
29
contrib/systemd/lc15bts-mgr.service
Normal file
29
contrib/systemd/lc15bts-mgr.service
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts manager for LC15 / sysmoBTS 2100
|
||||||
|
After=lc15-sysdev-remap.service
|
||||||
|
Wants=lc15-sysdev-remap.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
NotifyAccess=all
|
||||||
|
WatchdogSec=21780s
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
# Make sure directories and symbolic link exist
|
||||||
|
ExecStartPre=/bin/sh -c 'test -d /mnt/storage/var/run/lc15bts-mgr || mkdir -p /mnt/storage/var/run/lc15bts-mgr ; test -d /var/run/lc15bts-mgr || ln -sf /mnt/storage/var/run/lc15bts-mgr/ /var/run'
|
||||||
|
# Make sure BTS operation hour exist
|
||||||
|
ExecStartPre=/bin/sh -c 'test -f /mnt/storage/var/run/lc15bts-mgr/hours-running || echo 0 > /mnt/storage/var/run/lc15bts-mgr/hours-running'
|
||||||
|
# Shutdown all PA correctly
|
||||||
|
ExecStartPre=/bin/sh -c 'echo disabled > /var/lc15/pa-state/pa0/state; echo disabled > /var/lc15/pa-state/pa1/state'
|
||||||
|
ExecStartPre=/bin/sh -c 'echo 0 > /var/lc15/pa-supply/max_microvolts; echo 0 > /var/lc15/pa-supply/min_microvolts'
|
||||||
|
|
||||||
|
ExecStart=/usr/bin/lc15bts-mgr -s -c /etc/osmocom/lc15bts-mgr.cfg
|
||||||
|
|
||||||
|
# Shutdown all PA correctly
|
||||||
|
ExecStopPost=/bin/sh -c 'echo disabled > /var/lc15/pa-state/pa0/state; echo disabled > /var/lc15/pa-state/pa1/state'
|
||||||
|
ExecStopPost=/bin/sh -c 'echo 0 > /var/lc15/pa-supply/max_microvolts; echo 0 > /var/lc15/pa-supply/min_microvolts'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=osmo-bts-mgr.service
|
||||||
29
contrib/systemd/oc2gbts-mgr.service
Normal file
29
contrib/systemd/oc2gbts-mgr.service
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts manager for OC-2G
|
||||||
|
After=oc2g-sysdev-remap.service
|
||||||
|
Wants=oc2g-sysdev-remap.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
NotifyAccess=all
|
||||||
|
WatchdogSec=21780s
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
# Make sure directories and symbolic link exist
|
||||||
|
ExecStartPre=/bin/sh -c 'test -d /mnt/storage/var/run/oc2gbts-mgr || mkdir -p /mnt/storage/var/run/oc2gbts-mgr ; test -d /var/run/oc2gbts-mgr || ln -sf /mnt/storage/var/run/oc2gbts-mgr/ /var/run'
|
||||||
|
# Make sure BTS operation hour exist
|
||||||
|
ExecStartPre=/bin/sh -c 'test -f /mnt/storage/var/run/oc2gbts-mgr/hours-running || echo 0 > /mnt/storage/var/run/oc2gbts-mgr/hours-running'
|
||||||
|
# Shutdown all PA correctly
|
||||||
|
ExecStartPre=/bin/sh -c 'echo disabled > /var/oc2g/pa-state/pa0/state;'
|
||||||
|
#ExecStartPre=/bin/sh -c 'echo 0 > /var/oc2g/pa-supply/max_microvolts; echo 0 > /var/oc2g/pa-supply/min_microvolts'
|
||||||
|
|
||||||
|
ExecStart=/usr/bin/oc2gbts-mgr -s -c /etc/osmocom/oc2gbts-mgr.cfg
|
||||||
|
|
||||||
|
# Shutdown all PA correctly
|
||||||
|
ExecStopPost=/bin/sh -c 'echo disabled > /var/oc2g/pa-state/pa0/state;'
|
||||||
|
#ExecStopPost=/bin/sh -c 'echo 0 > /var/oc2g/pa-supply/max_microvolts; echo 0 > /var/oc2g/pa-supply/min_microvolts'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=osmo-bts-mgr.service
|
||||||
18
contrib/systemd/osmo-bts-lc15.service
Normal file
18
contrib/systemd/osmo-bts-lc15.service
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts for LC15 / sysmoBTS 2100
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/osmo-bts-lc15 -t 2 -s -c /etc/osmocom/osmo-bts-lc15.cfg -M
|
||||||
|
RuntimeDirectory=osmo-bts
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
RestartPreventExitStatus=1
|
||||||
|
|
||||||
|
# The msg queues must be read fast enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=osmo-bts.service
|
||||||
18
contrib/systemd/osmo-bts-oc2g.service
Normal file
18
contrib/systemd/osmo-bts-oc2g.service
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts for OC-2G
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/osmo-bts-oc2g -s -c /etc/osmocom/osmo-bts-oc2g.cfg -M
|
||||||
|
RuntimeDirectory=osmo-bts
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
RestartPreventExitStatus=1
|
||||||
|
|
||||||
|
# The msg queues must be read fast enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=osmo-bts.service
|
||||||
21
contrib/systemd/osmo-bts-sysmo.service
Normal file
21
contrib/systemd/osmo-bts-sysmo.service
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts for sysmocom sysmoBTS
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStartPre=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
||||||
|
ExecStart=/usr/bin/osmo-bts-sysmo -s -c /etc/osmocom/osmo-bts-sysmo.cfg -M
|
||||||
|
ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
||||||
|
ExecStopPost=/bin/sh -c 'cat /lib/firmware/sysmobts-v?.bit > /dev/fpgadl_par0 ; sleep 3s; cat /lib/firmware/sysmobts-v?.out > /dev/dspdl_dm644x_0; sleep 1s'
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
RestartPreventExitStatus=1
|
||||||
|
|
||||||
|
# The msg queues must be read fast enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=sysmobts.service
|
||||||
|
Alias=osmo-bts.service
|
||||||
15
contrib/systemd/osmo-bts-trx.service
Normal file
15
contrib/systemd/osmo-bts-trx.service
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Osmocom osmo-bts for osmo-trx
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/osmo-bts-trx -s -c /etc/osmocom/osmo-bts-trx.cfg
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
# Let it process messages quickly enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
15
contrib/systemd/osmo-bts-virtual.service
Normal file
15
contrib/systemd/osmo-bts-virtual.service
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Osmocom GSM BTS for virtual Um layer based on GSMTAP/UDP
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/osmo-bts-virtual -s -c /etc/osmocom/osmo-bts-virtual.cfg
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
# Let it process messages quickly enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
12
contrib/systemd/sysmobts-mgr.service
Normal file
12
contrib/systemd/sysmobts-mgr.service
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=osmo-bts manager for sysmoBTS
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/sysmobts-mgr -ns -c /etc/osmocom/sysmobts-mgr.cfg
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=osmo-bts-mgr.service
|
||||||
1293
debian/changelog
vendored
Normal file
1293
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
9
|
||||||
60
debian/control
vendored
Normal file
60
debian/control
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
Source: osmo-bts
|
||||||
|
Maintainer: Holger Hans Peter Freyther <holger@moiji-mobile.com>
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Build-Depends: debhelper (>= 9),
|
||||||
|
pkg-config,
|
||||||
|
dh-autoreconf,
|
||||||
|
dh-systemd (>= 1.5),
|
||||||
|
autotools-dev,
|
||||||
|
pkg-config,
|
||||||
|
libosmocore-dev,
|
||||||
|
libosmo-abis-dev,
|
||||||
|
libgps-dev,
|
||||||
|
txt2man,
|
||||||
|
osmo-gsm-manuals-dev
|
||||||
|
Standards-Version: 3.9.8
|
||||||
|
Vcs-Browser: http://git.osmocom.org/osmo-bts/
|
||||||
|
Vcs-Git: git://git.osmocom.org/osmo-bts
|
||||||
|
Homepage: https://projects.osmocom.org/projects/osmobts
|
||||||
|
|
||||||
|
Package: osmo-bts-trx
|
||||||
|
Architecture: any
|
||||||
|
Conflicts: osmo-bts
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||||
|
Description: osmo-bts-trx GSM BTS with osmo-trx
|
||||||
|
osmo-bts-trx to be used with the osmo-trx application
|
||||||
|
|
||||||
|
Package: osmo-bts-trx-dbg
|
||||||
|
Architecture: any
|
||||||
|
Section: debug
|
||||||
|
Priority: extra
|
||||||
|
Depends: osmo-bts-trx (= ${binary:Version}), ${misc:Depends}
|
||||||
|
Description: Debug symbols for the osmo-bts-trx
|
||||||
|
Make debugging possible
|
||||||
|
|
||||||
|
Package: osmo-bts-virtual
|
||||||
|
Architecture: any
|
||||||
|
Conflicts: osmo-bts
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||||
|
Description: Virtual Osmocom GSM BTS (no RF hardware; GSMTAP/UDP)
|
||||||
|
This version of OsmoBTS doesn't use actual GSM PHY/Hardware/RF, but
|
||||||
|
utilizes GSMTAP-over-UDP frames for the Um interface. This is useful
|
||||||
|
in fully virtualized setups e.g. in combination with OsmocomBB virt_phy.
|
||||||
|
|
||||||
|
Package: osmo-bts-virtual-dbg
|
||||||
|
Architecture: any
|
||||||
|
Section: debug
|
||||||
|
Priority: extra
|
||||||
|
Depends: osmo-bts-virtual (= ${binary:Version}), ${misc:Depends}
|
||||||
|
Description: Debug symbols for the osmo-bts-virtual
|
||||||
|
Make debugging possible
|
||||||
|
|
||||||
|
Package: osmo-bts-doc
|
||||||
|
Architecture: all
|
||||||
|
Section: doc
|
||||||
|
Priority: optional
|
||||||
|
Depends: ${misc:Depends}
|
||||||
|
Description: ${misc:Package} PDF documentation
|
||||||
|
Various manuals: user manual, VTY reference manual and/or
|
||||||
|
protocol/interface manuals.
|
||||||
81
debian/copyright
vendored
Normal file
81
debian/copyright
vendored
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: osmo-bts
|
||||||
|
Source: http://cgit.osmocom.org/osmo-bts/
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2008-2014 Harald Welte <laforge@gnumonks.org>
|
||||||
|
2009,2011,2013 Andreas Eversberg <jolly@eversberg.eu>
|
||||||
|
2010,2011 On-Waves
|
||||||
|
2012-2015 Holger Hans Peter Freyther
|
||||||
|
2014 sysmocom s.f.m.c. Gmbh
|
||||||
|
2015 Alexander Chemeris <Alexander.Chemeris@fairwaves.co>
|
||||||
|
License: AGPL-3+
|
||||||
|
|
||||||
|
Files: src/osmo-bts-sysmo/eeprom.c
|
||||||
|
src/osmo-bts-sysmo/eeprom.h
|
||||||
|
Copyright: 2012 Nutaq
|
||||||
|
License: MIT
|
||||||
|
Comment: Yves Godin is the author
|
||||||
|
|
||||||
|
Files: src/common/pcu_sock.c
|
||||||
|
Copyright: 2008-2010 Harald Welte <laforge@gnumonks.org>
|
||||||
|
2009-2012 Andreas Eversberg <jolly@eversberg.eu>
|
||||||
|
2012 Holger Hans Peter Freyther
|
||||||
|
License: GPL-2+
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2015-2016 Ruben Undheim <ruben.undheim@gmail.com>
|
||||||
|
License: AGPL-3+
|
||||||
|
|
||||||
|
|
||||||
|
License: AGPL-3+
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
License: GPL-2+
|
||||||
|
This package is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||||
|
|
||||||
|
|
||||||
|
License: MIT
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
.
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
1
debian/osmo-bts-doc.install
vendored
Normal file
1
debian/osmo-bts-doc.install
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
usr/share/doc/osmo-bts-doc/*.pdf
|
||||||
5
debian/osmo-bts-trx.install
vendored
Normal file
5
debian/osmo-bts-trx.install
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
etc/osmocom/osmo-bts-trx.cfg
|
||||||
|
lib/systemd/system/osmo-bts-trx.service
|
||||||
|
usr/bin/osmo-bts-trx
|
||||||
|
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts-trx.cfg
|
||||||
|
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts-trx-calypso.cfg
|
||||||
6
debian/osmo-bts-virtual.install
vendored
Normal file
6
debian/osmo-bts-virtual.install
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
etc/osmocom/osmo-bts-virtual.cfg
|
||||||
|
lib/systemd/system/osmo-bts-virtual.service
|
||||||
|
usr/bin/osmo-bts-virtual
|
||||||
|
usr/bin/osmo-bts-omldummy
|
||||||
|
usr/share/doc/osmo-bts/examples/osmo-bts-virtual/osmo-bts-virtual.cfg
|
||||||
|
usr/share/doc/osmo-bts/examples/osmo-bts-virtual/openbsc-virtual.cfg
|
||||||
32
debian/rules
vendored
Executable file
32
debian/rules
vendored
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
DEBIAN := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
|
||||||
|
DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
|
||||||
|
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')
|
||||||
|
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
|
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --with=systemd --with autoreconf --fail-missing
|
||||||
|
|
||||||
|
override_dh_strip:
|
||||||
|
dh_strip --package=osmo-bts-virtual --dbg-package=osmo-bts-virtual-dbg
|
||||||
|
dh_strip --package=osmo-bts-trx --dbg-package=osmo-bts-trx-dbg
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -- --enable-trx --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals
|
||||||
|
|
||||||
|
override_dh_clean:
|
||||||
|
dh_clean
|
||||||
|
$(RM) tests/package.m4
|
||||||
|
$(RM) tests/testsuite
|
||||||
|
|
||||||
|
# Print test results in case of a failure
|
||||||
|
override_dh_auto_test:
|
||||||
|
dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false)
|
||||||
|
|
||||||
|
# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers)
|
||||||
|
override_dh_compress:
|
||||||
|
dh_compress -X.pdf
|
||||||
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.0 (native)
|
||||||
4
doc/Makefile.am
Normal file
4
doc/Makefile.am
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SUBDIRS = \
|
||||||
|
examples \
|
||||||
|
manuals \
|
||||||
|
$(NULL)
|
||||||
61
doc/control_interface.txt
Normal file
61
doc/control_interface.txt
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
The osmo-bts control interface is currently supporting the following operations:
|
||||||
|
|
||||||
|
h2. generic
|
||||||
|
|
||||||
|
h3. trx.0.thermal-attenuation
|
||||||
|
|
||||||
|
The idea of this parameter is to attenuate the system output power as part of
|
||||||
|
thermal management. In some cases the PA might be passing a critical level,
|
||||||
|
so an external control process can use this attribute to reduce the system
|
||||||
|
output power.
|
||||||
|
|
||||||
|
Please note that all values in the context of transmit power calculation
|
||||||
|
are integers in milli-dB (1/10000 bel), so the below example is setting
|
||||||
|
the attenuation at 3 dB:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
bsc_control.py -d localhost -p 4238 -s trx.0.thermal-attenuation 3000
|
||||||
|
Got message: SET_REPLY 1 trx.0.thermal-attenuation 3000
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.thermal-attenuation
|
||||||
|
Got message: GET_REPLY 1 trx.0.thermal-attenuation 3000
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
h2. sysmobts specific
|
||||||
|
|
||||||
|
h3. trx.0.clock-info
|
||||||
|
|
||||||
|
obtain information on the current clock status:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.clock-info
|
||||||
|
Got message: GET_REPLY 1 trx.0.clock-info -100,ocxo,0,0,gps
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
which is to be interpreted as:
|
||||||
|
* current clock correction value is -100 ppb
|
||||||
|
* current clock source is OCXO
|
||||||
|
* deviation between clock source and calibration source is 0 ppb
|
||||||
|
* resolution of clock error measurement is 0 ppt (0 means no result yet)
|
||||||
|
* current calibration source is GPS
|
||||||
|
|
||||||
|
When this attribute is set, any value passed on is discarded, but the clock
|
||||||
|
calibration process is re-started.
|
||||||
|
|
||||||
|
|
||||||
|
h3. trx.0.clock-correction
|
||||||
|
|
||||||
|
This attribute can get and set the current clock correction value:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.clock-correction
|
||||||
|
Got message: GET_REPLY 1 trx.0.clock-correction -100
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
bsc_control.py -d localhost -p 4238 -s trx.0.clock-correction -- -99
|
||||||
|
Got message: SET_REPLY 1 trx.0.clock-correction success
|
||||||
|
</pre>
|
||||||
55
doc/examples/Makefile.am
Normal file
55
doc/examples/Makefile.am
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
OSMOCONF_FILES = virtual/osmo-bts-virtual.cfg
|
||||||
|
|
||||||
|
doc_virtualdir = $(docdir)/examples/osmo-bts-virtual
|
||||||
|
doc_virtual_DATA = \
|
||||||
|
virtual/osmo-bts-virtual.cfg \
|
||||||
|
virtual/openbsc-virtual.cfg
|
||||||
|
EXTRA_DIST = $(doc_virtual_DATA)
|
||||||
|
|
||||||
|
if ENABLE_SYSMOBTS
|
||||||
|
doc_sysmodir = $(docdir)/examples/osmo-bts-sysmo
|
||||||
|
doc_sysmo_DATA = \
|
||||||
|
sysmo/osmo-bts-sysmo.cfg \
|
||||||
|
sysmo/sysmobts-mgr.cfg
|
||||||
|
EXTRA_DIST += $(doc_sysmo_DATA)
|
||||||
|
OSMOCONF_FILES += sysmo/osmo-bts-sysmo.cfg sysmo/sysmobts-mgr.cfg
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_TRX
|
||||||
|
doc_trxdir = $(docdir)/examples/osmo-bts-trx
|
||||||
|
doc_trx_DATA = \
|
||||||
|
trx/osmo-bts-trx.cfg \
|
||||||
|
trx/osmo-bts-trx-calypso.cfg
|
||||||
|
EXTRA_DIST += $(doc_trx_DATA)
|
||||||
|
OSMOCONF_FILES += trx/osmo-bts-trx.cfg
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_OCTPHY
|
||||||
|
doc_octphydir = $(docdir)/examples/osmo-bts-octphy
|
||||||
|
doc_octphy_DATA = \
|
||||||
|
octphy/osmo-bts-trx2dsp1.cfg \
|
||||||
|
octphy/osmo-bts-octphy.cfg
|
||||||
|
EXTRA_DIST += $(doc_octphy_DATA)
|
||||||
|
OSMOCONF_FILES += octphy/osmo-bts-octphy.cfg
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_LC15BTS
|
||||||
|
doc_lc15dir = $(docdir)/examples/osmo-bts-lc15
|
||||||
|
doc_lc15_DATA = \
|
||||||
|
litecell15/osmo-bts-lc15.cfg \
|
||||||
|
litecell15/lc15bts-mgr.cfg
|
||||||
|
EXTRA_DIST += $(doc_lc15_DATA)
|
||||||
|
OSMOCONF_FILES += litecell15/osmo-bts-lc15.cfg litecell15/lc15bts-mgr.cfg
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ENABLE_OC2GBTS
|
||||||
|
doc_oc2gdir = $(docdir)/examples/osmo-bts-oc2g
|
||||||
|
doc_oc2g_DATA = \
|
||||||
|
oc2g/osmo-bts-oc2g.cfg \
|
||||||
|
oc2g/oc2gbts-mgr.cfg
|
||||||
|
EXTRA_DIST += $(doc_oc2g_DATA)
|
||||||
|
OSMOCONF_FILES += oc2g/osmo-bts-oc2g.cfg oc2g/oc2gbts-mgr.cfg
|
||||||
|
endif
|
||||||
|
|
||||||
|
osmoconfdir = $(sysconfdir)/osmocom
|
||||||
|
osmoconf_DATA = $(OSMOCONF_FILES)
|
||||||
43
doc/examples/litecell15/lc15bts-mgr.cfg
Normal file
43
doc/examples/litecell15/lc15bts-mgr.cfg
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
!
|
||||||
|
! lc15bts-mgr (0.3.0.284-a7c2-dirty) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging filter all 1
|
||||||
|
logging color 1
|
||||||
|
logging print category 0
|
||||||
|
logging timestamp 0
|
||||||
|
logging level temp info
|
||||||
|
logging level fw info
|
||||||
|
logging level find info
|
||||||
|
logging level calib info
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
logging level lctrl notice
|
||||||
|
logging level lgtp notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
lc15bts-mgr
|
||||||
|
limits supply_volt
|
||||||
|
threshold warning min 17500
|
||||||
|
threshold critical min 19000
|
||||||
|
limits tx0_vswr
|
||||||
|
threshold warning max 1000
|
||||||
|
limits tx1_vswr
|
||||||
|
threshold warning max 1000
|
||||||
|
limits supply_pwr
|
||||||
|
threshold warning max 110
|
||||||
|
threshold critical max 120
|
||||||
|
limits pa0_pwr
|
||||||
|
threshold warning max 50
|
||||||
|
threshold critical max 60
|
||||||
|
limits pa1_pwr
|
||||||
|
threshold warning max 50
|
||||||
|
threshold critical max 60
|
||||||
43
doc/examples/litecell15/osmo-bts-lc15.cfg
Normal file
43
doc/examples/litecell15/osmo-bts-lc15.cfg
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS (0.0.1.100-0455-dirty) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp debug
|
||||||
|
logging level abis notice
|
||||||
|
logging level rtp notice
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
trx-calibration-path /mnt/rom/factory/calib
|
||||||
|
phy 1
|
||||||
|
instance 0
|
||||||
|
trx-calibration-path /mnt/rom/factory/calib
|
||||||
|
bts 0
|
||||||
|
band 900
|
||||||
|
ipa unit-id 1500 0
|
||||||
|
oml remote-ip 192.168.234.185
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
|
trx 1
|
||||||
|
phy 1 instance 0
|
||||||
33
doc/examples/oc2g/oc2gbts-mgr.cfg
Normal file
33
doc/examples/oc2g/oc2gbts-mgr.cfg
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
!
|
||||||
|
! oc2gbts-mgr (0.3.0.284-a7c2-dirty) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging filter all 1
|
||||||
|
logging color 1
|
||||||
|
logging print category 0
|
||||||
|
logging timestamp 0
|
||||||
|
logging level temp info
|
||||||
|
logging level fw info
|
||||||
|
logging level find info
|
||||||
|
logging level calib info
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
logging level lctrl notice
|
||||||
|
logging level lgtp notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
oc2gbts-mgr
|
||||||
|
limits supply_volt
|
||||||
|
threshold warning min 17500
|
||||||
|
threshold critical min 19000
|
||||||
|
limits supply_pwr
|
||||||
|
threshold warning max 110
|
||||||
|
threshold critical max 120
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
!
|
!
|
||||||
! OsmoBTS () configuration saved from vty
|
! OsmoBTS (0.0.1.100-0455-dirty) configuration saved from vty
|
||||||
!!
|
!!
|
||||||
!
|
!
|
||||||
log stderr
|
log stderr
|
||||||
logging color 1
|
logging color 1
|
||||||
logging timestamp 0
|
logging timestamp 0
|
||||||
logging level all everything
|
|
||||||
logging level rsl info
|
logging level rsl info
|
||||||
logging level oml info
|
logging level oml info
|
||||||
logging level rll notice
|
logging level rll notice
|
||||||
@@ -13,21 +12,27 @@ log stderr
|
|||||||
logging level meas notice
|
logging level meas notice
|
||||||
logging level pag info
|
logging level pag info
|
||||||
logging level l1c info
|
logging level l1c info
|
||||||
logging level l1p debug
|
logging level l1p info
|
||||||
logging level dsp debug
|
logging level dsp debug
|
||||||
logging level abis notice
|
logging level abis notice
|
||||||
|
logging level rtp notice
|
||||||
logging level lglobal notice
|
logging level lglobal notice
|
||||||
logging level llapdm notice
|
logging level llapd notice
|
||||||
logging level linp notice
|
logging level linp notice
|
||||||
logging level lmux notice
|
logging level lmux notice
|
||||||
logging level lmi notice
|
logging level lmi notice
|
||||||
logging level lmib notice
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
!
|
!
|
||||||
line vty
|
line vty
|
||||||
no login
|
no login
|
||||||
!
|
!
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
trx-calibration-path /mnt/rom/factory/calib
|
||||||
bts 0
|
bts 0
|
||||||
band 1800
|
band 900
|
||||||
ipa unit-id 1234 0
|
ipa unit-id 1500 0
|
||||||
oml remote-ip 192.168.100.11
|
oml remote-ip 10.42.0.1
|
||||||
rtp bind-ip 192.168.100.239
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
31
doc/examples/octphy/osmo-bts-octphy.cfg
Normal file
31
doc/examples/octphy/osmo-bts-octphy.cfg
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS () configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp info
|
||||||
|
logging level abis notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
octphy hw-addr 00:0C:90:2e:80:1e
|
||||||
|
octphy net-device eth0.2342
|
||||||
|
instance 0
|
||||||
|
bts 0
|
||||||
|
band 1800
|
||||||
|
ipa unit-id 1234 0
|
||||||
|
oml remote-ip 127.0.0.1
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
34
doc/examples/octphy/osmo-bts-trx2dsp1.cfg
Normal file
34
doc/examples/octphy/osmo-bts-trx2dsp1.cfg
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS () configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp info
|
||||||
|
logging level abis notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
octphy hw-addr 00:0c:de:ad:fa:ce
|
||||||
|
octphy net-device eth2
|
||||||
|
instance 0
|
||||||
|
instance 1
|
||||||
|
bts 0
|
||||||
|
band 1800
|
||||||
|
ipa unit-id 1234 0
|
||||||
|
oml remote-ip 127.0.0.1
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
|
trx 1
|
||||||
|
phy 0 instance 1
|
||||||
29
doc/examples/sysmo/osmo-bts-sysmo.cfg
Normal file
29
doc/examples/sysmo/osmo-bts-sysmo.cfg
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS () configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp info
|
||||||
|
logging level abis notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
bts 0
|
||||||
|
band 1800
|
||||||
|
ipa unit-id 666 0
|
||||||
|
oml remote-ip 10.1.2.3
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
23
doc/examples/sysmo/sysmobts-mgr.cfg
Normal file
23
doc/examples/sysmo/sysmobts-mgr.cfg
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
!
|
||||||
|
! SysmoMgr (0.3.0.141-33e5) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging filter all 1
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level temp info
|
||||||
|
logging level fw info
|
||||||
|
logging level find info
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
sysmobts-mgr
|
||||||
38
doc/examples/trx/osmo-bts-trx-calypso.cfg
Normal file
38
doc/examples/trx/osmo-bts-trx-calypso.cfg
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS configuration example for CalypsoBTS
|
||||||
|
! http://osmocom.org/projects/baseband/wiki/CalypsoBTS
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl notice
|
||||||
|
logging level oml notice
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas error
|
||||||
|
logging level pag error
|
||||||
|
logging level l1c error
|
||||||
|
logging level l1p error
|
||||||
|
logging level dsp error
|
||||||
|
logging level abis error
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
osmotrx rx-gain 1
|
||||||
|
osmotrx ip local 127.0.0.1
|
||||||
|
osmotrx ip remote 127.0.0.1
|
||||||
|
osmotrx timing-advance-loop
|
||||||
|
osmotrx ms-power-loop -65
|
||||||
|
osmotrx legacy-setbsic
|
||||||
|
bts 0
|
||||||
|
oml remote-ip 127.0.0.1
|
||||||
|
ipa unit-id 1801 0
|
||||||
|
gsmtap-sapi pdtch
|
||||||
|
gsmtap-sapi ccch
|
||||||
|
band 900
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
34
doc/examples/trx/osmo-bts-trx.cfg
Normal file
34
doc/examples/trx/osmo-bts-trx.cfg
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS () configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl notice
|
||||||
|
logging level oml notice
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas error
|
||||||
|
logging level pag error
|
||||||
|
logging level l1c error
|
||||||
|
logging level l1p error
|
||||||
|
logging level dsp error
|
||||||
|
logging level abis error
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
osmotrx rx-gain 1
|
||||||
|
osmotrx ip local 127.0.0.1
|
||||||
|
osmotrx ip remote 127.0.0.1
|
||||||
|
bts 0
|
||||||
|
band 1800
|
||||||
|
ipa unit-id 6969 0
|
||||||
|
oml remote-ip 192.168.122.1
|
||||||
|
gsmtap-sapi ccch
|
||||||
|
gsmtap-sapi pdtch
|
||||||
|
trx 0
|
||||||
|
phy 0 instance 0
|
||||||
151
doc/examples/virtual/openbsc-virtual.cfg
Normal file
151
doc/examples/virtual/openbsc-virtual.cfg
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
!
|
||||||
|
! OpenBSC (0.15.0.629-34f0-dirty) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging filter all 1
|
||||||
|
logging color 0
|
||||||
|
logging print category 1
|
||||||
|
logging timestamp 1
|
||||||
|
logging level all info
|
||||||
|
logging level rll notice
|
||||||
|
logging level cc notice
|
||||||
|
logging level mm debug
|
||||||
|
logging level rr notice
|
||||||
|
logging level rsl notice
|
||||||
|
logging level nm info
|
||||||
|
logging level mncc notice
|
||||||
|
logging level pag notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level sccp notice
|
||||||
|
logging level msc notice
|
||||||
|
logging level mgcp notice
|
||||||
|
logging level ho notice
|
||||||
|
logging level db notice
|
||||||
|
logging level ref notice
|
||||||
|
logging level gprs debug
|
||||||
|
logging level ns info
|
||||||
|
logging level bssgp debug
|
||||||
|
logging level llc debug
|
||||||
|
logging level sndcp debug
|
||||||
|
logging level nat notice
|
||||||
|
logging level ctrl notice
|
||||||
|
logging level smpp debug
|
||||||
|
logging level filter debug
|
||||||
|
logging level ranap debug
|
||||||
|
logging level sua debug
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
logging level lctrl notice
|
||||||
|
logging level lgtp notice
|
||||||
|
logging level lstats notice
|
||||||
|
logging level lgsup notice
|
||||||
|
logging level loap notice
|
||||||
|
!
|
||||||
|
stats interval 5
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
e1_input
|
||||||
|
e1_line 0 driver ipa
|
||||||
|
e1_line 0 port 0
|
||||||
|
no e1_line 0 keepalive
|
||||||
|
network
|
||||||
|
network country code 262
|
||||||
|
mobile network code 42
|
||||||
|
short name OpenBSC
|
||||||
|
long name OpenBSC
|
||||||
|
auth policy accept-all
|
||||||
|
authorized-regexp .*
|
||||||
|
location updating reject cause 13
|
||||||
|
encryption a5 0
|
||||||
|
neci 1
|
||||||
|
paging any use tch 0
|
||||||
|
rrlp mode ms-based
|
||||||
|
mm info 1
|
||||||
|
handover 0
|
||||||
|
handover window rxlev averaging 10
|
||||||
|
handover window rxqual averaging 1
|
||||||
|
handover window rxlev neighbor averaging 10
|
||||||
|
handover power budget interval 6
|
||||||
|
handover power budget hysteresis 3
|
||||||
|
handover maximum distance 9999
|
||||||
|
timer t3101 10
|
||||||
|
timer t3103 0
|
||||||
|
timer t3105 0
|
||||||
|
timer t3107 0
|
||||||
|
timer t3109 4
|
||||||
|
timer t3111 0
|
||||||
|
timer t3113 60
|
||||||
|
timer t3115 0
|
||||||
|
timer t3117 0
|
||||||
|
timer t3119 0
|
||||||
|
timer t3122 10
|
||||||
|
timer t3141 0
|
||||||
|
subscriber-keep-in-ram 0
|
||||||
|
bts 0
|
||||||
|
type sysmobts
|
||||||
|
band DCS1800
|
||||||
|
cell_identity 6969
|
||||||
|
location_area_code 1
|
||||||
|
base_station_id_code 63
|
||||||
|
ms max power 0
|
||||||
|
cell reselection hysteresis 4
|
||||||
|
rxlev access min 0
|
||||||
|
periodic location update 30
|
||||||
|
radio-link-timeout 32
|
||||||
|
channel allocator descending
|
||||||
|
rach tx integer 9
|
||||||
|
rach max transmission 7
|
||||||
|
channel-descrption attach 1
|
||||||
|
channel-descrption bs-pa-mfrms 5
|
||||||
|
channel-descrption bs-ag-blks-res 1
|
||||||
|
ip.access unit_id 6969 0
|
||||||
|
oml ip.access stream_id 255 line 0
|
||||||
|
neighbor-list mode automatic
|
||||||
|
codec-support fr
|
||||||
|
gprs mode none
|
||||||
|
no force-combined-si
|
||||||
|
trx 0
|
||||||
|
rf_locked 0
|
||||||
|
arfcn 666
|
||||||
|
nominal power 0
|
||||||
|
max_power_red 0
|
||||||
|
rsl e1 tei 0
|
||||||
|
timeslot 0
|
||||||
|
phys_chan_config CCCH+SDCCH4
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 1
|
||||||
|
phys_chan_config SDCCH8
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 2
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 3
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 4
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 5
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 6
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
timeslot 7
|
||||||
|
phys_chan_config TCH/F
|
||||||
|
hopping enabled 0
|
||||||
|
mncc-int
|
||||||
|
default-codec tch-f fr
|
||||||
|
default-codec tch-h hr
|
||||||
|
nitb
|
||||||
|
subscriber-create-on-demand
|
||||||
|
subscriber-create-on-demand random 1 24
|
||||||
|
assign-tmsi
|
||||||
61
doc/examples/virtual/osmo-bts-virtual.cfg
Normal file
61
doc/examples/virtual/osmo-bts-virtual.cfg
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS (0.4.0.216-bc49-dirty) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging filter all 0
|
||||||
|
logging color 0
|
||||||
|
logging print category 1
|
||||||
|
logging timestamp 0
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp error
|
||||||
|
logging level pcu notice
|
||||||
|
logging level ho debug
|
||||||
|
logging level trx notice
|
||||||
|
logging level loop notice
|
||||||
|
logging level abis debug
|
||||||
|
logging level rtp notice
|
||||||
|
logging level sum error
|
||||||
|
logging level lglobal notice
|
||||||
|
logging level llapd notice
|
||||||
|
logging level linp notice
|
||||||
|
logging level lmux notice
|
||||||
|
logging level lmi notice
|
||||||
|
logging level lmib notice
|
||||||
|
logging level lsms notice
|
||||||
|
logging level lctrl notice
|
||||||
|
logging level lgtp notice
|
||||||
|
logging level lstats error
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
e1_input
|
||||||
|
e1_line 0 driver ipa
|
||||||
|
e1_line 0 port 0
|
||||||
|
no e1_line 0 keepalive
|
||||||
|
phy 0
|
||||||
|
instance 0
|
||||||
|
bts 0
|
||||||
|
band DCS1800
|
||||||
|
ipa unit-id 6969 0
|
||||||
|
oml remote-ip 127.0.0.1
|
||||||
|
rtp jitter-buffer 100
|
||||||
|
paging queue-size 200
|
||||||
|
paging lifetime 0
|
||||||
|
uplink-power-target -75
|
||||||
|
min-qual-rach 50
|
||||||
|
min-qual-norm -5
|
||||||
|
trx 0
|
||||||
|
power-ramp max-initial 23000 mdBm
|
||||||
|
power-ramp step-size 2000 mdB
|
||||||
|
power-ramp step-interval 1
|
||||||
|
ms-power-control osmo
|
||||||
|
phy 0 instance 0
|
||||||
26
doc/manuals/Makefile.am
Normal file
26
doc/manuals/Makefile.am
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
EXTRA_DIST = dtx.dot \
|
||||||
|
osmobts-abis.adoc \
|
||||||
|
osmobts-abis-docinfo.xml \
|
||||||
|
osmobts-usermanual.adoc \
|
||||||
|
osmobts-usermanual-docinfo.xml \
|
||||||
|
osmobts-vty-reference.xml \
|
||||||
|
rtp-amr.adoc \
|
||||||
|
rtp-amr-docinfo.xml \
|
||||||
|
regen_doc.sh \
|
||||||
|
abis \
|
||||||
|
chapters \
|
||||||
|
vty
|
||||||
|
|
||||||
|
if BUILD_MANUALS
|
||||||
|
ASCIIDOC = osmobts-usermanual.adoc osmobts-abis.adoc rtp-amr.adoc
|
||||||
|
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc
|
||||||
|
osmobts-usermanual.pdf: $(srcdir)/chapters/*.adoc
|
||||||
|
osmobts-abis.pdf: $(srcdir)/abis/*.adoc $(srcdir)/abis/*.msc
|
||||||
|
rtp-amr.pdf: $(srcdir)/dtx.dot
|
||||||
|
|
||||||
|
VTY_REFERENCE = osmobts-vty-reference.xml
|
||||||
|
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc
|
||||||
|
|
||||||
|
OSMO_REPOSITORY = osmo-bts
|
||||||
|
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc
|
||||||
|
endif
|
||||||
23
doc/manuals/abis/abis-startup.msc
Normal file
23
doc/manuals/abis/abis-startup.msc
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="BTS"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
bts => bsc [label="TCP Connect (Port 3002, OML)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3002)"];
|
||||||
|
bts <= bsc [label="OML Configuration of BTS via OML"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="OML (TRX=0) IPA RSL CONNECT"];
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 0)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification Port 3003"];
|
||||||
|
bts <= bsc [label="RSL BCCH filling (System Information)"];
|
||||||
|
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="OML (TRX=1) IPA RSL CONNECT"];
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 1)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
||||||
|
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="OML (TRX=N) IPA RSL CONNECT"];
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX N)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
||||||
|
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
||||||
|
}
|
||||||
23
doc/manuals/abis/dyn_ts_ipa_style1.msc
Normal file
23
doc/manuals/abis/dyn_ts_ipa_style1.msc
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
msc {
|
||||||
|
hscale = "1.2";
|
||||||
|
phy,bts,pcu,bsc;
|
||||||
|
|
||||||
|
phy box bsc [ label = "PDCH Deactivation" ];
|
||||||
|
bsc => bts [ label = "IPAC PDCH DEACT" ];
|
||||||
|
--- [ label = "Disconnect PDTCH" ];
|
||||||
|
bts => pcu [ label = "info ind (Deactivate)" ];
|
||||||
|
pcu => bts [ label = "chan Deactivate request" ];
|
||||||
|
bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
|
||||||
|
phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
|
||||||
|
bts => phy [ label = "L1 chan Disconnect PDTCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
||||||
|
--- [ label = "Connect TCH" ];
|
||||||
|
bts => phy [ label = "L1 chan Connect TCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Connect confirm" ];
|
||||||
|
bts => bsc [ label = "IPAC PDCH DEACT ACK" ];
|
||||||
|
|
||||||
|
phy box bsc [ label = "Now BSC may use TCH (example)" ];
|
||||||
|
bsc => bts [ label = "Activate TCH/F" ];
|
||||||
|
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
||||||
|
--- [ label = "Voice call..." ];
|
||||||
|
}
|
||||||
22
doc/manuals/abis/dyn_ts_ipa_style2.msc
Normal file
22
doc/manuals/abis/dyn_ts_ipa_style2.msc
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
msc {
|
||||||
|
hscale = "1.2";
|
||||||
|
phy,bts,pcu,bsc;
|
||||||
|
|
||||||
|
--- [ label = "...Voice call ends" ];
|
||||||
|
bsc => bts [ label = "Deactivate TCH/F" ];
|
||||||
|
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
||||||
|
|
||||||
|
phy box bsc [ label = "PDCH Activation" ];
|
||||||
|
bsc => bts [ label = "IPAC PDCH ACT" ];
|
||||||
|
--- [ label = "Disconnect TCH" ];
|
||||||
|
bts => phy [ label = "L1 chan Disconnect TCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
||||||
|
--- [ label = "Connect PDTCH" ];
|
||||||
|
bts => phy [ label = "L1 chan Connect PDTCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Connect confirm" ];
|
||||||
|
bts => pcu [ label = "info ind (Activate)" ];
|
||||||
|
pcu => bts [ label = "chan Activate request" ];
|
||||||
|
bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
|
||||||
|
phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
|
||||||
|
bts => bsc [ label = "IPAC PDCH ACT ACK" ];
|
||||||
|
}
|
||||||
34
doc/manuals/abis/dyn_ts_osmocom_style1.msc
Normal file
34
doc/manuals/abis/dyn_ts_osmocom_style1.msc
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
msc {
|
||||||
|
hscale = "1.5";
|
||||||
|
phy,bts,pcu,bsc;
|
||||||
|
|
||||||
|
bts => bsc [ label = "RSL Chan Requested" ];
|
||||||
|
phy box bsc [ label = "TS is in PDCH mode, deactivate" ];
|
||||||
|
bsc => bts [ label = "RSL RF Channel Release (PDCH)" ];
|
||||||
|
bts => pcu [ label = "Info Ind (Deactivate)" ];
|
||||||
|
pcu => bts [ label = "Chan Deactivate request" ];
|
||||||
|
bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
|
||||||
|
phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
|
||||||
|
bts -> bsc [ label = "RSL RF Channel Release Ack (PDCH)" ];
|
||||||
|
|
||||||
|
phy box bsc [ label = "Activate TCH/H" ];
|
||||||
|
bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
|
||||||
|
--- [ label = "BTS notices: chan still connected as PDTCH, reconnect" ];
|
||||||
|
bts => phy [ label = "L1 chan Disconnect PDTCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
||||||
|
bts => phy [ label = "L1 chan Connect TCH/H" ];
|
||||||
|
phy -> bts [ label = "L1 chan Connect confirm" ];
|
||||||
|
--- [ label = "chan reconnect as TCH/H complete" ];
|
||||||
|
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
||||||
|
bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
|
||||||
|
--- [ label = "Voice call 1 commences..." ];
|
||||||
|
|
||||||
|
phy box bsc [ label = "A second voice call is requested" ];
|
||||||
|
bts => bsc [ label = "RSL Chan Requested" ];
|
||||||
|
phy box bsc [ label = "BSC finds second slot on dynamic TS in TCH/H mode" ];
|
||||||
|
bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
|
||||||
|
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
||||||
|
bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
|
||||||
|
--- [ label = "Voice call 2 commences..." ];
|
||||||
|
|
||||||
|
}
|
||||||
31
doc/manuals/abis/dyn_ts_osmocom_style2.msc
Normal file
31
doc/manuals/abis/dyn_ts_osmocom_style2.msc
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
msc {
|
||||||
|
hscale = "1.5";
|
||||||
|
phy,bts,pcu,bsc;
|
||||||
|
|
||||||
|
--- [ label = "...Voice call 1 ends" ];
|
||||||
|
bts => bsc [ label = "Release Ind" ];
|
||||||
|
bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
|
||||||
|
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
||||||
|
bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
|
||||||
|
--- [ label = "BSC notices: one chan still in use"];
|
||||||
|
|
||||||
|
--- [ label = "...Voice call 2 ends" ];
|
||||||
|
bts => bsc [ label = "Release Ind" ];
|
||||||
|
bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
|
||||||
|
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
||||||
|
bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
|
||||||
|
|
||||||
|
phy box bsc [ label = "If all channels on TS are released, PDCH Activation" ];
|
||||||
|
bsc => bts [ label = "RSL Channel Activation (PDCH)" ];
|
||||||
|
bts -> bsc [ label = "RSL Channel Activation Ack (PDCH) (unconditionally)" ];
|
||||||
|
--- [ label = "BTS notices: chan still connected as TCH/H, reconnect" ];
|
||||||
|
bts => phy [ label = "L1 chan Disconnect TCH/H" ];
|
||||||
|
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
||||||
|
bts => phy [ label = "L1 chan Connect PDTCH" ];
|
||||||
|
phy -> bts [ label = "L1 chan Connect confirm" ];
|
||||||
|
--- [ label = "chan reconnect as PDTCH complete" ];
|
||||||
|
bts => pcu [ label = "Info Ind (Activate)" ];
|
||||||
|
pcu => bts [ label = "chan Activate request" ];
|
||||||
|
bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
|
||||||
|
phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
|
||||||
|
}
|
||||||
106
doc/manuals/abis/ipa.adoc
Normal file
106
doc/manuals/abis/ipa.adoc
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
== IPA Multiplex
|
||||||
|
|
||||||
|
The ETSI/3GPP specifications for A-bis transport (ETSI/3GPP TS 08.56)
|
||||||
|
specify the transmission of RSL and OML messages over a LAPD based
|
||||||
|
framing on top of 64kBit/s signalling times slots (B-channels) on E1
|
||||||
|
lines.
|
||||||
|
|
||||||
|
OsmoBTS does not implement this LAPD based transport, but instead
|
||||||
|
implements A-bis over IP in a flavor first observed by ip.access nanoBTS
|
||||||
|
products. The OsmoBTS implementation is a clean-room re-implementation
|
||||||
|
based on the observation and dissection of protocol traces.
|
||||||
|
|
||||||
|
LAPD as used in E1 signalling channels provides in-order transmission
|
||||||
|
and reliable delivery. This is why TCP was chosen as Layer 4 transport
|
||||||
|
protocol on top of IP. TCP however, is a stream based transport
|
||||||
|
protocol, which doesn't preserve the boundaries of messages.
|
||||||
|
|
||||||
|
To work around this shortcoming, an additional framing layer called the
|
||||||
|
IPA multiplex was introduced between TCP and the RSL and OML messages.
|
||||||
|
|
||||||
|
.Protocol Stacking
|
||||||
|
[width="30%"]
|
||||||
|
|===
|
||||||
|
|RSL + OML (this document)
|
||||||
|
|IPA (this document)
|
||||||
|
|TCP (IETF RFC 793)
|
||||||
|
|IP (IETF RFC 791)
|
||||||
|
|Ethernet (IEEE 802.3)
|
||||||
|
|===
|
||||||
|
|
||||||
|
=== IPA Header
|
||||||
|
|
||||||
|
Each higher-layer PDU is encapsulated by a three-byte IPA header with
|
||||||
|
the following structure:
|
||||||
|
|
||||||
|
.IPA Header Structure
|
||||||
|
[options="header",cols="10%,15%,15%,60%"]
|
||||||
|
|===
|
||||||
|
|Offset (Octets)|Length|Name|Description
|
||||||
|
|0|2|Length|Length of the variable-length payload section in network
|
||||||
|
byte order (excluding the length of the IPA Header)
|
||||||
|
|2|1|Stream Identifier|Identifies the stream of the payload
|
||||||
|
|3|Variable|Payload|higher-layer PDU (i.e. RSL or OML message)
|
||||||
|
|===
|
||||||
|
|
||||||
|
=== IPA Stream Identifiers
|
||||||
|
|
||||||
|
The IPA Stream Identifier serves to differentiate different streams
|
||||||
|
within the multiplex. In the context of A-bis, it can be seen as
|
||||||
|
analogous to the LAPD TEI on classic A-bis over E1.
|
||||||
|
|
||||||
|
The following IPA stream identifiers are being used in A-bis/IP:
|
||||||
|
|
||||||
|
.IPA Stream Identifiers
|
||||||
|
[options="header",width="70%",cols="20%,20%,60%"]
|
||||||
|
|===
|
||||||
|
|Value (Hex)|Name|Description
|
||||||
|
|0x00|RSL|A-bis RSL according to this document, TRX 0
|
||||||
|
|0x01|RSL|A-bis RSL according to this document, TRX 1
|
||||||
|
|0x0n|RSL|A-bis RSL according to this document, TRX n
|
||||||
|
|0xfe|CCM|IPA Connection Management
|
||||||
|
|0xff|OML|A-bis OML according to this document
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== IPA Connection Management (CCM)
|
||||||
|
|
||||||
|
The IPA Connection Management is a sub-layer underneath the IPA
|
||||||
|
multiplex which is used to manage the connection itself. It supports
|
||||||
|
functions like Identity Management and Keep-Alive.
|
||||||
|
|
||||||
|
==== Identity Management
|
||||||
|
|
||||||
|
When a BTS connects to the BSC, the BSC must identify the connected BTS
|
||||||
|
somehow. In ETSI/3GPP A-bis, the E1 multiplex + signalling timeslot
|
||||||
|
number is used for this. In IP, there is no similar usable identity.
|
||||||
|
Hence, the Unit ID is used for this purpose.
|
||||||
|
|
||||||
|
.Procedure for IPA peer identification is as follows
|
||||||
|
[options="header",cols="20%,80%"]
|
||||||
|
|===
|
||||||
|
|Direction|Operation
|
||||||
|
|BTS -> BSC|BTS connects the TCP connection to be used with IPA
|
||||||
|
|BTS <- BSC|BSC requests BTS identity with ID_GET
|
||||||
|
|BTS -> BSC|BTS responds BTS Unit ID with ID_RESP
|
||||||
|
|BTS <- BSC|BSC responds with ID_ACK, if the Unit ID is known to the BSC
|
||||||
|
|===
|
||||||
|
|
||||||
|
Following the above peer identification procedure, transfer of
|
||||||
|
higher-level messages such as OML or RSL commences.
|
||||||
|
|
||||||
|
==== IPA CCM Messages
|
||||||
|
|
||||||
|
IPA CCM supports the following messages
|
||||||
|
|
||||||
|
.IPA CCM Messages
|
||||||
|
[options="header"]
|
||||||
|
[cols="10%,15%,75%"]
|
||||||
|
|===
|
||||||
|
|Value|Name|Purpose
|
||||||
|
|0x00|PING|Request a PONG from the peer
|
||||||
|
|0x01|PONG|Response to a PING
|
||||||
|
|0x04|ID_GET|Request Identity from peer
|
||||||
|
|0x05|ID_RESP|Response to ID_GET
|
||||||
|
|0x06|ID_ACK|Identity Acknowledged
|
||||||
|
|===
|
||||||
26
doc/manuals/abis/oml-mo-bts.msc
Normal file
26
doc/manuals/abis/oml-mo-bts.msc
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="BTS"], bsc [label="BSC"];
|
||||||
|
# this is for the BTS Object
|
||||||
|
--- [label="Initial state after establishing OML"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
||||||
|
--- [label="MO requests software activation"];
|
||||||
|
bts => bsc [label="SW Activate Req"];
|
||||||
|
bts <= bsc [label="SW Activate Req Ack"];
|
||||||
|
--- [label="BTS instructs BTS to activate software"];
|
||||||
|
bts <= bsc [label="Activate SW"];
|
||||||
|
bts => bsc [label="Activate SW Ack"];
|
||||||
|
--- [label="MO reports new state after SW activation"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
bts => bsc [label="SW Activated Report"];
|
||||||
|
--- [label="Configure the MO with its attributes"];
|
||||||
|
bts <= bsc [label="Set BTS Attributes"];
|
||||||
|
bts => bsc [label="Set BTS Attributes Ack"];
|
||||||
|
bts <= bsc [label="OPSTART"];
|
||||||
|
bts => bsc [label="OPSTART ACK"];
|
||||||
|
--- [label="As this object is locked, we need to unlock it"];
|
||||||
|
bts <= bsc [label="Change Adm State (Unlocked)"];
|
||||||
|
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
--- [label="Initialize Radio Transceiver, Radio Carrier, Channels"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Enabled/OK)"];
|
||||||
|
}
|
||||||
24
doc/manuals/abis/oml-mo-carrier.msc
Normal file
24
doc/manuals/abis/oml-mo-carrier.msc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="Radio Carrier"], bsc [label="BSC"];
|
||||||
|
--- [label="Initial state after establishing OML"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
||||||
|
--- [label="MO requests software activation"];
|
||||||
|
bts => bsc [label="SW Activate Req"];
|
||||||
|
bts <= bsc [label="SW Activate Req Ack"];
|
||||||
|
--- [label="BTS instructs BTS to activate software"];
|
||||||
|
bts <= bsc [label="Activate SW"];
|
||||||
|
bts => bsc [label="Activate SW Ack"];
|
||||||
|
--- [label="MO reports new state after SW activation"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Offline)"];
|
||||||
|
bts => bsc [label="SW Activated Report"];
|
||||||
|
--- [label="Configure the MO with its attributes"];
|
||||||
|
bts <= bsc [label="Set Radio Carrier Attributes"];
|
||||||
|
bts => bsc [label="Set Radio Carrier Attributes Ack"];
|
||||||
|
bts <= bsc [label="OPSTART"];
|
||||||
|
bts => bsc [label="OPSTART ACK"];
|
||||||
|
--- [label="As this object is locked, we need to unlock it"];
|
||||||
|
bts <= bsc [label="Change Adm State (Unlocked)"];
|
||||||
|
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/OK/Unlocked)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Enabled)"];
|
||||||
|
}
|
||||||
20
doc/manuals/abis/oml-mo-channel.msc
Normal file
20
doc/manuals/abis/oml-mo-channel.msc
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="Channel"], bsc [label="BSC"];
|
||||||
|
--- [label="Initial state after establishing OML"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
||||||
|
--- [label="MO reports new state after SW activation of Baseband Transceiver"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
bts => bsc [label="SW Activated Report"];
|
||||||
|
--- [label="Configure the MO with its attributes"];
|
||||||
|
bts <= bsc [label="Set Channel Attributes"];
|
||||||
|
bts => bsc [label="Set Channel Attributes Ack"];
|
||||||
|
bts <= bsc [label="OPSTART"];
|
||||||
|
bts => bsc [label="OPSTART ACK"];
|
||||||
|
--- [label="As this object is locked, we need to unlock it"];
|
||||||
|
bts <= bsc [label="Change Adm State (Unlocked)"];
|
||||||
|
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
--- [label="Initialize Radio Carrier / Baseband Transceiver"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Offline)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Enabled/OK)"];
|
||||||
|
}
|
||||||
17
doc/manuals/abis/oml-mo-sitemgr.msc
Normal file
17
doc/manuals/abis/oml-mo-sitemgr.msc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="Site Manager"], bsc [label="BSC"];
|
||||||
|
# this is for the Site Manager Object
|
||||||
|
--- [label="Initial state after establishing OML"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled)"];
|
||||||
|
--- [label="MO requests software activation"];
|
||||||
|
bts => bsc [label="SW Activate Req"];
|
||||||
|
bts <= bsc [label="SW Activate Req Ack"];
|
||||||
|
--- [label="BTS instructs BTS to activate software"];
|
||||||
|
bts <= bsc [label="Activate SW"];
|
||||||
|
bts => bsc [label="Activate SW Ack"];
|
||||||
|
--- [label="MO reports new state after SW activation"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Enabled)"];
|
||||||
|
bts => bsc [label="SW Activated Report"];
|
||||||
|
bts <= bsc [label="OPSTART"];
|
||||||
|
bts => bsc [label="OPSTART ACK"];
|
||||||
|
}
|
||||||
23
doc/manuals/abis/oml-mo-transceiver.msc
Normal file
23
doc/manuals/abis/oml-mo-transceiver.msc
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="Baseband Transceiver"], bsc [label="BSC"];
|
||||||
|
--- [label="Initial state after establishing OML"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
||||||
|
--- [label="MO requests software activation"];
|
||||||
|
bts => bsc [label="SW Activate Req"];
|
||||||
|
bts <= bsc [label="SW Activate Req Ack"];
|
||||||
|
--- [label="BTS instructs BTS to activate software"];
|
||||||
|
bts <= bsc [label="Activate SW"];
|
||||||
|
bts => bsc [label="Activate SW Ack"];
|
||||||
|
--- [label="MO reports new state after SW activation"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
bts => bsc [label="SW Activated Report"];
|
||||||
|
--- [label="BSC requests RSL establishment"];
|
||||||
|
bts <= bsc [label="IPA RSL Connect"];
|
||||||
|
bts => bsc [label="IPA RSL Connect ACK"];
|
||||||
|
bts <= bsc [label="OPSTART"];
|
||||||
|
bts => bsc [label="OPSTART ACK"];
|
||||||
|
--- [label="As this object is locked, we need to unlock it"];
|
||||||
|
bts <= bsc [label="Change Adm State (Unlocked)"];
|
||||||
|
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
||||||
|
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
}
|
||||||
34
doc/manuals/abis/oml-startup.msc
Normal file
34
doc/manuals/abis/oml-startup.msc
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
msc {
|
||||||
|
hscale = 2;
|
||||||
|
|
||||||
|
chan [label="Channel"], rc [label="Radio Carrier"], smg [label="Site Manager"], bts [label="BTS"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, OML)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
||||||
|
|||;
|
||||||
|
smg => bsc [label="(Site Mgr) STATE CHG REP (Disabled/NotInstalled)"];
|
||||||
|
bts => bsc [label="(BTS) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 0) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 1) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 2) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 3) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 4) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 5) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 6) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
chan => bsc [label="(Ch 7) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
rc => bsc [label="(RC) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
bts => bsc [label="(GPRS-NSE) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
bts => bsc [label="(GPRS-CELL) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
bts => bsc [label="(GPRS-NSVC0) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
bts => bsc [label="(GPRS-NSVC1) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
||||||
|
|||;
|
||||||
|
smg => bsc [label="(Site Mgr) SW Activate Req"];
|
||||||
|
smg <= bsc [label="(Site Mgr) SW Activate Req Ack"];
|
||||||
|
smg <= bsc [label="(Site Mgr) Activate SW"];
|
||||||
|
smg => bsc [label="(Site Mgr) Activate SW Ack"];
|
||||||
|
smg => bsc [label="(Site Mgr) STATE CHG REP (Enabled)"];
|
||||||
|
smg => bsc [label="(Site Mgr) SW Activated Report"];
|
||||||
|
smg <= bsc [label="(Site Mgr) OPSTART"];
|
||||||
|
smg => bsc [label="(Site Mgr) OPSTART ACK"];
|
||||||
|
}
|
||||||
50
doc/manuals/abis/oml-startup2.msc
Normal file
50
doc/manuals/abis/oml-startup2.msc
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
msc {
|
||||||
|
hscale = 2;
|
||||||
|
|
||||||
|
chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
bts box bsc [label="OML Connect + Site Manager Init"];
|
||||||
|
...;
|
||||||
|
bts => bsc [label="(BTS) SW Activate Req"];
|
||||||
|
bts <= bsc [label="(BTS) SW Activate Req Ack"];
|
||||||
|
bts <= bsc [label="(BTS) Activate SW"];
|
||||||
|
bts => bsc [label="(BTS) Activate SW Ack"];
|
||||||
|
bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
bts => bsc [label="(BTS) SW Activated Report"];
|
||||||
|
|||;
|
||||||
|
rc => bsc [label="(TRANSC) SW Activate Req"];
|
||||||
|
rc => bsc [label="(RC) SW Activated Req"];
|
||||||
|
|||;
|
||||||
|
bts <= bsc [label="(BTS) Set BTS Attributes"];
|
||||||
|
bts => bsc [label="(BTS) Set BTS Attributes Ack"];
|
||||||
|
bts <= bsc [label="(BTS) OPSTART"];
|
||||||
|
bts => bsc [label="(BTS) OPSTART Ack"];
|
||||||
|
|||;
|
||||||
|
bts <= bsc [label="(BTS) Change Adm State (Unlocked)"];
|
||||||
|
bts => bsc [label="(BTS) Change Adm State ACK (Unlocked)"];
|
||||||
|
bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency/Unlcoked)"];
|
||||||
|
|||;
|
||||||
|
rc <= bsc [label="(TRANSC) SW Activate Req Ack"];
|
||||||
|
rc <= bsc [label="(TRANSC) Activate SW"];
|
||||||
|
rc => bsc [label="(TRANSC) Activate SW Ack"];
|
||||||
|
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
rc => bsc [label="(TRANSC) SW Activated Report"];
|
||||||
|
|
||||||
|
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 1) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 2) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 3) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 4) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 5) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 6) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency)"];
|
||||||
|
|||;
|
||||||
|
chan => bsc [label="(CHAN 0) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 1) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 2) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 3) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 4) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 5) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 6) SW Activated Report"];
|
||||||
|
chan => bsc [label="(CHAN 7) SW Activated Report"];
|
||||||
|
}
|
||||||
51
doc/manuals/abis/oml-startup3.msc
Normal file
51
doc/manuals/abis/oml-startup3.msc
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
msc {
|
||||||
|
hscale = 2;
|
||||||
|
|
||||||
|
chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
...;
|
||||||
|
rc <= bsc [label="(RC) SW Activate Req Ack"];
|
||||||
|
rc <= bsc [label="(RC) Activate SW"];
|
||||||
|
rc => bsc [label="(RC) Activate SW Ack"];
|
||||||
|
rc => bsc [label="(RC) STATE CHG REP (Disabled/Offline)"];
|
||||||
|
rc => bsc [label="(RC) SW Activated Report"];
|
||||||
|
rc <= bsc [label="(TRANSC) IPA RSL Connect"];
|
||||||
|
rc => bsc [label="(TRANSC) IPA RSL Connect Ack"];
|
||||||
|
rc <= bsc [label="(TRANSC) OPSTART"];
|
||||||
|
rc => bsc [label="(TRANSC) OPSTART Ack"];
|
||||||
|
rc <= bsc [label="(TRANSC) Change Adm State (Unlocked)"];
|
||||||
|
rc => bsc [label="(TRANSC) Change Adm State Ack (Unlocked)"];
|
||||||
|
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
|||;
|
||||||
|
chan <= bsc [label="(CHAN 0) Set Channel Attributes"];
|
||||||
|
chan => bsc [label="(CHAN 0) Set Channel Attributes Ack"];
|
||||||
|
chan <= bsc [label="(CHAN 0) OPSTART"];
|
||||||
|
chan => bsc [label="(CHAN 0) OPSTART Ack"];
|
||||||
|
chan <= bsc [label="(CHAN 0) Change Adm State (Unlocked)"];
|
||||||
|
chan => bsc [label="(CHAN 0) Change Adm State Ack (Unlocked)"];
|
||||||
|
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
...;
|
||||||
|
chan <= bsc [label="(CHAN 7) Set Channel Attributes"];
|
||||||
|
chan => bsc [label="(CHAN 7) Set Channel Attributes Ack"];
|
||||||
|
chan <= bsc [label="(CHAN 7) OPSTART"];
|
||||||
|
chan => bsc [label="(CHAN 7) OPSTART Ack"];
|
||||||
|
chan <= bsc [label="(CHAN 7) Change Adm State (Unlocked)"];
|
||||||
|
chan => bsc [label="(CHAN 7) Change Adm State Ack (Unlocked)"];
|
||||||
|
chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
||||||
|
|||;
|
||||||
|
rc <= bsc [label="(RC) Set Radio Carrier Attributes"];
|
||||||
|
rc => bsc [label="(RC) Set Radio Carrier Attributes Ack"];
|
||||||
|
rc <= bsc [label="(RC) OPSTART"];
|
||||||
|
rc => bsc [label="(RC) OPSTART Ack"];
|
||||||
|
rc <= bsc [label="(RC) Change Adm State (Unlocked)"];
|
||||||
|
rc => bsc [label="(RC) Change Adm State Ack (Unlocked)"];
|
||||||
|
rc => bsc [label="(RC) STATE CHG REP (Disabled/OK/Unlocked)"];
|
||||||
|
rc => bsc [label="(RC) STATE CHG REP (Enabled)"];
|
||||||
|
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Offline)"];
|
||||||
|
rc => bsc [label="(TRANSC) STATE CHG REP (Enabled/OK)"];
|
||||||
|
|||;
|
||||||
|
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Offline)"];
|
||||||
|
chan => bsc [label="(CHAN 0) STATE CHG REP (Enabled/OK)"];
|
||||||
|
|||;
|
||||||
|
bts => bsc [label="(BTS) STATE CHG REP (Enabled/OK)"];
|
||||||
|
}
|
||||||
950
doc/manuals/abis/oml.adoc
Normal file
950
doc/manuals/abis/oml.adoc
Normal file
@@ -0,0 +1,950 @@
|
|||||||
|
== Organization & Maintenance Link (OML)
|
||||||
|
|
||||||
|
=== List of Messages
|
||||||
|
|
||||||
|
The following tables list the OML messages used by OsmoBTS, grouped by their
|
||||||
|
level of compliance with 3GPP TS 12.21.
|
||||||
|
|
||||||
|
==== Messages Compliant With TS 12.21
|
||||||
|
|
||||||
|
Specific limitations apply, see the linked sections.
|
||||||
|
|
||||||
|
.Messages compliant with TS 12.21
|
||||||
|
[options="header",cols="10%,10%,20%,35%,5%,20%"]
|
||||||
|
|===
|
||||||
|
| TS 12.21 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
||||||
|
6+<| *SW Download Management Messages:*
|
||||||
|
| 8.3.7 | 0x10 | <<sw_act_rep>> | SW Activated Report | -> | Sent
|
||||||
|
6+<| *Air Interface Management Messages:*
|
||||||
|
.3+.| 8.6.1 | 0x41 .3+.| <<set_bts_attr>> | Set BTS Attributes | <- | Received
|
||||||
|
| 0x42 | Set BTS Attributes Ack | -> | Sent
|
||||||
|
| 0x43 | Set BTS Attributes Nack | -> | Sent
|
||||||
|
.3+.| 8.6.2 | 0x44 .3+.| <<set_radio_attr>> | Set Radio Carrier Attributes | <- | Received
|
||||||
|
| 0x45 | Set Radio Carrier Attributes Ack | -> | Sent
|
||||||
|
| 0x46 | Set Radio Carrier Attributes Nack | -> | Sent
|
||||||
|
.3+.| 8.6.3 | 0x47 .3+.| <<set_chan_attr>> | Set Channel Attributes | <- | Received
|
||||||
|
| 0x48 | Set Channel Attributes Ack | -> | Sent
|
||||||
|
| 0x49 | Set Channel Attributes Nack | -> | Sent
|
||||||
|
6+<| *State Management and Event Report Messages:*
|
||||||
|
| 8.8.1 | 0x61 | <<state_changed_rep>> | State Changed Event Report | -> | Sent
|
||||||
|
.3+.| 8.8.5 | 0x69 .3+.| <<chg_adm_state>> | Change Administrative State | <- | Received
|
||||||
|
| 0x6A | Change Administrative State Ack | -> | Sent
|
||||||
|
| 0x6B | Change Administrative State Nack | -> | Sent
|
||||||
|
6+<| *Equipment Management Messages:*
|
||||||
|
.3+.| 8.9.2 | 0x74 .3+.| <<opstart>> | Opstart | <- | Received
|
||||||
|
| 0x75 | Opstart Ack | -> | Sent
|
||||||
|
| 0x76 | Opstart Nack | -> | Sent
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
==== Messages Specific to OsmoBTS
|
||||||
|
|
||||||
|
.Messages specific to OsmoBTS, not found in 3GPP TS 12.21
|
||||||
|
[options="header"]
|
||||||
|
[options="header",cols="20%,55%,5%,20%"]
|
||||||
|
|===
|
||||||
|
| This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
||||||
|
| <<ipacc_set_attr>> | Set Attribute | <- | Received
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
==== Messages Not Implemented by OsmoBTS
|
||||||
|
.3GPP TS 12.21 messages not implemented by OsmoBTS
|
||||||
|
[options="header",cols="10%,10%,80%"]
|
||||||
|
|===
|
||||||
|
| TS 12.21 § | type code (hex) | Message
|
||||||
|
3+<| *SW Download Management Messages:*
|
||||||
|
.3+.| 8.3.1 | 0x01 | Load Data Initiate
|
||||||
|
| 0x02 | Load Data Initiate Ack
|
||||||
|
| 0x03 | Load Data Initiate Nack
|
||||||
|
.2+.| 8.3.2 | 0x04 | Load Data Segment
|
||||||
|
| 0x05 | Load Data Segment Ack
|
||||||
|
| 8.3.3 | 0x06 | Load Data Abort
|
||||||
|
.3+.| 8.3.4 | 0x07 | Load Data End
|
||||||
|
| 0x08 | Load Data End Ack
|
||||||
|
| 0x09 | Load Data End Nack
|
||||||
|
.3+.| 8.3.5 | 0x0A | SW Activate Request
|
||||||
|
| 0x0B | SW Activate Request Ack
|
||||||
|
| 0x0C | SW Activate Request Nack
|
||||||
|
.3+.| 8.3.6 | 0x0D | Activate SW
|
||||||
|
| 0x0E | Activate SW Ack
|
||||||
|
| 0x0F | Activate SW Nack
|
||||||
|
3+<| *A-bis Interface Management Messages:*
|
||||||
|
.3+.| 8.4.1 | 0x21 | Establish TEI
|
||||||
|
| 0x22 | Establish TEI Ack
|
||||||
|
| 0x23 | Establish TEI Nack
|
||||||
|
.3+.| 8.4.2 | 0x24 | Connect Terrestrial Signalling
|
||||||
|
| 0x25 | Connect Terrestrial Signalling Ack
|
||||||
|
| 0x26 | Connect Terrestrial Signalling Nack
|
||||||
|
.3+.| 8.4.3 | 0x27 | Disconnect Terrestrial Signalling
|
||||||
|
| 0x28 | Disconnect Terrestrial Signalling Ack
|
||||||
|
| 0x29 | Disconnect Terrestrial Signalling Nack
|
||||||
|
.3+.| 8.4.4 | 0x2A | Connect Terrestrial Traffic
|
||||||
|
| 0x2B | Connect Terrestrial Traffic Ack
|
||||||
|
| 0x2C | Connect Terrestrial Traffic Nack
|
||||||
|
.3+.| 8.4.5 | 0x2D | Disconnect Terrestrial Traffic
|
||||||
|
| 0x2E | Disconnect Terrestrial Traffic Ack
|
||||||
|
| 0x2F | Disconnect Terrestrial Traffic Nack
|
||||||
|
3+<| *Transmission Management Messages:*
|
||||||
|
.3+.| 8.5.1 | 0x31 | Connect Multi-Drop Link
|
||||||
|
| 0x32 | Connect Multi-Drop Link Ack
|
||||||
|
| 0x33 | Connect Multi-Drop Link Nack
|
||||||
|
.3+.| 8.5.2 | 0x34 | Disconnect Multi-Drop Link
|
||||||
|
| 0x35 | Disconnect Multi-Drop Link Ack
|
||||||
|
| 0x36 | Disconnect Multi-Drop Link Nack
|
||||||
|
3+<| *Test Management Messages:*
|
||||||
|
.3+.| 8.7.1 | 0x51 | Perform Test
|
||||||
|
| 0x52 | Perform Test Ack
|
||||||
|
| 0x53 | Perform Test Nack
|
||||||
|
.3+.| 8.7.2 | 0x54 | Test Report
|
||||||
|
| 0x55 | Send Test Report
|
||||||
|
| 0x56 | Send Test Report Ack
|
||||||
|
| 8.7.3 | 0x57 | Send Test Report Nack
|
||||||
|
.3+.| 8.7.4 | 0x58 | Stop Test
|
||||||
|
| 0x59 | Stop Test Ack
|
||||||
|
| 0x5A | Stop Test Nack
|
||||||
|
3+<| *State Management and Event Report Messages:*
|
||||||
|
| 8.8.2 | 0x62 | Failure Event Report
|
||||||
|
.3+.| 8.8.3 | 0x63 | Stop Sending Event Reports
|
||||||
|
| 0x64 | Stop Sending Event Reports Ack
|
||||||
|
| 0x65 | Stop Sending Event Reports Nack
|
||||||
|
.3+.| 8.8.4 | 0x66 | Restart Sending Event Reports
|
||||||
|
| 0x67 | Restart Sending Event Reports Ack
|
||||||
|
| 0x68 | Restart Sending Event Reports Nack
|
||||||
|
.3+.| 8.8.6 | 0x6C | Change Administrative State Request
|
||||||
|
| 0x6D | Change Administrative State Request Ack
|
||||||
|
| 0x6E | Change Administrative State Request Nack
|
||||||
|
.3+.| 8.8.7 | 0x93 | Report Outstanding Alarms
|
||||||
|
| 0x94 | Report Outstanding Alarms Ack
|
||||||
|
| 0x95 | Report Outstanding Alarms Nack
|
||||||
|
3+<| *Equipment Management Messages:*
|
||||||
|
.3+.| 8.9.1 | 0x71 | Changeover
|
||||||
|
| 0x72 | Changeover Ack
|
||||||
|
| 0x73 | Changeover Nack
|
||||||
|
.3+.| 8.9.3 | 0x87 | Reinitialize
|
||||||
|
| 0x88 | Reinitialize Ack
|
||||||
|
| 0x89 | Reinitialize Nack
|
||||||
|
.3+.| 8.9.4 | 0x77 | Set Site Outputs
|
||||||
|
| 0x78 | Set Site Outputs Ack
|
||||||
|
| 0x79 | Set Site Outputs Nack
|
||||||
|
.3+.| 8.9.5 | 0x90 | Change HW Configuration
|
||||||
|
| 0x91 | Change HW Configuration Ack
|
||||||
|
| 0x92 | Change HW Configuration Nack
|
||||||
|
3+<| *Measurement Management Messages:*
|
||||||
|
| 8.10.1 | 0x8A | Measurement Result Request
|
||||||
|
| 8.10.2 | 0x8B | Measurement Result Response
|
||||||
|
| 8.10.3 | 0x8C | Stop Measurement
|
||||||
|
| 8.10.4 | 0x8D | Start Measurement
|
||||||
|
3+<| *Other Messages:*
|
||||||
|
| 8.11.1 | 0x81 | Get Attributes
|
||||||
|
| 8.11.3 | 0x82 | Get Attribute(s) Response
|
||||||
|
| 8.11.1 | 0x83 | Get Attributes Nack
|
||||||
|
.3+.| 8.11.2 | 0x84 | Set Alarm Threshold
|
||||||
|
| 0x85 | Set Alarm Threshold Ack
|
||||||
|
| 0x86 | Set Alarm Threshold Nack
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== Details on Compliant OML Messages
|
||||||
|
|
||||||
|
[[sw_act_rep]]
|
||||||
|
==== SW Activated Report
|
||||||
|
|
||||||
|
OsmoBTS will send an _SW Activated Report_ when RF has been activated
|
||||||
|
successfully. The message is compliant with 3GPP TS 12.21 § 8.3.7.
|
||||||
|
|
||||||
|
Upon RF activation, two _SW Activated Report_ messages will be sent, for the Object Classes
|
||||||
|
|
||||||
|
- Radio Carrier (0x02)
|
||||||
|
- Baseband Transceiver (0x04)
|
||||||
|
|
||||||
|
[[set_bts_attr]]
|
||||||
|
==== Set BTS Attributes
|
||||||
|
|
||||||
|
OsmoBTS will receive a _Set BTS Attributes_ message and reply with a
|
||||||
|
corresponding ACK message on success. IE handling is fully compliant to TS
|
||||||
|
12.21, except that a change of BCCH ARFCN or BSIC while in operation is not
|
||||||
|
supported, and hence the _Starting Time_ IE is rejected.
|
||||||
|
|
||||||
|
._Set BTS Attributes_ IEs not handled by OsmoBTS
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 12.21 § | IE Name | Handling
|
||||||
|
| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10)
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[set_radio_attr]]
|
||||||
|
==== Set Radio Carrier Attributes
|
||||||
|
|
||||||
|
This message conforms to 3GPP TS 12.21, with the following limitation,
|
||||||
|
as frequency hopping is not supported by OsmoBTS:
|
||||||
|
|
||||||
|
._Set Radio Carrier Attributes_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 12.21 § | IE Name | Handling
|
||||||
|
| 9.4.5 | ARFCN List | ignored
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[set_chan_attr]]
|
||||||
|
==== Set Channel Attributes
|
||||||
|
|
||||||
|
This message conforms to 3GPP TS 12.21, with the following limitation: the
|
||||||
|
following 3GPP TS 12.21 IEs provoke a NACK response when sent to OsmoBTS, as
|
||||||
|
frequency hopping is not supported:
|
||||||
|
|
||||||
|
._Set Channel Attributes_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 12.21 § | IE Name | Handling
|
||||||
|
| 9.4.21 | HSN | not supported (provokes NACK cause 0x10)
|
||||||
|
| 9.4.27 | MAIO | not supported (provokes NACK cause 0x10)
|
||||||
|
| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10)
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[state_changed_rep]]
|
||||||
|
==== State Changed Event Report
|
||||||
|
|
||||||
|
This message is compliant with 3GPP TS 12.21. Exactly these IEs are sent by
|
||||||
|
OsmoBTS:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1
|
||||||
|
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
||||||
|
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
||||||
|
| Operational State | 3GPP TS 12.21 9.4.38 | O | TV | 2
|
||||||
|
| Availability Status | 3GPP TS 12.21 9.4.7 | O | TL16V (with length of 1) | 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[chg_adm_state]]
|
||||||
|
==== Change Administrative State
|
||||||
|
|
||||||
|
This message is compliant with 3GPP TS 12.21 § 8.8.5. It applies to all of the
|
||||||
|
Object Classes defined in 3GPP TS 12.21 § 9.2 as well as
|
||||||
|
<<addnl_obj_classes>>.
|
||||||
|
|
||||||
|
[[opstart]]
|
||||||
|
==== Opstart
|
||||||
|
|
||||||
|
This message is compliant with 3GPP TS 12.21 § 8.9.2. It applies to all of the
|
||||||
|
Object Classes defined in 3GPP TS 12.21 § 9.2 as well as
|
||||||
|
<<addnl_obj_classes>>.
|
||||||
|
|
||||||
|
|
||||||
|
=== Details on OsmoBTS Specific Messages
|
||||||
|
|
||||||
|
[[ipacc_set_attr]]
|
||||||
|
==== Set Attribute
|
||||||
|
|
||||||
|
The message type is 0xf5. This message is sent to OsmoBTS to set
|
||||||
|
attributes on instances of managed objects of the non-standard
|
||||||
|
additional Object Classes (see <<addnl_obj_classes>>).
|
||||||
|
|
||||||
|
The message specifics depend on the Object Class and are detailed in
|
||||||
|
<<addnl_obj_classes>>.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1
|
||||||
|
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
||||||
|
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
||||||
|
5+<| _Object Class specific IEs follow, see <<addnl_obj_classes>>..._
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[addnl_obj_classes]]
|
||||||
|
=== Additional Object Classes
|
||||||
|
|
||||||
|
In addition to 3GPP TS 12.21 Chapter 9.2, the following managed objects
|
||||||
|
are supported:
|
||||||
|
|
||||||
|
.Additional Managed Object Classes
|
||||||
|
[options="header"]
|
||||||
|
[cols="20%,20%,60%"]
|
||||||
|
|===
|
||||||
|
| Value | Name | Description
|
||||||
|
| 0xf0 | GPRS NSE | GPRS-NS Entity
|
||||||
|
| 0xf1 | GPRS CELL | GPRS Cell Entity
|
||||||
|
| 0xf2 | GPRS NSVC | GPRS NS Virtual Circuit
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== GPRS-NSE Managed Object
|
||||||
|
|
||||||
|
There is one NS Entity per BTS. It supports the *Set Attribute* message
|
||||||
|
with the following Information Elements:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
||||||
|
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
||||||
|
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
||||||
|
| GPRS NSEI | <<NM_ATT_IPACC_NSEI>> | O | TL16V | >= 5
|
||||||
|
| GPRS NS Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 10
|
||||||
|
| GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>> | O | TL16V | >= 14
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== GPRS Cell Managed Object
|
||||||
|
|
||||||
|
There is one GPRS Cell entity per BTS. It supports the *Set Attribute*
|
||||||
|
message with the following Information Elements:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
||||||
|
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
||||||
|
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
||||||
|
| GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>> | O | TL16V | >= 4
|
||||||
|
| GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>> | O | TL16V | >= 5
|
||||||
|
| GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>> | O | TL16V | >= 12
|
||||||
|
| GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>> | O | TL16V | >= 5
|
||||||
|
| GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>> | O | TL16V | >= 8
|
||||||
|
| GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>> | O | TL16V | >= 4
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== GPRS NS-VC Managed Object
|
||||||
|
|
||||||
|
There are two GPRS NS-VC instances per BTS. It supports the *Set
|
||||||
|
Attribute* message with the following Information Elements:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
||||||
|
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
||||||
|
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
||||||
|
| GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>> | O | TL16V | >= 5
|
||||||
|
| GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 11
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== Information Elements Overview
|
||||||
|
|
||||||
|
All of the IEs handled by OsmoBTS are listed below, with limitations and
|
||||||
|
additions to TS 12.21 specified in more detail.
|
||||||
|
|
||||||
|
==== IEs Conforming to TS 12.21
|
||||||
|
|
||||||
|
The following Information Elements are accepted by OsmoBTS.
|
||||||
|
|
||||||
|
IEs marked __ignored__ may be sent to OsmoBTS without causing error
|
||||||
|
conditions. These IEs are skipped during message parsing and are never
|
||||||
|
evaluated.
|
||||||
|
|
||||||
|
IEs marked __ignored__ and additionally marked as being received by OsmoBTS
|
||||||
|
(<-) are in fact parsed and their values are stored by OsmoBTS, but these
|
||||||
|
stored items are currently not used in the OsmoBTS code base.
|
||||||
|
|
||||||
|
.IEs conforming to TS 12.21
|
||||||
|
[options="header",cols="5%,10%,40%,5%,40%"]
|
||||||
|
|===
|
||||||
|
| tag (hex) | TS 12.21 § | IE name | <-/-> | Received/Sent by OsmoBTS
|
||||||
|
| 0x00 | 9.4.1 | Abis Channel | | _ignored_
|
||||||
|
| 0x01 | 9.4.2 | Additional Info | | _ignored_
|
||||||
|
| 0x02 | 9.4.3 | Additional Text | | _ignored_
|
||||||
|
| 0x03 | 9.4.4 | Administrative State | <- -> | Received & Sent
|
||||||
|
| 0x04 | 9.4.5 | ARFCN List | <- | Received, with exactly 1 ARFCN: see <<NM_ATT_ARFCN_LIST>>;
|
||||||
|
ignored by _Set Radio Attribute_ message (<<set_radio_attr>>)
|
||||||
|
| 0x05 | 9.4.6 | Autonomously Report | | _ignored_
|
||||||
|
| 0x06 | 9.4.7 | Availability Status | -> | Sent
|
||||||
|
| 0x07 | 9.4.8 | BCCH ARFCN | <- | Received
|
||||||
|
| 0x08 | 9.4.9 | BSIC | <- | Received
|
||||||
|
| 0x09 | 9.4.10 | BTS Air Timer | <- | Received
|
||||||
|
| 0x0a | 9.4.11 | CCCH Load Indication Period | <- | Received
|
||||||
|
| 0x0b | 9.4.12 | CCCH Load Threshold | <- | Received
|
||||||
|
| 0x0c | 9.4.13 | Channel Combination | <- | Received, with additional channel combinations: see <<ie_chan_comb>>
|
||||||
|
| 0x0d | 9.4.14 | Connection Failure Criterion | <- | Received, with limitations see <<ie_conn_fail_crit>>
|
||||||
|
| 0x0e | 9.4.15 | Destination | | _ignored_
|
||||||
|
| 0x0f | 9.4.16 | Event Type | | _ignored_
|
||||||
|
| 0x11 | 9.4.17 | File Data | | _ignored_
|
||||||
|
| 0x12 | 9.4.18 | File Id | | _ignored_
|
||||||
|
| 0x13 | 9.4.19 | File Version | | _ignored_
|
||||||
|
| 0x14 | 9.4.20 | GSM Time | | _ignored_
|
||||||
|
| 0x16 | 9.4.22 | HW Configuration | | _ignored_
|
||||||
|
| 0x18 | 9.4.24 | Intave Parameter | <- | _ignored_
|
||||||
|
| 0x19 | 9.4.25 | Interference level Boundaries | <- | _ignored_
|
||||||
|
| 0x1a | 9.4.26 | List of Required Attributes | | _ignored_
|
||||||
|
| 0x1c | 9.4.28 | Manufacturer Dependent State | | _ignored_
|
||||||
|
| 0x1d | 9.4.29 | Manufacturer Dependent Thresholds | | _ignored_
|
||||||
|
| 0x1e | 9.4.30 | Manufacturer Id | | _ignored_
|
||||||
|
| 0x1f | 9.4.31 | Max Timing Advance | <- | Received
|
||||||
|
| 0x20 | 9.4.34 | Multi-drop BSC Link | | _ignored_
|
||||||
|
| 0x21 | 9.4.35 | Multi-drop next BTS Link | | _ignored_
|
||||||
|
| 0x22 | 9.4.36 | Nack Causes | -> | Sent
|
||||||
|
| 0x23 | 9.4.37 | Ny1 | <- | Received
|
||||||
|
| 0x24 | 9.4.38 | Operational State | -> | Sent
|
||||||
|
| 0x25 | 9.4.39 | Overload Period | <- | _ignored_
|
||||||
|
| 0x26 | 9.4.40 | Physical Config | | _ignored_
|
||||||
|
| 0x27 | 9.4.41 | Power Class | | _ignored_
|
||||||
|
| 0x28 | 9.4.42 | Power Output Thresholds | | _ignored_
|
||||||
|
| 0x29 | 9.4.43 | Probable Cause | | _ignored_
|
||||||
|
| 0x2a | 9.4.44 | RACH Busy Threshold | <- | Received
|
||||||
|
| 0x2b | 9.4.45 | RACH Load Averaging Slots | <- | _ignored_
|
||||||
|
| 0x2c | 9.4.46 | Radio Sub Channel | | _ignored_
|
||||||
|
| 0x2d | 9.4.47 | RF Max Power Reduction | <- | Received
|
||||||
|
| 0x2e | 9.4.48 | Site Inputs | | _ignored_
|
||||||
|
| 0x2f | 9.4.49 | Site Outputs | | _ignored_
|
||||||
|
| 0x30 | 9.4.50 | Source | | _ignored_
|
||||||
|
| 0x31 | 9.4.51 | Specific Problems | | _ignored_
|
||||||
|
| 0x33 | 9.4.53 | T200 | <- | _ignored_ (1s on DCCH, 2s on ACCH)
|
||||||
|
| 0x34 | 9.4.54 | TEI | | _ignored_
|
||||||
|
| 0x35 | 9.4.55 | Test Duration | | _ignored_
|
||||||
|
| 0x36 | 9.4.56 | Test No | | _ignored_
|
||||||
|
| 0x37 | 9.4.57 | Test Report Info | | _ignored_
|
||||||
|
| 0x38 | 9.4.58 | VSWR Thresholds | | _ignored_
|
||||||
|
| 0x39 | 9.4.59 | Window Size | | _ignored_
|
||||||
|
| 0x40 | 9.4.60 | TSC | <- | Received, with limitations: see <<NM_ATT_TSC>>
|
||||||
|
| 0x41 | 9.4.61 | SW Configuration | | _ignored_
|
||||||
|
| 0x43 | 9.4.63 | Perceived Severity | | _ignored_
|
||||||
|
| 0x44 | 9.4.64 | Get Attribute Response Info | | _ignored_
|
||||||
|
| 0x45 | 9.4.65 | Outstanding Alarm Sequence | | _ignored_
|
||||||
|
| 0x46 | 9.4.66 | HW Conf Change Info | | _ignored_
|
||||||
|
| 0x47 | 9.4.32 | Measurement Result | | _ignored_
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== IEs Not Conforming to TS 12.21
|
||||||
|
|
||||||
|
.IEs not conforming to TS 12.21
|
||||||
|
[options="header",cols="5%,10%,30%,55%"]
|
||||||
|
|===
|
||||||
|
| tag (hex) | TS 12.21 § | IE name | Description
|
||||||
|
| 0x15 | 9.4.21 | HSN | presence causes NACK response
|
||||||
|
| 0x17 | 9.4.23 | HW Description | _ignored_ by OsmoBTS, but coding may differ, see <<ie_hw_desc>>
|
||||||
|
| 0x1b | 9.4.27 | MAIO | presence causes NACK response
|
||||||
|
| 0x32 | 9.4.52 | Starting Time | presence causes NACK response
|
||||||
|
| 0x42 | 9.4.62 | SW Description | not supported
|
||||||
|
| 0x48 | 9.4.33 | Measurement Type | not supported
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
==== Additional Attributes and Parameters
|
||||||
|
|
||||||
|
The following Information Elements are defined in addition to those
|
||||||
|
specified in 3GPP TS 12.21 Chapter 9.4.
|
||||||
|
|
||||||
|
All of these additional IEs are _received_ by OsmoBTS.
|
||||||
|
|
||||||
|
These attributes are not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
.Additional IEs handled by OsmoBTS but not defined in TS 12.21
|
||||||
|
[options="header",cols="5%,50%,45%"]
|
||||||
|
|===
|
||||||
|
| tag (hex) | IE name | Description
|
||||||
|
| 0x80 | RSL Destination IP Address | <<NM_ATT_IPACC_DST_IP>>
|
||||||
|
| 0x81 | RSL Destination TCP Port | <<NM_ATT_IPACC_DST_IP_PORT>>
|
||||||
|
| 0x85 | RSL IPA Stream ID | <<NM_ATT_IPACC_STREAM_ID>>
|
||||||
|
| 0x9a | GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>>
|
||||||
|
| 0x9c | GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>>
|
||||||
|
| 0x9d | GPRS NSEI | <<NM_ATT_IPACC_NSEI>>
|
||||||
|
| 0x9e | GPRS BVCI | <<NM_ATT_IPACC_BVCI>>
|
||||||
|
| 0x9f | GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>>
|
||||||
|
| 0xa0 | GPRS NS Configuration | <<NM_ATT_IPACC_NS_CFG>>
|
||||||
|
| 0xa1 | GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>>
|
||||||
|
| 0xa2 | GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>>
|
||||||
|
| 0xa3 | GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>>
|
||||||
|
| 0xa8 | GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>>
|
||||||
|
| 0xa9 | GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>>
|
||||||
|
| 0xac | GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>>
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== Details on IEs
|
||||||
|
|
||||||
|
[[ie_hw_desc]]
|
||||||
|
==== HW Description
|
||||||
|
|
||||||
|
TS 12.21 suggests a series of 5 length-value pairs for the _HW Description_ IE.
|
||||||
|
Instead, OsmoBTS interprets it as a single TL16V. The value of this IE is
|
||||||
|
ignored by OsmoBTS, yet the coding may affect message parsing.
|
||||||
|
|
||||||
|
[width="40%",cols="90%,10%"]
|
||||||
|
[grid="none"]
|
||||||
|
|===
|
||||||
|
| Attribute Identifier (0x17) | 1
|
||||||
|
| Length | 2-3
|
||||||
|
| Ignored | N
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_ARFCN_LIST]]
|
||||||
|
==== ARFCN List
|
||||||
|
|
||||||
|
Since OsmoBTS does not support frequency hopping, the _ARFCN List_ must contain
|
||||||
|
exactly one ARFCN.
|
||||||
|
|
||||||
|
[[ie_chan_comb]]
|
||||||
|
==== Additional Channel Combinations
|
||||||
|
|
||||||
|
In addition to 3GPP TS 12.21 Chapter 9.4.13, the following channel
|
||||||
|
combinations are supported:
|
||||||
|
|
||||||
|
.Additional Channel Combinations
|
||||||
|
[options="header"]
|
||||||
|
[cols="10%,90%"]
|
||||||
|
|===
|
||||||
|
| Value | Description
|
||||||
|
| 0x0b | Reserved for PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F
|
||||||
|
| 0x0c | Reserved for PBCCH + PDTCH/F + PACCH/F + PTCCH/F
|
||||||
|
| 0x0d | PDTCH/F + PACCH/F + PTCCH/F
|
||||||
|
| 0x80 | ip.access style Dynamic TCH/F / PDCH
|
||||||
|
| 0x81 | Reserved for Dynamic TCH/F / TCH/H
|
||||||
|
| 0x90 | Osmocom style Dynamic TCH/F / TCH/H / PDCH
|
||||||
|
|===
|
||||||
|
|
||||||
|
The _Reserved_ combinations are not actually supported/implemented
|
||||||
|
yet, but merely reserved for such functionality, if it is eventually
|
||||||
|
implemented.
|
||||||
|
|
||||||
|
For more information on how the different dynamic channel combinations
|
||||||
|
work, please see the <<rsl-dynamic-channels>>.
|
||||||
|
|
||||||
|
[[ie_conn_fail_crit]]
|
||||||
|
==== Connection Failure Criterion
|
||||||
|
|
||||||
|
3GPP TS 12.21 Chapter 9.4.14 specifies two different options for the
|
||||||
|
_Connection Failure Criterion_. OsmoBTS only implements the option
|
||||||
|
coded as 0x01, i.e. based upon uplink SACCH error rate
|
||||||
|
(RADIO_LINK_TIMEOUT).
|
||||||
|
|
||||||
|
[[NM_ATT_TSC]]
|
||||||
|
==== TSC
|
||||||
|
|
||||||
|
Due to limitations in the currently supported PHY implementations,
|
||||||
|
OsmoBTS supports only one global TSC for all channels on one TRX, rather
|
||||||
|
than a separate TSC for each timeslot, as expected by 3GPP TS 12.21.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_DST_IP]]
|
||||||
|
==== RSL Destination IP Address
|
||||||
|
|
||||||
|
The value part of this attribute has a length of 4 octets and is encoded
|
||||||
|
as IPv4 address in network byte order.
|
||||||
|
|
||||||
|
[width="40%",cols="90%,10%"]
|
||||||
|
[grid="none"]
|
||||||
|
|===
|
||||||
|
| Attribute Identifier (0x80) | 1
|
||||||
|
| IPv4 Address (MSB first) | 2-5
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_DST_IP_PORT]]
|
||||||
|
==== RSL Destination TCP Port
|
||||||
|
|
||||||
|
The value part of this attribute has a length of 2 octets and contains
|
||||||
|
the TCP destination port for the RSL connection, encoded in network byte
|
||||||
|
order.
|
||||||
|
|
||||||
|
[width="40%",cols="90%,10%"]
|
||||||
|
[grid="none"]
|
||||||
|
|===
|
||||||
|
| Attribute Identifier (0x81) | 1
|
||||||
|
| Port number (MSB first) | 2-3
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_STREAM_ID]]
|
||||||
|
==== RSL IPA Stream ID
|
||||||
|
|
||||||
|
The value part of this attribute has a length of one octet and specifies
|
||||||
|
the IPA stream ID to be used for the RSL connection of this TRX.
|
||||||
|
|
||||||
|
[width="40%",cols="90%,10%"]
|
||||||
|
[grid="none"]
|
||||||
|
|===
|
||||||
|
| Attribute Identifier (0x85) | 1
|
||||||
|
| Stream ID | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_RAC]]
|
||||||
|
==== GPRS Routing Area Code
|
||||||
|
|
||||||
|
The value part of the GPRS Routing Area code consists of a single octet
|
||||||
|
encoding the GPRS Routing Area Code.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_GPRS_PAGING_CFG]]
|
||||||
|
==== GPRS Paging Configuration
|
||||||
|
|
||||||
|
The value part of this attribute consists of two octets encoded as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="10%,90%"]
|
||||||
|
|===
|
||||||
|
| Offset | Description
|
||||||
|
| 0 | GPRS Paging repeat time in units of 50ms intervals
|
||||||
|
| 1 | GPRS Paging repeat count
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_NSEI]]
|
||||||
|
==== GPRS NSEI
|
||||||
|
|
||||||
|
The value part of the GPRS NSEI is encoded as 16bit integer value in
|
||||||
|
network byte order.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_BVCI]]
|
||||||
|
==== GPRS BVCI
|
||||||
|
|
||||||
|
The value part of this attribute consists of two octets encoding the
|
||||||
|
BSSGP Virtual Circuit Identifier (BVCI) as unsigned 16 bit integer in
|
||||||
|
network byte order.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_NSVCI]]
|
||||||
|
==== GPRS NSVCI
|
||||||
|
|
||||||
|
The value part of the GPRS NSVCI attribute is a 16bit unsigned integer
|
||||||
|
in network byte order, encoding the GPRS NSVCI as specified in 3GPP TS
|
||||||
|
08.16.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_NS_CFG]]
|
||||||
|
==== GPRS NS Configuration
|
||||||
|
|
||||||
|
The value part of the GPRS NS Configuration consists of an array of 7 octets,
|
||||||
|
each describing one GPRS NS related timer:
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_BSSGP_CFG]]
|
||||||
|
==== GPRS BSSGP Configuration
|
||||||
|
|
||||||
|
The value part of the GPRS BSSGP configuration consists of an array of
|
||||||
|
11 octets, each describing one GPRS BSSGP related timer:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="10%,90%"]
|
||||||
|
|===
|
||||||
|
| Offset | Description
|
||||||
|
| 0 | Blocking Timer (T1)
|
||||||
|
| 1 | Blocking Retries
|
||||||
|
| 2 | Unblocking Retries
|
||||||
|
| 3 | Reset Timer (T2)
|
||||||
|
| 4 | Reset Retries
|
||||||
|
| 5 | Suspend Timer (T3) in units of 100ms
|
||||||
|
| 6 | Suspend Retries
|
||||||
|
| 7 | Resume Timer (T4) in units of 100ms
|
||||||
|
| 8 | Resume Retries
|
||||||
|
| 9 | Capability Update Timer (T5)
|
||||||
|
| 10 | Capability Update Retries
|
||||||
|
|===
|
||||||
|
|
||||||
|
The detailed description of the meaning of those timers is given in the
|
||||||
|
GPRS BSSGP specification 3GPP TS 08.18.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_NS_LINK_CFG]]
|
||||||
|
==== GPRS NS Link Configuration
|
||||||
|
|
||||||
|
This attribute is 8 octets long and encoded as follows:
|
||||||
|
[options="header"]
|
||||||
|
[cols="10%,10%,80%"]
|
||||||
|
|===
|
||||||
|
| Offset | Length | Description
|
||||||
|
| 0 | 2 | GPRS-NS Remote UDP Port Number (SGSN side)
|
||||||
|
| 2 | 4 | GPRS-NS Remote IPv4 Address (SGSN side)
|
||||||
|
| 6 | 2 | GPRS-NS Local UDP Port Number (BTS side)
|
||||||
|
|===
|
||||||
|
|
||||||
|
All values are encoded in network byte order.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_RLC_CFG]]
|
||||||
|
==== GPRS RLC Configuration
|
||||||
|
|
||||||
|
The value part of the GPRS RLC Configuration consists of an array of 9
|
||||||
|
octets, each describing a RLC timer:
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[width="60%",cols="10%,80%,10%"]
|
||||||
|
|===
|
||||||
|
| Offset | Description | Unit
|
||||||
|
| 0 | GPRS RLC Timer T3142 | s
|
||||||
|
| 1 | GPRS RLC Timer T3169 | s
|
||||||
|
| 2 | GPRS RLC Timer T3191 | s
|
||||||
|
| 3 | GPRS RLC Timer T3193 | 10ms
|
||||||
|
| 4 | GPRS RLC Timer T3195 | s
|
||||||
|
| 5 | GPRS RLC Timer T3101 | s
|
||||||
|
| 6 | GPRS RLC Timer T3103 | s
|
||||||
|
| 7 | GPRS RLC Timer T3105 | s
|
||||||
|
| 8 | GPRS RLC CV Countdown | -
|
||||||
|
|===
|
||||||
|
|
||||||
|
The meaning of the RLC timers are specified in 3GPP TS 04.60.
|
||||||
|
|
||||||
|
The countdown value specifies the RLC CV value from which the countdown
|
||||||
|
procedure is started.
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_CODING_SCHEMES]]
|
||||||
|
==== GPRS Coding Schemes
|
||||||
|
|
||||||
|
The value part of the GPRS Coding Schemes consists of two octets
|
||||||
|
encoding the available GPRS and EDGE coding schemes.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
|===
|
||||||
|
| *bit* | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
|
||||||
|
| byte at offset 0 | MCS9 | x | x | x | CS4 | CS3 | CS2 | CS1
|
||||||
|
| byte at offset 1 | MCS8 | MCS7| MCS6 | MCS5 | MCS4| MCS3 | MCS2 | MCS1
|
||||||
|
|===
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_RLC_CFG_2]]
|
||||||
|
==== GPRS RLC Configuration 2
|
||||||
|
|
||||||
|
The value part of this attribute is 8 octets long and encoded as
|
||||||
|
follows:
|
||||||
|
[options="header"]
|
||||||
|
[width="60%",cols="10%,10%,70%,10%"]
|
||||||
|
|===
|
||||||
|
| Offset | Length | Description | Unit
|
||||||
|
| 0 | 2 | Downlink TBF Extension Timer | 10ms
|
||||||
|
| 2 | 2 | Uplink TBF Extension Timer | 10ms
|
||||||
|
| 4 | 2 | Initial GPRS Coding Scheme | -
|
||||||
|
|===
|
||||||
|
|
||||||
|
The Initial GPRS Coding Scheme is encoded as follows:
|
||||||
|
[options="header"]
|
||||||
|
[width="40%",cols="50%,50%"]
|
||||||
|
|===
|
||||||
|
| Value | Description
|
||||||
|
| 1 | CS 1
|
||||||
|
| 2 | CS 2
|
||||||
|
| 3 | CS 3
|
||||||
|
| 4 | CS 4
|
||||||
|
|===
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
|
||||||
|
[[NM_ATT_IPACC_RLC_CFG_3]]
|
||||||
|
==== GPRS RLC Configuration 3
|
||||||
|
|
||||||
|
This attribute contains information about the initial MCS used for new EDGE
|
||||||
|
TBFs.
|
||||||
|
|
||||||
|
It is encoded as follows:
|
||||||
|
[options="header"]
|
||||||
|
[width="40%",cols="50%,50%"]
|
||||||
|
|===
|
||||||
|
| Value | Description
|
||||||
|
| 1 | MCS 1
|
||||||
|
| 2 | MCS 2
|
||||||
|
| 3 | MCS 3
|
||||||
|
| 4 | MCS 4
|
||||||
|
| 5 | MCS 5
|
||||||
|
| 6 | MCS 6
|
||||||
|
| 7 | MCS 7
|
||||||
|
| 8 | MCS 8
|
||||||
|
| 9 | MCS 9
|
||||||
|
|===
|
||||||
|
|
||||||
|
This attribute is not used by OsmoBTS, but
|
||||||
|
simply passed to OsmoPCU connected to the PCU socket.
|
||||||
|
|
||||||
|
=== A-bis OML Initialization / BTS bring-up
|
||||||
|
|
||||||
|
At the time an Abis/IP BTS connects to via OML to the BSC, it is
|
||||||
|
initialized according to the procedures described in 3GPP TS 12.21 as
|
||||||
|
amended by this document.
|
||||||
|
|
||||||
|
Each Managed Object (MO) is separately initialized. The initialization
|
||||||
|
sequence and parameters differ slightly depending on the MO involved.
|
||||||
|
|
||||||
|
Some parts of the sequences described below are optional, such as the
|
||||||
|
Software activation. In the OsmoBTS case, the software is not modular
|
||||||
|
and thus all MOs start with the software fully activated. In effect, no
|
||||||
|
__Software Activate Request__ is being sent by the MO to the BSC, nor
|
||||||
|
does the BSC need to initialize the __Activate Software__ procedure.
|
||||||
|
|
||||||
|
Still, the full sequences are shown in order to explain the Abis/IP
|
||||||
|
protocol.
|
||||||
|
|
||||||
|
Also, the initial state of the MOs at time of OML connection
|
||||||
|
initialization is not always guaranteed to be __Disabled/Notinstalled__.
|
||||||
|
Rather, the BSC implementation has to deal with the initial state as
|
||||||
|
reported by the MOs at time of re-connection.
|
||||||
|
|
||||||
|
==== Site Manager MO Initialization
|
||||||
|
|
||||||
|
.A-bis OML Initialization of Site Manager MO
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-mo-sitemgr.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
The Site Manager MO does not depend on other MOs, nor does it have an
|
||||||
|
Administrative state (__Locked/Unlocked__), thus it immediately commences in
|
||||||
|
the __Enabled__ state.
|
||||||
|
|
||||||
|
==== BTS MO Initialization
|
||||||
|
|
||||||
|
.A-bis OML Initialization of BTS MO
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-mo-bts.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
As shown in the BTS MO, its state is
|
||||||
|
|
||||||
|
* Availability state __Dependency__, meaning it depends on other MOs to
|
||||||
|
be initialized before becoming enabled.
|
||||||
|
* Administrative state __Locked__, as the object is first waiting to
|
||||||
|
receive attributes in the __Locked__ state, before the __Change
|
||||||
|
Administrative State (Unlocked)__ procedure is used to request
|
||||||
|
transitioning into Unlocked state.
|
||||||
|
|
||||||
|
==== Baseband Transceiver MO Initialization
|
||||||
|
|
||||||
|
.A-bis OML Initialization of Baseband Transceiver MO
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-mo-transceiver.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
There is one Baseband Transceiver MO per TRX in the BTS. For a
|
||||||
|
multi-TRX BTS, the above procedure must be repeated for each TRX.
|
||||||
|
|
||||||
|
|
||||||
|
==== Radio Carrier MO Initialization
|
||||||
|
|
||||||
|
.A-bis OML Initialization of Radio Carrier MO
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-mo-carrier.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
There is one Radio Carrier MO per TRX in the BTS. For a multi-TRX BTS,
|
||||||
|
the above procedure must be repeated for each TRX.
|
||||||
|
|
||||||
|
|
||||||
|
==== Channel MO Initialization
|
||||||
|
|
||||||
|
.A-bis OML Initialization of Radio Carrier MO
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-mo-channel.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
There are 8 timeslots in each TRX, and correspondingly 8 Channel MOs in
|
||||||
|
every TRX. The above procedure must thus be repeated for each timeslot
|
||||||
|
in each transceiver of the BTS.
|
||||||
|
|
||||||
|
|
||||||
|
==== Complete BTS Initialization Procedure
|
||||||
|
|
||||||
|
Some of below steps are optional, as is their detailed ordering. In
|
||||||
|
practice, the procedures for different MOs may overlap. The message
|
||||||
|
sequence charts in this document have been hand-crafted to avoid such
|
||||||
|
overlap for the sake of clarity.
|
||||||
|
|
||||||
|
[[oml-msc-1]]
|
||||||
|
.A-bis OML BTS bring-up (1/3)
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-startup.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
As shown in <<oml-msc-1>>, after the OML TCP connection is established,
|
||||||
|
|
||||||
|
. the identity is exchanged via IPA CCM,
|
||||||
|
. the BTS sends an 'OML EVENT STATE CHANGED REPORT' for every
|
||||||
|
Managed Object, and
|
||||||
|
. the BTS subsequently requests the activation of its 'Site Manager' Object
|
||||||
|
which the BSC performs by the 'Activate SW' command.
|
||||||
|
. After successful activation of the software in the Site Manager,
|
||||||
|
.. the state changes to 'Enabled', and an event report is generated
|
||||||
|
accordingly, and
|
||||||
|
.. the BSC is notified about the SW activation in an associated report.
|
||||||
|
. Finally, the BSC requests the start of the Site Manager
|
||||||
|
.. using the 'OPSTART' command,
|
||||||
|
.. which is subsequently acknowledged by the Site Manager.
|
||||||
|
|
||||||
|
[[oml-msc-2]]
|
||||||
|
.A-bis OML BTS bring-up (2/3)
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-startup2.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
[[oml-msc-3]]
|
||||||
|
.A-bis OML BTS bring-up (3/3)
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::oml-startup3.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
<<oml-msc-2>> shows:
|
||||||
|
|
||||||
|
. Software Activation and associated state transitions of the BTS MO;
|
||||||
|
. Setting of the BTS Attributes followed by OPSTART;
|
||||||
|
. Software Activation and associated state transitions of the 'Baseband
|
||||||
|
Transceiver' MO;
|
||||||
|
. Software Activation and associated state transitions of the 'Radio
|
||||||
|
Carrier' MO;
|
||||||
|
. Once the 'Baseband Transceiver' MO has its software activated, the
|
||||||
|
'Channel' MOs (one for each timeslot) indicate their state change as
|
||||||
|
well as software activation.
|
||||||
|
|
||||||
|
<<oml-msc-3>> shows:
|
||||||
|
|
||||||
|
. The 'Radio Carrier' MO Software Activation;
|
||||||
|
. The Request to the 'Baseband Transceiver' MO to establish the RSL
|
||||||
|
signalling connection to the BSC;
|
||||||
|
. Subsequent OPSTART and Change of Administrative State on the 'Baseband
|
||||||
|
Transceiver' MO;
|
||||||
|
. The following procedure takes place for each of the 'Channel' MOs:
|
||||||
|
.. Set the Channel Attributes (such as channel combination),
|
||||||
|
.. OPSTART,
|
||||||
|
.. change the Administrative State to Unlocked,
|
||||||
|
.. followed by a State Change Event Report with the new state.
|
||||||
|
. After all 'Channel' MOs are initialized, the Radio Carrier goes through
|
||||||
|
a similar procedure:
|
||||||
|
.. Set attributes,
|
||||||
|
.. OPSTART,
|
||||||
|
.. change Administrative State to Unlocked,
|
||||||
|
.. followed by a State Change Event Report with the new State (Enabled/OK)
|
||||||
|
. All 'Channel' MOs now also report their state as Enabled/OK.
|
||||||
|
. Finally, the BTS reports its state as Enabled/OK.
|
||||||
|
|
||||||
22
doc/manuals/abis/rsl-startup-pri.msc
Normal file
22
doc/manuals/abis/rsl-startup-pri.msc
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="TRX"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, RSL)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
||||||
|
|||;
|
||||||
|
|
||||||
|
bts <= bsc [label="BCCH Information (SI1)"];
|
||||||
|
bts <= bsc [label="BCCH Information (SI2)"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="BCCH Information (SI3)"];
|
||||||
|
bts <= bsc [label="BCCH Information (SI4)"];
|
||||||
|
|||;
|
||||||
|
bts <= bsc [label="SACCH FILLING (SI5)"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="SACCH FILLING (SI6)"];
|
||||||
|
|||;
|
||||||
|
bts => bsc [label="RF Resource Indication"];
|
||||||
|
...;
|
||||||
|
bts => bsc [label="RF Resource Indication"];
|
||||||
|
...;
|
||||||
|
}
|
||||||
16
doc/manuals/abis/rsl-startup-sec.msc
Normal file
16
doc/manuals/abis/rsl-startup-sec.msc
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
msc {
|
||||||
|
bts [label="TRX"], bsc [label="BSC"];
|
||||||
|
|
||||||
|
bts => bsc [label="TCP Connect (Port 3003, RSL)"];
|
||||||
|
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
||||||
|
|||;
|
||||||
|
|
||||||
|
bts <= bsc [label="SACCH FILLING (SI5)"];
|
||||||
|
...;
|
||||||
|
bts <= bsc [label="SACCH FILLING (SI6)"];
|
||||||
|
|||;
|
||||||
|
bts => bsc [label="RF Resource Indication"];
|
||||||
|
...;
|
||||||
|
bts => bsc [label="RF Resource Indication"];
|
||||||
|
...;
|
||||||
|
}
|
||||||
56
doc/manuals/abis/rsl-tch-rtp.msc
Normal file
56
doc/manuals/abis/rsl-tch-rtp.msc
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
msc {
|
||||||
|
hscale = 2;
|
||||||
|
|
||||||
|
ms [label="MS"], bts [label="BTS"], bsc [label="BSC"], Msc [label="MSC"], mgw [label="MGW"];
|
||||||
|
|
||||||
|
ms => bts [label="L1 RACH burst"];
|
||||||
|
bts => bsc [label="RSL CHAN RQD"];
|
||||||
|
bts <= bsc [label="RSL CHAN ACT"];
|
||||||
|
bts => bsc [label="RSL CHAN ACT ACK"];
|
||||||
|
bts <= bsc [label="RSL IMM ASS CMD (RR IMM ASS)"];
|
||||||
|
ms <= bts [label="RR IMMEDIATE ASSIGN"];
|
||||||
|
ms => bts [label="LAPDm SABM (CM SERVICE REQ)"];
|
||||||
|
ms <= bts [label="LAPDm FIXME"];
|
||||||
|
bts => bsc [label="RSL ESTABLISH IND (CM SERVICE REQ)"];
|
||||||
|
bsc => Msc [label="CR (BSSAP COMPLETE L3 (CM SERVICE REQ))"];
|
||||||
|
...;
|
||||||
|
ms box Msc [label="MM Common Procedures (INFO, ID, AUTH, CIPH)"];
|
||||||
|
...;
|
||||||
|
ms => bts [label="CC SETUP"];
|
||||||
|
bts => bsc [label="RSL DATA IND (CC SETUP)"];
|
||||||
|
bsc => Msc [label="DT1 (DTAP (CC SETUP))"];
|
||||||
|
...;
|
||||||
|
ms box Msc [label="CC Signalling"];
|
||||||
|
...;
|
||||||
|
bsc <= Msc [label="BSSAP ASSIGNMENT CMD (TCH)"];
|
||||||
|
bts <= bsc [label="RSL IPA CRCX", id="1"];
|
||||||
|
bts => bsc [label="RSL IPA CRCX ACK (IP/Port @ BTS)"];
|
||||||
|
bsc => Msc [label="FIXME"];
|
||||||
|
Msc => mgw [label="FIXME"];
|
||||||
|
bts <- mgw [label="Start RTP + RTCP UDP Flows"];
|
||||||
|
|
||||||
|
bts <= bsc [label="RSL DATA REQ (RR CHAN MOD MODIFY)"];
|
||||||
|
ms <= bts [label="RR CHAN MOD MODIFY"];
|
||||||
|
ms => bts [label="RR CHAN MOD MODIFY ACK"];
|
||||||
|
bts => bsc [label="RSL DATA IND (RR CHAN MOD MODIFY ACK)"];
|
||||||
|
|||;
|
||||||
|
bts <= bsc [label="RSL MODE MODIFY REQ"];
|
||||||
|
bts => bsc [label="RSL MODE MODIFY ACK"];
|
||||||
|
|
||||||
|
Msc <= mgw [label="FIXME"];
|
||||||
|
bsc <= Msc [label="FIXME"];
|
||||||
|
bts <= bsc [label="RSL IPA MDCX (IP/Port @ MGW)", id="2"];
|
||||||
|
bts => bsc [label="RSL IPA MDCX ACK"];
|
||||||
|
|
||||||
|
bts -> mgw [label="Start RTP + RTCP UDP Flows"];
|
||||||
|
ms box mgw [label="Active Voice Call"];
|
||||||
|
bts => bsc [label="RSL MEAS RES"];
|
||||||
|
...;
|
||||||
|
|
||||||
|
bts <= bsc [label="RSL IPA DLCX"];
|
||||||
|
bts => bsc [label="RSL IPA DLCX ACK"];
|
||||||
|
bts -x mgw [label="Stop RTP + RTCP UDP Flows"];
|
||||||
|
|
||||||
|
bts <= bsc [label="RSL RF CHAN REL"];
|
||||||
|
bts => bsc [label="RSL RF CHAN REL ACK"];
|
||||||
|
}
|
||||||
980
doc/manuals/abis/rsl.adoc
Normal file
980
doc/manuals/abis/rsl.adoc
Normal file
@@ -0,0 +1,980 @@
|
|||||||
|
== Radio Signalling Link (RSL)
|
||||||
|
|
||||||
|
=== List of Messages
|
||||||
|
|
||||||
|
The following tables list the RSL messages used by OsmoBTS A-bis/IP,
|
||||||
|
grouped by their level of compliance with 3GPP TS 08.58.
|
||||||
|
|
||||||
|
==== Messages Compliant With TS 08.58
|
||||||
|
|
||||||
|
Specific additions and limitations apply, see the linked sections.
|
||||||
|
|
||||||
|
.Messages compliant with TS 08.58
|
||||||
|
[options="header",cols="10%,20%,45%,5%,20%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
||||||
|
5+<| *Radio link layer management messages*
|
||||||
|
| 8.3.1 | - | DATA REQUEST | <- | Received
|
||||||
|
| 8.3.2 | - | DATA INDICATION | -> | Sent
|
||||||
|
| 8.3.3 | - | ERROR INDICATION | -> | Sent
|
||||||
|
| 8.3.4 | - | ESTABLISH REQUEST | <- | Received
|
||||||
|
| 8.3.5 | - | ESTABLISH CONFIRM | -> | Sent
|
||||||
|
| 8.3.6 | - | ESTABLISH INDICATION | -> | Sent
|
||||||
|
| 8.3.7 | - | RELEASE REQUEST | <- | Received
|
||||||
|
| 8.3.8 | - | RELEASE CONFIRM | -> | Sent
|
||||||
|
| 8.3.9 | - | RELEASE INDICATION | -> | Sent
|
||||||
|
| 8.3.10 | - | UNIT DATA REQUEST | <- | Received
|
||||||
|
| 8.3.11 | - | UNIT DATA INDICATION | -> | Sent
|
||||||
|
5+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES*
|
||||||
|
| 8.4.1 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION | <- | Received
|
||||||
|
| 8.4.2 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION ACKNOWLEDGE | -> | Sent
|
||||||
|
| 8.4.3 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION NEGATIVE ACKNOWLEDGE | -> | Sent
|
||||||
|
| 8.4.4 | - | CONNECTION FAILURE INDICATION | -> | Sent
|
||||||
|
| 8.4.5 | - | DEACTIVATE SACCH | <- | Received
|
||||||
|
| 8.4.6 | - | ENCRYPTION COMMAND | <- | Received
|
||||||
|
| 8.4.7 | - | HANDOVER DETECTION | -> | Sent
|
||||||
|
| 8.4.8 | <<MEASUREMENT_RESULT>> | MEASUREMENT RESULT | -> | Sent
|
||||||
|
| 8.4.9 | <<MODE_MODIFY>> | MODE MODIFY | <- | Received
|
||||||
|
| 8.4.10 | - | MODE MODIFY ACKNOWLEDGE | -> | Sent
|
||||||
|
| 8.4.11 | - | MODE MODIFY NEGATIVE ACKNOWLEDGE | -> | Sent
|
||||||
|
| 8.4.14 | - | RF CHANNEL RELEASE | <- | Received
|
||||||
|
| 8.4.15 | <<MS_POWER_CONTROL>> | MS POWER CONTROL | <- | Received
|
||||||
|
| 8.4.16 | - | BS POWER CONTROL | <- | Received
|
||||||
|
| 8.4.19 | - | RF CHANNEL RELEASE ACKNOWLEDGE | -> | Sent
|
||||||
|
| 8.4.20 | <<SACCH_INFO_MODIFY>> | SACCH INFO MODIFY | <- | Received
|
||||||
|
5+<| *COMMON CHANNEL MANAGEMENT MESSAGES*
|
||||||
|
| 8.5.1 | <<BCCH_INFORMATION>> | BCCH INFORMATION | <- | Received
|
||||||
|
| 8.5.2 | - | CCCH LOAD INDICATION | -> | Sent
|
||||||
|
| 8.5.3 | <<CHANNEL_REQUIRED>> | CHANNEL REQUIRED | -> | Sent
|
||||||
|
| 8.5.4 | - | DELETE INDICATION | -> | Sent
|
||||||
|
| 8.5.5 | <<PAGING_COMMAND>> | PAGING COMMAND | <- | Received
|
||||||
|
| 8.5.6 | - | IMMEDIATE ASSIGN COMMAND | <- | Received
|
||||||
|
| 8.5.8 | - | SMS BROADCAST COMMAND | <- | Received
|
||||||
|
| 8.5.9 | - | CBCH LOAD INDICATION | -> | Sent
|
||||||
|
5+<| *TRX MANAGEMENT MESSAGES*
|
||||||
|
| 8.6.1 | <<RF_RESOURCE_INDICATION>> | RF RESOURCE INDICATION | -> | Sent
|
||||||
|
| 8.6.2 | <<SACCH_FILLING>> | SACCH FILLING | <- | Received
|
||||||
|
| 8.6.4 | - | ERROR REPORT | -> | Sent
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== Messages Specific to OsmoBTS
|
||||||
|
|
||||||
|
.Messages specific to OsmoBTS, not found in 3GPP TS 08.58
|
||||||
|
[options="header",cols="15%,15%,45%,5%,20%"]
|
||||||
|
|===
|
||||||
|
2+| This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
||||||
|
5+<| *User Plane Transport Management* (<<user_plane_txp_mgmt>>)
|
||||||
|
.3+.| <<rsl_crcx>> | <<rsl_crcx_msg>> | RSL Create Connection (CRCX) | <- | Received
|
||||||
|
| <<rsl_crcx_msg_ack>> | RSL Create Connection (CRCX) ACK | -> | Sent
|
||||||
|
| <<rsl_crcx_msg_nack>> | RSL Create Connection (CRCX) NACK | -> | Sent
|
||||||
|
.3+.| <<rsl_mdcx>> | <<rsl_mdcx_msg>> | RSL Modify Connection (MDCX) | <- | Received
|
||||||
|
| <<rsl_mdcx_msg_ack>> | RSL Modify Connection (MDCX) ACK | -> | Sent
|
||||||
|
| <<rsl_mdcx_msg_nack>> | RSL Modify Connection (MDCX) NACK | -> | Sent
|
||||||
|
.3+.| <<rsl_dlcx>> | <<rsl_dlcx_msg>> | RSL Delete Connection (DLCX) | <- | Received
|
||||||
|
| <<rsl_dlcx_msg_ack>> | RSL Delete Connection (DLCX) ACK | -> | Sent
|
||||||
|
| <<rsl_dlcx_msg_nack>> | RSL Delete Connection (DLCX) NACK | -> | Sent
|
||||||
|
| <<rsl_dlcx_ind>> | <<rsl_dlcx_ind_msg>> | RSL Delete Connection (DLCX) Indication | -> | Sent
|
||||||
|
5+<| *IPA style PDCH Management* (<<ipa_style_pdch_mgmt>>)
|
||||||
|
.3+.| <<pdch_act>> | <<rsl_pdch_act>> | RSL PDCH Activation | <- | Received
|
||||||
|
| <<rsl_pdch_act_ack>> | RSL PDCH Activation ACK | -> | Sent
|
||||||
|
| <<rsl_pdch_act_nack>> | RSL PDCH Activation NACK | -> | Sent
|
||||||
|
.3+.| <<pdch_deact>> | <<rsl_pdch_deact>> | RSL PDCH Deactivation | <- | Received
|
||||||
|
| <<rsl_pdch_deact_ack>> | RSL PDCH Deactivation ACK | -> | Sent
|
||||||
|
| <<rsl_pdch_deact_nack>> | RSL PDCH Deactivation NACK | -> | Sent
|
||||||
|
5+<| *COMMON CHANNEL MANAGEMENT MESSAGES*
|
||||||
|
.3+.| <<etws>> | <<OSMO_ETWS_CMD>> | Osmocom ETWS Command | <- | Received
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== Messages Not Implemented by OsmoBTS
|
||||||
|
|
||||||
|
.3GPP TS 08.58 messages not implemented by OsmoBTS
|
||||||
|
[options="header",cols="10%,90%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | Message
|
||||||
|
2+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES*
|
||||||
|
| 8.4.12 | PHYSICAL CONTEXT REQUEST
|
||||||
|
| 8.4.13 | PHYSICAL CONTEXT CONFIRM
|
||||||
|
| 8.4.17 | PREPROCESS CONFIGURE
|
||||||
|
| 8.4.18 | PREPROCESSED MEASUREMENT RESULT
|
||||||
|
| 8.4.21 | TALKER DETECTION
|
||||||
|
| 8.4.22 | LISTENER DETECTION
|
||||||
|
| 8.4.23 | REMOTE CODEC CONFIGURATION REPORT
|
||||||
|
| 8.4.24 | ROUND TRIP DELAY REPORT
|
||||||
|
| 8.4.25 | PRE-HANDOVER NOTIFICATION
|
||||||
|
| 8.4.26 | MULTIRATE CODEC MODIFICATION REQUEST
|
||||||
|
| 8.4.27 | MULTIRATE CODEC MODIFICATION ACKNOWLEDGE
|
||||||
|
| 8.4.28 | MULTIRATE CODEC MODIFICATION NEGATIVE ACKNOWLEDGE
|
||||||
|
| 8.4.29 | MULTIRATE CODEC MODIFICATION PERFORMED
|
||||||
|
| 8.4.30 | TFO REPORT
|
||||||
|
| 8.4.31 | TFO MODIFICATION REQUEST
|
||||||
|
2+<| *COMMON CHANNEL MANAGEMENT MESSAGES*
|
||||||
|
| 8.5.7 | SMS BROADCAST REQUEST
|
||||||
|
| 8.5.10 | NOTIFICATION COMMAND
|
||||||
|
2+<| *TRX MANAGEMENT MESSAGES*
|
||||||
|
| 8.6.3 | OVERLOAD
|
||||||
|
2+<| *LOCATION SERVICES MESSAGES*
|
||||||
|
| 8.7.1 | LOCATION INFORMATION
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== Message Limitation Details
|
||||||
|
|
||||||
|
[[CHANNEL_ACTIVATION]]
|
||||||
|
==== Channel Activation
|
||||||
|
|
||||||
|
When used on a timeslot using the non-standard channel combination
|
||||||
|
'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' as configured by OML, the regular
|
||||||
|
RSL channel activation procedures can not only be used for activation
|
||||||
|
of circuit-switched channels, but also for activation of a PDCH.
|
||||||
|
|
||||||
|
See <<OSMOCOM_DYN_TS>>.
|
||||||
|
|
||||||
|
NOTE:: Do not confuse this with the IPA style _PDCH ACT_ type
|
||||||
|
dynamic PDCH protocol employed by nanoBTS devices (<<ipa_style_pdch_mgmt>>).
|
||||||
|
|
||||||
|
[[MEASUREMENT_RESULT]]
|
||||||
|
==== Measurement Result
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.4.8 with this limitation:
|
||||||
|
|
||||||
|
._Measurement Result_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.37 | MS Timing Offset | never sent by OsmoBTS
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[MODE_MODIFY]]
|
||||||
|
==== Mode Modify
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.4.9 with these limitations:
|
||||||
|
|
||||||
|
._Mode Modify_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.45 | Main channel reference | _ignored_
|
||||||
|
| 9.3.53 | MultiRate Control | _ignored_
|
||||||
|
| 9.3.54 | Supported Codec Types | _ignored_
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[MS_POWER_CONTROL]]
|
||||||
|
==== MS Power Control
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.4.15 with these limitations:
|
||||||
|
|
||||||
|
._MS Power Control_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.31 | MS Power Parameters | _ignored_
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[SACCH_INFO_MODIFY]]
|
||||||
|
==== SACCH Info Modify
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.4.20, with these exceptions:
|
||||||
|
|
||||||
|
._SACCH Info Modify_ IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.30 | System Info Type | See below for available types
|
||||||
|
| 9.3.23 | Starting Time | not supported, provokes an _Error Report_ response
|
||||||
|
|===
|
||||||
|
|
||||||
|
._System Info Type_ values that can occur on the SACCH
|
||||||
|
[options="header",width="50%",cols="20%,80%"]
|
||||||
|
|===
|
||||||
|
| Value | Name
|
||||||
|
| 0x05 | RSL_SYSTEM_INFO_5
|
||||||
|
| 0x06 | RSL_SYSTEM_INFO_6
|
||||||
|
| 0x0d | RSL_SYSTEM_INFO_5bis
|
||||||
|
| 0x0e | RSL_SYSTEM_INFO_5ter
|
||||||
|
| 0x47 | RSL_EXT_MEAS_ORDER
|
||||||
|
| 0x48 | RSL_MEAS_INFO
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[BCCH_INFORMATION]]
|
||||||
|
==== BCCH Information
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.5.1, with these limitations and extensions:
|
||||||
|
|
||||||
|
._BCCH Information_ IE details
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types
|
||||||
|
| 9.3.11 | L3 Info | This IE may be included instead of a 9.3.39 _Full BCCH Info_ IE.
|
||||||
|
The _Full BCCH Info_ takes precedence over _L3 Info_.
|
||||||
|
To stop SI transmission, both of these IEs must be omitted.
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[CHANNEL_REQUIRED]]
|
||||||
|
==== Channel Required
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.5.3, with these limitations:
|
||||||
|
|
||||||
|
._Channel Required_ message IE details
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.16 | Physical Context | never sent by OsmoBTS
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[PAGING_COMMAND]]
|
||||||
|
==== Paging Command
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.5.5, with these limitations:
|
||||||
|
|
||||||
|
._Paging Command_ message IE details
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.49 | eMLPP Priority | _ignored_
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE: If adding the identity to the paging queue fails, the BSC is not notified
|
||||||
|
in any way.
|
||||||
|
|
||||||
|
|
||||||
|
[[RF_RESOURCE_INDICATION]]
|
||||||
|
==== RF Resource Indication
|
||||||
|
|
||||||
|
This message does not conform to 3GPP TS 08.58 § 8.6.1, in that it omits the
|
||||||
|
_Resource Information_ IE that would contain the actual payload data, which
|
||||||
|
renders this message void.
|
||||||
|
|
||||||
|
._RF Resource Indication_ message IE exceptions
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.21 | Resource Information | OsmoBTS omits this IE, though TS 08.58
|
||||||
|
specifies it as mandatory.
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[SACCH_FILLING]]
|
||||||
|
==== SACCH Filling
|
||||||
|
|
||||||
|
Conforms to 3GPP TS 08.58 § 8.6.2, with these limitations:
|
||||||
|
|
||||||
|
._SACCH Filling_ message IE limitations
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types
|
||||||
|
| 9.3.23 | Starting Time | _ignored_
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[user_plane_txp_mgmt]]
|
||||||
|
=== User Plane Transport Management
|
||||||
|
|
||||||
|
This chapter defines the A-bis/IP specific RSL procedures that are
|
||||||
|
introduced in addition to the 3GPP TS 08.58 standard procedures.
|
||||||
|
|
||||||
|
In classic A-bis over E1, user plane traffic is carried over 16kBps
|
||||||
|
sub-slots of 64kBps E1 time-slots according to ETSI/3GPP TS 08.60. As
|
||||||
|
the E1 line is a dedicated line between BTS and BSC, no further
|
||||||
|
addressing information is required.
|
||||||
|
|
||||||
|
In A-bis/IP as described by the present document, new RSL procedures
|
||||||
|
have been introduced to deal with the different properties of
|
||||||
|
the underlying IP based transport medium.
|
||||||
|
|
||||||
|
[[rsl_crcx]]
|
||||||
|
==== RSL Create Connection (CRCX)
|
||||||
|
|
||||||
|
This procedure is used by the BSC to request the BTS to allocate + bind
|
||||||
|
to a BTS-local UDP port for the subsequent transmission of user-plane
|
||||||
|
data via RTP.
|
||||||
|
|
||||||
|
To do so, the BSC sends the *Create Connection (CRCX)* message. In case of
|
||||||
|
successful outcome, the BTS responds with *Create Connection (CRCX)
|
||||||
|
ACK*. In case of any error, the BTS responds with *Create Connection
|
||||||
|
(CRCX) NACK*.
|
||||||
|
|
||||||
|
See <<rsl_crcx_msg>>, <<rsl_crcx_msg_ack>>, <<rsl_crcx_msg_nack>>
|
||||||
|
|
||||||
|
[[rsl_mdcx]]
|
||||||
|
==== RSL Modify Connection (MDCX)
|
||||||
|
|
||||||
|
This procedure is used by the BSC to request the BTS to modify an
|
||||||
|
already-bound BTS-local UDP port for user-plane RTP. It is used in
|
||||||
|
particular to configure the remote IP address and UDP port to which the
|
||||||
|
BTS shall send user-plane RTP traffic. This remote address is normally
|
||||||
|
either a Media Gateway (MGW) of some sort, but could also be the RTP
|
||||||
|
socket of the corresponding other leg of a mobile-to-mobile call.
|
||||||
|
|
||||||
|
To modify a user-plane connection, the BSC sends the *Modify Connection*
|
||||||
|
message. In case of successful outcome, the BTS responds with
|
||||||
|
*Modify Connection (MDCX) ACK*. In case of any error, the BTS responds
|
||||||
|
with *Modify Connection (MDCX) NACK*.
|
||||||
|
|
||||||
|
See <<rsl_mdcx_msg>>, <<rsl_mdcx_msg_ack>>, <<rsl_mdcx_msg_nack>>
|
||||||
|
|
||||||
|
[[rsl_dlcx]]
|
||||||
|
==== RSL Delete Connection (DLCX)
|
||||||
|
|
||||||
|
This procedure is used by the BSC to request the BTS to delete an
|
||||||
|
already-existing BTS-local UDP port for user-plane RTP.
|
||||||
|
|
||||||
|
To delete a user-plane connection, the BSC sends the *Delete Connection
|
||||||
|
(DLCX)* message. In case of successful outcome, the BTS responds with
|
||||||
|
*Delete Connection (DLCX) ACK*. In case of any error, the BTS responds
|
||||||
|
with *Delete Connection (DLCX) NACK*.
|
||||||
|
|
||||||
|
See <<rsl_dlcx_msg>>, <<rsl_dlcx_msg_ack>>, <<rsl_dlcx_msg_nack>>
|
||||||
|
|
||||||
|
[[rsl_dlcx_ind]]
|
||||||
|
==== RSL Delete Connection (DLCX) Indication
|
||||||
|
|
||||||
|
When a BTS-local UDP connection for user-plane RTP is automatically
|
||||||
|
released at the time of RF CHANNEL RELEASE, the BTS sends a unilateral,
|
||||||
|
non-acknowledged *RSL Delete Connection (DLCX) Indication* to the BSC.
|
||||||
|
|
||||||
|
See <<rsl_dlcx_ind_msg>>
|
||||||
|
|
||||||
|
|
||||||
|
[[rsl-dynamic-channels]]
|
||||||
|
=== Dynamic Channel Combinations
|
||||||
|
|
||||||
|
In the classic data model established by ETSI/3GPP for A-bis, each
|
||||||
|
timeslot (channel) is configured using a static channel combination by
|
||||||
|
means of A-bis OML. Particularly in presence of GPRS services, this
|
||||||
|
is very inflexible and leads to inefficient use of air interface
|
||||||
|
resources.
|
||||||
|
|
||||||
|
As such, several methods have been implemented to overcome this
|
||||||
|
limitation. The fundamental operation can be outlined like this:
|
||||||
|
|
||||||
|
* Configuration of a particular _dynamic_ channel combination via OML
|
||||||
|
* activation of TCH works like on a classic TCH channel combination
|
||||||
|
* activation of PDCH requires some specific PDCH activation procedure
|
||||||
|
|
||||||
|
There are two variants implemented in the OsmoBTS A-bis dialect:
|
||||||
|
|
||||||
|
[[ipa_style_pdch_mgmt]]
|
||||||
|
==== IPA Style Dynamic Channels
|
||||||
|
|
||||||
|
This method is used when OML uses 'NM_CHANC_IPAC_TCHFull_PDCH' (0x80)
|
||||||
|
as channel combination for the given time-slot.
|
||||||
|
|
||||||
|
'IPA style' refers to 'ip.access' compatible PDCH activation and deactivation.
|
||||||
|
|
||||||
|
When the IPA style dynamic channel combination _TCH/F or PDCH_
|
||||||
|
is set, the non-standard 'PDCH ACTIVATE' (<<pdch_act>>) and 'PDCH
|
||||||
|
DEACTIVATE' (<<pdch_deact>>) procedures are used for switching an idle
|
||||||
|
channel into PDCH mode and back into idle mode.
|
||||||
|
|
||||||
|
When the channel is used as TCH/F, regular circuit-switched activation
|
||||||
|
is performed, like on any traditional TCH/F. However, the BSC must
|
||||||
|
make sure to first disable the PDCH on the timeslot, before activating
|
||||||
|
it as TCH/F. Likewise, any circuit-switched TCH/F on the channel must
|
||||||
|
be deactivated using standard RSL signalling, before the specific PDCH
|
||||||
|
related procedures are used to enable the PDCH.
|
||||||
|
|
||||||
|
[[pdch_act]]
|
||||||
|
===== PDCH Activate
|
||||||
|
|
||||||
|
This procedure is used by the BSC to request the BTS to activate an
|
||||||
|
IPA style dynamic TCH/F+PDCH channel in PDCH mode.
|
||||||
|
|
||||||
|
The operation is not supported on any other physical channel type.
|
||||||
|
|
||||||
|
See <<rsl_pdch_act>>, <<rsl_pdch_act_ack>>, <<rsl_pdch_act_nack>>
|
||||||
|
|
||||||
|
[[pdch_deact]]
|
||||||
|
===== PDCH Deactivate
|
||||||
|
|
||||||
|
This procedure is used by the BSC to request the BTS to deactivate an
|
||||||
|
active PDCH on any an IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
The operation is not supported on any other physical channel type.
|
||||||
|
|
||||||
|
See <<rsl_pdch_deact>>, <<rsl_pdch_deact_ack>>, <<rsl_pdch_deact_nack>>
|
||||||
|
|
||||||
|
===== IPA Style Dynamic Switchover Example
|
||||||
|
|
||||||
|
.Part 1: example for dynamic channel switchover, for IPA style dynamic timeslots
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::dyn_ts_ipa_style1.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
.Part 2: example for dynamic channel switchover, for IPA style dynamic timeslots
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::dyn_ts_ipa_style2.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
[[OSMOCOM_DYN_TS]]
|
||||||
|
==== Osmocom Style Dynamic Channels
|
||||||
|
|
||||||
|
This method is in use when OML uses
|
||||||
|
'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' (0x90) for the given time-slot.
|
||||||
|
|
||||||
|
The activation of PDCH is performed by using the regular 'RSL CHANNEL ACTIVATE'
|
||||||
|
procedure according to <<CHANNEL_ACTIVATION>>, with these modifications:
|
||||||
|
|
||||||
|
* The 'C-bits' part of the 'Channel Number' IE take the non-standard binary
|
||||||
|
value 11000 (C5 thru C1 as seen in 3GPP TS 08.58 § 9.3.1).
|
||||||
|
* The 'A-bits' part of the 'Activation Type' IE take the non-standard binary
|
||||||
|
value 1111, with an additional fourth bit (add A4 to A3 thru A1 as seen in
|
||||||
|
3GPP TS 08.58 § 9.3.3; all remaining reserved bits as well as the 'R' bit are
|
||||||
|
coded as zero).
|
||||||
|
* The normally mandatory 'Channel Mode' IE is omitted; none of the optional IEs
|
||||||
|
are included.
|
||||||
|
|
||||||
|
Hence the message consists of exactly these IEs:
|
||||||
|
|
||||||
|
.PDCH type _Channel Activation_ message IEs
|
||||||
|
[options="header",cols="10%,30%,60%"]
|
||||||
|
|===
|
||||||
|
| TS 08.58 § | IE Name | Handling
|
||||||
|
| 9.1 | Message discriminator | Dedicated Channel Management
|
||||||
|
| 9.2 | Message type | CHANnel ACTIVation
|
||||||
|
| 9.3.1 | Channel number | 'C-bits' 11000, plus TS bits as usual
|
||||||
|
| 9.3.3 | Activation type | 'A-bits' 1111
|
||||||
|
|===
|
||||||
|
|
||||||
|
===== Osmocom Style Dynamic Switchover Example
|
||||||
|
|
||||||
|
.Part 1: example for dynamic channel switchover, for Osmocom style dynamic timeslots
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::dyn_ts_osmocom_style1.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
.Part 2: example for dynamic channel switchover, for Osmocom style dynamic timeslots
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::dyn_ts_osmocom_style2.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
[[etws]]
|
||||||
|
=== ETWS (Earthquake and Tsunami Warning System)
|
||||||
|
|
||||||
|
ETWS as specified in 3GPP TS 23.041 includes not only notification via
|
||||||
|
SMSCB, but also so-called Primary Notifications (PN). The ETWS PN are
|
||||||
|
transmitted
|
||||||
|
|
||||||
|
* by the BSC to all subscribers with active dedicated channels
|
||||||
|
* by the BTS on the PCH to all subscribers in idle mode
|
||||||
|
* by the PCU on the PACCH to all subscribers with active TBF
|
||||||
|
|
||||||
|
Unfortunately, 3GPP forgot to update their specifications with any
|
||||||
|
information as to how the ETWS PN is transmitted from BSC to BTS in
|
||||||
|
a portable way, and Osmocom had to invent their own non-standard
|
||||||
|
signaling for it.
|
||||||
|
|
||||||
|
See <<OSMO_ETWS_CMD>> for the Osmocom implementation.
|
||||||
|
|
||||||
|
|
||||||
|
=== Message Formats and Contents
|
||||||
|
|
||||||
|
[[rsl_crcx_msg]]
|
||||||
|
==== Create Connection (CRCX)
|
||||||
|
|
||||||
|
This message is sent by the BSC to the BTS to request the
|
||||||
|
creation of a user-plane RTP connection for the specified *Channel
|
||||||
|
number*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
||||||
|
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
||||||
|
| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2
|
||||||
|
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_crcx_msg_ack]]
|
||||||
|
==== Create Connection (CRCX) ACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to the BSC to acknowledge the
|
||||||
|
successful outcome of creating a user-plane RTP connection. It is sent
|
||||||
|
in response to the *Create Connection (CRCX)*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3
|
||||||
|
| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | O | TV | 5
|
||||||
|
| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | O | TV | 3
|
||||||
|
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_crcx_msg_nack]]
|
||||||
|
==== Create Connection (CRCX) NACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to the BSC to signal the
|
||||||
|
unsuccessful outcome of creating a user-plane RTP connection. It is
|
||||||
|
sent in response to the *Create Connection (CRCX)*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
||||||
|
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
||||||
|
| Cause | 08.58 9.3.26 | O | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
[[rsl_mdcx_msg]]
|
||||||
|
==== Modify Connection (MDCX)
|
||||||
|
|
||||||
|
This message is sent by the BSC to the BTS to modify the
|
||||||
|
properties of a user-plane RTP connection.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
||||||
|
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
||||||
|
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
||||||
|
| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2
|
||||||
|
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_mdcx_msg_ack]]
|
||||||
|
==== Modify Connection (MDCX) ACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to the BSC to acknowledge the
|
||||||
|
successful modification of a user-plane RTP connection. It is sent in
|
||||||
|
response to a *Modify Connection (MDCX)*
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
||||||
|
| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | C | TV | 5
|
||||||
|
| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | C | TV | 3
|
||||||
|
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_mdcx_msg_nack]]
|
||||||
|
==== Modify Connection (MDCX) NACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to the BSC to signal the
|
||||||
|
unsuccessful outcome of modifying the user-plane RTP connection for the
|
||||||
|
specified Channel number. It is sent in response to the *Modify
|
||||||
|
Connection (MDCX)*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_dlcx_ind_msg]]
|
||||||
|
==== Delete Connection (DLCX) Indication
|
||||||
|
|
||||||
|
This message is sent by the BTS to indicate the automatic
|
||||||
|
deletion of a BTS-local UDP connection for user-plane RTP traffic at the
|
||||||
|
time of RF Channel release.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_STAT>> | M | TV | 3
|
||||||
|
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_dlcx_msg]]
|
||||||
|
==== Delete Connection (DLCX)
|
||||||
|
|
||||||
|
This message is sent by the BSC to the BTS to request the
|
||||||
|
disconnection of a user-plane RTP connection for the specified Channel
|
||||||
|
number.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_dlcx_msg_ack]]
|
||||||
|
==== Delete Connection (DLCX) ACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to signal the successful
|
||||||
|
outcome of deleting the user-plane RTP connection for the specified
|
||||||
|
Channel number. It is sent in response to the *Delete Connection
|
||||||
|
(DLCX)*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
||||||
|
| Connection Statistics | <<RSL_IE_IPAC_CONN_STAT>> | C | TV | 29
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_dlcx_msg_nack]]
|
||||||
|
==== Delete Connection (DLCX) NACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to signal the unsuccessful
|
||||||
|
outcome of deleting the user-plane RTP connection for the specified
|
||||||
|
Channel number. It is sent in response to the *Delete Connection
|
||||||
|
(DLCX)*.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
||||||
|
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[rsl_pdch_act]]
|
||||||
|
==== PDCH Activate
|
||||||
|
|
||||||
|
This message is sent by the BSC to request the activation of a PDCH on
|
||||||
|
a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[rsl_pdch_act_ack]]
|
||||||
|
==== PDCH Activate ACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to confirm the successful activation
|
||||||
|
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Frame Number | 08.58 9.3.8 | O | TV | 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[rsl_pdch_act_nack]]
|
||||||
|
==== PDCH Activate NACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to reject the successful activation
|
||||||
|
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[rsl_pdch_deact]]
|
||||||
|
==== PDCH Deactivate
|
||||||
|
|
||||||
|
This message is sent by the BSC to request the deactivation of a PDCH
|
||||||
|
on a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[rsl_pdch_deact_ack]]
|
||||||
|
==== PDCH Deactivate ACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to confirm the successful deactivation
|
||||||
|
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[rsl_pdch_deact_nack]]
|
||||||
|
==== PDCH Deactivate NACK
|
||||||
|
|
||||||
|
This message is sent by the BTS to reject the deactivation of a PDCH
|
||||||
|
on a IPA style dynamic TCH/F+PDCH channel.
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
||||||
|
|===
|
||||||
|
|
||||||
|
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
||||||
|
|
||||||
|
[[OSMO_ETWS_CMD]]
|
||||||
|
==== Osmocom ETWS Command
|
||||||
|
|
||||||
|
This message is sent by the BSC to transfer the ETWS Primary Notification (PN)
|
||||||
|
from BSC to BTS and enable/disable transmission of ETWS PN by the BTS. For more
|
||||||
|
information about ETWS, see 3GPP TS 23.041.
|
||||||
|
|
||||||
|
If the ETWS PN length is > 0, the BTS will immediately start transmission
|
||||||
|
of the received ETWS PN on the PCH using P1 Rest Octets. It will also forward
|
||||||
|
he ETWS PN to the PCU to enable the PCU to transmit it via PACCH on active TBF.
|
||||||
|
|
||||||
|
If the ETWS PN length is 0, the BTS will stop any ETWS PN broadcast via the PCH.
|
||||||
|
|
||||||
|
The Channel Number IE is set to the Downlink CCCH (PCH).
|
||||||
|
|
||||||
|
[options="header"]
|
||||||
|
[cols="30%,25%,15%,15%,15%"]
|
||||||
|
|===
|
||||||
|
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
||||||
|
| Message discriminator | 08.58 9.1 | M | V | 1
|
||||||
|
| Message type | <<own_msg_types>> | M | V | 1
|
||||||
|
| Channel number | 08.58 9.3.1 | M | TV | 2
|
||||||
|
| SMSCB Message | 08.58 9.3.42 | M | TLV | 2-58
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
=== Information Element Codings
|
||||||
|
|
||||||
|
[[own_msg_types]]
|
||||||
|
==== A-bis/IP specific RSL Message discriminators
|
||||||
|
|
||||||
|
The following message discriminators are used in addition to those
|
||||||
|
indicated in 3GPP TS 08.58 Section 9.1:
|
||||||
|
|
||||||
|
.OsmoBTS specific new message discriminators
|
||||||
|
[options="header",cols="10%,50%,40%"]
|
||||||
|
|===
|
||||||
|
| Message Type | Message | This document §
|
||||||
|
| 0x70 | Create Connection (CRCX) | <<rsl_crcx_msg>>
|
||||||
|
| 0x71 | Create Connection (CRCX) ACK | <<rsl_crcx_msg_ack>>
|
||||||
|
| 0x72 | Create Connection (CRCX) NACK | <<rsl_crcx_msg_nack>>
|
||||||
|
| 0x73 | Modify Connection (MDCX) | <<rsl_mdcx_msg>>
|
||||||
|
| 0x74 | Modify Connection (MDCX) ACK | <<rsl_mdcx_msg_ack>>
|
||||||
|
| 0x75 | Modify Connection (MDCX) NACK | <<rsl_mdcx_msg_nack>>
|
||||||
|
| 0x76 | Delete Connection (DLCX) Indication | <<rsl_dlcx_ind_msg>>
|
||||||
|
| 0x77 | Delete Connection (DLCX) | <<rsl_dlcx_msg>>
|
||||||
|
| 0x78 | Delete Connection (DLCX) ACK | <<rsl_dlcx_msg_ack>>
|
||||||
|
| 0x79 | Delete Connection (DLCX) NACK | <<rsl_dlcx_msg_nack>>
|
||||||
|
| 0x7f | Osmocom ETWS Command | <<OSMO_ETWS_CMD>>
|
||||||
|
| 0x48 | PDCH Activate | <<rsl_pdch_act>>
|
||||||
|
| 0x49 | PDCH Activate ACK | <<rsl_pdch_act_ack>>
|
||||||
|
| 0x4a | PDCH Activate NACK | <<rsl_pdch_act_nack>>
|
||||||
|
| 0x4b | PDCH Deactivate | <<rsl_pdch_deact>>
|
||||||
|
| 0x4c | PDCH Deactivate ACK | <<rsl_pdch_deact_ack>>
|
||||||
|
| 0x4d | PDCH Deactivate NACK | <<rsl_pdch_deact_nack>>
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== A-bis/IP specific RSL IEIs
|
||||||
|
|
||||||
|
The following Information Element Identifiers (IEIs) are used in
|
||||||
|
addition to those indicated in 3GPP TS 08.58 Section 9.3:
|
||||||
|
|
||||||
|
.A-bis/IP specific information elements
|
||||||
|
[options="header",cols="10%,50%,40%"]
|
||||||
|
|===
|
||||||
|
| IEI | Name | This document §
|
||||||
|
| 0x01 | RSL_IE_CHAN_NR | <<RSL_IE_CHAN_NR>>
|
||||||
|
| 0xf0 | RSL_IE_IPAC_REMOTE_IP | <<RSL_IE_IPAC_REMOTE_IP>>
|
||||||
|
| 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <<RSL_IE_IPAC_REMOTE_PORT>>
|
||||||
|
| 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <<RSL_IE_IPAC_LOCAL_PORT>>
|
||||||
|
| 0xf4 | RSL_IE_IPAC_SPEECH_MODE | <<RSL_IE_IPAC_SPEECH_MODE>>
|
||||||
|
| 0xf5 | RSL_IE_IPAC_LOCAL_IP | <<RSL_IE_IPAC_LOCAL_IP>>
|
||||||
|
| 0xf6 | RSL_IE_IPAC_CONN_STAT | <<RSL_IE_IPAC_CONN_STAT>>
|
||||||
|
| 0xf8 | RSL_IE_IPAC_CONN_ID | <<RSL_IE_IPAC_CONN_ID>>
|
||||||
|
| 0xfc | RSL_IE_IPAC_RTP_PAYLOAD2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>>
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[RSL_IE_CHAN_NR]]
|
||||||
|
==== RSL_IE_CHAN_NR
|
||||||
|
|
||||||
|
This information element is coded like 3GPP TS 08.58 Section 9.3.1,
|
||||||
|
but in addition supports the following extended coding:
|
||||||
|
|
||||||
|
* C5..C1 bits 0b11000 for PDCH type channels
|
||||||
|
|
||||||
|
The TN-Bits are not re-defined in this case but use the same encoding
|
||||||
|
as specified in TS 08.58 Section 9.3.1.
|
||||||
|
|
||||||
|
NOTE:: The above extension is only valid on an Osmocom-style dynamic
|
||||||
|
channel, having configured the 'NM_CHANC_IPAC_TCHFull_PDCH' channel
|
||||||
|
combination by OML.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_REMOTE_IP]]
|
||||||
|
==== RSL_IE_IPAC_REMOTE_IP
|
||||||
|
|
||||||
|
This information element contains the remote (MGW side) IPv4 address in
|
||||||
|
network byte order. It is encoded as fixed-size element with one byte
|
||||||
|
IEI followed by four bytes IPv4 address.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_REMOTE_PORT]]
|
||||||
|
==== RSL_IE_IPAC_REMOTE_PORT
|
||||||
|
|
||||||
|
This information element contains the remote (MGW side) UDP port in
|
||||||
|
network byte order. It is encoded as fixed-size element with one byte
|
||||||
|
IEI followed by two bytes UDP port number.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_LOCAL_PORT]]
|
||||||
|
==== RSL_IE_IPAC_LOCAL_PORT
|
||||||
|
|
||||||
|
This information element contains the local (BTS side) IPv4 address in
|
||||||
|
network byte order. It is encoded as fixed-size element with one byte
|
||||||
|
IEI followed by two bytes UDP port number.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_SPEECH_MODE]]
|
||||||
|
==== RSL_IE_IPAC_SPEECH_MODE
|
||||||
|
|
||||||
|
This information element encodes the speech mode. It is set according
|
||||||
|
to the voice codec used on the connection. It is encoded as a fixed-size
|
||||||
|
element of two bytes, with one byte IEI followed by one byte Speech mode
|
||||||
|
indicator.
|
||||||
|
|
||||||
|
.A-bis/IP Speech Mode Indicator Values
|
||||||
|
[options="header",width="40%",cols="20%,80%"]
|
||||||
|
|===
|
||||||
|
| Value | Description
|
||||||
|
| 0x00 | TCH/F with FR codec
|
||||||
|
| 0x01 | TCH/F with EFR codec
|
||||||
|
| 0x02 | TCH/F with AMR codec
|
||||||
|
| 0x03 | TCH/H with HR codec
|
||||||
|
| 0x05 | TCH/H with AMR codec
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_LOCAL_IP]]
|
||||||
|
==== RSL_IE_IPAC_LOCAL_IP
|
||||||
|
|
||||||
|
This information element contains the local (BTS side) IPv4 address in
|
||||||
|
network byte order. It is encoded as fixed-size element with one byte
|
||||||
|
IEI followed by four bytes IPv4 address.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_CONN_STAT]]
|
||||||
|
==== RSL_IE_IPAC_CONN_STAT
|
||||||
|
|
||||||
|
This information element contains statistics about the RTP connection.
|
||||||
|
|
||||||
|
It is encoded as 29 bytes, with the first byte as IEI and 28 bytes
|
||||||
|
fixed-length payload encoded as follows:
|
||||||
|
|
||||||
|
.A-bis/IP Connection Statistics
|
||||||
|
[options="header",width="60%",cols="15%,15%,70%"]
|
||||||
|
|===
|
||||||
|
| Offset | Size | Description
|
||||||
|
| 0 | 4 | Total number of RTP packets sent
|
||||||
|
| 4 | 4 | Total number of octets sent
|
||||||
|
| 8 | 4 | Total number of RTP packets received
|
||||||
|
| 12 | 4 | Total number of octets received
|
||||||
|
| 16 | 4 | Total number of lost packets in Rx direction
|
||||||
|
| 20 | 4 | Inter-arrival Jitter
|
||||||
|
| 24 | 4 | Average transmission delay
|
||||||
|
|===
|
||||||
|
|
||||||
|
All the above values are encoded in network byte order.
|
||||||
|
|
||||||
|
A detailed definition of the individual values is given in RFC 1889.
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_CONN_ID]]
|
||||||
|
==== RSL_IE_IPAC_CONN_ID
|
||||||
|
|
||||||
|
This IE is a TV with a value length of two bytes. The value is a 16 bit
|
||||||
|
connection ID in network byte order.
|
||||||
|
|
||||||
|
|
||||||
|
[[RSL_IE_IPAC_RTP_PAYLOAD2]]
|
||||||
|
==== RSL_IE_IPAC_RTP_PAYLOAD2
|
||||||
|
|
||||||
|
This information element contains the RTP payload identifier, which is
|
||||||
|
used in the PT (Payload Type) field of the RTP header in subsequent
|
||||||
|
transmissions of the RTP flow.
|
||||||
|
|
||||||
|
=== A-bis RSL Initialization / BTS bring-up
|
||||||
|
|
||||||
|
Upon receiving the 'IPA RSL CONNECT' OML message by the respective
|
||||||
|
'Baseband Transceiver' MO, the BTS proceeds with establishing a separate
|
||||||
|
TCP connection for the given TRX.
|
||||||
|
|
||||||
|
[[rsl-msc-pri]]
|
||||||
|
.A-bis RSL BTS bring-up for primary TRX
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::rsl-startup-pri.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
[[rsl-msc-sec]]
|
||||||
|
.A-bis RSL BTS bring-up for secondary TRXs
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::rsl-startup-sec.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
The initialization of the primary and secondary TRX slightly differ, as
|
||||||
|
illustrated by the differences of <<rsl-msc-pri>> and <<rsl-msc-sec>>.
|
||||||
|
Since the secondary TRX has no BCCH, it does not (need to) receive any 'RSL
|
||||||
|
BCCH INFORMATION' messages from the BSC.
|
||||||
|
|
||||||
33
doc/manuals/abis/rtp.adoc
Normal file
33
doc/manuals/abis/rtp.adoc
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
== User-Plane Traffic via RTP
|
||||||
|
|
||||||
|
RTP (Realtime Transfer Protocol) is a protocol for streaming audio
|
||||||
|
and video data. It is specified by IETF RFC 1889.
|
||||||
|
|
||||||
|
OsmoBTS A-bis/IP implements RTP as transport medium for circuit-switched
|
||||||
|
user-plane traffic, contrary to the E1 sub-slot based transport
|
||||||
|
specified in 3GPP TS 08.60.
|
||||||
|
|
||||||
|
The RTP transport endpoint parameters are configured using the RSL User
|
||||||
|
Plane Transport Management procedures described in <<user_plane_txp_mgmt>>.
|
||||||
|
|
||||||
|
RTCP is implemented in addition to RTP, on a UDP port number of the RTP
|
||||||
|
port incremented by one.
|
||||||
|
|
||||||
|
=== RTP Payload Formats
|
||||||
|
|
||||||
|
The RTP payload format depends on the voice codec used on the radio
|
||||||
|
channel. The OsmoBTS is simply passing the GSM speech frames between
|
||||||
|
the Um radio interface channels and the RTP payload (and vice-versa).
|
||||||
|
|
||||||
|
No transcoding function is implemented in the BTS!
|
||||||
|
|
||||||
|
.RTP Payload formats
|
||||||
|
[options="header",width="60%",cols="15%,15%,70%"]
|
||||||
|
|===
|
||||||
|
| TCH | Codec | RTP payload format specification
|
||||||
|
| TCH/F | FR | IETF RFC 3551 Section 4.5.8
|
||||||
|
| TCH/F | EFR | IETF RFC 3551 Section 4.5.9
|
||||||
|
| TCH/F | AMR | IETF RFC 4867
|
||||||
|
| TCH/H | HR | IETF RFC 5993
|
||||||
|
| TCH/H | AMR | IETF RFC 4867
|
||||||
|
|===
|
||||||
120
doc/manuals/chapters/architecture.adoc
Normal file
120
doc/manuals/chapters/architecture.adoc
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
== OsmoBTS software architecture
|
||||||
|
|
||||||
|
=== OsmoBTS PHY interface abstraction
|
||||||
|
|
||||||
|
The OsmoBTS PHY interface serves as an internal abstraction layer
|
||||||
|
between given PHY hardware (as provided by the bts_model) and the actual
|
||||||
|
logical transceivers (TRXs) of a BTS inside the OsmoBTS code base.
|
||||||
|
|
||||||
|
|
||||||
|
==== PHY link
|
||||||
|
|
||||||
|
A PHY link is a physical connection / link towards a given PHY. This
|
||||||
|
might be, for example,
|
||||||
|
|
||||||
|
* a set of file descriptors to device nodes in the /dev/ directory
|
||||||
|
(sysmobts, litecell15)
|
||||||
|
* a packet socket for sending raw Ethernet frames to an OCTPHY
|
||||||
|
* a set of UDP sockets for interacting with OsmoTRX
|
||||||
|
|
||||||
|
Each PHY interface has a set of attribute/parameters and a list of 1 to
|
||||||
|
n PHY instances.
|
||||||
|
|
||||||
|
PHY links are numbered 0..n globally inside OsmoBTS.
|
||||||
|
|
||||||
|
Each PHY link is configured via the VTY using its individual top-level
|
||||||
|
vty node. Given the different bts-model / phy specific properties, the
|
||||||
|
VTY configuration options (if any) of the PHY instance differ between
|
||||||
|
BTS models.
|
||||||
|
|
||||||
|
The PHY links and instances must be configured above the BTS/TRX nodes
|
||||||
|
in the configuration file. If the file is saved via the VTY, the code
|
||||||
|
automatically ensures this.
|
||||||
|
|
||||||
|
|
||||||
|
==== PHY instance
|
||||||
|
|
||||||
|
A PHY instance is an instance of a PHY, accessed via a PHY link.
|
||||||
|
|
||||||
|
In the case of osmo-bts-sysmo and osmo-bts-trx, there is only one
|
||||||
|
instance in every PHY link. This is due to the fact that the API inside
|
||||||
|
that PHY link does not permit for distinguishing multiple different
|
||||||
|
logical TRXs.
|
||||||
|
|
||||||
|
Other PHY implementations like the OCTPHY however do support addressing
|
||||||
|
multiple PHY instances via a single PHY link.
|
||||||
|
|
||||||
|
PHY instances are numbered 0..n inside each PHY link.
|
||||||
|
|
||||||
|
Each PHY instance is configured via the VTY as a separate node beneath each
|
||||||
|
PHY link. Given the different bts-model / phy specific properties, the
|
||||||
|
VTY configuration options (if any) of the PHY instance differ between
|
||||||
|
BTS models.
|
||||||
|
|
||||||
|
|
||||||
|
==== Mapping PHY instances to TRXs
|
||||||
|
|
||||||
|
Each TRX node in the VTY must use the 'phy N instance M' command in
|
||||||
|
order to specify which PHY instance is allocated to this specific TRX.
|
||||||
|
|
||||||
|
=== Internal control flow
|
||||||
|
|
||||||
|
==== start-up / sequencing during OsmoBTS start
|
||||||
|
|
||||||
|
.Control flow at OsmoBTS start-up procedure
|
||||||
|
[options="header",cols="10%,35%,55%"]
|
||||||
|
|===
|
||||||
|
| section | function | description
|
||||||
|
| bts-specific | main() | Entering main() from glibc
|
||||||
|
| common | bts_main() | initialization of talloc contexts
|
||||||
|
| common | bts_log_init() | initialization of logging
|
||||||
|
| common | handle_options() | common option parsing
|
||||||
|
| bts-specific | bts_model_handle_options() | model-specific option parsing
|
||||||
|
| common | gsm_bts_alloc() | allocation of BTS/TRX/TS data structures
|
||||||
|
| common | vty_init() | Initialziation of VTY core, libosmo-abis and osmo-bts VTY
|
||||||
|
| common | main() | Setting of scheduler RR priority (if configured)
|
||||||
|
| common | main() | Initialization of GSMTAP (if configured)
|
||||||
|
| common | bts_init() | configuration of defaults in bts/trx/s object
|
||||||
|
| bts-specific | bts_model_init | ?
|
||||||
|
| common | abis_init() | Initialization of libosmo-abis
|
||||||
|
| common | vty_read_config_file() | Reading of configuration file
|
||||||
|
| bts-specific | bts_model_phy_link_set_defaults() | Called for every PHY link created
|
||||||
|
| bts-specific | bts_model_phy_instance_set_defaults() | Called for every PHY Instance created
|
||||||
|
| common | bts_controlif_setup() | Initialization of Control Interface
|
||||||
|
| bts-specific | bts_model_ctrl_cmds_install() | Install model-specific control interface commands
|
||||||
|
| common | telnet_init() | Initialization of telnet interface
|
||||||
|
| common | pcu_sock_init() | Initialization of PCU socket
|
||||||
|
| common | main() | Installation of signal handlers
|
||||||
|
| common | abis_open() | Start of the A-bis connection to BSC
|
||||||
|
| common | phy_links_open() | Iterate over list of configured PHY links
|
||||||
|
| bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links
|
||||||
|
| common | write_pid_file() | Generate the pid file
|
||||||
|
| common | osmo_daemonize() | Fork as daemon in background (if configured)
|
||||||
|
| common | bts_main() | Run main loop until global variable quit >= 2
|
||||||
|
|===
|
||||||
|
|
||||||
|
|
||||||
|
==== At time of OML establishment
|
||||||
|
|
||||||
|
.Control flow at time of OML establishment
|
||||||
|
[options="header",cols="10%,35%,55%"]
|
||||||
|
|===
|
||||||
|
| section | function | description
|
||||||
|
| bts-specific | bts_model_oml_estab() | Called by core once OML link is established
|
||||||
|
| bts-specific | bts_model_check_oml() | called each time OML sets some attributes on a MO, checks if attributes are valid
|
||||||
|
| bts-specific | bts_model_apply_oml() | called each time OML sets some attributes on a MO, stores attribute contents in data structures
|
||||||
|
| bts-specific | bts_model_opstart() | for NM_OC_BTS, NM_OC_SITE_MANAGER, NM_OC_GPRS_NSE, NM_OC_GPRS_CELL, NMO_OC_GPRS_NSVC
|
||||||
|
| bts-specific | bts_model_opstart() | for NM_OC_RADIO_CARRIER for each trx
|
||||||
|
| bts-specific | bts_model_opstart() | for NM_OC_BASEB_TRANSC for each trx
|
||||||
|
| bts-specific | bts_model_opstart() | for NM_OC_CHANNEL for each timeslot on each trx
|
||||||
|
| bts-specific | bts_model_change_power() | change transmit power for each trx (power ramp-up/ramp-down)
|
||||||
|
|===
|
||||||
|
|
||||||
|
==== At time of RSL connection loss
|
||||||
|
|
||||||
|
.Control flow at time of RSL connection loss
|
||||||
|
[options="header",cols="10%,35%,55%"]
|
||||||
|
|===
|
||||||
|
| section | function | description
|
||||||
|
| bts-specific | bts_model_abis_close() | called when either one of the RSL links or the OML link are down
|
||||||
|
|===
|
||||||
484
doc/manuals/chapters/bts-models.adoc
Normal file
484
doc/manuals/chapters/bts-models.adoc
Normal file
@@ -0,0 +1,484 @@
|
|||||||
|
[[osmobts_hardware_support]]
|
||||||
|
== OsmoBTS hardware support
|
||||||
|
|
||||||
|
OsmoBTS consists of a _common_ part that applies to all BTS models as well as
|
||||||
|
_hardware-specific_ parts for each BTS model. The hardware specific parts are
|
||||||
|
generally referred to as the _bts_model_ code.
|
||||||
|
|
||||||
|
The common part includes the core BTS architecture as well as code for
|
||||||
|
implementing the external interfaces such as Abis, control, PCU socket and
|
||||||
|
GSMTAP.
|
||||||
|
|
||||||
|
The bts_model parts include support for driving one particular
|
||||||
|
implementation of a GSM physical layer (PHY). Such a physical layer
|
||||||
|
implementation can come in many forms. Sometimes it runs on a general
|
||||||
|
purpose CPU, sometimes on a dedicated ARM core, a dedicated DSP, a
|
||||||
|
combination of DSP and FPGA.
|
||||||
|
|
||||||
|
Every PHY implementation offers some kind of primitives by which the PHY
|
||||||
|
can be controlled, and by which the PHY exchanges data with the higher
|
||||||
|
layers of the protocol stack in the OsmoBTS code.
|
||||||
|
|
||||||
|
The PHY-specific primitives are encapsulated in the bts_model code, and
|
||||||
|
offered as a PHY-independent _L1SAP_ interface towards the common part of
|
||||||
|
OsmoBTS.
|
||||||
|
|
||||||
|
In addition, each bts_model implements a set of functions that the
|
||||||
|
common part calls. Those functions are pre-fixed by _bts_model__.
|
||||||
|
|
||||||
|
Each bts_model may offer
|
||||||
|
|
||||||
|
* model-specific VTY commands for both configuration and run-time interaction
|
||||||
|
* model-specific command line arguments
|
||||||
|
* model-specific control interface commands
|
||||||
|
|
||||||
|
== `osmo-bts-sysmo` for sysmocom sysmoBTS
|
||||||
|
|
||||||
|
The sysmocom sysmoBTS is a range of GSM BTSs based around an embedded
|
||||||
|
system implementing the PHY in a combination of DSP+FPGA. The PHY is
|
||||||
|
configured by a set of primitives described by header files. Those
|
||||||
|
primitives are exchanged over a set of message queues exposed on the
|
||||||
|
Linux-running ARM core via device nodes in `/dev/msgq/`. Internally,
|
||||||
|
the message queues map to shared memory between the Linux-running ARM
|
||||||
|
core and the DSP running the PHY implementation.
|
||||||
|
|
||||||
|
The OsmoBTS bts_model code for the sysmoBTS can be found in the
|
||||||
|
`src/osmo-bts-sysmo` sub-directory of the OsmoBTS code base.
|
||||||
|
|
||||||
|
`osmo-bts-sysmo` has been the primary target platform for
|
||||||
|
OsmoBTS for many years and is thus the most feature-complete and mature
|
||||||
|
platform supported by OsmoBTS at this point.
|
||||||
|
|
||||||
|
The sysmoBTS PHY supports a direct PHY interface to OsmoPCU, reducing
|
||||||
|
the latency and amount of primitives that OsmoBTS would otherwise need
|
||||||
|
to pass through from the PHY message queues to the PCU socket and
|
||||||
|
vice-versa.
|
||||||
|
|
||||||
|
|
||||||
|
=== `osmo-bts-sysmo` specific command line arguments
|
||||||
|
|
||||||
|
*--dsp-trace 'DSPMASK'*::
|
||||||
|
Set the DSP trace flags (a single hexadecimal 32bit value).
|
||||||
|
This has been deprecated by VTY based commands, see
|
||||||
|
<<osmo-bts-sysmo-dsp-trace>> for further information.
|
||||||
|
*--pcu-direct*::
|
||||||
|
Indicate that an external PCU (e.g. OsmoPCU) will directly
|
||||||
|
open the DSP message queues to the PHY / PH-SAP, and only MPH
|
||||||
|
primitives are passed via OsmoBTS.
|
||||||
|
|
||||||
|
|
||||||
|
=== `osmo-bts-sysmo` specific VTY commands
|
||||||
|
|
||||||
|
For a auto-generated complete syntax reference of the VTY commands,
|
||||||
|
please see the associated _OsmoBTS VTY reference manual_
|
||||||
|
<<vty-ref-osmobts>>. The section
|
||||||
|
below only lists the most important commands.
|
||||||
|
|
||||||
|
==== at the 'SHOW' node
|
||||||
|
|
||||||
|
===== `show trx 0 clock-source`
|
||||||
|
|
||||||
|
Display the currently active clock source configuration for the TRX
|
||||||
|
|
||||||
|
[[osmo-bts-sysmo-dsp-trace]]
|
||||||
|
===== `show trx 0 dsp-trace-flags`
|
||||||
|
|
||||||
|
Show the currently active DSP trace flags for the TRX
|
||||||
|
|
||||||
|
===== `trx 0 dsp-trace-flag`
|
||||||
|
|
||||||
|
Use this command to enable/disable/configure the DSP tracing flags that
|
||||||
|
define what debug messages will appear on `/dev/rtfifo/dsp_trace`.
|
||||||
|
|
||||||
|
==== at the 'ENABLE' node
|
||||||
|
|
||||||
|
===== `trx 0 tx-power <-110-100>`
|
||||||
|
|
||||||
|
Change the current TRX transmit power to the given value in dBm.
|
||||||
|
|
||||||
|
===== `trx 0 rf-clock-info reset`
|
||||||
|
|
||||||
|
Part of the clock calibration procedure:
|
||||||
|
Reset the clock correction value.
|
||||||
|
|
||||||
|
===== `trx 0 rf-clock-info correct`
|
||||||
|
|
||||||
|
Part of the clock calibration procedure:
|
||||||
|
Apply the current measured correction value between the reference clock
|
||||||
|
and the local clock.
|
||||||
|
|
||||||
|
==== at the 'PHY instance' node
|
||||||
|
|
||||||
|
==== `clock-calibration eeprom`
|
||||||
|
|
||||||
|
Obtain clock calibration value from EEPROM.
|
||||||
|
|
||||||
|
==== `clock-calibration default`
|
||||||
|
|
||||||
|
Use hardware default clock calibration value.
|
||||||
|
|
||||||
|
==== `clock-calibration <-4095-4095>`
|
||||||
|
|
||||||
|
Use specified clock calibration value (not EEPROM/default).
|
||||||
|
|
||||||
|
==== `clock-source (tcxo|ocxo|ext|gps)`
|
||||||
|
|
||||||
|
Specify the clock source for the PHY:
|
||||||
|
|
||||||
|
tcxo::
|
||||||
|
Use the TCXO. This is the default on sysmoBTS 2050.
|
||||||
|
ocxo::
|
||||||
|
Use the OCXO (only valid on units equipped with OCXO). This is
|
||||||
|
the default on all sysmoBTS 1002/1020/1100 and SOB-BTS.
|
||||||
|
ext::
|
||||||
|
Use the external clock input.
|
||||||
|
gps::
|
||||||
|
Use the clock derived from GPS. You shouldn't use this clock
|
||||||
|
directly, but rather use the TCXO and regularly re-calibrate
|
||||||
|
against GPS.
|
||||||
|
|
||||||
|
==== `trx-calibration-path PATH`
|
||||||
|
|
||||||
|
Use calibration files from the given 'PATH', rather tan calibration
|
||||||
|
values from the EEPROM.
|
||||||
|
|
||||||
|
=== `osmo-bts-sysmo` specific control interface commands
|
||||||
|
|
||||||
|
==== trx.0.clock-info
|
||||||
|
|
||||||
|
Obtain information on the current clock status:
|
||||||
|
|
||||||
|
----
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.clock-info
|
||||||
|
Got message: GET_REPLY 1 trx.0.clock-info -100,ocxo,0,0,gps
|
||||||
|
----
|
||||||
|
|
||||||
|
which is to be interpreted as:
|
||||||
|
|
||||||
|
* current clock correction value is -100 ppb
|
||||||
|
* current clock source is OCXO
|
||||||
|
* deviation between clock source and calibration source is 0 ppb
|
||||||
|
* resolution of clock error measurement is 0 ppt (0 means no result yet)
|
||||||
|
* current calibration source is GPS
|
||||||
|
|
||||||
|
When this attribute is set, any value passed on is discarded, but the clock
|
||||||
|
calibration process is re-started.
|
||||||
|
|
||||||
|
==== trx.0.clock-correction
|
||||||
|
|
||||||
|
This attribute can get and set the current clock correction value:
|
||||||
|
|
||||||
|
----
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.clock-correction
|
||||||
|
Got message: GET_REPLY 1 trx.0.clock-correction -100
|
||||||
|
----
|
||||||
|
|
||||||
|
----
|
||||||
|
bsc_control.py -d localhost -p 4238 -s trx.0.clock-correction -- -99
|
||||||
|
Got message: SET_REPLY 1 trx.0.clock-correction success
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
== `osmo-bts-trx` for OsmoTRX
|
||||||
|
|
||||||
|
OsmoTRX is a C-language implementation of the GSM radio modem,
|
||||||
|
originally developed as the 'Transceiver' part of OpenBTS. This radio
|
||||||
|
modem offers an interface based on top of UDP streams.
|
||||||
|
|
||||||
|
The OsmoBTS bts_model code for OsmoTRX is called
|
||||||
|
`osmo-bts-trx`. It implements the UDP stream interface of
|
||||||
|
OsmoTRX, so both parts can be used together to implement a complete GSM
|
||||||
|
BTS based on general-purpose computing SDR.
|
||||||
|
|
||||||
|
As OsmoTRX is general-purpose software running on top of Linux, it is thus not
|
||||||
|
tied to any specific physical hardware. At the time of this writing, OsmoTRX
|
||||||
|
supports a variety of Lime Microsystems and Ettus USRP SDRs via the UHD driver,
|
||||||
|
as well as the Fairwaves UmTRX and derived products.
|
||||||
|
|
||||||
|
OsmoTRX is not a complete GSM PHY but 'just' the radio modem. This
|
||||||
|
means that all of the Layer 1 functionality such as scheduling,
|
||||||
|
convolutional coding, etc. is actually also implemented inside OsmoBTS.
|
||||||
|
|
||||||
|
As such, the boundary between OsmoTRX and `osmo-bts-trx` is at
|
||||||
|
a much lower interface, which is an internal interface of other more
|
||||||
|
traditional GSM PHY implementations.
|
||||||
|
|
||||||
|
Besides OsmoTRX, there are also other implementations (both Free
|
||||||
|
Software and proprietary) that implement the same UDP stream based radio
|
||||||
|
modem interface.
|
||||||
|
|
||||||
|
|
||||||
|
=== `osmo-bts-trx` specific VTY commands
|
||||||
|
|
||||||
|
For a auto-generated complete syntax reference of the VTY commands,
|
||||||
|
pleas see the associated _OsmoBTS VTY reference manual_
|
||||||
|
<<vty-ref-osmobts>>. The section below only lists the most important
|
||||||
|
commands.
|
||||||
|
|
||||||
|
==== at the 'SHOW' node
|
||||||
|
|
||||||
|
===== `show transceivers`
|
||||||
|
|
||||||
|
Display information about configured/connected OsmoTRX transceivers in
|
||||||
|
human-readable format to current VTY session.
|
||||||
|
|
||||||
|
==== at the 'PHY' configuration node
|
||||||
|
|
||||||
|
===== `osmotrx ip HOST`
|
||||||
|
|
||||||
|
Set the IP address for the OsmoTRX interface for both the local (OsmoBTS) and
|
||||||
|
remote (OsmoTRX) side of the UDP flows. This option has been deprecated by the
|
||||||
|
more detailed option `osmotrx ip (local|remote) A.B.C.D`.
|
||||||
|
|
||||||
|
===== `osmotrx ip (local|remote) A.B.C.D`
|
||||||
|
|
||||||
|
Set the IP address for the OsmoTRX interface for either the local (OsmoBTS) or
|
||||||
|
remote (OsmoTRX) side of the UDP flows.
|
||||||
|
|
||||||
|
===== `osmotrx base-port (local|remote) <0-65535>`
|
||||||
|
|
||||||
|
Configure the base UDP port for the OsmoTRX interface for either the
|
||||||
|
local (OsmoBTS) or remote (OsmoTRX) side of the UDP flows.
|
||||||
|
|
||||||
|
===== `osmotrx fn-advance <0-30>`
|
||||||
|
|
||||||
|
Set the number of frames to be transmitted to transceiver in advance of
|
||||||
|
current GSM frame number.
|
||||||
|
|
||||||
|
GSM is a TDMA (time division multiple access) system on the radio
|
||||||
|
interface. OsmoTRX is the "clock master" of that in the Osmocom
|
||||||
|
implementation. It informs OsmoBTS of the current GSM frame
|
||||||
|
number. However, as there is non-zero delays (UDP packet trnsmission
|
||||||
|
delay, operating system scheduler delay on both OsmoTRX and OsmoBTS
|
||||||
|
side, ...), OsmoBTS must compensate for that delay by "advancing"
|
||||||
|
the clock a certain amount of time.
|
||||||
|
|
||||||
|
In other words, if OsmoTRX informs us that the current frame number is N,
|
||||||
|
we advance it by `fn-advance` and transmit burst data for
|
||||||
|
`N + fn-advance` towards OsmoTRX.
|
||||||
|
|
||||||
|
The fn-advance should be kept as low as possible to avoid additional
|
||||||
|
delays to the user voice plane as well as to improve the performance
|
||||||
|
of the control plane (LAPDm) as well as GPRS.
|
||||||
|
|
||||||
|
However, fn-advance must be kept sufficiently high to ensure no
|
||||||
|
underruns on the OsmoTRX side.
|
||||||
|
|
||||||
|
The detailed value will depend on your underlying computer systems,
|
||||||
|
operating system and related tuning parameters. Running OsmoTRX
|
||||||
|
on a remote host will inevitably require a higher fn-advance then
|
||||||
|
running it on the same machine, where the UDP packetes are just passed
|
||||||
|
over the loopback device.
|
||||||
|
|
||||||
|
The default value for `fn-advance` is 20 (corresponding to 92
|
||||||
|
milliseconds).
|
||||||
|
|
||||||
|
===== `osmotrx rts-advance <0-30>`
|
||||||
|
|
||||||
|
Set the number of frames to be requested from L1SAP in advance of current
|
||||||
|
frame number and fn-advance.
|
||||||
|
|
||||||
|
The value specified as `rts-advance` is added to the current GSM frame
|
||||||
|
number as reported by OsmoTRX *and* the `osmotrx fn-advance` in order
|
||||||
|
to generate the PH-RTS.ind (ready to send indications) across the L1SAP
|
||||||
|
interface inside osmo-bts. This will trigger the Layer 2 (LAPDm for
|
||||||
|
the control plane, RTP for the voice plane, and OsmoPCU for GPRS) to
|
||||||
|
generate a MAC block and input it into the osmo-bts-trx TDMA scheduler.
|
||||||
|
|
||||||
|
If OsmoTRX reported N as the current frame number, the actual frame number
|
||||||
|
reported on L1SAP to higher layers will be computed as follows:
|
||||||
|
|
||||||
|
N + fn-advance + rts-advance
|
||||||
|
|
||||||
|
The default value of `rts-advance` is 5 (corresponding to 23 milliseconds).
|
||||||
|
Do not change this unless you have a good reason!
|
||||||
|
|
||||||
|
===== `osmotrx rx-gain <0-50>`
|
||||||
|
|
||||||
|
Set the receiver gain (configured in the hardware) in dB.
|
||||||
|
|
||||||
|
===== `osmotrx tx-attenuation <0-50>`
|
||||||
|
|
||||||
|
Set the transmitter attenuation (configured in the hardware) in dB.
|
||||||
|
|
||||||
|
===== `osmotrx tx-attenuation oml`
|
||||||
|
|
||||||
|
Use the Value in the A-bis OML Attribute `MAX_POWER_REDUCTION` as
|
||||||
|
transmitter attenuation.
|
||||||
|
|
||||||
|
==== at the 'PHY Instance' configuration node
|
||||||
|
|
||||||
|
===== `slotmask (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0)`
|
||||||
|
|
||||||
|
Configure which timeslots should be active on this TRX. Normally all
|
||||||
|
timeslots are enabled, unless you are running on a cpu-constrained
|
||||||
|
deeply embedded system.
|
||||||
|
|
||||||
|
===== `osmotrx maxdly <0-31>`
|
||||||
|
|
||||||
|
Set the maximum delay for received symbols (in number of GSM symbols).
|
||||||
|
|
||||||
|
|
||||||
|
== `osmo-bts-octphy` for Octasic OCTPHY-2G
|
||||||
|
|
||||||
|
The Octasic OCTPHY-2G is a GSM PHY implementation inside an Octasic
|
||||||
|
proprietary 24-core DSP called OCTDSP.
|
||||||
|
|
||||||
|
This DSP has a built-in Gigabit Ethernet interface, over which it
|
||||||
|
exchanges PHY-layer primitives in raw Ethernet frames with the upper
|
||||||
|
layers running on another CPU attached to the same Ethernet. Those
|
||||||
|
primitives are described in a set of C-language header files.
|
||||||
|
|
||||||
|
OsmoBTS implements the raw Ethernet frame based primitives as well as
|
||||||
|
the associated transport protocol (OKTPKT/OCTVC1) in the
|
||||||
|
`osmo-btso-octphy` bts_model code.
|
||||||
|
|
||||||
|
You can run the `osmo-bts-octphy` on any system connected to the same
|
||||||
|
Ethernet as the OCTDSP running the OCTPHY. This can be either an
|
||||||
|
embedded ARM or x86 SoM part of the OCTBTS hardware, or it can be any
|
||||||
|
other Linux system attached via an Ethernet switch.
|
||||||
|
|
||||||
|
Each OCTDSP running OCTSDR-2G offers a set of primitives part of a
|
||||||
|
OCTPKT session, which is mapped to an OsmoBTS PHY link. Depending on
|
||||||
|
the OCTSDR-2G software version, you may create multiple software TRX by
|
||||||
|
creating multiple OsmoBTS PHY instances inside that PHY link.
|
||||||
|
|
||||||
|
Multiple DSPs may exist in one circuit board, then each of the DSPs is
|
||||||
|
interfaced by one OsmoBTS PHY link, and each of them may have one or
|
||||||
|
more OsmoBTS PHY instances creating a Multi-TRX configuration.
|
||||||
|
|
||||||
|
|
||||||
|
== `osmo-bts-litecell15` for Nutaq/Nuran LiteCell 1.5
|
||||||
|
|
||||||
|
The Nutaq/Nuran LiteCell 1.5 implements a dual-transceiver GSM BTS based
|
||||||
|
on a mixed ARM/DSP/FPGA architecture. The PHY layer is implemented on
|
||||||
|
DSP/FPGA and similar to that of the sysmoBTS: It exchanges primitives
|
||||||
|
described in a set of C-language header files over message queues
|
||||||
|
between the ARM and the DSP.
|
||||||
|
|
||||||
|
This interface is implemented in the `osmo-bts-litecell15` bts_model of
|
||||||
|
OsmoBTS. You would run `osmo-bts-litecell15` on the ARM/Linux processor
|
||||||
|
of the Litecell 1.5.
|
||||||
|
|
||||||
|
The two transceivers of the Litecell 1.5 each have their own set of DSP
|
||||||
|
message queues. Each set of message queues is wrapped into one OsmoBTS
|
||||||
|
PHY link, offering one OsmoBTS PHY instance.
|
||||||
|
|
||||||
|
The Litecell 1.5 PHY supports a direct PHY interface to OsmoPCU,
|
||||||
|
reducing the latency and amount of primitives that OsmoBTS would
|
||||||
|
otherwise need to pass through from the PHY message queues to the PCU
|
||||||
|
socket and vice-versa.
|
||||||
|
|
||||||
|
=== `osmo-bts-trx` specific VTY commands
|
||||||
|
|
||||||
|
For a auto-generated complete syntax reference of the VTY commands,
|
||||||
|
please see the associated _OsmoBTS VTY reference manual_
|
||||||
|
<<vty-ref-osmobts>>. The section below only lists the most important
|
||||||
|
commands.
|
||||||
|
|
||||||
|
==== at the 'SHOW' node
|
||||||
|
|
||||||
|
===== `show phy <0-255> system-information`
|
||||||
|
|
||||||
|
Show information about the hardware platform, DSP and OCTPHY-2G software
|
||||||
|
version.
|
||||||
|
|
||||||
|
===== `show phy <0-255> rf-port-stats <0-1>`
|
||||||
|
|
||||||
|
Show information about the RF port interfaces.
|
||||||
|
|
||||||
|
===== `show phy <0-255> clk-sync-stats`
|
||||||
|
|
||||||
|
Show information about the clock synchronization manager.
|
||||||
|
|
||||||
|
==== at the 'PHY' configuration node
|
||||||
|
|
||||||
|
===== `octphy hw-addr HWADDR`
|
||||||
|
|
||||||
|
Specify the Ethernet hardware address (mac address) of the DSP running
|
||||||
|
the OCTPHY-2G software for this PHY link.
|
||||||
|
|
||||||
|
===== `octphy net-device NAME`
|
||||||
|
|
||||||
|
Specify the Ethernet network device (like `eth0`) through which the DSP
|
||||||
|
can be reached from OsmoBTS.
|
||||||
|
|
||||||
|
===== `octphy rf-port-index <0-255>`
|
||||||
|
|
||||||
|
Specify which RF port should be used for this PHY link.
|
||||||
|
|
||||||
|
===== `octphy rx-gain <0-73>`
|
||||||
|
|
||||||
|
Configure the receiver gain in dB.
|
||||||
|
|
||||||
|
===== `octphy tx-attenuation <0-359>`
|
||||||
|
|
||||||
|
Configure the transmitter attenuation in quarter-dB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
== `osmo-bts-virtual` for Virtual Um Interface
|
||||||
|
|
||||||
|
This is a special BTS model used for research, simulation and testing.
|
||||||
|
Rather than communicating over a wireless RF interface, the GSM Um
|
||||||
|
messages are encapsulated over GSMTAP/UDP/IP.
|
||||||
|
|
||||||
|
The Virtual Um interface (i.e. virtual radio layer) between OsmoBTS and
|
||||||
|
OsmocomBB 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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
In OsmoBTS, this is implemented via the `osmo-bts-virtual` BTS model.
|
||||||
|
|
||||||
|
Setting up OsmoBTS in its `osmo-bts-virtual` flavor isn't really much
|
||||||
|
different from setting it up with real hardware. The amount of required
|
||||||
|
configuration at the BTS configuration file is (as always) very minimal,
|
||||||
|
as in the GSM network architecture provides almost all relevant
|
||||||
|
configuration to the BTS from the BSC.
|
||||||
|
|
||||||
|
An example configuration file is provided as part of the osmo-bts source
|
||||||
|
code: `doc/examples/virtual/osmobts-virtual.cfg`
|
||||||
|
|
||||||
|
For more information see
|
||||||
|
http://osmocom.org/projects/cellular-infrastructure/wiki/Virtual_Um
|
||||||
|
|
||||||
|
=== `osmo-bts-virtual` specific VTY commands
|
||||||
|
|
||||||
|
For a auto-generated complete syntax reference of the VTY commands,
|
||||||
|
please see the associated _OsmoBTS VTY reference manual_
|
||||||
|
<<vty-ref-osmobts>>. The section below only lists the most important
|
||||||
|
commands.
|
||||||
|
|
||||||
|
==== at the 'PHY' config node
|
||||||
|
|
||||||
|
===== `virtual-um net-device NETDEV`
|
||||||
|
|
||||||
|
Configure the network device used for sending/receiving the virtual Um
|
||||||
|
interface messages (e.g. `eth0`).
|
||||||
|
|
||||||
|
===== `virtual-um ms-udp-port <0-65535>`
|
||||||
|
|
||||||
|
Configure the UDP port used for sending virtual Um
|
||||||
|
downlink messages towards the MS (default: GSMTAP 4729).
|
||||||
|
|
||||||
|
===== `virtual-um ms-multicast-group GROUP`
|
||||||
|
|
||||||
|
Configure the IP multicast group used for sending virtual
|
||||||
|
Um downlink messages towards the MS (default: 239.193.23.1)
|
||||||
|
|
||||||
|
===== `virtual-um bts-udp-port <0-65535>`
|
||||||
|
|
||||||
|
Configure the UDP port used for receiving virtual Um
|
||||||
|
uplink messages from the MS (default: GSMTAP 4729).
|
||||||
|
|
||||||
|
===== `virtual-um bts-multicast-group GROUP`
|
||||||
|
|
||||||
|
Configure the IP multicast group used for receiving virtual
|
||||||
|
Um uplink messages from the MS (default: 239.193.23.2)
|
||||||
210
doc/manuals/chapters/configuration.adoc
Normal file
210
doc/manuals/chapters/configuration.adoc
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
== BTS Configuration
|
||||||
|
|
||||||
|
The role of the BTS is to handle the GSM radio interface. When the BTS
|
||||||
|
application is starting, the A-bis OML connection is established towards
|
||||||
|
the BSC. Almost all BTS configuration (such as ARFCN, channel
|
||||||
|
configuration, transmit power, etc.) will be sent from the BSC to the
|
||||||
|
BTS via OML messages. After OML start-up has completed, the BSC will
|
||||||
|
instruct the BTS to establish the RSL connections.
|
||||||
|
|
||||||
|
Given that most configuration is downloaded from the BSC into the BTS at
|
||||||
|
start-up time, only some very basic settings have to be made in the
|
||||||
|
OsmoBTS software.
|
||||||
|
|
||||||
|
|
||||||
|
=== Command Line Options
|
||||||
|
|
||||||
|
The OsmoBTS executables (`osmo-bts-sysmo`, `osmo-bts-trx`,
|
||||||
|
`osmo-bts-octphy`, `osmo-bts-litecell15`, ...) share the following
|
||||||
|
generic command line options:
|
||||||
|
|
||||||
|
==== SYNOPSIS
|
||||||
|
*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] [-r 'PRIO'] [-i 'GSMTAP-IP'] [-t <1-255>]
|
||||||
|
|
||||||
|
==== OPTIONS
|
||||||
|
*-h, --help*::
|
||||||
|
Print a short help message about the supported options
|
||||||
|
*-V, --version*::
|
||||||
|
Print the compile-time version number of the OsmoBTS program
|
||||||
|
*-d, --debug 'DBGMASK','DBGLEVELS'*::
|
||||||
|
Set the log subsystems and levels for logging to stderr. This
|
||||||
|
has mostly been superseded by VTY-based logging configuration,
|
||||||
|
see <<logging>> for further information.
|
||||||
|
*-D, --daemonize*::
|
||||||
|
Fork the process as a daemon into background.
|
||||||
|
*-c, --config-file 'CONFIGFILE'*::
|
||||||
|
Specify the file and path name of the configuration file to be
|
||||||
|
used. If none is specified, use `osmo-bts.cfg` in the current
|
||||||
|
working directory.
|
||||||
|
*-s, --disable-color*::
|
||||||
|
Disable colors for logging to stderr. This has mostly been
|
||||||
|
deprecated by VTY based logging configuration, see <<logging>>
|
||||||
|
for further information.
|
||||||
|
*-T, --timestamp*::
|
||||||
|
Enable time-stamping of log messages to stderr. This has mostly
|
||||||
|
been deprecated by VTY based logging configuration, see
|
||||||
|
<<logging>> for further information.
|
||||||
|
*-e, --log-level 'LOGLEVEL'*::
|
||||||
|
Set the global log level for logging to stderr. This has mostly
|
||||||
|
been deprecated by VTY based logging configuration, see
|
||||||
|
<<logging>> for further information.
|
||||||
|
*-r, --realtime 'PRIO'*::
|
||||||
|
Enable use of the Linux kernel realtime priority scheduler with
|
||||||
|
the specified priority.
|
||||||
|
It is recommended you use this option on low-performance
|
||||||
|
embedded systems or systems that encounter high non-GSM/GPRS
|
||||||
|
load.
|
||||||
|
*-i, --gsmtap-ip 'GSMTAP-IP'*::
|
||||||
|
Specify the destination IP address for GSMTAP messages.
|
||||||
|
*-t, --trx-num <1-255>*::
|
||||||
|
Specify the number of TRX supported by this BTS.
|
||||||
|
|
||||||
|
There may be additional, hardware specific command line options by the
|
||||||
|
different bts_model implementations.
|
||||||
|
|
||||||
|
|
||||||
|
=== Configuration using the VTY
|
||||||
|
|
||||||
|
Most configuration as well as run-time monitoring and system
|
||||||
|
introspection is implemented using a command-line based interface
|
||||||
|
called _VTY_. A full reference syntax of all existing VTY command is
|
||||||
|
available as a separate document.
|
||||||
|
|
||||||
|
See <<vty>> for further information on the VTY.
|
||||||
|
|
||||||
|
|
||||||
|
==== Required BTS/TRX configuration
|
||||||
|
|
||||||
|
There are some settings that have to be configured locally in the
|
||||||
|
sysmoBTS, as they cannot be set remotely from the BSC. Those
|
||||||
|
settings are stored in the OsmoBTS configuration file, which commonly
|
||||||
|
is stored in `/etc/osmocom/osmo-bts.cfg`.
|
||||||
|
|
||||||
|
.Example Minimal configuration file
|
||||||
|
----
|
||||||
|
!
|
||||||
|
! OsmoBTS (0.0.1.100-0455) configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
phy 0 <1>
|
||||||
|
instance 0 <2>
|
||||||
|
bts 0 <3>
|
||||||
|
band DCS1800
|
||||||
|
ipa unit-id 1801 0 <4>
|
||||||
|
oml remote-ip 192.168.100.11 <5>
|
||||||
|
trx 0 <6>
|
||||||
|
phy 0 instance 0 <7>
|
||||||
|
----
|
||||||
|
<1> You must configure at least one PHY link by means of the PHY node
|
||||||
|
<2> You must configure at least one PHY instance in the PHY link
|
||||||
|
<3> There is always exactly one BTS (`bts 0`) configured in OsmoBTS
|
||||||
|
<4> The `ipa unit-id` is what is used to identify this BTS to the BSC
|
||||||
|
<5> The OML Remote IP is the IP address of the BSC, to which the BTS shall connect to.
|
||||||
|
<6> There must be at least one trx (`trx 0`) in each BTS
|
||||||
|
<7> Every TRX must be mapped to a specific PHY instance this way
|
||||||
|
|
||||||
|
For a full reference of all available VTY configuration parameters,
|
||||||
|
please refer to the OsmoBTS VTY Reference document.
|
||||||
|
|
||||||
|
[[gsmtap]]
|
||||||
|
==== Configuring GSMTAP tracing
|
||||||
|
|
||||||
|
In addition to being able to obtain pcap protocol traces of the A-bis
|
||||||
|
communication and the text-based logging from the OsmoBTS
|
||||||
|
software, there is also the capability of tracing all communication on
|
||||||
|
the radio interface. To do so, OsmoBTS can encapsulate
|
||||||
|
MAC blocks (23byte messages at the L2-L1 interface) into _GSMTAP_ and send
|
||||||
|
them via UDP/IP. At that point, they can be captured with utilities like
|
||||||
|
*tcpdump* or *tshark* for further analysis by the *wireshark* protocol
|
||||||
|
analyzer.
|
||||||
|
|
||||||
|
In order to activate this feature, you first need to make sure to start
|
||||||
|
OsmoBTS using the `-i` or `--gsmtap-ip` command line option, specifying
|
||||||
|
the destination IP address for the GSMTAP messages. In most cases,
|
||||||
|
using 127.0.0.1 for passing the messages over the loopback (`lo`) device
|
||||||
|
will be sufficient.
|
||||||
|
|
||||||
|
OsmoBTS can selectively trace such messages by their L1 SAPI, for both
|
||||||
|
Rx and Tx. For a complete list of L1 SAPI values, please refer to the
|
||||||
|
_OsmoBTS VTY reference manual_ <<vty-ref-osmobts>>.
|
||||||
|
|
||||||
|
For example, to enable GSMTAP tracing for messages on all SDCCH
|
||||||
|
channels, you can use the gsmtap-sapi sdcch command at the CONFIG TRX
|
||||||
|
node of the OsmoBTS VTY.
|
||||||
|
|
||||||
|
.Example: Enabling GSMTAP for SDCCH
|
||||||
|
----
|
||||||
|
OsmoBTS> enable
|
||||||
|
OsmoBTS# configure terminal
|
||||||
|
OsmoBTS(config)# bts 0
|
||||||
|
OsmoBTS(bts)# trx 0
|
||||||
|
OsmoBTS(trx)# gsmtap-sapi sdcch
|
||||||
|
OsmoBTS(trx)# write <1>
|
||||||
|
----
|
||||||
|
<1> the `write` command will make the configuration persistent in the
|
||||||
|
configuration file. This is not required if you wish to enable GSMTAP
|
||||||
|
only in the current session of OsmoBTS.
|
||||||
|
|
||||||
|
De-activation can be performed similarly by using the `no gsmtap-sapi
|
||||||
|
sdcch` command at the `trx` node of the OsmoBTS VTY.
|
||||||
|
|
||||||
|
From the moment they are enabled via VTY, GSMTAP messages will be
|
||||||
|
generated and sent in UDP encapsulation to the IANA-registered UDP port
|
||||||
|
for GSMTAP (4729) at the IP address specified in the command line
|
||||||
|
argument.
|
||||||
|
|
||||||
|
==== Configuring power ramping
|
||||||
|
|
||||||
|
OsmoBTS can ramp up the power of its trx over time. This helps reduce
|
||||||
|
cell congestion in busy environments.
|
||||||
|
|
||||||
|
In this example, the trx starts with 5dBm output power which increases by 1dB
|
||||||
|
every two seconds until it reaches nominal power.
|
||||||
|
Power ramping can use the power-ramp commands at the CONFIG TRX node of the
|
||||||
|
OsmoBTS VTY.
|
||||||
|
|
||||||
|
.Example: Configure power ramping on trx 0
|
||||||
|
----
|
||||||
|
OsmoBTS> enable
|
||||||
|
OsmoBTS# configure terminal
|
||||||
|
OsmoBTS(config)# bts 0
|
||||||
|
OsmoBTS(bts)# trx 0
|
||||||
|
OsmoBTS(trx)# power-ramp max-initial 5 dBm
|
||||||
|
OsmoBTS(trx)# power-ramp step-size 1 dB
|
||||||
|
OsmoBTS(trx)# power-ramp step-interval 2
|
||||||
|
OsmoBTS(trx)# write <1>
|
||||||
|
----
|
||||||
|
<1> the `write` command will make the configuration persistent in the
|
||||||
|
configuration file.
|
||||||
|
|
||||||
|
De-activating power-ramping can be performed by setting the max-initial value
|
||||||
|
to the nominal power. The default max-initial value is 23 dBm.
|
||||||
|
|
||||||
|
|
||||||
|
==== Running multiple instances
|
||||||
|
|
||||||
|
It is possible to run multiple instances of `osmo-bts` on one and the same
|
||||||
|
machine, if the phy-interface is flexible enough to distinguish between
|
||||||
|
different phy hardware interfaces.
|
||||||
|
|
||||||
|
Since usually a BTS instance runs in conjunction with a dedicated PCU instance,
|
||||||
|
the socket path between PCU and BTS has to be distinguished between the running
|
||||||
|
instances. It is possible to change the default socket path via VTY config:
|
||||||
|
|
||||||
|
.Example: Personalize PCU socket path
|
||||||
|
----
|
||||||
|
bts 0
|
||||||
|
pcu-socket /tmp/pcu_bts_2
|
||||||
|
----
|
||||||
|
|
||||||
|
It is also necessary to separate the VTY anc CTRL interfaces of the different
|
||||||
|
instances. The VTY, as well as the CTRL interface can be bound to a free IP
|
||||||
|
address from the loopback range:
|
||||||
|
|
||||||
|
.Example: Binding VTY and CTRL interface to a specific IP address
|
||||||
|
----
|
||||||
|
line vty
|
||||||
|
bind 127.0.0.2
|
||||||
|
ctrl
|
||||||
|
bind 127.0.0.2
|
||||||
|
----
|
||||||
24
doc/manuals/chapters/control.adoc
Normal file
24
doc/manuals/chapters/control.adoc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[[control]]
|
||||||
|
== Control interface
|
||||||
|
|
||||||
|
The actual protocol is described in <<common-control-if>>, the variables
|
||||||
|
common to all programs using it are described in <<ctrl_common_vars>>. Here we
|
||||||
|
describe variables specific to OsmoBTS. The commands starting with prefix
|
||||||
|
"net.btsN." are specific to a certain BTS so N have to be replaced with BTS
|
||||||
|
number when issuing command. Similarly the
|
||||||
|
TRX-specific commands are additionally prefixed with TRX number e. g.
|
||||||
|
"net.bts1.trx2.thermal-attenuation".
|
||||||
|
|
||||||
|
|
||||||
|
.Variables available over control interface
|
||||||
|
[options="header",width="100%",cols="20%,5%,5%,50%,20%"]
|
||||||
|
|===
|
||||||
|
|Name|Access|Trap|Value|Comment
|
||||||
|
|net.btsN.trxM.thermal-attenuation|RW|No|integer|See <<ther>> for details.
|
||||||
|
|===
|
||||||
|
|
||||||
|
[[ther]]
|
||||||
|
=== thermal-attenuation
|
||||||
|
|
||||||
|
Allowed SET value for thermal attenuation is between 0 to 40 dB. Note: the value
|
||||||
|
is SET in dB units but GET will return value in mdB units used internally.
|
||||||
4
doc/manuals/chapters/counters.adoc
Normal file
4
doc/manuals/chapters/counters.adoc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[[counters]]
|
||||||
|
== Counters
|
||||||
|
|
||||||
|
include::./counters_generated.adoc[]
|
||||||
64
doc/manuals/chapters/counters_generated.adoc
Normal file
64
doc/manuals/chapters/counters_generated.adoc
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
// autogenerated by show asciidoc counters
|
||||||
|
These counters and their description based on OsmoBTS 0.8.1.346-33ed (OsmoBTS).
|
||||||
|
|
||||||
|
=== Rate Counters
|
||||||
|
|
||||||
|
// generating tables for rate_ctr_group
|
||||||
|
// rate_ctr_group table E1 Input subsystem
|
||||||
|
.e1inp - E1 Input subsystem
|
||||||
|
[options="header"]
|
||||||
|
|===
|
||||||
|
| Name | Reference | Description
|
||||||
|
| hdlc:abort | <<e1inp_hdlc:abort>> | HDLC abort
|
||||||
|
| hdlc:bad_fcs | <<e1inp_hdlc:bad_fcs>> | HLDC Bad FCS
|
||||||
|
| hdlc:overrun | <<e1inp_hdlc:overrun>> | HDLC Overrun
|
||||||
|
| alarm | <<e1inp_alarm>> | Alarm
|
||||||
|
| removed | <<e1inp_removed>> | Line removed
|
||||||
|
|===
|
||||||
|
// rate_ctr_group table cell broadcast channel
|
||||||
|
.cbch - cell broadcast channel
|
||||||
|
[options="header"]
|
||||||
|
|===
|
||||||
|
| Name | Reference | Description
|
||||||
|
| cbch:rcvd_queued | <<cbch_cbch:rcvd_queued>> | Received + queued CBCH messages (Abis)
|
||||||
|
| cbch:rcvd_dropped | <<cbch_cbch:rcvd_dropped>> | Received + dropped CBCH messages (Abis)
|
||||||
|
| cbch:sent_single | <<cbch_cbch:sent_single>> | Sent single CBCH messages (Um)
|
||||||
|
| cbch:sent_default | <<cbch_cbch:sent_default>> | Sent default CBCH messages (Um)
|
||||||
|
| cbch:sent_null | <<cbch_cbch:sent_null>> | Sent NULL CBCH messages (Um)
|
||||||
|
|===
|
||||||
|
// rate_ctr_group table cell broadcast channel
|
||||||
|
.cbch - cell broadcast channel
|
||||||
|
[options="header"]
|
||||||
|
|===
|
||||||
|
| Name | Reference | Description
|
||||||
|
| cbch:rcvd_queued | <<cbch_cbch:rcvd_queued>> | Received + queued CBCH messages (Abis)
|
||||||
|
| cbch:rcvd_dropped | <<cbch_cbch:rcvd_dropped>> | Received + dropped CBCH messages (Abis)
|
||||||
|
| cbch:sent_single | <<cbch_cbch:sent_single>> | Sent single CBCH messages (Um)
|
||||||
|
| cbch:sent_default | <<cbch_cbch:sent_default>> | Sent default CBCH messages (Um)
|
||||||
|
| cbch:sent_null | <<cbch_cbch:sent_null>> | Sent NULL CBCH messages (Um)
|
||||||
|
|===
|
||||||
|
// rate_ctr_group table base transceiver station
|
||||||
|
.bts - base transceiver station
|
||||||
|
[options="header"]
|
||||||
|
|===
|
||||||
|
| Name | Reference | Description
|
||||||
|
| paging:rcvd | <<bts_paging:rcvd>> | Received paging requests (Abis)
|
||||||
|
| paging:drop | <<bts_paging:drop>> | Dropped paging requests (Abis)
|
||||||
|
| paging:sent | <<bts_paging:sent>> | Sent paging requests (Um)
|
||||||
|
| rach:rcvd | <<bts_rach:rcvd>> | Received RACH requests (Um)
|
||||||
|
| rach:drop | <<bts_rach:drop>> | Dropped RACH requests (Um)
|
||||||
|
| rach:handover | <<bts_rach:handover>> | Received RACH requests (Handover)
|
||||||
|
| rach:cs | <<bts_rach:cs>> | Received RACH requests (CS/Abis)
|
||||||
|
| rach:ps | <<bts_rach:ps>> | Received RACH requests (PS/PCU)
|
||||||
|
| agch:rcvd | <<bts_agch:rcvd>> | Received AGCH requests (Abis)
|
||||||
|
| agch:sent | <<bts_agch:sent>> | Sent AGCH requests (Abis)
|
||||||
|
| agch:delete | <<bts_agch:delete>> | Sent AGCH DELETE IND (Abis)
|
||||||
|
|===
|
||||||
|
== Osmo Stat Items
|
||||||
|
|
||||||
|
// generating tables for osmo_stat_items
|
||||||
|
== Osmo Counters
|
||||||
|
|
||||||
|
// generating tables for osmo_counters
|
||||||
|
// there are no ungrouped osmo_counters
|
||||||
20
doc/manuals/chapters/dynamic-timeslots.adoc
Normal file
20
doc/manuals/chapters/dynamic-timeslots.adoc
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
== Support for Dynamic Timeslots (TCH/F, TCH/H, PDCH)
|
||||||
|
|
||||||
|
OsmoBTS supports dynamic switchover of timeslots between different physical
|
||||||
|
channel configurations, initiated by the BSC via (non-standard) Abis messages
|
||||||
|
-- see the _OsmoBTS Abis Protocol Specification_ <<osmobts-abis-spec>>.
|
||||||
|
|
||||||
|
The Abis message handling for dynamic timeslots is independent of the BTS
|
||||||
|
model. However, dynamic switchover will only work for BTS models that implement
|
||||||
|
the internal API to reconnect a timeslot (_bts_model_ts_disconnect()_ and
|
||||||
|
_bts_model_ts_connect()_, see also <<osmobts_hardware_support>>).
|
||||||
|
|
||||||
|
Currently, these OsmoBTS models support dynamic timeslots:
|
||||||
|
|
||||||
|
* _osmo-bts-sysmo_
|
||||||
|
* _osmo-bts-litecell15_
|
||||||
|
* _osmo-bts-trx_
|
||||||
|
|
||||||
|
Dynamic timeslots are driven by the BSC and need to be configured there. When
|
||||||
|
using OsmoBSC or OsmoNITB, see the BTS configuration chapter on dynamic
|
||||||
|
timeslots in <<userman-osmobsc>> or <<userman-osmonitb>>, respectively.
|
||||||
156
doc/manuals/chapters/interfaces.adoc
Normal file
156
doc/manuals/chapters/interfaces.adoc
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
== OsmoBTS Interfaces
|
||||||
|
|
||||||
|
OsmoBTS offers a set of interfaces to interact with external entities:
|
||||||
|
|
||||||
|
* A-bis/IP interface to talk to the BSC
|
||||||
|
* bts_model specific PHY interface
|
||||||
|
* VTY interface
|
||||||
|
* Osmocom control interface
|
||||||
|
* GSMTAP interface
|
||||||
|
* PCU interface
|
||||||
|
|
||||||
|
|
||||||
|
=== OsmoBTS Abis/IP Interface
|
||||||
|
|
||||||
|
OsmoBTS implements the GSM A-bis interface as described in the relevant
|
||||||
|
3GPP specifications:
|
||||||
|
|
||||||
|
* A-bis RSL according to 3GPP TS 08.58
|
||||||
|
* A-bis OML according to 3GPP TS 12.21
|
||||||
|
|
||||||
|
As the 3GPP specifies A-bis only over E1 interfaces and not over IP,
|
||||||
|
significant enhancements and modifications to the 3GPP specifications are
|
||||||
|
employed. Nevertheless, the implementation tries to stay as close as
|
||||||
|
possible to the 3GPP specifications.
|
||||||
|
|
||||||
|
Please see the _OsmoBTS Abis Protocol Specification_
|
||||||
|
<<osmobts-abis-spec>> for more information on this subject.
|
||||||
|
|
||||||
|
|
||||||
|
=== bts_model specific PHY interface
|
||||||
|
|
||||||
|
This interface is specific to the bts_model that OsmoBTS was compiled
|
||||||
|
for. It can take any form as required by the respective hardware.
|
||||||
|
|
||||||
|
Please see the PHY documentation of your respective BTS hardware for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
|
||||||
|
=== OsmoBTS VTY Interface
|
||||||
|
|
||||||
|
See <<vty>> for further information.
|
||||||
|
|
||||||
|
|
||||||
|
=== OsmoBTS Control Interface
|
||||||
|
|
||||||
|
The general structure of the Omsocom control interface is described in
|
||||||
|
<<common-control-if>>.
|
||||||
|
|
||||||
|
The number of control interface commands/attributes is currently quite
|
||||||
|
limited and largely depends on the bts_model used.
|
||||||
|
|
||||||
|
==== trx.N.thermal-attenuation
|
||||||
|
|
||||||
|
The idea of this parameter is to attenuate the system output power as part of
|
||||||
|
thermal management. In some cases the PA might be passing a critical level,
|
||||||
|
so an external control process can use this attribute to reduce the system
|
||||||
|
output power.
|
||||||
|
|
||||||
|
Please note that all values in the context of transmit power calculation
|
||||||
|
are integers in milli-dB (1/10000 bel), so the below example is setting
|
||||||
|
the attenuation at 3 dB:
|
||||||
|
|
||||||
|
----
|
||||||
|
bsc_control.py -d localhost -p 4238 -s trx.0.thermal-attenuation 3000
|
||||||
|
Got message: SET_REPLY 1 trx.0.thermal-attenuation 3000
|
||||||
|
----
|
||||||
|
|
||||||
|
----
|
||||||
|
bsc_control.py -d localhost -p 4238 -g trx.0.thermal-attenuation
|
||||||
|
Got message: GET_REPLY 1 trx.0.thermal-attenuation 3000
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=== OsmoBTS GSMTAP Interface
|
||||||
|
|
||||||
|
GSMTAP is a standard created by Osmocom to UDP-encapsulate GSM protocol
|
||||||
|
messages normally communicated over non-IP interfaces for the primary
|
||||||
|
purpose of protocol analysis in the wireshark dissector.
|
||||||
|
|
||||||
|
The initial purpose was to encapsulate GSM Um frames including some
|
||||||
|
meta-data like ARFCN and GSM frame number into something that can be
|
||||||
|
parsed and dispatched within the wireshark dissector.
|
||||||
|
|
||||||
|
This interface has since been extended to many other
|
||||||
|
GSM/GPRS/UMTS interfaces and protocols, and even to TETRA and GMR.
|
||||||
|
|
||||||
|
In OsmoBTS, it is possible to export both uplink and downlink Um
|
||||||
|
messages via GSMTAP. There is a set of VTY configuration options to
|
||||||
|
specify for which logical channels of the Um interface GSMTAP messages
|
||||||
|
shall be emitted, and to which destination IP address they shall be
|
||||||
|
sent.
|
||||||
|
|
||||||
|
Using GSMTAP it is possible to place a virtual tap at the air interface
|
||||||
|
between BTS and MS, without going through the trouble of setting up an
|
||||||
|
actual radio receiver at the same frequencies. Also, GSMTAP export is
|
||||||
|
performed before the Um air-interface encryption (A5) is performed, so
|
||||||
|
all frames are always in plain text.
|
||||||
|
|
||||||
|
Please refer to <<gsmtap>> for more information on how to configure and
|
||||||
|
use this interface.
|
||||||
|
|
||||||
|
|
||||||
|
=== OsmoBTS PCU Socket Interface
|
||||||
|
|
||||||
|
In order to assist the provisioning of GPRS services over the same radio
|
||||||
|
interface as circuit-switched GSM, OsmoBTS exposes a Unix domain socket
|
||||||
|
based interface towards OsmoPCU.
|
||||||
|
|
||||||
|
OsmoPCU is the Osmocom implementation of the GPRS Packet Control Unit
|
||||||
|
(PCU), which is co-located with the BTS in the Osmocom implementation.
|
||||||
|
Contrary to that, many classic E1-based implementations of the GSM RAN
|
||||||
|
co-locate the PCU with the BSC. However, the GSM specifications keep
|
||||||
|
the location up to the implementor.
|
||||||
|
|
||||||
|
The GPRS network architecture is shown in <<fig-gprs-pcubts>>.
|
||||||
|
|
||||||
|
[[fig-gprs-pcubts]]
|
||||||
|
.GPRS network architecture
|
||||||
|
[graphviz]
|
||||||
|
----
|
||||||
|
digraph G {
|
||||||
|
rankdir=LR;
|
||||||
|
MS0 [label="MS"];
|
||||||
|
MS1 [label="MS"];
|
||||||
|
BTS;
|
||||||
|
BSC;
|
||||||
|
MSC;
|
||||||
|
PCU;
|
||||||
|
SGSN;
|
||||||
|
GGSN;
|
||||||
|
MS0->BTS [label="Um"];
|
||||||
|
MS1->BTS [label="Um"];
|
||||||
|
BTS->BSC [label="Abis"];
|
||||||
|
BSC->MSC [label="A"];
|
||||||
|
BTS->PCU [label="pcu_sock"];
|
||||||
|
PCU->SGSN [label="Gb"];
|
||||||
|
SGSN->GGSN [label="GTP"];
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
The PCU socket interface serves the following purposes:
|
||||||
|
|
||||||
|
* to pass PCU relevant configuration from BTS to PCU
|
||||||
|
* to forward paging requests from BTS to PCU
|
||||||
|
* to forward RACH Requests from BTS to PCU
|
||||||
|
|
||||||
|
Depending on your bts_model, the PCU may also be passing actual
|
||||||
|
PH-DATA.request / PH-DATA.indication / PH-RTS.indication primitives for
|
||||||
|
the PDCH. This is considered sub-optimal, and some BTS models offer a
|
||||||
|
direct interface by which the PCU can exchange those primitives directly
|
||||||
|
with the PHY.
|
||||||
|
|
||||||
|
The default PCU socket interface name is `/tmp/pcu_sock`, but this can
|
||||||
|
be overridden by the `pcu-socket` VTY command in the BTS configuration
|
||||||
|
VTY node.
|
||||||
105
doc/manuals/chapters/overview.adoc
Normal file
105
doc/manuals/chapters/overview.adoc
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
== Overview
|
||||||
|
|
||||||
|
=== About this manual
|
||||||
|
|
||||||
|
This manual should help you getting started with the OsmoBTS software.
|
||||||
|
It will cover aspects of configuring and running OsmoBTS as well as some
|
||||||
|
introduction about its internal architecture and external interfaces.
|
||||||
|
|
||||||
|
=== About OsmoBTS
|
||||||
|
|
||||||
|
OsmoBTS is an implementation of a GSM BTS (Base Transceiver Station). A
|
||||||
|
BTS serves as the interface between the Um radio interface towards
|
||||||
|
phones and the wired Abis interface towards the BSC (Base Station
|
||||||
|
Controller). It also implements the network side of the Layer 2 of the
|
||||||
|
Um radio interface: The LAPDm protocol.
|
||||||
|
|
||||||
|
OsmoBTS is licensed as Free and Open Source Software (FOSS) under _GNU
|
||||||
|
AGPLv3_ <<gnu-agplv3>>. It is developed as one GSM network
|
||||||
|
infrastructure component part of the overall Osmocom project.
|
||||||
|
|
||||||
|
As perhaps the first implementation of a GSM BTS ever in the industry,
|
||||||
|
OsmoBTS is implemented in a vendor-independent way and supports a large
|
||||||
|
variety of transceiver hardware and physical layer implementations from
|
||||||
|
many vendors.
|
||||||
|
|
||||||
|
=== Credits
|
||||||
|
|
||||||
|
OsmoBTS was originally developed in 2011 by Andreas Eversberg and Harald
|
||||||
|
Welte. It has since been maintained by Harald Welte and Holger Freyther
|
||||||
|
at sysmocom.
|
||||||
|
|
||||||
|
=== OsmoBTS in the Osmocom GSM network architecture
|
||||||
|
|
||||||
|
OsmoBTS can be used in combination with the various other GSM network
|
||||||
|
elements developed under the umbrella of the Osmocom project.
|
||||||
|
|
||||||
|
Typical configurations either use OsmoBTS with OsmoBSC, or with
|
||||||
|
OsmoNITB, as can be seen in the following figures.
|
||||||
|
|
||||||
|
[[fig-gsm-classic]]
|
||||||
|
.Classic GSM architecture using OsmoBTS with OsmoBTS components
|
||||||
|
[graphviz]
|
||||||
|
----
|
||||||
|
digraph G {
|
||||||
|
rankdir=LR;
|
||||||
|
MS0 [label="MS"]
|
||||||
|
MS1 [label="MS"]
|
||||||
|
MS2 [label="MS"]
|
||||||
|
MS3 [label="MS"]
|
||||||
|
BTS0 [label="OsmoBTS"]
|
||||||
|
BTS1 [label="OsmoBTS"]
|
||||||
|
BSC [label="OsmoBSC"]
|
||||||
|
MSC [label="MSC/VLR"]
|
||||||
|
HLR [label="HLR/AUC"]
|
||||||
|
MS0->BTS0 [label="Um"]
|
||||||
|
MS1->BTS0 [label="Um"]
|
||||||
|
MS2->BTS1 [label="Um"]
|
||||||
|
MS3->BTS1 [label="Um"]
|
||||||
|
BTS0->BSC [label="Abis"]
|
||||||
|
BTS1->BSC [label="Abis"]
|
||||||
|
BSC->MSC [label="A"]
|
||||||
|
MSC->HLR [label="C"]
|
||||||
|
MSC->EIR [label="F"]
|
||||||
|
MSC->SMSC
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
[[fig-gsm-nitb]]
|
||||||
|
.GSM architecture using OsmoBTS + OsmoNITB
|
||||||
|
[graphviz]
|
||||||
|
----
|
||||||
|
digraph G {
|
||||||
|
rankdir=LR;
|
||||||
|
MS0 [label="MS"]
|
||||||
|
MS1 [label="MS"]
|
||||||
|
MS2 [label="MS"]
|
||||||
|
MS3 [label="MS"]
|
||||||
|
BTS0 [label="OsmoBTS"]
|
||||||
|
BTS1 [label="OsmoBTS"]
|
||||||
|
MS0->BTS0 [label="Um"]
|
||||||
|
MS1->BTS0 [label="Um"]
|
||||||
|
MS2->BTS1 [label="Um"]
|
||||||
|
MS3->BTS1 [label="Um"]
|
||||||
|
BTS0->BSC [label="Abis"]
|
||||||
|
BTS1->BSC [label="Abis"]
|
||||||
|
subgraph cluster_nitb {
|
||||||
|
label = "OsmoNITB";
|
||||||
|
BSC
|
||||||
|
MSC [label="MSC/VLR"]
|
||||||
|
HLR [label="HLR/AUC"]
|
||||||
|
BSC->MSC [label="A"]
|
||||||
|
MSC->HLR [label="C"]
|
||||||
|
MSC->EIR [label="F"]
|
||||||
|
MSC->SMSC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
If intended by the user, it is of course also possible to implement an
|
||||||
|
OsmoBTS-compatible Abis-over-IP interface in any third party BSC. The
|
||||||
|
Abis/IP interface and its protocol are documented in the _OsmoBTS
|
||||||
|
Abis Protocol Specification_ <<osmobts-abis-spec>>. However, be advised
|
||||||
|
that such a configuration is currently not officially supported by
|
||||||
|
Osmocom.
|
||||||
85
doc/manuals/dtx.dot
Normal file
85
doc/manuals/dtx.dot
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
digraph dtx_dl_amr_fsm {
|
||||||
|
node [shape = doublecircle] ST_VOICE ST_FACCH ST_U_NOINH
|
||||||
|
node [shape = circle]
|
||||||
|
|
||||||
|
// default state for non-DTX and DTX when SPEECH is in progress
|
||||||
|
ST_VOICE -> ST_SID_F1 [ label = "E_SID_F" ]
|
||||||
|
ST_VOICE -> ST_F1_INH_V [ label = "E_INHIB" ]
|
||||||
|
ST_VOICE -> ST_U_NOINH [ label = "E_SID_U" ]
|
||||||
|
ST_VOICE -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
ST_VOICE -> ST_VOICE [ label = "E_FACCH" ]
|
||||||
|
|
||||||
|
// SID-FIRST or SID-FIRST-P1 in case of AMR HR: start of silence period (might be interrupted in case of AMR HR)
|
||||||
|
ST_SID_F1 -> ST_SID_F1 [ label = "E_SID_F" ]
|
||||||
|
ST_SID_F1 -> ST_U_NOINH [ label = "E_SID_U" ]
|
||||||
|
ST_SID_F1 -> ST_F1_INH_F [ label = "E_FACCH" ]
|
||||||
|
ST_SID_F1 -> ST_SID_F2 [ label = "E_FIRST" ]
|
||||||
|
ST_SID_F1 -> ST_ONSET_V [ label = "E_ONSET" ]
|
||||||
|
|
||||||
|
// SID-FIRST P2 (only for AMR HR): actual start of silence period in case of AMR HR
|
||||||
|
ST_SID_F2 -> ST_U_NOINH [ label = "E_COMPL" ]
|
||||||
|
ST_SID_F2 -> ST_ONSET_F [ label = "E_FACCH" ]
|
||||||
|
ST_SID_F2 -> ST_ONSET_V [ label = "E_ONSET" ]
|
||||||
|
|
||||||
|
// SID-FIRST Inhibited: incoming SPEECH (only for AMR HR)
|
||||||
|
ST_F1_INH_V -> ST_F1_INH_V_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// SID-FIRST Inhibited: incoming FACCH frame (only for AMR HR)
|
||||||
|
ST_F1_INH_F -> ST_F1_INH_F_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// SID-UPDATE Inhibited: incoming SPEECH (only for AMR HR)
|
||||||
|
ST_U_INH_V -> ST_U_INH_V_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// SID-UPDATE Inhibited: incoming FACCH frame (only for AMR HR)
|
||||||
|
ST_U_INH_F -> ST_U_INH_F_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// Silence period with periodic comfort noise data updates (no Inhibition)
|
||||||
|
ST_U_NOINH -> ST_ONSET_F [ label = "E_FACCH" ]
|
||||||
|
ST_U_NOINH -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
ST_U_NOINH -> ST_U_NOINH [ label = "E_SID_U" ]
|
||||||
|
ST_U_NOINH -> ST_U_NOINH [ label = "E_SID_F" ]
|
||||||
|
ST_U_NOINH -> ST_ONSET_V [ label = "E_ONSET" ]
|
||||||
|
ST_U_NOINH -> ST_SID_U [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// SID-FIRST Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
||||||
|
ST_F1_INH_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
||||||
|
ST_F1_INH_V_REC -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
|
||||||
|
// SID-FIRST Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
||||||
|
ST_F1_INH_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
||||||
|
ST_F1_INH_F_REC -> ST_FACCH [ label = "E_VOICE" ]
|
||||||
|
|
||||||
|
// SID-UPDATE Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
||||||
|
ST_U_INH_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
||||||
|
ST_U_INH_V_REC -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
|
||||||
|
// SID-UPDATE Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
||||||
|
ST_U_INH_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
||||||
|
ST_U_INH_F_REC -> ST_FACCH [ label = "E_VOICE" ]
|
||||||
|
|
||||||
|
// Silence period with periodic comfort noise data updates (can be inhibited)
|
||||||
|
ST_SID_U -> ST_U_INH_F [ label = "E_FACCH" ]
|
||||||
|
ST_SID_U -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
ST_SID_U -> ST_U_INH_V [ label = "E_INHIB" ]
|
||||||
|
ST_SID_U -> ST_U_NOINH [ label = "E_SID_U" ]
|
||||||
|
ST_SID_U -> ST_U_NOINH [ label = "E_SID_F" ]
|
||||||
|
|
||||||
|
// ONSET - end of silent period due to incoming SPEECH frame
|
||||||
|
ST_ONSET_V -> ST_ONSET_V_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// ONSET - end of silent period due to incoming FACCH frame
|
||||||
|
ST_ONSET_F -> ST_ONSET_F_REC [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// ONSET recursion in progress: ONSET itself was already sent, now have to send the data that caused it
|
||||||
|
ST_ONSET_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// ONSET recursion in progress: ONSET itself was already sent, now have to send the voice that caused it
|
||||||
|
ST_ONSET_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
||||||
|
|
||||||
|
// FACCH sending state
|
||||||
|
ST_FACCH -> ST_VOICE [ label = "E_VOICE" ]
|
||||||
|
ST_FACCH -> ST_FACCH [ label = "E_FACCH" ]
|
||||||
|
ST_FACCH -> ST_FACCH [ label = "E_SID_U" ]
|
||||||
|
ST_FACCH -> ST_FACCH [ label = "E_SID_F" ]
|
||||||
|
ST_FACCH -> ST_SID_F1 [ label = "E_COMPL" ]
|
||||||
|
}
|
||||||
83
doc/manuals/osmobts-abis-docinfo.xml
Normal file
83
doc/manuals/osmobts-abis-docinfo.xml
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>1</revnumber>
|
||||||
|
<date>December 2015</date>
|
||||||
|
<authorinitials>NJH, HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Initial version, reflecting OsmoBTS master branch as on 2015-Dec-7
|
||||||
|
(commit e28a20a2d9d049cd6312e218a7646593bbc43431).
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
<revision>
|
||||||
|
<revnumber>2</revnumber>
|
||||||
|
<date>February 2016</date>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Updated version with Message Sequence Chart of OML and RSL bring-up.
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
<revision>
|
||||||
|
<revnumber>2.1</revnumber>
|
||||||
|
<date>February 2016</date>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Fix A-bis OML/RSL port number swap in message seqeuence charts.
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
<revision>
|
||||||
|
<revnumber>2.2</revnumber>
|
||||||
|
<date>July 2016</date>
|
||||||
|
<authorinitials>NJH, HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Add description on Dynamic Channel Configuration in OML and activation in RSL.
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Neels</firstname>
|
||||||
|
<surname>Hofmeyr</surname>
|
||||||
|
<email>nhofmeyr@sysmocom.de</email>
|
||||||
|
<authorinitials>NJH</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Senior Software Developer</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
<author>
|
||||||
|
<firstname>Harald</firstname>
|
||||||
|
<surname>Welte</surname>
|
||||||
|
<email>hwelte@sysmocom.de</email>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Managing Director</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2015-2016</year>
|
||||||
|
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation License,
|
||||||
|
Version 1.3 or any later version published by the Free Software
|
||||||
|
Foundation; with no Invariant Sections, no Front-Cover Texts,
|
||||||
|
and no Back-Cover Texts. A copy of the license is included in
|
||||||
|
the section entitled "GNU Free Documentation License".
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Asciidoc source code of this manual can be found at
|
||||||
|
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
|
||||||
|
http://git.osmocom.org/osmo-gsm-manuals/
|
||||||
|
</ulink>
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
92
doc/manuals/osmobts-abis.adoc
Normal file
92
doc/manuals/osmobts-abis.adoc
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
:gfdl-enabled:
|
||||||
|
|
||||||
|
OsmoBTS Abis Protocol Specification
|
||||||
|
===================================
|
||||||
|
Neels Hofmeyr <nhofmeyr@sysmocom.de>
|
||||||
|
|
||||||
|
== Introduction
|
||||||
|
|
||||||
|
This document describes the A-bis interface of *OsmoBTS*. Based on 3GPP TS
|
||||||
|
12.21 and 08.58, this document indicates which of the 3GPP specified A-bis
|
||||||
|
messages and IEs are implemented according to 3GPP specifications, which of
|
||||||
|
these are not or not fully implemented, as well as OsmoBTS-specific extensions
|
||||||
|
to the A-bis interface not specified by 3GPP.
|
||||||
|
|
||||||
|
Extensions to the A-bis interface specific to OsmoBTS are detailed in this
|
||||||
|
document. For details on the messages and IEs that comply with above mentioned
|
||||||
|
3GPP specifications, please refer to those documents.
|
||||||
|
|
||||||
|
.3GPP document versions referred to by this document
|
||||||
|
[cols="20%,80%"]
|
||||||
|
|===
|
||||||
|
|3GPP TS 08.56 | version 8.0.1 Release 1999
|
||||||
|
|3GPP TS 08.58 | version 8.6.0 Release 1999
|
||||||
|
|3GPP TS 08.60 | version 8.2.1 Release 1999
|
||||||
|
|3GPP TS 12.21 | version 8.0.0 Release 1999
|
||||||
|
|===
|
||||||
|
|
||||||
|
.IETF documents referred to by his document
|
||||||
|
[cols="20%,80%"]
|
||||||
|
|===
|
||||||
|
|IETF RFC 768 | User Datagram Protocol
|
||||||
|
|IETF RFC 791 | Internet Protocol
|
||||||
|
|IETF RFC 793 | Transmission Control Protocol
|
||||||
|
|IETF RFC 1889 | RTP: A Transport Protocol for Real-Time Applications
|
||||||
|
|IETF RFC 3551 | RTP Profle for Audio and Video Conferences with Minimal Control
|
||||||
|
|IETF RFC 4867 | RTP Payload Format and Files Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs
|
||||||
|
|IETF RFC 5993 | RTP Payload Format for Global Systems for Mobile Communications Half Rate (GSM-HR)
|
||||||
|
|===
|
||||||
|
|
||||||
|
== Overview
|
||||||
|
|
||||||
|
The OsmoBTS A-bis interface consists of traffic management messages (RSL, Radio
|
||||||
|
Signalling Link) and network management messages (OML, Operation & Maintenance
|
||||||
|
Link), encapsulated in an IPA multiplex.
|
||||||
|
|
||||||
|
OML and RSL each use a separate TCP connection.
|
||||||
|
|
||||||
|
.TCP port numbers used by OsmoBTS Abis/IP
|
||||||
|
[options="header",width="50%",cols="35%,65%"]
|
||||||
|
|===
|
||||||
|
|TCP Port Number|Usage
|
||||||
|
|3002|A-bis OML (inside IPA multiplex)
|
||||||
|
|3003|A-bis RSL (inside IPA multiplex)
|
||||||
|
|===
|
||||||
|
|
||||||
|
Both TCP connections for OML and RSL are established in the BTS -> BSC
|
||||||
|
direction, i.e. the BTS is running as a TCP client, while the BSC is
|
||||||
|
running as a TCP server.
|
||||||
|
|
||||||
|
The BTS first establishes the TCP connection for OML. Via OML, the BSC
|
||||||
|
instructs the BTS to which IP address the RSL connection shall be
|
||||||
|
established.
|
||||||
|
|
||||||
|
.Overview of A-bis connection establishment
|
||||||
|
["mscgen"]
|
||||||
|
----
|
||||||
|
include::{srcdir}/abis/abis-startup.msc[]
|
||||||
|
----
|
||||||
|
|
||||||
|
=== Identities
|
||||||
|
|
||||||
|
The BTS is locally configured (via administrative means, out of band of
|
||||||
|
this specification) to have a Unit ID. The Unit ID consists of three
|
||||||
|
parts:
|
||||||
|
|
||||||
|
* The Site Number
|
||||||
|
* The BTS number at the site
|
||||||
|
* The TRX number within the BTS
|
||||||
|
|
||||||
|
include::{srcdir}/abis/ipa.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/abis/oml.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/abis/rsl.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/abis/rtp.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/port_numbers.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/glossary.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/gfdl.adoc[]
|
||||||
42
doc/manuals/osmobts-usermanual-docinfo.xml
Normal file
42
doc/manuals/osmobts-usermanual-docinfo.xml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>1</revnumber>
|
||||||
|
<date>January 2016</date>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Initial version, reflecting OsmoBTS master branch as on FIXME
|
||||||
|
(commit FIXME).
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Harald</firstname>
|
||||||
|
<surname>Welte</surname>
|
||||||
|
<email>hwelte@sysmocom.de</email>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Managing Director</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2016</year>
|
||||||
|
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation License,
|
||||||
|
Version 1.3 or any later version published by the Free Software
|
||||||
|
Foundation; with the Invariant Sections being just 'Foreword',
|
||||||
|
'Acknowledgements' and 'Preface', with no Front-Cover Texts,
|
||||||
|
and no Back-Cover Texts. A copy of the license is included in
|
||||||
|
the section entitled "GNU Free Documentation License".
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
43
doc/manuals/osmobts-usermanual.adoc
Normal file
43
doc/manuals/osmobts-usermanual.adoc
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
:gfdl-enabled:
|
||||||
|
|
||||||
|
OsmoBTS User Manual
|
||||||
|
===================
|
||||||
|
Harald Welte <hwelte@sysmocom.de>
|
||||||
|
|
||||||
|
include::./common/chapters/preface.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/overview.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/abis.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/interfaces.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/control.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/counters-overview.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/counters.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/vty.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/logging.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/configuration.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/dynamic-timeslots.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/bts-models.adoc[]
|
||||||
|
|
||||||
|
include::{srcdir}/chapters/architecture.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/trx_if.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/control_if.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/port_numbers.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/bibliography.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/glossary.adoc[]
|
||||||
|
|
||||||
|
include::./common/chapters/gfdl.adoc[]
|
||||||
38
doc/manuals/osmobts-vty-reference.xml
Normal file
38
doc/manuals/osmobts-vty-reference.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
ex:ts=2:sw=42sts=2:et
|
||||||
|
-*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
||||||
|
-->
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
|
||||||
|
"http://docbook.org/xml/5.0/dtd/docbook.dtd" [
|
||||||
|
<!ENTITY chapter-vty SYSTEM "./common/chapters/vty.xml" >
|
||||||
|
<!ENTITY sections-vty SYSTEM "generated/docbook_vty.xml" >
|
||||||
|
]>
|
||||||
|
|
||||||
|
<book>
|
||||||
|
<info>
|
||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>v1</revnumber>
|
||||||
|
<date>13th October 2016</date>
|
||||||
|
<authorinitials>hw</authorinitials>
|
||||||
|
<revremark>Initial</revremark>
|
||||||
|
</revision>
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<title>OsmoBTS VTY Reference</title>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2016</year>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>This work is copyright by <orgname>sysmocom - s.f.m.c. GmbH</orgname>. All rights reserved.
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
|
</info>
|
||||||
|
|
||||||
|
<!-- Main chapters-->
|
||||||
|
&chapter-vty;
|
||||||
|
</book>
|
||||||
|
|
||||||
17
doc/manuals/regen_doc.sh
Executable file
17
doc/manuals/regen_doc.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
if [ -z "$DOCKER_PLAYGROUND" ]; then
|
||||||
|
echo "You need to set DOCKER_PLAYGROUND"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SCRIPT=$(realpath "$0")
|
||||||
|
MANUAL_DIR=$(dirname "$SCRIPT")
|
||||||
|
|
||||||
|
COMMIT=${COMMIT:-$(git log -1 --format=format:%H)}
|
||||||
|
|
||||||
|
cd "$DOCKER_PLAYGROUND/scripts" || exit 1
|
||||||
|
|
||||||
|
OSMO_BTS_BRANCH=$COMMIT ./regen_doc.sh osmo-bts 4241 \
|
||||||
|
"$MANUAL_DIR/chapters/counters_generated.adoc" \
|
||||||
|
"$MANUAL_DIR/vty/bts_vty_reference.xml"
|
||||||
73
doc/manuals/rtp-amr-docinfo.xml
Normal file
73
doc/manuals/rtp-amr-docinfo.xml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>1</revnumber>
|
||||||
|
<date>October 2016</date>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Initial version
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
<revision>
|
||||||
|
<revnumber>2</revnumber>
|
||||||
|
<date>November 2016</date>
|
||||||
|
<authorinitials>MS</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
FSM added
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
<revision>
|
||||||
|
<revnumber>3</revnumber>
|
||||||
|
<date>July 2017</date>
|
||||||
|
<authorinitials>PE</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Add section and update sequence charts to describe requirement to receive all PH-DATA.ind events
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Harald</firstname>
|
||||||
|
<surname>Welte</surname>
|
||||||
|
<email>hwelte@sysmocom.de</email>
|
||||||
|
<authorinitials>HW</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Managing Director</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
<author>
|
||||||
|
<firstname>Max</firstname>
|
||||||
|
<surname>Suraev</surname>
|
||||||
|
<email>msuraev@sysmocom.de</email>
|
||||||
|
<authorinitials>MS</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Software Developer</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2016</year>
|
||||||
|
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation License,
|
||||||
|
Version 1.3 or any later version published by the Free Software
|
||||||
|
Foundation; with no Invariant Sections, no Front-Cover Texts,
|
||||||
|
and no Back-Cover Texts. A copy of the license is included in
|
||||||
|
the section entitled "GNU Free Documentation License".
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Asciidoc source code of this manual can be found at
|
||||||
|
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
|
||||||
|
http://git.osmocom.org/osmo-gsm-manuals/
|
||||||
|
</ulink>
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
1362
doc/manuals/rtp-amr.adoc
Normal file
1362
doc/manuals/rtp-amr.adoc
Normal file
File diff suppressed because it is too large
Load Diff
1
doc/manuals/vty/bts_vty_additions.xml
Normal file
1
doc/manuals/vty/bts_vty_additions.xml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'/>
|
||||||
1742
doc/manuals/vty/bts_vty_reference.xml
Normal file
1742
doc/manuals/vty/bts_vty_reference.xml
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user