mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-18 23:20:32 +00:00
Compare commits
1942 Commits
2019.w27
...
nr_increas
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98e7558dce | ||
|
|
2def2ee405 | ||
|
|
fa7fd716ca | ||
|
|
31429d5d02 | ||
|
|
d3f380138f | ||
|
|
7f9c483ffe | ||
|
|
3f066dec56 | ||
|
|
ad28a3fe43 | ||
|
|
df791790ed | ||
|
|
cac89d49e4 | ||
|
|
da8be6a78b | ||
|
|
5d7e7d5fe1 | ||
|
|
cf57a43900 | ||
|
|
e104d640e0 | ||
|
|
b3036372ca | ||
|
|
b82787dde1 | ||
|
|
1a46b66d74 | ||
|
|
719424f4b7 | ||
|
|
22d4f20525 | ||
|
|
6b1cabae41 | ||
|
|
ec08b771b1 | ||
|
|
97a2877cba | ||
|
|
8708af92ab | ||
|
|
7672257b2f | ||
|
|
80cd6940af | ||
|
|
ee6b18d377 | ||
|
|
602d025e89 | ||
|
|
1928936883 | ||
|
|
f1740e2c9c | ||
|
|
11147c2e83 | ||
|
|
a54362ddef | ||
|
|
0e47a507d3 | ||
|
|
201d975318 | ||
|
|
729498571b | ||
|
|
620038220c | ||
|
|
d5db8c1634 | ||
|
|
f3f58741d8 | ||
|
|
f997ebb8ca | ||
|
|
40bda9f8d0 | ||
|
|
b2ddd33577 | ||
|
|
aab575f66a | ||
|
|
82880f6199 | ||
|
|
fe0c9ba075 | ||
|
|
c724057947 | ||
|
|
cf406af4f0 | ||
|
|
433e3edd21 | ||
|
|
e6360d1365 | ||
|
|
2406662e74 | ||
|
|
c4121a997f | ||
|
|
63375fa139 | ||
|
|
56ecc5cfb2 | ||
|
|
90445b0003 | ||
|
|
67a23b3386 | ||
|
|
e0c80a83b8 | ||
|
|
dfad6a91d7 | ||
|
|
72fc49ccf2 | ||
|
|
2a0cfcb747 | ||
|
|
3ddce03c65 | ||
|
|
2e6d4c7572 | ||
|
|
9d1b66154b | ||
|
|
aeffe090ba | ||
|
|
6be2d8f081 | ||
|
|
376128761d | ||
|
|
0ea53f48b9 | ||
|
|
c5efa4f400 | ||
|
|
e253a6f380 | ||
|
|
8ad07d3aef | ||
|
|
39457f5c12 | ||
|
|
a3379d1d10 | ||
|
|
6082a33d2e | ||
|
|
e2b77c3edb | ||
|
|
4815ff113d | ||
|
|
bd0eb1cc26 | ||
|
|
ef3be74025 | ||
|
|
ebd3871827 | ||
|
|
feb461bafb | ||
|
|
348afdc17e | ||
|
|
17f5a80387 | ||
|
|
eff0a870b7 | ||
|
|
95ef6bd9b7 | ||
|
|
1aa2b3041b | ||
|
|
8054ab64fa | ||
|
|
3185728107 | ||
|
|
c3fcee20a1 | ||
|
|
2deda8df51 | ||
|
|
ea7c4d9536 | ||
|
|
09b38541c8 | ||
|
|
1bfbf8c96e | ||
|
|
6d4f03751e | ||
|
|
282f56fb7b | ||
|
|
b4b1998c5e | ||
|
|
497afe4f58 | ||
|
|
9e7186c2cb | ||
|
|
f5b0658a70 | ||
|
|
ca9b4d7ed9 | ||
|
|
20df127684 | ||
|
|
1ef8aaee97 | ||
|
|
d252696b14 | ||
|
|
2a5109d670 | ||
|
|
13f4acd5b6 | ||
|
|
ccd38774ee | ||
|
|
57421caae5 | ||
|
|
69631e750b | ||
|
|
615f278711 | ||
|
|
517c8585b3 | ||
|
|
3052388709 | ||
|
|
501a1272cd | ||
|
|
a13a167f08 | ||
|
|
afa7195638 | ||
|
|
cbbadf6bcd | ||
|
|
5758bb8e44 | ||
|
|
bf7d52de43 | ||
|
|
61cfbc1f2a | ||
|
|
ac94b2e6f0 | ||
|
|
c52ba1db79 | ||
|
|
cf025a6569 | ||
|
|
51462360a8 | ||
|
|
da625f1397 | ||
|
|
e47cd4a06d | ||
|
|
582ba0c922 | ||
|
|
5cd4ad0411 | ||
|
|
4297beffa0 | ||
|
|
5bfbfd9a37 | ||
|
|
fcfc29ca8b | ||
|
|
db02c60ef5 | ||
|
|
e9355e2ef4 | ||
|
|
f459e90f2b | ||
|
|
2308f35fa7 | ||
|
|
ae2549b91a | ||
|
|
3995b59b34 | ||
|
|
5a0b2fc05c | ||
|
|
c1dc042d70 | ||
|
|
0ceb9545a1 | ||
|
|
d4d4bb6df7 | ||
|
|
80846efc2e | ||
|
|
3c16c57aa8 | ||
|
|
748a2397d6 | ||
|
|
f235e54056 | ||
|
|
fe290e3a54 | ||
|
|
9e80e8db73 | ||
|
|
3c47152c66 | ||
|
|
397480c125 | ||
|
|
a675d309aa | ||
|
|
7500911a1b | ||
|
|
609ec01888 | ||
|
|
93730f0e06 | ||
|
|
6e38f7540f | ||
|
|
5465516fe0 | ||
|
|
96b59d07a3 | ||
|
|
f2c5ebd4cd | ||
|
|
7b840212ff | ||
|
|
056deedf1e | ||
|
|
69b58589dc | ||
|
|
4e1b874adf | ||
|
|
668de031ec | ||
|
|
624fdd78d2 | ||
|
|
a67113c64c | ||
|
|
494c9d37a1 | ||
|
|
724fc3dcb5 | ||
|
|
59141e1851 | ||
|
|
2bfec87cb8 | ||
|
|
8a4fd4f0de | ||
|
|
38b61f0351 | ||
|
|
b39ac8893b | ||
|
|
ada33879b6 | ||
|
|
206028153b | ||
|
|
f768d8f3bd | ||
|
|
7a6d174045 | ||
|
|
aa65503926 | ||
|
|
3b5ddb9a8c | ||
|
|
e97204d573 | ||
|
|
d4526975a7 | ||
|
|
952ca25559 | ||
|
|
f8d969d506 | ||
|
|
c046eb66a6 | ||
|
|
a5af01633a | ||
|
|
f26373c52b | ||
|
|
954e6c640d | ||
|
|
054eaf66a6 | ||
|
|
da13ff9c36 | ||
|
|
76b55e9cbd | ||
|
|
189e15aa80 | ||
|
|
348cc790be | ||
|
|
1a5efc7429 | ||
|
|
2109c768df | ||
|
|
a8bf0b2373 | ||
|
|
0b9d015888 | ||
|
|
2cd4d9f670 | ||
|
|
7e3d2cc05b | ||
|
|
2daf95a027 | ||
|
|
08eda57aca | ||
|
|
d88ab2f9c0 | ||
|
|
7934ec451a | ||
|
|
740e4c8aa1 | ||
|
|
61a1b1c5a8 | ||
|
|
b0f5f5f864 | ||
|
|
17e4f0f12d | ||
|
|
675c0dff2d | ||
|
|
b28d006860 | ||
|
|
3be72df335 | ||
|
|
7c7a1e8262 | ||
|
|
03ac9b03c8 | ||
|
|
3d86e29508 | ||
|
|
f6470ccc95 | ||
|
|
cd5a321895 | ||
|
|
ef41f62f9f | ||
|
|
b7733bae40 | ||
|
|
b10cc48351 | ||
|
|
8df7d62e52 | ||
|
|
dd0927dd55 | ||
|
|
c7951965e7 | ||
|
|
dd26598ab2 | ||
|
|
bd39261980 | ||
|
|
274c60f87c | ||
|
|
b4c0acad9c | ||
|
|
ffbe17f3d7 | ||
|
|
3a8bf560da | ||
|
|
ad37254217 | ||
|
|
2b81a1bf48 | ||
|
|
031e424e46 | ||
|
|
df65d8e323 | ||
|
|
376fc1eca3 | ||
|
|
2960d27a47 | ||
|
|
fbb5b54841 | ||
|
|
3a57b05893 | ||
|
|
6548ae15d2 | ||
|
|
7e0f257299 | ||
|
|
5f46038ed5 | ||
|
|
3a04f8f0ed | ||
|
|
e5a9f02af6 | ||
|
|
52903c760e | ||
|
|
cba58a50a2 | ||
|
|
3b14504237 | ||
|
|
1fe39ae262 | ||
|
|
5e1c31019d | ||
|
|
cbb9464bac | ||
|
|
03da0a5ed8 | ||
|
|
c348a9eec6 | ||
|
|
987026bb86 | ||
|
|
dfbe9fc1fd | ||
|
|
fbe231dcad | ||
|
|
d73f7388ed | ||
|
|
8961090d9a | ||
|
|
cab801a049 | ||
|
|
391b73c4fd | ||
|
|
9aa3483235 | ||
|
|
c0ca7038f1 | ||
|
|
aae1fa524a | ||
|
|
b3bc216df1 | ||
|
|
4012f63b09 | ||
|
|
996b90a397 | ||
|
|
3a5d27c591 | ||
|
|
72999a1074 | ||
|
|
7247786f69 | ||
|
|
6c19d1e663 | ||
|
|
71cf3eab92 | ||
|
|
1f33048109 | ||
|
|
666332e129 | ||
|
|
10667b3662 | ||
|
|
6f351c3d3b | ||
|
|
a5ebee1897 | ||
|
|
57c01460c6 | ||
|
|
aa9afa0aba | ||
|
|
e8e92e1dab | ||
|
|
d351060b6b | ||
|
|
024a41424c | ||
|
|
175c813faf | ||
|
|
9b00843b57 | ||
|
|
c386c65a69 | ||
|
|
ef850d1238 | ||
|
|
f826eff564 | ||
|
|
d2875d0267 | ||
|
|
576198aa7b | ||
|
|
7db64f6981 | ||
|
|
a65f59c8c9 | ||
|
|
0c280a8245 | ||
|
|
5cd6476465 | ||
|
|
af4242c61f | ||
|
|
1bbf2458ae | ||
|
|
6b5d2eee70 | ||
|
|
6d6d05535c | ||
|
|
ee20e21351 | ||
|
|
42a4649afd | ||
|
|
fdeb4c987d | ||
|
|
a0f0a49336 | ||
|
|
84af6103f8 | ||
|
|
508b63c444 | ||
|
|
b9b4d05e41 | ||
|
|
2ee5164cab | ||
|
|
215315c79a | ||
|
|
7e4d2f03bb | ||
|
|
b2275c7b48 | ||
|
|
b39d453098 | ||
|
|
348343be8f | ||
|
|
db71a0b98c | ||
|
|
51a45a4d12 | ||
|
|
5fcee9ccdc | ||
|
|
889bc96c5d | ||
|
|
79de8953aa | ||
|
|
046920e6bb | ||
|
|
12ac400755 | ||
|
|
9c57aff287 | ||
|
|
f296b84dcb | ||
|
|
c5586c2348 | ||
|
|
053c292859 | ||
|
|
f629b77e63 | ||
|
|
ec627f7c55 | ||
|
|
3685b0936a | ||
|
|
47825cbc6a | ||
|
|
46c8d18151 | ||
|
|
69aef4684a | ||
|
|
04ea6a482b | ||
|
|
257b70a7eb | ||
|
|
f4758a17da | ||
|
|
d64533bc9d | ||
|
|
34efe2973f | ||
|
|
54899a9be1 | ||
|
|
adc3ab4e8f | ||
|
|
8119806fb7 | ||
|
|
2af315bdf1 | ||
|
|
37a5ee9639 | ||
|
|
a9e07dce5f | ||
|
|
861eecf6db | ||
|
|
bc01744e6f | ||
|
|
7f72360dc5 | ||
|
|
aec1263e71 | ||
|
|
3ac6e3e5a5 | ||
|
|
0911624fe2 | ||
|
|
cd0f0f2fc0 | ||
|
|
9ccb93a094 | ||
|
|
be442d7993 | ||
|
|
a1472f677b | ||
|
|
8466c0c5a2 | ||
|
|
6d69a1069f | ||
|
|
2f402b1055 | ||
|
|
e96dfd4b52 | ||
|
|
157a4f7b46 | ||
|
|
7fb14ab321 | ||
|
|
21d24c6aea | ||
|
|
fa040160d0 | ||
|
|
b3a26f9548 | ||
|
|
edb74831da | ||
|
|
c622896876 | ||
|
|
e880141244 | ||
|
|
ed2b77529b | ||
|
|
4b441fc473 | ||
|
|
ac711d9adf | ||
|
|
009bacc8af | ||
|
|
131ad5383d | ||
|
|
9881036cf3 | ||
|
|
dd7a65ceba | ||
|
|
9078c5dcb2 | ||
|
|
aec5ebcfff | ||
|
|
c984c71f52 | ||
|
|
7a1a9f8363 | ||
|
|
517afa5a45 | ||
|
|
013d82ac30 | ||
|
|
90c708c10e | ||
|
|
e27a88f6a6 | ||
|
|
45c764a3ae | ||
|
|
5ba4de4d1d | ||
|
|
768d214122 | ||
|
|
53e6a5223c | ||
|
|
f398e4999b | ||
|
|
2660f4ea4f | ||
|
|
0e78faa744 | ||
|
|
294e425645 | ||
|
|
1d35890259 | ||
|
|
c4ae0b0691 | ||
|
|
bb2efbe42c | ||
|
|
779e8996e3 | ||
|
|
fc2bbeef69 | ||
|
|
69abec3df1 | ||
|
|
34899cd404 | ||
|
|
9148716641 | ||
|
|
d12a824433 | ||
|
|
2b94608329 | ||
|
|
35b85d456c | ||
|
|
f9b583e06e | ||
|
|
4541922258 | ||
|
|
f51796180d | ||
|
|
abfd072376 | ||
|
|
9d27079f05 | ||
|
|
978f683eca | ||
|
|
9d4f5b4de7 | ||
|
|
8effb52c84 | ||
|
|
ece26036e6 | ||
|
|
705f2c1e42 | ||
|
|
26f1e090c5 | ||
|
|
ca1759b9e3 | ||
|
|
bb57c61aa0 | ||
|
|
84f16d4ce9 | ||
|
|
3d66fbdb7a | ||
|
|
f2f8d47384 | ||
|
|
2ec61ea77e | ||
|
|
20d41208c8 | ||
|
|
bea98773b0 | ||
|
|
c8471c1e54 | ||
|
|
fb4165d62b | ||
|
|
21fa809ce0 | ||
|
|
e901aa79ab | ||
|
|
09d3c72144 | ||
|
|
224b781848 | ||
|
|
4d84f5cd87 | ||
|
|
8677d44ae9 | ||
|
|
dbc9472aaf | ||
|
|
aff1eb3e6b | ||
|
|
4e68e79894 | ||
|
|
237a5594cb | ||
|
|
aa741af06b | ||
|
|
a292f82fe2 | ||
|
|
db66552ff9 | ||
|
|
5edb3e36ce | ||
|
|
6197de2373 | ||
|
|
de8e225797 | ||
|
|
283207cdf2 | ||
|
|
469afa4bb6 | ||
|
|
c8870fbcbc | ||
|
|
75778a76c2 | ||
|
|
75305c383b | ||
|
|
dcb0b5a452 | ||
|
|
1927e34312 | ||
|
|
054156c16c | ||
|
|
4fbf754de5 | ||
|
|
2368c9096a | ||
|
|
7967701de1 | ||
|
|
58eae03b48 | ||
|
|
98757d7693 | ||
|
|
7bb5320716 | ||
|
|
5265ea3135 | ||
|
|
1737fdf3fa | ||
|
|
afc5020cca | ||
|
|
d3217ac30b | ||
|
|
ce74dd3e95 | ||
|
|
46adc28e08 | ||
|
|
c4e43703ea | ||
|
|
37fe6c743e | ||
|
|
a54cdfa3fb | ||
|
|
51aa523c50 | ||
|
|
794aac4137 | ||
|
|
0080f007c3 | ||
|
|
03ca7391d3 | ||
|
|
28cf0350fc | ||
|
|
f3a757ce5a | ||
|
|
c97cd87d47 | ||
|
|
e6f056d0af | ||
|
|
1d3023a5f6 | ||
|
|
290c277486 | ||
|
|
2955ae4731 | ||
|
|
43a53f9952 | ||
|
|
81c5da5f2f | ||
|
|
d605e5ffc3 | ||
|
|
e7d5162400 | ||
|
|
8234afe8c5 | ||
|
|
2adf459f6e | ||
|
|
3dee153067 | ||
|
|
175fb1769a | ||
|
|
7995f413ef | ||
|
|
920c1452bd | ||
|
|
e45794ce08 | ||
|
|
2d35c28633 | ||
|
|
4967e1b1ac | ||
|
|
4d073a75bb | ||
|
|
741a012867 | ||
|
|
16c8762c2b | ||
|
|
21e578b5e6 | ||
|
|
f4158dd91f | ||
|
|
6b4419ad13 | ||
|
|
4c0d814873 | ||
|
|
e4632f204b | ||
|
|
e12c1ccc70 | ||
|
|
aca390e63f | ||
|
|
37015999e5 | ||
|
|
8204413449 | ||
|
|
e844ed07d6 | ||
|
|
3171ece714 | ||
|
|
31671946e7 | ||
|
|
5ddad9bde2 | ||
|
|
f8288afe1d | ||
|
|
bdf99ae7c9 | ||
|
|
15df30545e | ||
|
|
9249cd1c13 | ||
|
|
90be2df3c3 | ||
|
|
9362cbd0c8 | ||
|
|
9a4ffa5660 | ||
|
|
f37a17e540 | ||
|
|
2070a3305f | ||
|
|
03c28a697f | ||
|
|
e823ae9d0b | ||
|
|
23a804ecd1 | ||
|
|
65002b7fb1 | ||
|
|
660278a6d8 | ||
|
|
2d6d1dd965 | ||
|
|
7001fdd3d6 | ||
|
|
68f482b6ac | ||
|
|
ff6710c898 | ||
|
|
dccda75168 | ||
|
|
3851e3264d | ||
|
|
4c49d5ab0d | ||
|
|
2b321fd1c7 | ||
|
|
6215c74b53 | ||
|
|
10dbfff50e | ||
|
|
0de5ff4877 | ||
|
|
5c743e23bb | ||
|
|
db2853cc49 | ||
|
|
af93bf9232 | ||
|
|
78fb79016d | ||
|
|
31b23d57eb | ||
|
|
1980f10512 | ||
|
|
a371da7bf9 | ||
|
|
2421b71d68 | ||
|
|
6b7861e098 | ||
|
|
893392e476 | ||
|
|
3dfce6380e | ||
|
|
8a8fdd59c2 | ||
|
|
5775d325e0 | ||
|
|
443b5fd026 | ||
|
|
6c5feebaa9 | ||
|
|
6b16efcb0c | ||
|
|
0f91d708bd | ||
|
|
729aab5798 | ||
|
|
569756c2d4 | ||
|
|
65b3220d21 | ||
|
|
4eee2460f9 | ||
|
|
bfc3912f3e | ||
|
|
7fd9e1a5b7 | ||
|
|
8976f988ed | ||
|
|
36a9f70111 | ||
|
|
d1fdbfedbc | ||
|
|
d07d91c206 | ||
|
|
5c117684d4 | ||
|
|
53d5547e67 | ||
|
|
e41da445ef | ||
|
|
c1950e0d7e | ||
|
|
1f211efb12 | ||
|
|
3492f60407 | ||
|
|
a4214072aa | ||
|
|
79eb2d7066 | ||
|
|
c94700c7e7 | ||
|
|
61cda3a0aa | ||
|
|
e4dfc07553 | ||
|
|
29d361ff42 | ||
|
|
25a1e76a0e | ||
|
|
b557f8960b | ||
|
|
35385d84aa | ||
|
|
762eef6599 | ||
|
|
78ff532ae2 | ||
|
|
1059a2fcd7 | ||
|
|
e773fc6a71 | ||
|
|
17939a9f66 | ||
|
|
e468376d93 | ||
|
|
4c3adcb58e | ||
|
|
590d2af568 | ||
|
|
ef819e05b4 | ||
|
|
1419720cdc | ||
|
|
90344ce54a | ||
|
|
339a4daa7b | ||
|
|
d02234ff66 | ||
|
|
46537af2b2 | ||
|
|
94af4d0eca | ||
|
|
bc0fc8ba4a | ||
|
|
c0e77a0faa | ||
|
|
a980e8895e | ||
|
|
45f5bdd38f | ||
|
|
60d53688d8 | ||
|
|
56c6e59377 | ||
|
|
9549537ed4 | ||
|
|
819c3af0cf | ||
|
|
a7f217e5a2 | ||
|
|
98f2736404 | ||
|
|
62c42f4e53 | ||
|
|
4998b6ae6d | ||
|
|
47f50281de | ||
|
|
550350e3d1 | ||
|
|
77491ec57d | ||
|
|
02532d044e | ||
|
|
8fdc21b232 | ||
|
|
6dcd2ead9a | ||
|
|
7e87ce3c13 | ||
|
|
310359c678 | ||
|
|
4239dacd02 | ||
|
|
a2bf9dc9f4 | ||
|
|
dda7fbd74b | ||
|
|
29bfcdb371 | ||
|
|
5d11ab5467 | ||
|
|
1ce0700e5d | ||
|
|
bc4b6cf2cf | ||
|
|
fe6aa838ea | ||
|
|
d908559a17 | ||
|
|
680a0c97c7 | ||
|
|
40adad6fc7 | ||
|
|
2bb1477197 | ||
|
|
c7575f71a7 | ||
|
|
ea20869372 | ||
|
|
ffebd6b403 | ||
|
|
12e371f0fe | ||
|
|
ffa43c1f00 | ||
|
|
7faabbc02f | ||
|
|
633551dbed | ||
|
|
e0a670e9fe | ||
|
|
973a0795b4 | ||
|
|
ce9c9ec88f | ||
|
|
420e6194d4 | ||
|
|
08e91003f1 | ||
|
|
8857905ab0 | ||
|
|
aff80ba198 | ||
|
|
91ffcd1fce | ||
|
|
99fa6a9ff4 | ||
|
|
b711be863b | ||
|
|
07f0876aef | ||
|
|
34b261264e | ||
|
|
a16829e955 | ||
|
|
99e62a44a7 | ||
|
|
dc604f6ff1 | ||
|
|
f8dc571bd9 | ||
|
|
a6ecd29f90 | ||
|
|
bdc6aff4a0 | ||
|
|
28809cc98a | ||
|
|
2c7ee8cd20 | ||
|
|
4d66dba0d2 | ||
|
|
21d13ef419 | ||
|
|
b878b15473 | ||
|
|
5ee6fe727c | ||
|
|
be5bbbd86c | ||
|
|
e11cf1ab20 | ||
|
|
4cd5d80d98 | ||
|
|
d5d1c19588 | ||
|
|
61fc53f851 | ||
|
|
8467f2ebbc | ||
|
|
d2efadee73 | ||
|
|
a40962cbbf | ||
|
|
a2cad44f0f | ||
|
|
699cd2e9a3 | ||
|
|
88a09f0b58 | ||
|
|
8c16f16cbf | ||
|
|
cba073631f | ||
|
|
2ed8aa4cd2 | ||
|
|
2b7e04784e | ||
|
|
339bb9e410 | ||
|
|
e61cb078fc | ||
|
|
3ccc9c99e9 | ||
|
|
fc8dd8baa1 | ||
|
|
225ecc50ad | ||
|
|
77ed36a7b8 | ||
|
|
c7a0c41191 | ||
|
|
10e3a299be | ||
|
|
3d9ae4227b | ||
|
|
3414cf31ed | ||
|
|
cb09bb9f84 | ||
|
|
c0b4fcfbe4 | ||
|
|
4677c0abd7 | ||
|
|
b1c6538783 | ||
|
|
02e329a35d | ||
|
|
d34868e693 | ||
|
|
46968b1216 | ||
|
|
176d873083 | ||
|
|
63a2e61101 | ||
|
|
5d0c0be1fe | ||
|
|
c8d0da0dcb | ||
|
|
15417570aa | ||
|
|
749bb66988 | ||
|
|
4a841aa83d | ||
|
|
d9abc574fc | ||
|
|
ff440a30c4 | ||
|
|
c38a485949 | ||
|
|
2628b7418d | ||
|
|
21b736cff3 | ||
|
|
688acc4911 | ||
|
|
e73c6c3eca | ||
|
|
962c769440 | ||
|
|
1ec87df5a6 | ||
|
|
9c447c18a0 | ||
|
|
66442aa42d | ||
|
|
54ebd39b79 | ||
|
|
d9e077ead0 | ||
|
|
9edbe82dc8 | ||
|
|
a536aa298f | ||
|
|
bb4cf0df90 | ||
|
|
714452baef | ||
|
|
566e603671 | ||
|
|
70b6ca6391 | ||
|
|
ef3c6add13 | ||
|
|
54c96644ae | ||
|
|
73db162804 | ||
|
|
f1d4d5daf5 | ||
|
|
f3ebd69477 | ||
|
|
9b58180c88 | ||
|
|
9fc657d85e | ||
|
|
da6040b120 | ||
|
|
515e6955d8 | ||
|
|
830bf07933 | ||
|
|
ac1682f94e | ||
|
|
a404e190ab | ||
|
|
6cb25d778a | ||
|
|
3574481b7f | ||
|
|
7e57a8428e | ||
|
|
02a2f909da | ||
|
|
ed5749370f | ||
|
|
8e77370dd8 | ||
|
|
3c1d1bffee | ||
|
|
c227a34da1 | ||
|
|
48e2d78fd6 | ||
|
|
3cc917ab38 | ||
|
|
72aa68137d | ||
|
|
6b1ab26cea | ||
|
|
a7bce4abd5 | ||
|
|
236c416fe2 | ||
|
|
173f10e51d | ||
|
|
e6792d7576 | ||
|
|
e0b7efb596 | ||
|
|
f6a4a6b99a | ||
|
|
4f2f0f11ee | ||
|
|
e9d04428ff | ||
|
|
2700c3aef9 | ||
|
|
ea40eeebdf | ||
|
|
80e7531cfa | ||
|
|
adbe183166 | ||
|
|
21abb9a4b9 | ||
|
|
9c8fbb4950 | ||
|
|
9574efbf19 | ||
|
|
6db969f385 | ||
|
|
2b05aba106 | ||
|
|
1643fb242c | ||
|
|
e0c76c5a6b | ||
|
|
4c69e52c99 | ||
|
|
a4426236f1 | ||
|
|
06dcc1095a | ||
|
|
026ace2c95 | ||
|
|
e84a73f66c | ||
|
|
4cd3d635f7 | ||
|
|
264725c57b | ||
|
|
aaa3afb722 | ||
|
|
acc88008d4 | ||
|
|
d95ba666d2 | ||
|
|
eaa83242a8 | ||
|
|
ccd60195e0 | ||
|
|
ef0056f1ea | ||
|
|
cfcd6c37f0 | ||
|
|
c91a1fc4f1 | ||
|
|
69d3a8f09e | ||
|
|
38a2762d18 | ||
|
|
c59c85dfdb | ||
|
|
07d6d0ab02 | ||
|
|
475242c6f5 | ||
|
|
c1152f30d3 | ||
|
|
b447f0b913 | ||
|
|
da9b879112 | ||
|
|
9e199494b8 | ||
|
|
cc239de2c7 | ||
|
|
f1539df7f1 | ||
|
|
19558fda43 | ||
|
|
ee99817dff | ||
|
|
a38ccc8c37 | ||
|
|
7719314983 | ||
|
|
d54ea501a7 | ||
|
|
290ca22dbb | ||
|
|
7d29023c00 | ||
|
|
e5bef5f98a | ||
|
|
d2fe8cfa0a | ||
|
|
db9e181d40 | ||
|
|
b6c2f9c1df | ||
|
|
7a5214c6b4 | ||
|
|
c254ce07a0 | ||
|
|
a81eafd0ae | ||
|
|
b472d97b27 | ||
|
|
01879c3e2b | ||
|
|
335842c1be | ||
|
|
069ce10a2e | ||
|
|
589ced9c7a | ||
|
|
95e54e3b26 | ||
|
|
d44479ffec | ||
|
|
7e99e1f6b1 | ||
|
|
905cc80b42 | ||
|
|
3cafcd72b9 | ||
|
|
8c1f9c9e75 | ||
|
|
c3b3b39ef8 | ||
|
|
317cbfd601 | ||
|
|
c66fc1fd28 | ||
|
|
26d5eb90b6 | ||
|
|
4c3c8f2c6c | ||
|
|
fa710aa01b | ||
|
|
a1c9d50ed4 | ||
|
|
19523555d1 | ||
|
|
0061daeb9d | ||
|
|
7368e4bfc4 | ||
|
|
ba6d47a758 | ||
|
|
4d787625ab | ||
|
|
8a92138086 | ||
|
|
b11f6b07f2 | ||
|
|
db79d72b37 | ||
|
|
a55f4006b4 | ||
|
|
65160704ab | ||
|
|
a531ea62fa | ||
|
|
f6fbd72cae | ||
|
|
5fa78b4d6e | ||
|
|
75f131ad54 | ||
|
|
ca4627836f | ||
|
|
8897b3c88d | ||
|
|
2624dca2fe | ||
|
|
52a420bbed | ||
|
|
463164a4c3 | ||
|
|
0aec6f7aa1 | ||
|
|
c990cbc851 | ||
|
|
b2add95524 | ||
|
|
99c6c9227e | ||
|
|
231836ebbd | ||
|
|
d091be51b8 | ||
|
|
27ef071b81 | ||
|
|
29e058df17 | ||
|
|
2e6d9d7d4a | ||
|
|
7b3615de64 | ||
|
|
bc53a9afee | ||
|
|
2da6fb8efb | ||
|
|
0ce2124a0a | ||
|
|
09cca53829 | ||
|
|
69489f959d | ||
|
|
329242c7e6 | ||
|
|
ff38866130 | ||
|
|
d208283327 | ||
|
|
bdca3e4832 | ||
|
|
71fc1b6890 | ||
|
|
f5d6aa4ca6 | ||
|
|
43a98185db | ||
|
|
91121c6bd3 | ||
|
|
e0f4a9c5f7 | ||
|
|
e85cd9b79f | ||
|
|
645514e1c4 | ||
|
|
2feed73050 | ||
|
|
e0986d2de3 | ||
|
|
2ff8bb2012 | ||
|
|
1ca00e40b5 | ||
|
|
48a103ea82 | ||
|
|
67e1afd3ac | ||
|
|
a08e120c1c | ||
|
|
05dd8743e9 | ||
|
|
e5a682c690 | ||
|
|
ecaa424cbb | ||
|
|
385dcea7eb | ||
|
|
f0fe613130 | ||
|
|
35df00e02a | ||
|
|
6db55b2f24 | ||
|
|
a8e8d55f29 | ||
|
|
2df82e34c6 | ||
|
|
07fd510770 | ||
|
|
10674d9ba9 | ||
|
|
e613294c67 | ||
|
|
1fcd5aaae2 | ||
|
|
efe25b728d | ||
|
|
02f39f140c | ||
|
|
4178da5af8 | ||
|
|
21a2f12a0a | ||
|
|
9f5140ae76 | ||
|
|
5db1b11613 | ||
|
|
8c5d67a8f3 | ||
|
|
19d9693c04 | ||
|
|
0929292a72 | ||
|
|
9bac5338c8 | ||
|
|
16fbe03394 | ||
|
|
4af9f321cf | ||
|
|
d7403d4e61 | ||
|
|
aef2d908f7 | ||
|
|
e6fa2079b7 | ||
|
|
ab299dd2e2 | ||
|
|
97f4ec965e | ||
|
|
f8b03ef045 | ||
|
|
40b52195fc | ||
|
|
dea3125734 | ||
|
|
3554fb9b00 | ||
|
|
f421e73006 | ||
|
|
a3049674c6 | ||
|
|
d5d5c61a70 | ||
|
|
52a142d0df | ||
|
|
14ae2b54bd | ||
|
|
0d91083ead | ||
|
|
0f04910f2f | ||
|
|
30e06d16ce | ||
|
|
aab238173f | ||
|
|
0ba1958e39 | ||
|
|
ae02c9a6fd | ||
|
|
c3e567bb33 | ||
|
|
fe6ff2d8da | ||
|
|
fb4a8b1327 | ||
|
|
7ca8fc9de1 | ||
|
|
c4188d8013 | ||
|
|
02de5fd078 | ||
|
|
8e5c8ad2df | ||
|
|
b68366e54a | ||
|
|
71bc14d0d9 | ||
|
|
d9c68d8b30 | ||
|
|
afb40cf509 | ||
|
|
d13644773d | ||
|
|
02d3decd6d | ||
|
|
cc847e9c5c | ||
|
|
2c75720d79 | ||
|
|
f070801d0a | ||
|
|
3fc4c6a464 | ||
|
|
41b18e210b | ||
|
|
aa12c954c1 | ||
|
|
6e33fcfe28 | ||
|
|
8950a77999 | ||
|
|
2d39da3b57 | ||
|
|
dd61e5a717 | ||
|
|
980d20c8b8 | ||
|
|
af59ee996d | ||
|
|
a1da7a2f95 | ||
|
|
d7abeed6ab | ||
|
|
bc53a0a771 | ||
|
|
e5fd0fcd00 | ||
|
|
9947a6bccd | ||
|
|
a7fc22c807 | ||
|
|
ea2bc826f1 | ||
|
|
3d3f49c5c0 | ||
|
|
009b195d57 | ||
|
|
ad402982fe | ||
|
|
aadc282570 | ||
|
|
6ce8c3742a | ||
|
|
bacd48a4d7 | ||
|
|
ab825dd68a | ||
|
|
94cca3213e | ||
|
|
314d9f1479 | ||
|
|
39fa3e001c | ||
|
|
2aa32eff67 | ||
|
|
232efe7860 | ||
|
|
e66787fb07 | ||
|
|
fb885ad4b0 | ||
|
|
4d360ea4e1 | ||
|
|
62e56f212e | ||
|
|
568fa2375c | ||
|
|
49e9baee5b | ||
|
|
353f153353 | ||
|
|
04e5298a93 | ||
|
|
2156ba10d5 | ||
|
|
c49f91444e | ||
|
|
3ef3ef64bd | ||
|
|
43ff9ccf8b | ||
|
|
9a46d48763 | ||
|
|
838d6b86f2 | ||
|
|
e1fa6be7dd | ||
|
|
d383cd5208 | ||
|
|
f1e30d5756 | ||
|
|
5a9fb475f2 | ||
|
|
bad87bd130 | ||
|
|
fe37f24f42 | ||
|
|
bb398adb49 | ||
|
|
a5025d4c4f | ||
|
|
15f07d2bb1 | ||
|
|
f7583ef496 | ||
|
|
165c39da2f | ||
|
|
c06a639065 | ||
|
|
4c9c6f68fa | ||
|
|
985418139c | ||
|
|
be5f62a90c | ||
|
|
5bb6985f34 | ||
|
|
812f97f0f1 | ||
|
|
8c983da4eb | ||
|
|
b8c127050c | ||
|
|
a0473b4dd1 | ||
|
|
1a27089fc9 | ||
|
|
9021be8cd5 | ||
|
|
4c5d5ea41d | ||
|
|
21e1580be6 | ||
|
|
682ca5ebaf | ||
|
|
9cbfe2e3fa | ||
|
|
38f68522fe | ||
|
|
e795ad8c68 | ||
|
|
688830e83e | ||
|
|
380bac3e98 | ||
|
|
73c4d95c27 | ||
|
|
001837120c | ||
|
|
4df26768b8 | ||
|
|
beb30f1e05 | ||
|
|
5c2f57369d | ||
|
|
1f9cadc7b8 | ||
|
|
db1eb5d921 | ||
|
|
b4d7c62d92 | ||
|
|
0e531a0596 | ||
|
|
af42c10945 | ||
|
|
7cb58c9a31 | ||
|
|
7ee8af50e9 | ||
|
|
186269cd5d | ||
|
|
0348ce1598 | ||
|
|
0a9ea26b9e | ||
|
|
102ec93096 | ||
|
|
932ad9ed64 | ||
|
|
e210f61452 | ||
|
|
61e36839e5 | ||
|
|
151fced6d3 | ||
|
|
3b31b8a77d | ||
|
|
0b203cb71f | ||
|
|
eceafdd06d | ||
|
|
ae44bc0651 | ||
|
|
2c239d7083 | ||
|
|
c0a79f6a57 | ||
|
|
9eecd211b5 | ||
|
|
550751fc8a | ||
|
|
682bc15117 | ||
|
|
6377d5a73a | ||
|
|
268d1c8d17 | ||
|
|
df0b95536d | ||
|
|
edce788171 | ||
|
|
5c1c45dfe7 | ||
|
|
e9ac05d438 | ||
|
|
a78588cd04 | ||
|
|
b8ccf3f280 | ||
|
|
8f96cd503c | ||
|
|
10ec0d353a | ||
|
|
cfa2f794c1 | ||
|
|
832eb3dc50 | ||
|
|
89529d601a | ||
|
|
de3461c8ee | ||
|
|
35767511f8 | ||
|
|
626cf62cd8 | ||
|
|
463cf306c4 | ||
|
|
ab5626de39 | ||
|
|
71e28181a5 | ||
|
|
bc46624853 | ||
|
|
70e7e661c7 | ||
|
|
9e04a4916f | ||
|
|
4255f4e448 | ||
|
|
9498f8f6dd | ||
|
|
612c8632e3 | ||
|
|
0234a5c21a | ||
|
|
cf22a2146e | ||
|
|
449da9ac17 | ||
|
|
7405eec0f1 | ||
|
|
f2d5cfae0c | ||
|
|
35dc0857c4 | ||
|
|
6cd3e5faf5 | ||
|
|
3978c84f0c | ||
|
|
b44e15fd06 | ||
|
|
6526bf3b6e | ||
|
|
70f973b57f | ||
|
|
34546f7a55 | ||
|
|
86531d2e70 | ||
|
|
be40637380 | ||
|
|
1e85683de5 | ||
|
|
4e74773d3c | ||
|
|
28e4486c07 | ||
|
|
8f0fd7387b | ||
|
|
4e55c9da6d | ||
|
|
c35157c439 | ||
|
|
49b7d7454b | ||
|
|
f0c6b74de1 | ||
|
|
a85e8a8f68 | ||
|
|
454c552de2 | ||
|
|
fb35247c6b | ||
|
|
73178c8153 | ||
|
|
09a481d914 | ||
|
|
9548ab863d | ||
|
|
109f6ef426 | ||
|
|
78b9014624 | ||
|
|
cb9321c65d | ||
|
|
c73c0e3fc4 | ||
|
|
3c22d7e2d0 | ||
|
|
81c1e1b309 | ||
|
|
ae18029192 | ||
|
|
0a183d0ebd | ||
|
|
2fe820532f | ||
|
|
3d4f64629d | ||
|
|
96481468a3 | ||
|
|
a5a3ff3721 | ||
|
|
cefd7cee79 | ||
|
|
a9f98bd9f5 | ||
|
|
0334a2a909 | ||
|
|
a653258cc0 | ||
|
|
956fced146 | ||
|
|
732829f349 | ||
|
|
e3bbfe7712 | ||
|
|
fe00c55979 | ||
|
|
4faf96d689 | ||
|
|
b6b2531d98 | ||
|
|
70d241fb0f | ||
|
|
1a6331ceea | ||
|
|
91a47eb94a | ||
|
|
4b373dd1c6 | ||
|
|
b12d6b7340 | ||
|
|
adaa8e1337 | ||
|
|
08f90879df | ||
|
|
9727801417 | ||
|
|
34699e3244 | ||
|
|
815658b0f0 | ||
|
|
597519f6ba | ||
|
|
643507634c | ||
|
|
f187b0e17c | ||
|
|
303a463a4d | ||
|
|
173801704e | ||
|
|
826b7304e6 | ||
|
|
eb5c33ded1 | ||
|
|
e82d61e602 | ||
|
|
1558d7990b | ||
|
|
0ab61e1bab | ||
|
|
94b0a687a8 | ||
|
|
d87e131caf | ||
|
|
a63c08d37c | ||
|
|
58f1dd5e49 | ||
|
|
9c1be1b41e | ||
|
|
7ad45679a9 | ||
|
|
fa1ee1b3e9 | ||
|
|
ee1c5cbdbd | ||
|
|
718417aaa1 | ||
|
|
5e9af20419 | ||
|
|
0332a773b1 | ||
|
|
e7c63993d6 | ||
|
|
751ad8e925 | ||
|
|
d31bf6f962 | ||
|
|
1d97d9cb58 | ||
|
|
bacab65171 | ||
|
|
eb381216c8 | ||
|
|
ce264164c8 | ||
|
|
a06671df9c | ||
|
|
38dc0d8745 | ||
|
|
31d9cf59df | ||
|
|
a044ec2627 | ||
|
|
a1c3f6ae47 | ||
|
|
6ddb3c57fd | ||
|
|
c9e741e0fe | ||
|
|
cceab3e860 | ||
|
|
6868e745f5 | ||
|
|
3ae239a185 | ||
|
|
d2df2f00e6 | ||
|
|
7124e685cc | ||
|
|
eff757f31d | ||
|
|
f1774b6c41 | ||
|
|
1c68695655 | ||
|
|
b615147488 | ||
|
|
b1de22736f | ||
|
|
a7bdbc4d6f | ||
|
|
c635785097 | ||
|
|
cc02425681 | ||
|
|
2bfbad9275 | ||
|
|
b16cab0884 | ||
|
|
24f50d665d | ||
|
|
252a1fbc61 | ||
|
|
37a354a105 | ||
|
|
1fc33b3bbb | ||
|
|
858502c16b | ||
|
|
2810dd50fb | ||
|
|
f0c413e6ae | ||
|
|
446fb23eaf | ||
|
|
5144d1f50b | ||
|
|
8830833861 | ||
|
|
04835cde67 | ||
|
|
32eb84f120 | ||
|
|
c0b9a45ac0 | ||
|
|
fbf0a42c9f | ||
|
|
735af150d3 | ||
|
|
b5def5b1ae | ||
|
|
f2839eaf8e | ||
|
|
89eb94ecce | ||
|
|
cd07961aa5 | ||
|
|
4a218386fd | ||
|
|
8e10cd3363 | ||
|
|
854c61dffa | ||
|
|
6143fc3023 | ||
|
|
00fc815cbd | ||
|
|
6180c752d5 | ||
|
|
d7b80ffb13 | ||
|
|
fd1ca9cff7 | ||
|
|
bea2318921 | ||
|
|
5daf21683c | ||
|
|
c73a922c8d | ||
|
|
6bebff3681 | ||
|
|
667543b6df | ||
|
|
dd55d0f628 | ||
|
|
e2fceb52e7 | ||
|
|
7abda1ec4d | ||
|
|
25e9141e0a | ||
|
|
3b102319f6 | ||
|
|
fd92827a0f | ||
|
|
38793cbca5 | ||
|
|
aeceb2484a | ||
|
|
1197c561d4 | ||
|
|
5f22cfb360 | ||
|
|
377bbaef4e | ||
|
|
60ae0c15a2 | ||
|
|
67bf363d60 | ||
|
|
d849dbd053 | ||
|
|
a272960353 | ||
|
|
fb65ca001a | ||
|
|
5c2a411a5b | ||
|
|
2da40731dd | ||
|
|
7a4dc8644c | ||
|
|
7bc96c6158 | ||
|
|
a25d97bc31 | ||
|
|
9364125813 | ||
|
|
bad3c77098 | ||
|
|
b6dc14f4e8 | ||
|
|
48e7b9be45 | ||
|
|
e278f6e919 | ||
|
|
0db8b51ae4 | ||
|
|
42ce8735eb | ||
|
|
328b6d8075 | ||
|
|
767747015a | ||
|
|
7e58b8610e | ||
|
|
71daea4cd5 | ||
|
|
270a3e0c8a | ||
|
|
c4b2e961fa | ||
|
|
01aead2b86 | ||
|
|
0e9443880e | ||
|
|
ec1fc635c0 | ||
|
|
2ff7bfc462 | ||
|
|
0f897a8c26 | ||
|
|
b4b8db6389 | ||
|
|
6d760fe41d | ||
|
|
e498a37e0d | ||
|
|
a0844822d4 | ||
|
|
66ea7db1b4 | ||
|
|
603adf6a57 | ||
|
|
a0af8180a1 | ||
|
|
8f45c70273 | ||
|
|
0969177941 | ||
|
|
5c9b76f1e9 | ||
|
|
e1757a8ad9 | ||
|
|
136ed51512 | ||
|
|
d348c414a8 | ||
|
|
44fe00d018 | ||
|
|
8273680d7d | ||
|
|
d5893eeae8 | ||
|
|
b6de2aeaaf | ||
|
|
eb484b8039 | ||
|
|
bf85f18008 | ||
|
|
c8b9ca55b7 | ||
|
|
2aca1cdbb7 | ||
|
|
3d845a3708 | ||
|
|
e9a5ac204d | ||
|
|
0f8bc0ecb2 | ||
|
|
2665d6b12e | ||
|
|
14b98a093a | ||
|
|
568a9b29ad | ||
|
|
63b8be3296 | ||
|
|
aa232879a3 | ||
|
|
fea11c173e | ||
|
|
80e0c46bc6 | ||
|
|
3a8fe0f31d | ||
|
|
737ad46a29 | ||
|
|
927c3102cd | ||
|
|
5a98bcd529 | ||
|
|
9d30c9b027 | ||
|
|
25094740fb | ||
|
|
b1a4d4ead4 | ||
|
|
cfef9ef06e | ||
|
|
02e8dac00b | ||
|
|
53417ed1ab | ||
|
|
ec4429c171 | ||
|
|
b687376fd1 | ||
|
|
cf8b9fed4f | ||
|
|
00c32c90d7 | ||
|
|
818b27c1f8 | ||
|
|
588a01d5ac | ||
|
|
7dbcd1ffb5 | ||
|
|
f18e6e42ab | ||
|
|
d81cd6dab7 | ||
|
|
915d69ae52 | ||
|
|
4929acc0fb | ||
|
|
a66a1cf772 | ||
|
|
3a072ba378 | ||
|
|
5d4cde099e | ||
|
|
065b24e507 | ||
|
|
d354ededf4 | ||
|
|
a5d187885f | ||
|
|
a81ec38466 | ||
|
|
1da3a24c41 | ||
|
|
fbca3fa675 | ||
|
|
9a45167bd2 | ||
|
|
e7ff833751 | ||
|
|
a3c7644992 | ||
|
|
99069f4a0d | ||
|
|
d4ae319f9f | ||
|
|
5e3fb991e2 | ||
|
|
f3159e6884 | ||
|
|
25e9f02e8c | ||
|
|
afd3481698 | ||
|
|
d9c721fb90 | ||
|
|
8855ca03d3 | ||
|
|
fe0ae01419 | ||
|
|
8596ae69e8 | ||
|
|
1c2c853b8e | ||
|
|
6bc86f88b3 | ||
|
|
63cb7dd5b5 | ||
|
|
0ecbefd213 | ||
|
|
ba41a46099 | ||
|
|
915113ab54 | ||
|
|
a17ccf0646 | ||
|
|
2b5e9f3bbb | ||
|
|
7b5152267a | ||
|
|
c660a1e5be | ||
|
|
2733425f56 | ||
|
|
df8b32b8ea | ||
|
|
411d0d6ef0 | ||
|
|
3545e13947 | ||
|
|
6ef81eea66 | ||
|
|
6d1aae61a8 | ||
|
|
863e3abf09 | ||
|
|
20c1746666 | ||
|
|
4bc8c6aaa0 | ||
|
|
5b939f68f3 | ||
|
|
ff85313978 | ||
|
|
fcca13996e | ||
|
|
913dfefd70 | ||
|
|
ddccc3d280 | ||
|
|
a4ee904009 | ||
|
|
c27f0f2232 | ||
|
|
47df7e51d4 | ||
|
|
123f874561 | ||
|
|
d0b86ede3c | ||
|
|
541e43d94e | ||
|
|
7d03e935a6 | ||
|
|
c5c3c325f0 | ||
|
|
6f38c94d7b | ||
|
|
d7c71252f0 | ||
|
|
952ccec17d | ||
|
|
b0b5068e1d | ||
|
|
64b361aa4a | ||
|
|
aff8b57cce | ||
|
|
83e9908adb | ||
|
|
6de60def68 | ||
|
|
8d78c0c98f | ||
|
|
d85d0af2ed | ||
|
|
f755654918 | ||
|
|
861f8107ba | ||
|
|
4ff649ac2b | ||
|
|
725ba5ec07 | ||
|
|
1e5c9313f2 | ||
|
|
f841174fce | ||
|
|
79c8d93228 | ||
|
|
ae3f0f6b2f | ||
|
|
5a3b657f58 | ||
|
|
6bb34495ee | ||
|
|
cf2459dadd | ||
|
|
c43b8acb9c | ||
|
|
83b3631785 | ||
|
|
f32ab81934 | ||
|
|
8765bd9ab1 | ||
|
|
d3ed2382da | ||
|
|
b921d3319d | ||
|
|
d8a921311f | ||
|
|
703d18988a | ||
|
|
9f699a8b0f | ||
|
|
a7518f0557 | ||
|
|
10e432174d | ||
|
|
4e4850191e | ||
|
|
27f58c25b7 | ||
|
|
5e9da7c54c | ||
|
|
c35867e910 | ||
|
|
c7aa94c3fa | ||
|
|
99e8dea6d4 | ||
|
|
d4eb822615 | ||
|
|
006af69782 | ||
|
|
016185c131 | ||
|
|
4b1c9d83c8 | ||
|
|
471e537d38 | ||
|
|
918d1fd1c0 | ||
|
|
785b4799d8 | ||
|
|
76ebc5adeb | ||
|
|
88d5bf42f8 | ||
|
|
fa4a73bb1c | ||
|
|
26418275e8 | ||
|
|
9b3fc8b3d2 | ||
|
|
2b50af4c21 | ||
|
|
6a2dc297c7 | ||
|
|
291a948312 | ||
|
|
a8f94e7a84 | ||
|
|
ee6239a838 | ||
|
|
dbbc9c41af | ||
|
|
97c65436f6 | ||
|
|
496eae672e | ||
|
|
434c9b98f5 | ||
|
|
077905a66e | ||
|
|
a780c31d0a | ||
|
|
3bae35c67e | ||
|
|
c5e94d9bc3 | ||
|
|
80060d9e56 | ||
|
|
64ae2d5de7 | ||
|
|
ffc5faf30a | ||
|
|
874c165fce | ||
|
|
9d9aadd420 | ||
|
|
22dae457b7 | ||
|
|
b336ddc630 | ||
|
|
061fb00fea | ||
|
|
3f48a5d9ac | ||
|
|
698dfac070 | ||
|
|
bc5cb28d03 | ||
|
|
39fd459466 | ||
|
|
6fc37985b9 | ||
|
|
fac57fd7d7 | ||
|
|
5f0feaac51 | ||
|
|
70e0bba3d7 | ||
|
|
1f1160ae37 | ||
|
|
eba2c60c7f | ||
|
|
7aad1584e6 | ||
|
|
fae74fb8d4 | ||
|
|
f047570254 | ||
|
|
59c4ddef24 | ||
|
|
8cda0a0f7b | ||
|
|
41809d5d65 | ||
|
|
cf99ea1937 | ||
|
|
926b7a49d5 | ||
|
|
a5a5e85fb5 | ||
|
|
fc53139f66 | ||
|
|
6177e2d881 | ||
|
|
b6b86cce41 | ||
|
|
34deaae4b8 | ||
|
|
8b8e6e1209 | ||
|
|
25a84789f7 | ||
|
|
6a62072c98 | ||
|
|
6e9bac8b7f | ||
|
|
4a6e8b7281 | ||
|
|
e99f23d01d | ||
|
|
0613a01f8d | ||
|
|
8c2df1d34f | ||
|
|
2f66c11db3 | ||
|
|
dbb42319c2 | ||
|
|
90ccc5034e | ||
|
|
36d7f21e1b | ||
|
|
c35ab1a239 | ||
|
|
e785f296d7 | ||
|
|
0c66eb8120 | ||
|
|
3996241b17 | ||
|
|
e8780cb743 | ||
|
|
44d31f0424 | ||
|
|
52bdf7e077 | ||
|
|
23dbc2ad3d | ||
|
|
34b021e88e | ||
|
|
a287aa27e1 | ||
|
|
f79262c933 | ||
|
|
835034894c | ||
|
|
df18f5933a | ||
|
|
2dec82b336 | ||
|
|
e07570697e | ||
|
|
cfcd0d4bae | ||
|
|
262177f4f3 | ||
|
|
471b5efe91 | ||
|
|
7ff3705930 | ||
|
|
d6f3297f55 | ||
|
|
4ab303abb0 | ||
|
|
720d0d31cd | ||
|
|
d651fe9c5d | ||
|
|
bbce7bc65a | ||
|
|
5905e61ca4 | ||
|
|
d326da0d7d | ||
|
|
2a3f45f8c5 | ||
|
|
bef9f790d9 | ||
|
|
d5e94b2ca0 | ||
|
|
12ab91c900 | ||
|
|
d4d2f8665e | ||
|
|
753d4b70b6 | ||
|
|
ce0b626684 | ||
|
|
68c07e2951 | ||
|
|
3feb84ca79 | ||
|
|
6d38327d85 | ||
|
|
52669a0821 | ||
|
|
ee1ea7e529 | ||
|
|
b4aa58e0c0 | ||
|
|
84c3f70570 | ||
|
|
a80f1cf2e7 | ||
|
|
6e29ff0872 | ||
|
|
e8f452dabe | ||
|
|
5520c2ebd4 | ||
|
|
8a1005a136 | ||
|
|
b7c7e30e99 | ||
|
|
136ca508c5 | ||
|
|
c052e247dc | ||
|
|
609e6521b0 | ||
|
|
2f68515430 | ||
|
|
2714854e6f | ||
|
|
35c705787d | ||
|
|
a1ae155b4e | ||
|
|
645a0a61e7 | ||
|
|
326a40a9b7 | ||
|
|
f96de815b3 | ||
|
|
854e0a6818 | ||
|
|
581605e8e8 | ||
|
|
c548f4256a | ||
|
|
0577eef498 | ||
|
|
e8fa668ecb | ||
|
|
5cd4046e6e | ||
|
|
261b586e26 | ||
|
|
c8a6bbd528 | ||
|
|
9d3980aa19 | ||
|
|
c631c064ec | ||
|
|
246c3ac82d | ||
|
|
d09f620101 | ||
|
|
15e0e861e6 | ||
|
|
5f074bc40a | ||
|
|
57064c0d5a | ||
|
|
e3e1fa2a9e | ||
|
|
5f9fc55e45 | ||
|
|
d353b2bd87 | ||
|
|
26251a1b7c | ||
|
|
4e6ca116e1 | ||
|
|
cc002b823f | ||
|
|
5141341cb6 | ||
|
|
9aacf08473 | ||
|
|
1a74c352c6 | ||
|
|
7462e43c02 | ||
|
|
c9eb16cc60 | ||
|
|
dee115da18 | ||
|
|
7475a22e1e | ||
|
|
4f37933034 | ||
|
|
a9cf09ec1c | ||
|
|
d14a10d954 | ||
|
|
b9c823bcaa | ||
|
|
47afbdd91d | ||
|
|
06dd8845ea | ||
|
|
f6c327e09b | ||
|
|
f94fe3125e | ||
|
|
c33f7c4a04 | ||
|
|
a14450d2ac | ||
|
|
57c3e69eb4 | ||
|
|
34a56dcaf5 | ||
|
|
7b9b8348e1 | ||
|
|
9a1e1ab781 | ||
|
|
5d30379b79 | ||
|
|
059733574e | ||
|
|
21be856f58 | ||
|
|
a9e4003372 | ||
|
|
e4b4b44968 | ||
|
|
42b9acc50e | ||
|
|
ebd07cb543 | ||
|
|
260a4c1324 | ||
|
|
3367cc9319 | ||
|
|
3e8b0dce73 | ||
|
|
796eab07e1 | ||
|
|
412186c234 | ||
|
|
0962fbbecc | ||
|
|
ed80535521 | ||
|
|
9e7608e726 | ||
|
|
bf407e6c34 | ||
|
|
51c0c42207 | ||
|
|
efeb48e09e | ||
|
|
019149e565 | ||
|
|
2932d172a5 | ||
|
|
2245d82245 | ||
|
|
b93b7073ca | ||
|
|
714cdc091f | ||
|
|
4280122cc6 | ||
|
|
5c3c79e7c3 | ||
|
|
5449738861 | ||
|
|
7d3cf4804c | ||
|
|
90a468facb | ||
|
|
84f771ceb5 | ||
|
|
38501eb221 | ||
|
|
4bcc4951b5 | ||
|
|
606ca59616 | ||
|
|
03464d9131 | ||
|
|
d89602c8af | ||
|
|
ed211ca2dd | ||
|
|
d2f2dfc0a3 | ||
|
|
742700fabd | ||
|
|
11c1256f5e | ||
|
|
d056ae85c5 | ||
|
|
42d70a9078 | ||
|
|
2e44c4c186 | ||
|
|
0c22058d5e | ||
|
|
fdbf8e7f40 | ||
|
|
09b44d3623 | ||
|
|
a4f8f49eef | ||
|
|
69ec0ddd8c | ||
|
|
d77732b359 | ||
|
|
e21db57ad5 | ||
|
|
bdbec1ba64 | ||
|
|
adafb8f9f1 | ||
|
|
8adb5d481c | ||
|
|
4deb66636a | ||
|
|
9e86d7cbc8 | ||
|
|
7350475d36 | ||
|
|
9f85de3d94 | ||
|
|
cf7c7937da | ||
|
|
5b42e83df2 | ||
|
|
a8458d3156 | ||
|
|
e6e99716ad | ||
|
|
866c2fedc8 | ||
|
|
48bd667b67 | ||
|
|
77b155c3b9 | ||
|
|
76b1ee89fa | ||
|
|
ca207808df | ||
|
|
b31a0b42ec | ||
|
|
df8929e575 | ||
|
|
948eb6f1ca | ||
|
|
c624654f6f | ||
|
|
25a136afca | ||
|
|
67eec34a5c | ||
|
|
3c9a89576d | ||
|
|
d409ed1adb | ||
|
|
5b99089997 | ||
|
|
e6623c7d45 | ||
|
|
84adc788ec | ||
|
|
a722645609 | ||
|
|
a17b08f70a | ||
|
|
82f187853c | ||
|
|
6147b8d858 | ||
|
|
a964b894c0 | ||
|
|
4a60d91afc | ||
|
|
3d9fe860ef | ||
|
|
394c7da914 | ||
|
|
3b17e145f5 | ||
|
|
da8604b4ce | ||
|
|
bdbd2bff57 | ||
|
|
8ed4e0718d | ||
|
|
acfc5e6ca0 | ||
|
|
c8fbd90532 | ||
|
|
616a66b7dd | ||
|
|
31caae0363 | ||
|
|
ef77d53de2 | ||
|
|
d4f10c7da6 | ||
|
|
c3c9790cd1 | ||
|
|
cb6c7824ee | ||
|
|
284c441367 | ||
|
|
272fa05fea | ||
|
|
4491492a11 | ||
|
|
4dd74fbd9c | ||
|
|
fa509297f4 | ||
|
|
1095760c4e | ||
|
|
74ec8b3133 | ||
|
|
bb47c46c31 | ||
|
|
511562bba1 | ||
|
|
b9037d1566 | ||
|
|
8060ffedf3 | ||
|
|
248aa02777 | ||
|
|
d3c11bd5ba | ||
|
|
fa1fb8e58b | ||
|
|
3c4d3ef93e | ||
|
|
56448ab70d | ||
|
|
a24e5b1a2f | ||
|
|
3e354e2ece | ||
|
|
9b7143ca86 | ||
|
|
a6c95ca2da | ||
|
|
23437bcc5c | ||
|
|
09c00b291b | ||
|
|
037e37eab4 | ||
|
|
859aa1d28c | ||
|
|
271303c57a | ||
|
|
02a602fad3 | ||
|
|
459257dae9 | ||
|
|
307b763b8d | ||
|
|
32af23b0c1 | ||
|
|
28e71b47cb | ||
|
|
96bb073014 | ||
|
|
9489bd9849 | ||
|
|
3ecc2bdf3e | ||
|
|
964970924b | ||
|
|
df7acb2af7 | ||
|
|
6fad29454d | ||
|
|
9d8130568c | ||
|
|
eb7fe10865 | ||
|
|
2ed120d266 | ||
|
|
94d14b4325 | ||
|
|
5d366c9605 | ||
|
|
b387b2034e | ||
|
|
c75c626b38 | ||
|
|
c7bb34aace | ||
|
|
d2039b4c73 | ||
|
|
429b22613a | ||
|
|
dae99fc3ca | ||
|
|
5688983e1f | ||
|
|
8d90ece27a | ||
|
|
a4ee72dbaf | ||
|
|
c3420b0198 | ||
|
|
45db11de94 | ||
|
|
734646bccd | ||
|
|
b2e49fd0a3 | ||
|
|
fa03cacef7 | ||
|
|
3ac9bd32b3 | ||
|
|
bf6744686e | ||
|
|
28fd97c08c | ||
|
|
adf53b5da9 | ||
|
|
88b1b593bf | ||
|
|
b464e1adba | ||
|
|
e1554c6f89 | ||
|
|
66e4dc7169 | ||
|
|
33bd476c85 | ||
|
|
3a5f22d99d | ||
|
|
591522ecfd | ||
|
|
9b1c03d10e | ||
|
|
f6197c06d5 | ||
|
|
0138886bed | ||
|
|
a49a0d627f | ||
|
|
6bcbf53743 | ||
|
|
47710949a0 | ||
|
|
a487b71bd7 | ||
|
|
04a0fa5831 | ||
|
|
283e11e24b | ||
|
|
c7b297cf68 | ||
|
|
46d08aedd8 | ||
|
|
d978b6d256 | ||
|
|
3e32b94f02 | ||
|
|
6772e7c6b1 | ||
|
|
b47547973f | ||
|
|
bdf0d29c20 | ||
|
|
c4bef81edf | ||
|
|
754c92d4e2 | ||
|
|
7a27b520ff | ||
|
|
f90bb55383 | ||
|
|
1fd43c289a | ||
|
|
0234d37743 | ||
|
|
22cd5d61d4 | ||
|
|
35226d3eb3 | ||
|
|
36dedfa413 | ||
|
|
48f721bf6e | ||
|
|
9a9a83d270 | ||
|
|
c360601735 | ||
|
|
e8e8c877b1 | ||
|
|
fb38d1ae95 | ||
|
|
8c0b196f21 | ||
|
|
2b3818ce60 | ||
|
|
2077defc24 | ||
|
|
bb293b7742 | ||
|
|
aeb298d012 | ||
|
|
b5e227befd | ||
|
|
0d4b7069d8 | ||
|
|
18b62e535e | ||
|
|
8a6260d40a | ||
|
|
7cbc0dc18e | ||
|
|
cf3682e3f1 | ||
|
|
b0bc5e65e2 | ||
|
|
ecc7f66e4e | ||
|
|
31d5682d6b | ||
|
|
dbdcf5b238 | ||
|
|
f95989e7e2 | ||
|
|
940eae3edd | ||
|
|
817ea15e9c | ||
|
|
05e090db7f | ||
|
|
243684844f | ||
|
|
bedee9e37c | ||
|
|
d65ff1f023 | ||
|
|
b27164347c | ||
|
|
3e54d86e60 | ||
|
|
b5a55ba93b | ||
|
|
131495dc91 | ||
|
|
b7de9abb04 | ||
|
|
26d61373ba | ||
|
|
bc4f4ad9c0 | ||
|
|
1842a727ea | ||
|
|
5706605561 | ||
|
|
b0b11a9244 | ||
|
|
8ee10be253 | ||
|
|
1f439ef2b6 | ||
|
|
d5234dd1fd | ||
|
|
3716e921f6 | ||
|
|
f16d6127bf | ||
|
|
89d0971d31 | ||
|
|
2070c982e7 | ||
|
|
241f57d8f9 | ||
|
|
4a05841325 | ||
|
|
15a775f918 | ||
|
|
f68d124dcc | ||
|
|
966b3a0581 | ||
|
|
aed7cdf158 | ||
|
|
08b2d4f983 | ||
|
|
eba95e3f03 | ||
|
|
e06e8b2453 | ||
|
|
b3f68c7203 | ||
|
|
4c6a31b44e | ||
|
|
73339bc7f3 | ||
|
|
a79992bc75 | ||
|
|
a999051291 | ||
|
|
4323aa482a | ||
|
|
bd88e8b4b1 | ||
|
|
84f238fdea | ||
|
|
d631a32fb3 | ||
|
|
a8709f0381 | ||
|
|
58b676e4be | ||
|
|
f767dea2a0 | ||
|
|
c9e28a2be4 | ||
|
|
b4fcb04711 | ||
|
|
9b6c2ca4d7 | ||
|
|
91968d84fc | ||
|
|
7c77013552 | ||
|
|
c34e33bf1e | ||
|
|
f701c02fdd | ||
|
|
5d7b79c220 | ||
|
|
9020ffd21b | ||
|
|
b57054b665 | ||
|
|
89e39c8851 | ||
|
|
ff26c55044 | ||
|
|
624fa4dccc | ||
|
|
14cac37d7b | ||
|
|
59e6d72e3d | ||
|
|
51ffa4f62b | ||
|
|
607525f84b | ||
|
|
005f49f97d | ||
|
|
8760ad83bc | ||
|
|
a754196899 | ||
|
|
8e98d2c40b | ||
|
|
f35f127765 | ||
|
|
0b0f70bc48 | ||
|
|
bee199735f | ||
|
|
302aea2f15 | ||
|
|
d091e84694 | ||
|
|
b1d1f4fefd | ||
|
|
a98bf76d19 | ||
|
|
adca460e47 | ||
|
|
4580ac1785 | ||
|
|
8ae993aef5 | ||
|
|
5eb919e201 | ||
|
|
022211cdaf | ||
|
|
227216f023 | ||
|
|
b4e3a0412c | ||
|
|
d78218b2f5 | ||
|
|
041a7517b2 | ||
|
|
d56c19ccc4 | ||
|
|
6f91109dbe | ||
|
|
80dae9d522 | ||
|
|
18314f9796 | ||
|
|
e01d0bcc9d | ||
|
|
269e2182e4 | ||
|
|
1ecb006291 | ||
|
|
fbbb2e03cb | ||
|
|
d4fbc3a14d | ||
|
|
4626a85dbf | ||
|
|
a3d5d0f889 | ||
|
|
5ed0599cec | ||
|
|
ec3786ef0d | ||
|
|
813df31b5f | ||
|
|
7cbcddc4ff | ||
|
|
18e020187e | ||
|
|
a611e0b955 | ||
|
|
9a5371b172 | ||
|
|
d92bc77a34 | ||
|
|
a99a7db70c | ||
|
|
d83251d431 | ||
|
|
73cfa6bbb6 | ||
|
|
7b5b739e31 | ||
|
|
e3203bce99 | ||
|
|
91423446fd | ||
|
|
2991bbe927 | ||
|
|
98aa9e1c56 | ||
|
|
1a039eecbd | ||
|
|
44ded7bfc3 | ||
|
|
92cdd224d4 | ||
|
|
50a4a1fded | ||
|
|
5da38359ad | ||
|
|
69767e7d20 | ||
|
|
a77e31b525 | ||
|
|
0fb133830c | ||
|
|
f0c5dfd603 | ||
|
|
a75834cab9 | ||
|
|
d33269a870 | ||
|
|
a7081fedf7 | ||
|
|
e807f7cd97 | ||
|
|
37e0943783 | ||
|
|
e164b980b4 | ||
|
|
de15cf9778 | ||
|
|
bb78f964cf | ||
|
|
4e80ce902e | ||
|
|
a985544627 | ||
|
|
de4f43134a | ||
|
|
55544c5f60 | ||
|
|
4922eea5f0 | ||
|
|
921b728373 | ||
|
|
77dd1d76ac | ||
|
|
707f3da005 | ||
|
|
0ca8286172 | ||
|
|
7ccf478a56 | ||
|
|
2cb411c5d7 | ||
|
|
4f66234773 | ||
|
|
8aa8b6ca2d | ||
|
|
fa5e522c1a | ||
|
|
5b94aeac77 | ||
|
|
047e8e2cf3 | ||
|
|
a9ccf1cac4 | ||
|
|
45519c9249 | ||
|
|
33d67f2453 | ||
|
|
e9ce528ed7 | ||
|
|
3b7960d851 | ||
|
|
054ac83d2b | ||
|
|
8b38bfc7c5 | ||
|
|
065614f0a0 | ||
|
|
5e980ccd37 | ||
|
|
21fdaecfa0 | ||
|
|
12f4c55ff0 | ||
|
|
cded3bd65b | ||
|
|
6c1c711e08 | ||
|
|
2ef63f24a9 | ||
|
|
5e1c6029e0 | ||
|
|
860c99071d | ||
|
|
5cf8d93a09 | ||
|
|
313cab3d56 | ||
|
|
d6bbce2194 | ||
|
|
382348adf4 | ||
|
|
5b970ac4a0 | ||
|
|
42afd54598 | ||
|
|
afeb57549c | ||
|
|
7e5ee477d8 | ||
|
|
3ac00170b2 | ||
|
|
fa42fa81eb | ||
|
|
8d5e7e4335 | ||
|
|
303d677197 | ||
|
|
996a3013f6 | ||
|
|
f5ce3af797 | ||
|
|
98a41e8356 | ||
|
|
56785bde0c | ||
|
|
f0c7c5ed23 | ||
|
|
153b206dd0 | ||
|
|
fa21ee4548 | ||
|
|
0a98198763 | ||
|
|
1d8f716c71 | ||
|
|
ab3c963bc4 | ||
|
|
97494d747b | ||
|
|
9248e9ed41 | ||
|
|
db326bbf44 | ||
|
|
fb23ffd61c | ||
|
|
8d844fef68 | ||
|
|
a72c960e80 | ||
|
|
da3ef78204 | ||
|
|
8344996895 | ||
|
|
75471ff721 | ||
|
|
ad358decce | ||
|
|
e00192e803 | ||
|
|
653506c252 | ||
|
|
d1f264cd90 | ||
|
|
34aa7fb750 | ||
|
|
ff7c5f5e9d | ||
|
|
36717c6831 | ||
|
|
1440e3c5ad | ||
|
|
4aba771cce | ||
|
|
b61b925544 | ||
|
|
c4e0f47570 | ||
|
|
0339b49bdf | ||
|
|
64db7233b9 | ||
|
|
5cdda33859 | ||
|
|
8dec69ea4f | ||
|
|
7e7c15c3b9 | ||
|
|
312cf0bf56 | ||
|
|
1447d0fa40 | ||
|
|
b61e800764 | ||
|
|
4b0a1c06c7 | ||
|
|
20fa442b23 | ||
|
|
a413f12d9c | ||
|
|
dc30b30bf7 | ||
|
|
1b68a4f270 | ||
|
|
c2aabeaabf | ||
|
|
6f290e7125 | ||
|
|
7b524674c6 | ||
|
|
a18969824b | ||
|
|
d7ab43cee5 | ||
|
|
7321aab67e | ||
|
|
c4fd4dcab3 | ||
|
|
e88abf27c2 | ||
|
|
8d953b0952 | ||
|
|
2fe84d937c | ||
|
|
e8282dc406 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -2,7 +2,9 @@
|
||||
*.swp
|
||||
|
||||
# log and exec file
|
||||
cmake_targets/log/
|
||||
cmake_targets/*/build/
|
||||
cmake_targets/ran_build/
|
||||
log/
|
||||
lte_build_oai/
|
||||
targets/bin/
|
||||
cmake_targets/nas_sim_tools/build/
|
||||
|
||||
28
.vscode/launch.json
vendored
Normal file
28
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "enter program name, for example ${workspaceFolder}/a.exe",
|
||||
"args": [],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceFolder}",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "/path/to/gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
58
README.txt
58
README.txt
@@ -2,7 +2,7 @@ OpenAirInterface is under OpenAirInterface Software Alliance license.
|
||||
├── http://www.openairinterface.org/?page_id=101
|
||||
├── http://www.openairinterface.org/?page_id=698
|
||||
|
||||
It is distributed under OAI Public License V1.0.
|
||||
It is distributed under OAI Public License V1.1.
|
||||
The license information is distributed under LICENSE file in the same directory.
|
||||
Please see NOTICE.txt for third party software that is included in the sources.
|
||||
|
||||
@@ -43,17 +43,36 @@ openairinterface5g
|
||||
|
||||
RELEASE NOTES:
|
||||
|
||||
v0.1 -> Last stable commit on develop branch before enhancement-10-harmony
|
||||
v0.2 -> Merge of enhancement-10-harmony to include NGFI RRH + New Interface for RF/BBU
|
||||
v0.3 -> Last stable commit on develop branch before the merge of feature-131-new-license. This is the last commit with GPL License
|
||||
v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
|
||||
v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
|
||||
v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB
|
||||
v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
|
||||
v0.6 -> RRH functionality, UE greatly improved, better TDD support,
|
||||
a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not
|
||||
work, you need to use v0.5.2 for that.
|
||||
v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.
|
||||
v1.1.0 -> July 2019. This version adds the following implemented features:
|
||||
* Experimental support of LTE-M
|
||||
- Single LTE-M UE attachment, legacy-LTE UE attachment is disabled
|
||||
* X2 interface and handover (also X2-U interface)
|
||||
- In FDD and TDD
|
||||
* CU/DU split (F1 interface)
|
||||
- Tested only in FDD
|
||||
* CDRX
|
||||
- Tested only in FDD
|
||||
* Experimental eMBMS support (only on UE side)
|
||||
* Experimental multi-RRU support
|
||||
- Tested only in TDD
|
||||
This version has an improved code quality:
|
||||
* Simplification of the Build System
|
||||
- A single build includes all full-stack simulators, S1/noS1 modes and one HW platform (such as USRP, BladeRF, ...)
|
||||
* TUN interface is now used as default for the data plane
|
||||
- for UE, eNB-noS1 and UE-noS1
|
||||
* Code Cleanup
|
||||
* Better Static Code Analysis:
|
||||
- Limited number of errors in cppcheck
|
||||
- Important Decrease on high Impact errors in CoverityScan
|
||||
* Better Test Coverage in Continuous Integration:
|
||||
- TM2, CDRX, IF4.5, F1
|
||||
- OAI UE is tested in S1 and noS1 modes with USRP board
|
||||
- Multi-RRU TDD mode
|
||||
- X2 Handover in FDD mode
|
||||
|
||||
v1.0.3 -> June 2019: Bug fix for LimeSuite v19.04.0 API
|
||||
v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD
|
||||
v1.0.1 -> February 2019: Bug fix for the UE L1 simulator.
|
||||
v1.0.0 -> January 2019. This version first implements the architectural split described in doc/oai_lte_enb_func_split_arch.png picture.
|
||||
Only FAPI, nFAPI and IF4.5 interfaces are implemented.
|
||||
Repository tree structure prepares future integrations of features such as LTE-M, nbIOT or 5G-NR.
|
||||
@@ -61,6 +80,15 @@ v1.0.0 -> January 2019. This version first implements the architectural split de
|
||||
S1-flex has been introduced.
|
||||
New tools: config library, telnet server, ...
|
||||
A lot of bugfixes and a proper automated Continuous Integration process validates contributions.
|
||||
v1.0.1 -> February 2019: Bug fix for the UE L1 simulator.
|
||||
v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD
|
||||
v1.0.3 -> June 2019: Bug fix for LimeSuite v19.04.0 API
|
||||
|
||||
v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.
|
||||
v0.6 -> RRH functionality, UE greatly improved, better TDD support,
|
||||
a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not
|
||||
work, you need to use v0.5.2 for that.
|
||||
v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
|
||||
v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB
|
||||
v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
|
||||
v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
|
||||
v0.3 -> Last stable commit on develop branch before the merge of feature-131-new-license. This is the last commit with GPL License
|
||||
v0.2 -> Merge of enhancement-10-harmony to include NGFI RRH + New Interface for RF/BBU
|
||||
v0.1 -> Last stable commit on develop branch before enhancement-10-harmony
|
||||
|
||||
@@ -44,7 +44,7 @@ pipeline {
|
||||
disableConcurrentBuilds()
|
||||
timestamps()
|
||||
gitLabConnection('OAI GitLab')
|
||||
gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build phy-sim", "Build eNb-ethernet", "Build UE-ethernet", "Analysis with cppcheck", "Test phy-sim", "Test basic-sim", "Test L2-sim", "Test-Mono-FDD-Band7", "Test-Mono-TDD-Band40", "Test-IF4p5-FDD-Band7", "Test-IF4p5-TDD-Band40", "Test-Mono-FDD-Band13"])
|
||||
gitlabBuilds(builds: ["Build gNB-USRP", "Build nr-UE-USRP", "Build eNB-USRP", "Build basic-sim", "Build phy-sim", "Build eNB-ethernet", "Build UE-ethernet", "Analysis with cppcheck", "Test phy-sim", "Test basic-sim", "Test L2-sim", "Test-Mono-FDD-Band7", "Test-Mono-TDD-Band40", "Test-IF4p5-FDD-Band7", "Test-IF4p5-TDD-Band40", "Test-Mono-FDD-Band13", "Test-IF4p5-TDD-Band38-Multi-RRU" , "Test-Mono-FDD-Band13-X2-HO", "Test-TDD-Band78-gNB-NR-UE"])
|
||||
ansiColor('xterm')
|
||||
}
|
||||
|
||||
@@ -57,6 +57,9 @@ pipeline {
|
||||
|
||||
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
|
||||
def allParametersPresent = true
|
||||
if (env.TESTPLATFORM_OWNER) {
|
||||
echo "Platform is ${env.TESTPLATFORM_OWNER}"
|
||||
}
|
||||
|
||||
if (params.RedHatRemoteServer == null) {
|
||||
allParametersPresent = false
|
||||
@@ -128,8 +131,8 @@ pipeline {
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.FlexRanRtcGitLabRepository_Credentials}", usernameVariable: 'git_username', passwordVariable: 'git_password']
|
||||
]) {
|
||||
sh "git clone https://${git_username}:${git_password}@gitlab.eurecom.fr/flexran/flexran-rtc.git . > ../git_clone.log 2>&1"
|
||||
sh "git checkout develop >> ../git_clone.log 2>&1"
|
||||
}
|
||||
sh "sed -i -e 's#add-apt-repository.*cleishm.*neo4j#add-apt-repository ppa:cleishm/neo4j -y#' -e 's#libneo4j-client-dev#libneo4j-client-dev -y#' tools/install_dependencies"
|
||||
sh "zip -r -qq flexran.zip ."
|
||||
}
|
||||
}
|
||||
@@ -154,6 +157,22 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- gnb-usrp") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- nr-ue-usrp") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- enb-usrp") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
@@ -162,6 +181,14 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- phy-sim") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- enb-ethernet") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
@@ -177,15 +204,7 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Start VM -- phy-sim") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
stage ("Start VM -- cppcheck") {
|
||||
steps {
|
||||
timeout (time: 5, unit: 'MINUTES') {
|
||||
@@ -205,15 +224,6 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build eNb-USRP") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build eNb-USRP") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build basic simulator") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build basic-sim") {
|
||||
@@ -223,9 +233,45 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build eNb-ethernet") {
|
||||
stage ("Build 5G gNB-USRP") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build eNb-ethernet") {
|
||||
gitlabCommitStatus(name: "Build gNB-USRP") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build 5G NR-UE-USRP") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build nr-UE-USRP") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant nr-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build eNB-USRP") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build eNB-USRP") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build physical simulators") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build phy-sim") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build eNB-ethernet") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build eNB-ethernet") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
@@ -241,21 +287,12 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build physical simulators") {
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build phy-sim") {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build eNb-USRP on Red Hat") {
|
||||
stage ("Build eNB-USRP on Red Hat") {
|
||||
when {
|
||||
expression {doRedHatBuild}
|
||||
}
|
||||
steps {
|
||||
gitlabCommitStatus(name: "Build eNb-USRP-RHE") {
|
||||
gitlabCommitStatus(name: "Build eNB-USRP-RHE") {
|
||||
script {
|
||||
try {
|
||||
withCredentials([
|
||||
@@ -282,7 +319,7 @@ pipeline {
|
||||
always {
|
||||
script {
|
||||
dir ('archives') {
|
||||
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth red_hat"
|
||||
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth gnb_usrp nrue_usrp red_hat"
|
||||
}
|
||||
if(fileExists('archives/vm_build_logs.zip')) {
|
||||
archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
|
||||
@@ -328,7 +365,7 @@ pipeline {
|
||||
stage ("Test physical simulators") {
|
||||
steps {
|
||||
script {
|
||||
timeout (time: 20, unit: 'MINUTES') {
|
||||
timeout (time: 90, unit: 'MINUTES') {
|
||||
try {
|
||||
gitlabCommitStatus(name: "Test phy-sim") {
|
||||
sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||
@@ -504,6 +541,7 @@ pipeline {
|
||||
stage ("Test MONOLITHIC - FDD - Band 13 - B210") {
|
||||
steps {
|
||||
script {
|
||||
sh "sleep 60"
|
||||
triggerSlaveJob ('eNB-CI-MONO-FDD-Band13-B210', 'Test-Mono-FDD-Band13')
|
||||
}
|
||||
}
|
||||
@@ -520,6 +558,45 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Test X2 Handover - FDD - Band 13 - B210") {
|
||||
steps {
|
||||
script {
|
||||
sh "sleep 60"
|
||||
triggerSlaveJob ('eNB-CI-MONO-FDD-Band13-X2HO-B210', 'Test-Mono-FDD-Band13-X2-HO')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
finalizeSlaveJob('eNB-CI-MONO-FDD-Band13-X2HO-B210')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Test IF4p5 - TDD - Band 38 - B210 - MultiRRU") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('eNB-CI-IF4p5-TDD-Band38-MultiRRU-B210', 'Test-IF4p5-TDD-Band38-Multi-RRU')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
finalizeSlaveJob('eNB-CI-IF4p5-TDD-Band38-MultiRRU-B210')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Test OAI UE - FDD - Band 20 - B200") {
|
||||
steps {
|
||||
script {
|
||||
@@ -560,6 +637,25 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Test OAI NR UE - OAI gNB - TDD - Band 78 - N300") {
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('gNB-nrUE-MONO-TDD-Band78-N300', 'Test-TDD-Band78-gNB-NR-UE')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
finalizeSlaveJob('gNB-nrUE-MONO-TDD-Band78-N300')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
|
||||
376
ci-scripts/Jenkinsfile-poll-gNB-UE
Normal file
376
ci-scripts/Jenkinsfile-poll-gNB-UE
Normal file
@@ -0,0 +1,376 @@
|
||||
#!/bin/groovy
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
|
||||
// Abstraction function to send social media messages:
|
||||
// like on Slack or Mattermost
|
||||
def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
|
||||
if (params.pipelineUsesSlack != null) {
|
||||
if (params.pipelineUsesSlack) {
|
||||
slackSend channel: pipeChannel, color: pipeColor, message: pipeMessage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Location of the test XML file to be run
|
||||
def testXMLFile = params.pythonTestXmlFile
|
||||
def mainPythonAllXmlFiles = ""
|
||||
def buildStageStatus = true
|
||||
|
||||
// Name of the phone resource
|
||||
def ciUSRPsResource = params.USRPsResource
|
||||
|
||||
// Terminate Status
|
||||
def termUE = 0
|
||||
def termENB = 1
|
||||
def termStatusArray = new Boolean[2]
|
||||
termStatusArray[termUE] = false
|
||||
termStatusArray[termENB] = false
|
||||
|
||||
// Global Parameters.
|
||||
def eNB_Repository
|
||||
def eNB_Branch
|
||||
def eNB_CommitID
|
||||
def eNB_AllowMergeRequestProcess = false
|
||||
def eNB_TargetBranch = "develop-nr"
|
||||
def GIT_COMMIT_AUTHOR
|
||||
def GIT_COMMIT_EMAIL
|
||||
def testStageName
|
||||
// Global Parameters not to break the main.py command line and code.
|
||||
def ADB_IPAddress = "none"
|
||||
def ADB_Username = "none"
|
||||
def ADB_Password = "none"
|
||||
def EPC_IPAddress = "none"
|
||||
def EPC_Username = "none"
|
||||
def EPC_Password = "none"
|
||||
|
||||
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
label pythonExecutor
|
||||
}
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
gitLabConnection('OAI GitLab')
|
||||
ansiColor('xterm')
|
||||
lock (ciUSRPsResource)
|
||||
}
|
||||
|
||||
stages {
|
||||
stage ('Retrieve latest from branch') {
|
||||
steps {
|
||||
script {
|
||||
checkout([$class: 'GitSCM', branches: [[name: "${params.Branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://gitlab.eurecom.fr/oai/openairinterface5g.git']]])
|
||||
sh "git clean -x -d -ff"
|
||||
sh "git log -n1"
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("print latest commit info") {
|
||||
steps {
|
||||
script {
|
||||
echo "Building on: "
|
||||
echo " Repository -- ${GIT_URL}"
|
||||
echo " Branch -- ${GIT_BRANCH}"
|
||||
echo " Commit -- ${GIT_COMMIT}"
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Verify Parameters") {
|
||||
steps {
|
||||
script {
|
||||
JOB_TIMESTAMP = sh returnStdout: true, script: 'date --utc --rfc-3339=seconds | sed -e "s#+00:00##"'
|
||||
JOB_TIMESTAMP = JOB_TIMESTAMP.trim()
|
||||
|
||||
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
|
||||
def allParametersPresent = true
|
||||
|
||||
// It is already too late to check it
|
||||
if (params.pythonExecutor != null) {
|
||||
echo "eNB CI executor node : ${pythonExecutor}"
|
||||
}
|
||||
if (params.eNB_Repository == null) {
|
||||
eNB_Repository = GIT_URL
|
||||
} else {
|
||||
eNB_Repository = params.eNB_Repository
|
||||
}
|
||||
echo "eNB_Repository = ${eNB_Repository}"
|
||||
if (params.eNB_Branch== null) {
|
||||
eNB_Branch = GIT_BRANCH
|
||||
} else {
|
||||
eNB_Branch = params.eNB_Branch
|
||||
}
|
||||
echo "eNB_Branch = ${eNB_Branch}"
|
||||
if (params.eNB_CommitID == null) {
|
||||
eNB_CommitID = GIT_COMMIT
|
||||
} else {
|
||||
eNB_CommitID = params.eNB_CommitID
|
||||
}
|
||||
echo "eNB_CommitID = ${eNB_CommitID}"
|
||||
// If not present picking a default Stage Name
|
||||
if (params.pipelineTestStageName == null) {
|
||||
// picking default
|
||||
testStageName = 'Template Test Stage'
|
||||
} else {
|
||||
testStageName = params.pipelineTestStageName
|
||||
}
|
||||
|
||||
if (params.USRPsResource == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
|
||||
if (params.eNB_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.UE_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB_SourceCodePath == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.UE_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
GIT_COMMIT_AUTHOR = sh (
|
||||
script: 'git show -s --pretty=%an',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
echo "The author of the commit is: ${GIT_COMMIT_AUTHOR}"
|
||||
GIT_COMMIT_EMAIL = sh (
|
||||
script: 'git show -s --pretty=%ae',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
echo "The email of the author is: ${GIT_COMMIT_EMAIL}"
|
||||
if (allParametersPresent) {
|
||||
echo "All parameters are present"
|
||||
} else {
|
||||
echo "Some parameters are missing"
|
||||
sh "./ci-scripts/fail.sh"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Build and Test") {
|
||||
steps {
|
||||
script {
|
||||
dir ('ci-scripts') {
|
||||
// If not present picking a default XML file
|
||||
if (params.pythonTestXmlFile == null) {
|
||||
// picking default
|
||||
testXMLFile = 'xml_files/gnb_usrp_build.xml'
|
||||
echo "Test XML file(default): ${testXMLFile}"
|
||||
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
||||
} else {
|
||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||
for (xmlFile in myXmlTestSuite) {
|
||||
if (fileExists(xmlFile)) {
|
||||
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||
echo "Test XML file : ${xmlFile}"
|
||||
}
|
||||
}
|
||||
}
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password']
|
||||
]) {
|
||||
sh "python3 main.py --mode=InitiateHtml --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} ${mainPythonAllXmlFiles}"
|
||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||
for (xmlFile in myXmlTestSuite) {
|
||||
if (fileExists(xmlFile)) {
|
||||
try {
|
||||
sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --UEIPAddress=${params.eNB_IPAddress} --UEUserName=${eNB_Username} --UEPassword=${eNB_Password} --UESourceCodePath=${params.eNB_SourceCodePath} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNB_AllowMerge=${eNB_AllowMergeRequestProcess} --eNBTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --EPCIPAddress=${EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=/tmp/${EPC_Username} --EPCType=ltebox --XMLTestFile=${xmlFile}"
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
buildStageStatus = false
|
||||
}
|
||||
}
|
||||
}
|
||||
sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage ("Terminate") {
|
||||
parallel {
|
||||
stage('Terminate NR UE') {
|
||||
steps {
|
||||
echo '\u2705 \u001B[32mTerminate NR UE\u001B[0m'
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password']
|
||||
]) {
|
||||
sh "python3 ci-scripts/main.py --mode=TerminateOAIUE --UEIPAddress=${params.eNB_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password}"
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
script {
|
||||
termStatusArray[termUE] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Terminate NR eNB') {
|
||||
steps {
|
||||
echo '\u2705 \u001B[32mTerminate NR eNB\u001B[0m'
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
sh "python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
script {
|
||||
termStatusArray[termENB] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Log Collection') {
|
||||
parallel {
|
||||
stage('Log Collection (gNB and NR UE - Build)') {
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
echo '\u2705 \u001B[32mLog Collection (gNB and NR UE - Build)\u001B[0m'
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
|
||||
|
||||
echo '\u2705 \u001B[32mLog Transfer (gNB and NR UE - Build)\u001B[0m'
|
||||
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
|
||||
}
|
||||
script {
|
||||
if(fileExists("build.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "build.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Log Collection (gNB - Run)') {
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
echo '\u2705 \u001B[32mLog Collection (gNB - Run)\u001B[0m'
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
|
||||
|
||||
echo '\u2705 \u001B[32mLog Transfer (gNB - Run)\u001B[0m'
|
||||
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/enb.log.zip ./enb.log.${env.BUILD_ID}.zip || true"
|
||||
}
|
||||
script {
|
||||
if(fileExists("enb.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "enb.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
if(fileExists("ci-scripts/test_results.html")) {
|
||||
sh "mv ci-scripts/test_results.html test_results-${JOB_NAME}.html"
|
||||
sh "sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's@build #TEMPLATE_BUILD_ID@build #${BUILD_ID}@' -e 's#Build-ID: TEMPLATE_BUILD_ID#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_STAGE_NAME#${testStageName}#' test_results-${JOB_NAME}.html"
|
||||
archiveArtifacts "test_results-${JOB_NAME}.html"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Log Collection (NR UE - Run)') {
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
echo '\u2705 \u001B[32mLog Collection (gNB - Run)\u001B[0m'
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollectOAIUE --UEIPAddress=${params.eNB_IPAddress} --UEUserName=${eNB_Username} --UEPassword=${eNB_Password} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --UESourceCodePath=${params.eNB_SourceCodePath}"
|
||||
|
||||
echo '\u2705 \u001B[32mLog Transfer (gNB - Run)\u001B[0m'
|
||||
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/ue.log.zip ./ue.log.${env.BUILD_ID}.zip || true"
|
||||
}
|
||||
script {
|
||||
if(fileExists("ue.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "ue.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
if ("MERGE".equals(env.gitlabActionType)) {
|
||||
echo "This is a MERGE event"
|
||||
} else {
|
||||
gitlabCommitStatus(name: "Test-gNB-nrUE") {
|
||||
if ((currentBuild.result == null) || (currentBuild.result == 'SUCCESS')) {
|
||||
echo "Setting the gitlab commit status to pass"
|
||||
} else {
|
||||
sh "./ci-scripts/fail.sh"
|
||||
}
|
||||
}
|
||||
}
|
||||
emailext attachmentsPattern: '*results*.html',
|
||||
body: '''Hi,
|
||||
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
|
||||
|
||||
Regards,
|
||||
OAI CI Team''',
|
||||
replyTo: 'no-reply@openairinterface.org',
|
||||
subject: '$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!',
|
||||
to: GIT_COMMIT_EMAIL
|
||||
}
|
||||
}
|
||||
success {
|
||||
script {
|
||||
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ")"
|
||||
if ("MERGE".equals(env.gitlabActionType)) {
|
||||
echo "This is a MERGE event"
|
||||
//addGitLabMRComment comment: message
|
||||
def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")"
|
||||
sendSocialMediaMessage('ci-test', 'good', message2)
|
||||
} else {
|
||||
sendSocialMediaMessage('ci-test', 'good', message)
|
||||
}
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ")"
|
||||
if ("MERGE".equals(env.gitlabActionType)) {
|
||||
echo "This is a MERGE event"
|
||||
//addGitLabMRComment comment: message
|
||||
def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")"
|
||||
sendSocialMediaMessage('ci-test', 'danger', message2)
|
||||
} else {
|
||||
sendSocialMediaMessage('ci-test', 'danger', message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,10 @@ def eNB_CommitID
|
||||
def eNB_AllowMergeRequestProcess = false
|
||||
def eNB_TargetBranch
|
||||
|
||||
def doEpcLogCollection = true
|
||||
|
||||
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
label pythonExecutor
|
||||
@@ -61,7 +65,7 @@ pipeline {
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
ansiColor('xterm')
|
||||
lock(extra: [[resource: ciSmartPhoneResource]], resource: ciSmartPhoneResource)
|
||||
lock(extra: [[resource: oaiUEResource]], resource: ciSmartPhoneResource)
|
||||
}
|
||||
|
||||
stages {
|
||||
@@ -139,6 +143,11 @@ pipeline {
|
||||
|
||||
if (params.EPC_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
} else {
|
||||
if (params.EPC_IPAddress == "none") {
|
||||
doEpcLogCollection = false
|
||||
echo "No EPC collections (ping/iperf/hss/mme/spgw)"
|
||||
}
|
||||
}
|
||||
if (params.EPC_Type == null) {
|
||||
allParametersPresent = false
|
||||
@@ -167,8 +176,8 @@ pipeline {
|
||||
sh "git checkout -f ${eNB_CommitID}"
|
||||
}
|
||||
} else {
|
||||
echo "Some parameters are missing"
|
||||
sh "./ci-scripts/fail.sh"
|
||||
currentBuild.result = 'ABORTED'
|
||||
error('Stopping early because some parameters are missing')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -299,6 +308,9 @@ pipeline {
|
||||
}
|
||||
}
|
||||
stage('Log Collection (Ping)') {
|
||||
when {
|
||||
expression {doEpcLogCollection}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
|
||||
@@ -317,6 +329,9 @@ pipeline {
|
||||
}
|
||||
}
|
||||
stage('Log Collection (Iperf)') {
|
||||
when {
|
||||
expression {doEpcLogCollection}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
|
||||
@@ -335,6 +350,9 @@ pipeline {
|
||||
}
|
||||
}
|
||||
stage('Log Collection (SPGW)') {
|
||||
when {
|
||||
expression {doEpcLogCollection}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
|
||||
@@ -353,6 +371,9 @@ pipeline {
|
||||
}
|
||||
}
|
||||
stage('Log Collection (MME)') {
|
||||
when {
|
||||
expression {doEpcLogCollection}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
|
||||
@@ -371,6 +392,9 @@ pipeline {
|
||||
}
|
||||
}
|
||||
stage('Log Collection (HSS)') {
|
||||
when {
|
||||
expression {doEpcLogCollection}
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password']
|
||||
|
||||
282
ci-scripts/Jenkinsfile-tmp-multi-enb
Normal file
282
ci-scripts/Jenkinsfile-tmp-multi-enb
Normal file
@@ -0,0 +1,282 @@
|
||||
#!/bin/groovy
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
|
||||
|
||||
// Location of the python executor node shall be in the same subnet as the others servers
|
||||
def pythonExecutor = params.pythonExecutor
|
||||
|
||||
// Location of the test XML file to be run
|
||||
def testXMLFile = params.pythonTestXmlFile
|
||||
def mainPythonAllXmlFiles = ""
|
||||
def buildStageStatus = true
|
||||
|
||||
// Name of the test stage
|
||||
def testStageName = params.pipelineTestStageName
|
||||
|
||||
// Name of the phone resource
|
||||
def ciSmartPhoneResource = params.smartphonesResource
|
||||
|
||||
// Global Parameters. Normally they should be populated when the master job
|
||||
// triggers the slave job with parameters
|
||||
def eNB_Repository
|
||||
def eNB_Branch
|
||||
def eNB_CommitID
|
||||
def eNB_AllowMergeRequestProcess = false
|
||||
def eNB_TargetBranch
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
label pythonExecutor
|
||||
}
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
ansiColor('xterm')
|
||||
lock (ciSmartPhoneResource)
|
||||
}
|
||||
stages {
|
||||
stage ("Verify Parameters") {
|
||||
steps {
|
||||
script {
|
||||
echo '\u2705 \u001B[32mVerify Parameters\u001B[0m'
|
||||
def allParametersPresent = true
|
||||
|
||||
// It is already to late to check it
|
||||
if (params.pythonExecutor != null) {
|
||||
echo "eNB CI executor node : ${pythonExecutor}"
|
||||
}
|
||||
// If not present picking a default Stage Name
|
||||
if (params.pipelineTestStageName == null) {
|
||||
// picking default
|
||||
testStageName = 'Template Test Stage'
|
||||
}
|
||||
|
||||
if (params.smartphonesResource == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
// 1st eNB parameters
|
||||
if (params.eNB_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB_SourceCodePath == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
// 2nd eNB parameters
|
||||
if (params.eNB1_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB1_SourceCodePath == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB1_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
// 3rd eNB parameters
|
||||
if (params.eNB2_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB2_SourceCodePath == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.eNB2_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
// the following 4 parameters should be pushed by the master trigger
|
||||
// if not present, take the job GIT variables (used for developing)
|
||||
if (params.eNB_Repository == null) {
|
||||
eNB_Repository = env.GIT_URL
|
||||
} else {
|
||||
eNB_Repository = params.eNB_Repository
|
||||
}
|
||||
echo "eNB_Repository : ${eNB_Repository}"
|
||||
if (params.eNB_Branch == null) {
|
||||
eNB_Branch = env.GIT_BRANCH
|
||||
} else {
|
||||
eNB_Branch = params.eNB_Branch
|
||||
}
|
||||
echo "eNB_Branch : ${eNB_Branch}"
|
||||
if (params.eNB_CommitID == null) {
|
||||
eNB_CommitID = env.GIT_COMMIT
|
||||
} else {
|
||||
eNB_CommitID = params.eNB_CommitID
|
||||
}
|
||||
echo "eNB_CommitID : ${eNB_CommitID}"
|
||||
if (params.eNB_mergeRequest != null) {
|
||||
eNB_AllowMergeRequestProcess = params.eNB_mergeRequest
|
||||
if (eNB_AllowMergeRequestProcess) {
|
||||
if (params.eNB_TargetBranch != null) {
|
||||
eNB_TargetBranch = params.eNB_TargetBranch
|
||||
} else {
|
||||
eNB_TargetBranch = 'develop'
|
||||
}
|
||||
echo "eNB_TargetBranch : ${eNB_TargetBranch}"
|
||||
}
|
||||
}
|
||||
|
||||
if (params.EPC_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.EPC_Type == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.EPC_SourceCodePath == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.EPC_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
|
||||
if (params.ADB_IPAddress == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
if (params.ADB_Credentials == null) {
|
||||
allParametersPresent = false
|
||||
}
|
||||
|
||||
if (allParametersPresent) {
|
||||
echo "All parameters are present"
|
||||
if (eNB_AllowMergeRequestProcess) {
|
||||
sh "git fetch"
|
||||
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${eNB_Branch} --src-commit ${eNB_CommitID} --target-branch ${eNB_TargetBranch} --target-commit latest"
|
||||
} else {
|
||||
sh "git fetch"
|
||||
sh "git checkout -f ${eNB_CommitID}"
|
||||
}
|
||||
} else {
|
||||
echo "Some parameters are missing"
|
||||
sh "./ci-scripts/fail.sh"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Build and Test") {
|
||||
steps {
|
||||
script {
|
||||
dir ('ci-scripts') {
|
||||
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
||||
// If not present picking a default XML file
|
||||
if (params.pythonTestXmlFile == null) {
|
||||
// picking default
|
||||
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
||||
echo "Test XML file(default): ${testXMLFile}"
|
||||
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
||||
} else {
|
||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||
for (xmlFile in myXmlTestSuite) {
|
||||
if (fileExists(xmlFile)) {
|
||||
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||
echo "Test XML file : ${xmlFile}"
|
||||
}
|
||||
}
|
||||
}
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB1_Credentials}", usernameVariable: 'eNB1_Username', passwordVariable: 'eNB1_Password'],
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB2_Credentials}", usernameVariable: 'eNB2_Username', passwordVariable: 'eNB2_Password'],
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
|
||||
]) {
|
||||
sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} ${mainPythonAllXmlFiles}"
|
||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||
for (xmlFile in myXmlTestSuite) {
|
||||
if (fileExists(xmlFile)) {
|
||||
try {
|
||||
sh "python3 main.py --mode=TesteNB --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --eNB1IPAddress=${params.eNB1_IPAddress} --eNB1UserName=${eNB1_Username} --eNB1Password=${eNB1_Password} --eNB1SourceCodePath=${params.eNB1_SourceCodePath} --eNB2IPAddress=${params.eNB2_IPAddress} --eNB2UserName=${eNB2_Username} --eNB2Password=${eNB2_Password} --eNB2SourceCodePath=${params.eNB2_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${xmlFile}"
|
||||
} catch (Exception e) {
|
||||
currentBuild.result = 'FAILURE'
|
||||
buildStageStatus = false
|
||||
}
|
||||
}
|
||||
}
|
||||
sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Log Collection') {
|
||||
parallel {
|
||||
stage('Log Collection (eNB - Build)') {
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
echo '\u2705 \u001B[32mLog Collection (eNB - Build)\u001B[0m'
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollectBuild --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
|
||||
|
||||
echo '\u2705 \u001B[32mLog Transfer (eNB - Build)\u001B[0m'
|
||||
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
|
||||
}
|
||||
script {
|
||||
if(fileExists("build.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "build.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Log Collection (eNB - Run)') {
|
||||
steps {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password']
|
||||
]) {
|
||||
echo '\u2705 \u001B[32mLog Collection (eNB - Run)\u001B[0m'
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath}"
|
||||
|
||||
echo '\u2705 \u001B[32mLog Transfer (eNB - Run)\u001B[0m'
|
||||
sh "sshpass -p \'${eNB_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${eNB_Username}@${params.eNB_IPAddress}:${eNB_SourceCodePath}/cmake_targets/enb.log.zip ./enb.log.${env.BUILD_ID}.zip || true"
|
||||
}
|
||||
script {
|
||||
if(fileExists("enb.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "enb.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
if(fileExists("ci-scripts/test_results.html")) {
|
||||
sh "mv ci-scripts/test_results.html test_results-${JOB_NAME}.html"
|
||||
sh "sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's@build #TEMPLATE_BUILD_ID@build #${BUILD_ID}@' -e 's#Build-ID: TEMPLATE_BUILD_ID#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_STAGE_NAME#${testStageName}#' test_results-${JOB_NAME}.html"
|
||||
archiveArtifacts "test_results-${JOB_NAME}.html"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
if (params.pipelineZipsConsoleLog != null) {
|
||||
if (params.pipelineZipsConsoleLog) {
|
||||
echo "Archiving Jenkins console log"
|
||||
sh "wget --no-check-certificate --no-proxy ${env.JENKINS_URL}/job/${env.JOB_NAME}/${env.BUILD_ID}/consoleText -O consoleText.log || true"
|
||||
sh "zip -m consoleText.log.${env.BUILD_ID}.zip consoleText.log || true"
|
||||
if(fileExists("consoleText.log.${env.BUILD_ID}.zip")) {
|
||||
archiveArtifacts "consoleText.log.${env.BUILD_ID}.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -179,7 +179,7 @@ echo "############################################################"
|
||||
echo "Checking build status"
|
||||
echo "############################################################"
|
||||
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
NB_PATTERN_FILES=7
|
||||
|
||||
LOG_FILES=`ls $ARCHIVES_LOC/*.txt`
|
||||
|
||||
@@ -44,7 +44,7 @@ function build_on_vm {
|
||||
STATUS=1
|
||||
return
|
||||
fi
|
||||
if [ ! -f /etc/apt/apt.conf.d/01proxy ]
|
||||
if [[ ! -f /etc/apt/apt.conf.d/01proxy ]] && [[ "$OPTIONAL_APTCACHER" != "true" ]]
|
||||
then
|
||||
echo "Missing /etc/apt/apt.conf.d/01proxy file!"
|
||||
echo "Is apt-cacher installed and configured?"
|
||||
@@ -68,11 +68,12 @@ function build_on_vm {
|
||||
then
|
||||
echo "VM_MEMORY = $VM_MEMORY MBytes"
|
||||
echo "VM_CPU = $VM_CPU"
|
||||
echo "VM_DISK = $VM_DISK GBytes"
|
||||
echo "############################################################"
|
||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||
echo "############################################################"
|
||||
acquire_vm_create_lock
|
||||
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
||||
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --disk $VM_DISK --unsafe-caching --template ci-scripts/template-host.xml
|
||||
echo "Waiting for VM to be started"
|
||||
uvt-kvm wait $VM_NAME --insecure
|
||||
|
||||
@@ -96,13 +97,14 @@ function build_on_vm {
|
||||
else
|
||||
scp -o StrictHostKeyChecking=no $JENKINS_WKSP/localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
|
||||
fi
|
||||
scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
|
||||
[ -f /etc/apt/apt.conf.d/01proxy ] && scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
|
||||
|
||||
echo "############################################################"
|
||||
echo "Running install and build script on VM ($VM_NAME)"
|
||||
echo "############################################################"
|
||||
echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
|
||||
echo "[ -f 01proxy ] && sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
|
||||
echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
|
||||
echo "git config --global https.postBuffer 123289600" >> $VM_CMDS
|
||||
if [[ "$VM_NAME" == *"-cppcheck"* ]]
|
||||
then
|
||||
if [ $DAEMON -eq 0 ]
|
||||
@@ -135,11 +137,21 @@ function build_on_vm {
|
||||
then
|
||||
echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
|
||||
echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
|
||||
echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
if [[ "$VM_NAME" == *"-phy-sim"* ]]
|
||||
then
|
||||
echo "sudo apt-get --yes install zip subversion libboost-dev make gcc >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
else
|
||||
echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
fi
|
||||
else
|
||||
echo "echo \"sudo apt-get --yes --quiet install zip daemon subversion libboost-dev \"" >> $VM_CMDS
|
||||
echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
|
||||
echo "sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
if [[ "$VM_NAME" == *"-phy-sim"* ]]
|
||||
then
|
||||
echo "sudo apt-get --yes install zip daemon subversion libboost-dev make gcc >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
else
|
||||
echo "sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "mkdir tmp" >> $VM_CMDS
|
||||
@@ -168,13 +180,23 @@ function build_on_vm {
|
||||
echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
|
||||
echo "echo \"./tools/install_dependencies \"" >> $VM_CMDS
|
||||
echo "./tools/install_dependencies > cmake_targets/log/install-build.txt 2>&1" >> $VM_CMDS
|
||||
echo "echo \"mkdir build\"" >> $VM_CMDS
|
||||
echo "mkdir build" >> $VM_CMDS
|
||||
echo "echo \"cd build\"" >> $VM_CMDS
|
||||
echo "cd build" >> $VM_CMDS
|
||||
echo "echo \"$BUILD_OPTIONS \"" >> $VM_CMDS
|
||||
echo "$BUILD_OPTIONS > cmake_targets/log/rt_controller.Rel14.txt 2>&1" >> $VM_CMDS
|
||||
echo "$BUILD_OPTIONS > ../cmake_targets/log/rt_controller.Rel15.txt 2>&1" >> $VM_CMDS
|
||||
fi
|
||||
if [[ "$VM_NAME" != *"-cppcheck"* ]] && [[ "$VM_NAME" != *"-flexran-rtc"* ]]
|
||||
then
|
||||
echo "echo \"source oaienv\"" >> $VM_CMDS
|
||||
echo "source oaienv" >> $VM_CMDS
|
||||
if [[ "$VM_NAME" == *"-phy-sim"* ]]
|
||||
then
|
||||
echo "cd common/utils/T" >> $VM_CMDS
|
||||
echo "make" >> $VM_CMDS
|
||||
echo "cd ../../.." >> $VM_CMDS
|
||||
fi
|
||||
echo "cd cmake_targets/" >> $VM_CMDS
|
||||
echo "mkdir log" >> $VM_CMDS
|
||||
echo "chmod 777 log" >> $VM_CMDS
|
||||
|
||||
@@ -110,7 +110,7 @@ MODIFIED_FILES=`git log $TARGET_INIT_COMMIT..$MERGE_COMMMIT --oneline --name-sta
|
||||
NB_WARNINGS_FILES=0
|
||||
|
||||
# Retrieve list of warnings
|
||||
LIST_WARNING_FILES=`egrep "error:|warning:" archives/*/*.Rel14.txt archives/*/basic_simulator_*txt | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | sed -e "s#^.*/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" -e "s#common/utils/.*/itti#common/utils/itti#" | awk -F ":" '{print $1}' | sort | uniq`
|
||||
LIST_WARNING_FILES=`egrep "error:|warning:" archives/*/*.Rel15.txt archives/*/basic_simulator_*txt | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | sed -e "s#^.*/home/ubuntu/tmp/##" -e "s#^.*/tmp/CI-eNB/##" -e "s#common/utils/.*/itti#common/utils/itti#" | awk -F ":" '{print $1}' | sort | uniq`
|
||||
|
||||
echo ""
|
||||
echo "List of files that have been modified by the Merge Request AND"
|
||||
|
||||
271
ci-scripts/conf_files/enb.band13.tm1.25PRB.usrpb210.conf
Normal file
271
ci-scripts/conf_files/enb.band13.tm1.25PRB.usrpb210.conf
Normal file
@@ -0,0 +1,271 @@
|
||||
Active_eNBs = ( "eNB-Eurecom-LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe01;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB-Eurecom-LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
|
||||
plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2; } );
|
||||
|
||||
nr_cellid = 98765L;
|
||||
tr_s_preference = "local_mac"
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "3GPP_eNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 13;
|
||||
downlink_frequency = 751000000L;
|
||||
uplink_frequency_offset = 31000000;
|
||||
Nid_cell = 1;
|
||||
N_RB_DL = 25;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 110;
|
||||
pbch_repetition = "FALSE";
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 0;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 0;
|
||||
pdsch_referenceSignalPower = -27;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -96;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -104;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
ue_TransmissionMode = 1;
|
||||
|
||||
//Parameters for SIB18
|
||||
rxPool_sc_CP_Len = "normal";
|
||||
rxPool_sc_Period = "sf40";
|
||||
rxPool_data_CP_Len = "normal";
|
||||
rxPool_ResourceConfig_prb_Num = 20;
|
||||
rxPool_ResourceConfig_prb_Start = 5;
|
||||
rxPool_ResourceConfig_prb_End = 44;
|
||||
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
rxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
|
||||
rxPool_dataHoppingConfig_numSubbands = "ns1";
|
||||
rxPool_dataHoppingConfig_rbOffset = 0;
|
||||
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
|
||||
*/
|
||||
// Parameters for SIB19
|
||||
discRxPool_cp_Len = "normal"
|
||||
discRxPool_discPeriod = "rf32"
|
||||
discRxPool_numRetx = 1;
|
||||
discRxPool_numRepetition = 2;
|
||||
discRxPool_ResourceConfig_prb_Num = 5;
|
||||
discRxPool_ResourceConfig_prb_Start = 3;
|
||||
discRxPool_ResourceConfig_prb_End = 21;
|
||||
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
phy_test_mode = 0;
|
||||
puSch10xSnr = 200;
|
||||
puCch10xSnr = 200;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 0
|
||||
att_rx = 0;
|
||||
bands = [7];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 125;
|
||||
eNB_instances = [0];
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
FLEXRAN_ENABLED = "no";
|
||||
FLEXRAN_INTERFACE_NAME = "eth0";
|
||||
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
|
||||
FLEXRAN_PORT = 2210;
|
||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||
FLEXRAN_AWAIT_RECONF = "no";
|
||||
};
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_SINGLE_THREAD";//PARALLEL_RU_L1_TRX_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
@@ -233,6 +233,7 @@ eNBs =
|
||||
#pdsch_maxNumRepetitionCEmodeB_r13 = "r384"; # NULL - 2
|
||||
|
||||
pusch_maxNumRepetitionCEmodeA_r13 = "r8"; #0
|
||||
pusch_repetitionLevelCEmodeA_r13 = "l1";
|
||||
#pusch_maxNumRepetitionCEmodeB_r13 = "r768"; #4 #NULL
|
||||
#pusch_HoppingOffset_v1310 = 5; #NULL
|
||||
|
||||
|
||||
276
ci-scripts/conf_files/enb.slave.band13.tm1.25PRB.usrpb210.conf
Normal file
276
ci-scripts/conf_files/enb.slave.band13.tm1.25PRB.usrpb210.conf
Normal file
@@ -0,0 +1,276 @@
|
||||
Active_eNBs = ( "eNB-Eurecom-LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB-Eurecom-LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
|
||||
plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2; } );
|
||||
|
||||
nr_cellid = 123456L;
|
||||
tr_s_preference = "local_mac"
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "3GPP_eNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 13;
|
||||
downlink_frequency = 751000000L;
|
||||
uplink_frequency_offset = 31000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 25;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 110;
|
||||
pbch_repetition = "FALSE";
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 0;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 0;
|
||||
pdsch_referenceSignalPower = -27;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -96;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -104;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
ue_TransmissionMode = 1;
|
||||
|
||||
//Parameters for SIB18
|
||||
rxPool_sc_CP_Len = "normal";
|
||||
rxPool_sc_Period = "sf40";
|
||||
rxPool_data_CP_Len = "normal";
|
||||
rxPool_ResourceConfig_prb_Num = 20;
|
||||
rxPool_ResourceConfig_prb_Start = 5;
|
||||
rxPool_ResourceConfig_prb_End = 44;
|
||||
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
rxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
|
||||
rxPool_dataHoppingConfig_numSubbands = "ns1";
|
||||
rxPool_dataHoppingConfig_rbOffset = 0;
|
||||
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
|
||||
*/
|
||||
// Parameters for SIB19
|
||||
discRxPool_cp_Len = "normal"
|
||||
discRxPool_discPeriod = "rf32"
|
||||
discRxPool_numRetx = 1;
|
||||
discRxPool_numRepetition = 2;
|
||||
discRxPool_ResourceConfig_prb_Num = 5;
|
||||
discRxPool_ResourceConfig_prb_Start = 3;
|
||||
discRxPool_ResourceConfig_prb_End = 21;
|
||||
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
target_enb_x2_ip_address = (
|
||||
{ ipv4 = "CI_RCC_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
phy_test_mode = 0;
|
||||
puSch10xSnr = 200;
|
||||
puCch10xSnr = 200;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 0
|
||||
att_rx = 0;
|
||||
bands = [7];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 125;
|
||||
eNB_instances = [0];
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
FLEXRAN_ENABLED = "no";
|
||||
FLEXRAN_INTERFACE_NAME = "eth0";
|
||||
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
|
||||
FLEXRAN_PORT = 2210;
|
||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||
FLEXRAN_AWAIT_RECONF = "no";
|
||||
};
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_SINGLE_THREAD";//PARALLEL_RU_L1_TRX_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
298
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
Normal file
298
ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf
Normal file
@@ -0,0 +1,298 @@
|
||||
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_GNB";
|
||||
|
||||
gNB_name = "gNB-Eurecom-5GNRBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
|
||||
plmn_list = ({mcc = 208; mnc = 93; mnc_length = 2;});
|
||||
|
||||
tr_s_preference = "local_mac"
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "3GPP_gNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "TDD";
|
||||
DL_prefix_type = "NORMAL";
|
||||
UL_prefix_type = "NORMAL";
|
||||
eutra_band = 78;
|
||||
downlink_frequency = 3510000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 106;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
MIB_subCarrierSpacingCommon = 30;
|
||||
MIB_ssb_SubcarrierOffset = 0;
|
||||
MIB_dmrs_TypeA_Position = 2;
|
||||
pdcch_ConfigSIB1 = 0;
|
||||
SIB1_frequencyOffsetSSB = "khz5";
|
||||
SIB1_ssb_PeriodicityServingCell = 5;
|
||||
SIB1_ss_PBCH_BlockPower = -60;
|
||||
absoluteFrequencySSB = 0;
|
||||
DL_FreqBandIndicatorNR = 15;
|
||||
DL_absoluteFrequencyPointA = 15;
|
||||
DL_offsetToCarrier = 15;
|
||||
DL_SCS_SubcarrierSpacing = "kHz30";
|
||||
DL_SCS_SpecificCarrier_k0 = 0;
|
||||
DL_carrierBandwidth = 15;
|
||||
DL_locationAndBandwidth = 15;
|
||||
DL_BWP_SubcarrierSpacing = "kHz30";
|
||||
DL_BWP_prefix_type = "NORMAL";
|
||||
UL_FreqBandIndicatorNR = 15;
|
||||
UL_absoluteFrequencyPointA = 13;
|
||||
UL_additionalSpectrumEmission = 3;
|
||||
UL_p_Max = -1;
|
||||
UL_frequencyShift7p5khz = "TRUE";
|
||||
UL_offsetToCarrier = 10;
|
||||
UL_SCS_SubcarrierSpacing = "kHz30";
|
||||
UL_SCS_SpecificCarrier_k0 = 0;
|
||||
UL_carrierBandwidth = 15;
|
||||
UL_locationAndBandwidth = 15;
|
||||
UL_BWP_SubcarrierSpacing = "kHz30";
|
||||
UL_BWP_prefix_type = "NORMAL";
|
||||
UL_timeAlignmentTimerCommon = "infinity";
|
||||
ServingCellConfigCommon_n_TimingAdvanceOffset = "n0"
|
||||
ServingCellConfigCommon_ssb_PositionsInBurst_PR = 0x01;
|
||||
ServingCellConfigCommon_ssb_periodicityServingCell = 10;
|
||||
ServingCellConfigCommon_dmrs_TypeA_Position = 2;
|
||||
NIA_SubcarrierSpacing = "kHz15";
|
||||
ServingCellConfigCommon_ss_PBCH_BlockPower = -60;
|
||||
referenceSubcarrierSpacing = "kHz15";
|
||||
dl_UL_TransmissionPeriodicity = "ms0p5";
|
||||
nrofDownlinkSlots = 10;
|
||||
nrofDownlinkSymbols = 10;
|
||||
nrofUplinkSlots = 10;
|
||||
nrofUplinkSymbols = 10;
|
||||
rach_totalNumberOfRA_Preambles = 63;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = "oneEighth";
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 4;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 8;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 16;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 24;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 32;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 8;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 4;
|
||||
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 2;
|
||||
rach_groupBconfigured = "ENABLE";
|
||||
rach_ra_Msg3SizeGroupA = 56;
|
||||
rach_messagePowerOffsetGroupB = "dB0";
|
||||
rach_numberOfRA_PreamblesGroupA = 32;
|
||||
rach_ra_ContentionResolutionTimer = 8;
|
||||
rsrp_ThresholdSSB = 64;
|
||||
rsrp_ThresholdSSB_SUL = 64;
|
||||
prach_RootSequenceIndex_choice = "l839";
|
||||
prach_RootSequenceIndex_l839 = 0;
|
||||
prach_RootSequenceIndex_l139 = 0;
|
||||
prach_msg1_SubcarrierSpacing = "kHz30";
|
||||
restrictedSetConfig = "unrestrictedSet";
|
||||
msg3_transformPrecoding = "ENABLE";
|
||||
prach_ConfigurationIndex = 10;
|
||||
prach_msg1_FDM = "one";
|
||||
prach_msg1_FrequencyStart = 10;
|
||||
zeroCorrelationZoneConfig = 10;
|
||||
preambleReceivedTargetPower = -150;
|
||||
preambleTransMax = 6;
|
||||
powerRampingStep = "dB0";
|
||||
ra_ResponseWindow = 8;
|
||||
groupHoppingEnabledTransformPrecoding = "ENABLE";
|
||||
msg3_DeltaPreamble = 0;
|
||||
p0_NominalWithGrant = 0;
|
||||
PUSCH_TimeDomainResourceAllocation_k2 = 0;
|
||||
PUSCH_TimeDomainResourceAllocation_mappingType = "typeA";
|
||||
PUSCH_TimeDomainResourceAllocation_startSymbolAndLength = 0;
|
||||
pucch_ResourceCommon = 0;
|
||||
pucch_GroupHopping = "neither";
|
||||
hoppingId = 0;
|
||||
p0_nominal = -30;
|
||||
PDSCH_TimeDomainResourceAllocation_k0 = 2;
|
||||
PDSCH_TimeDomainResourceAllocation_mappingType = "typeA";
|
||||
PDSCH_TimeDomainResourceAllocation_startSymbolAndLength = 0;
|
||||
rateMatchPatternId = 0;
|
||||
RateMatchPattern_patternType = "bitmaps";
|
||||
symbolsInResourceBlock = "oneSlot";
|
||||
periodicityAndPattern = 2;
|
||||
RateMatchPattern_controlResourceSet = 5;
|
||||
RateMatchPattern_subcarrierSpacing = "kHz30";
|
||||
RateMatchPattern_mode = "dynamic";
|
||||
controlResourceSetZero = 0;
|
||||
searchSpaceZero = 0;
|
||||
searchSpaceSIB1 = 10;
|
||||
searchSpaceOtherSystemInformation = 10;
|
||||
pagingSearchSpace = 10;
|
||||
ra_SearchSpace = 10;
|
||||
PDCCH_common_controlResourceSetId = 5;
|
||||
PDCCH_common_ControlResourceSet_duration = 2;
|
||||
PDCCH_cce_REG_MappingType = "nonInterleaved";
|
||||
PDCCH_reg_BundleSize = 3;
|
||||
PDCCH_interleaverSize = 3;
|
||||
PDCCH_shiftIndex = 10;
|
||||
PDCCH_precoderGranularity = "sameAsREG-bundle";
|
||||
PDCCH_TCI_StateId = 32;
|
||||
tci_PresentInDCI = "ENABLE";
|
||||
PDCCH_DMRS_ScramblingID = 0;
|
||||
SearchSpaceId = 10;
|
||||
commonSearchSpaces_controlResourceSetId = 5;
|
||||
SearchSpace_monitoringSlotPeriodicityAndOffset_choice = "sl1";
|
||||
SearchSpace_monitoringSlotPeriodicityAndOffset_value = 0;
|
||||
SearchSpace_duration = 2;
|
||||
SearchSpace_nrofCandidates_aggregationLevel1 = 0;
|
||||
SearchSpace_nrofCandidates_aggregationLevel2 = 0;
|
||||
SearchSpace_nrofCandidates_aggregationLevel4 = 0;
|
||||
SearchSpace_nrofCandidates_aggregationLevel8 = 0;
|
||||
SearchSpace_nrofCandidates_aggregationLevel16 = 0;
|
||||
SearchSpace_searchSpaceType = "common";
|
||||
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 1;
|
||||
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 1;
|
||||
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 1;
|
||||
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 1;
|
||||
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 1;
|
||||
Common_dci_Format2_3_monitoringPeriodicity = 1;
|
||||
Common_dci_Format2_3_nrofPDCCH_Candidates = 1;
|
||||
ue_Specific__dci_Formats = "formats0-0-And-1-0";
|
||||
RateMatchPatternLTE_CRS_carrierFreqDL = 6;
|
||||
RateMatchPatternLTE_CRS_carrierBandwidthDL = 6;
|
||||
RateMatchPatternLTE_CRS_nrofCRS_Ports = 1;
|
||||
RateMatchPatternLTE_CRS_v_Shift = 0;
|
||||
RateMatchPatternLTE_CRS_radioframeAllocationPeriod = 1;
|
||||
RateMatchPatternLTE_CRS_radioframeAllocationOffset = 0;
|
||||
RateMatchPatternLTE_CRS_subframeAllocation_choice = "oneFrame";
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
||||
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 0
|
||||
att_rx = 0;
|
||||
bands = [7];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 114;
|
||||
eNB_instances = [0];
|
||||
sdr_addrs = "addr=192.168.20.2,second_addr=192.168.10.2,mgmt_addr=192.168.20.2,clock_source=external,time_source=external";
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
FLEXRAN_ENABLED = "no";
|
||||
FLEXRAN_INTERFACE_NAME = "lo";
|
||||
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
|
||||
FLEXRAN_PORT = 2210;
|
||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||
FLEXRAN_AWAIT_RECONF = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
242
ci-scripts/conf_files/rcc.band38.tm1.50PRB.multi.rru.conf
Normal file
242
ci-scripts/conf_files/rcc.band38.tm1.50PRB.multi.rru.conf
Normal file
@@ -0,0 +1,242 @@
|
||||
Active_eNBs = ( "eNB_Eurecom_LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
# real_time choice in {hard, rt-preempt, no}
|
||||
real_time = "no";
|
||||
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );
|
||||
tr_s_preference = "local_mac"
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "NGFI_RCC_IF4p5";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "TDD";
|
||||
tdd_config = 1;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 38;
|
||||
downlink_frequency = 2580000000L;
|
||||
uplink_frequency_offset = 0;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50; #25;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
pbch_repetition = "FALSE";
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 0;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -27;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -104; #-96;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96; #-104;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "enp129s0f0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "enp129s0f0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR"; #"127.0.0.4/24";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152\
|
||||
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_if_name = "enp129s0f0";
|
||||
local_address = "CI_ENB_IP_ADDR";
|
||||
remote_address = "CI_RRU1_IP_ADDR";
|
||||
local_portc = 50002;
|
||||
remote_portc = 50002;
|
||||
local_portd = 50003;
|
||||
remote_portd = 50003;
|
||||
local_rf = "no"
|
||||
tr_preference = "udp_if4p5"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 20
|
||||
att_rx = 20;
|
||||
eNB_instances = [0];
|
||||
is_slave = "no";
|
||||
ota_sync_enabled = "yes";
|
||||
},
|
||||
{
|
||||
local_if_name = "enp129s0f0";
|
||||
local_address = "CI_ENB_IP_ADDR";
|
||||
remote_address = "CI_RRU2_IP_ADDR";
|
||||
local_portc = 50010;
|
||||
remote_portc = 50010;
|
||||
local_portd = 50011;
|
||||
remote_portd = 50011;
|
||||
local_rf = "no"
|
||||
tr_preference = "udp_if4p5"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 20
|
||||
att_rx = 20;
|
||||
eNB_instances = [0];
|
||||
is_slave = "yes";
|
||||
ota_sync_enabled = "yes";
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config = {
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
@@ -218,7 +218,7 @@ MACRLCs = (
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||
parallel_config = "PARALLEL_RU_L1_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
|
||||
47
ci-scripts/conf_files/rru.band38.tm1.master.conf
Normal file
47
ci-scripts/conf_files/rru.band38.tm1.master.conf
Normal file
@@ -0,0 +1,47 @@
|
||||
RUs = (
|
||||
{
|
||||
local_if_name = "enp1s0";
|
||||
remote_address = "CI_RCC_IP_ADDR";
|
||||
local_address = "CI_ENB_IP_ADDR";
|
||||
local_portc = 50002;
|
||||
remote_portc = 50002;
|
||||
local_portd = 50003;
|
||||
remote_portd = 50003;
|
||||
local_rf = "yes"
|
||||
tr_preference = "udp_if4p5";
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
max_pdschReferenceSignalPower = -12;
|
||||
max_rxgain = 100;
|
||||
bands = [38];
|
||||
is_slave = "no";
|
||||
ota_sync_enabled = "yes";
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config = {
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
47
ci-scripts/conf_files/rru.band38.tm1.slave.conf
Normal file
47
ci-scripts/conf_files/rru.band38.tm1.slave.conf
Normal file
@@ -0,0 +1,47 @@
|
||||
RUs = (
|
||||
{
|
||||
local_if_name = "enp1s0";
|
||||
remote_address = "CI_RCC_IP_ADDR";
|
||||
local_address = "CI_ENB_IP_ADDR";
|
||||
local_portc = 50010;
|
||||
remote_portc = 50010;
|
||||
local_portd = 50011;
|
||||
remote_portd = 50011;
|
||||
local_rf = "yes"
|
||||
tr_preference = "udp_if4p5";
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
max_pdschReferenceSignalPower = -12;
|
||||
max_rxgain = 100;
|
||||
bands = [38];
|
||||
is_slave = "yes";
|
||||
ota_sync_enabled = "yes";
|
||||
}
|
||||
);
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config = {
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
@@ -85,12 +85,13 @@ function create_vm {
|
||||
echo "VM_NAME = $VM_NAME"
|
||||
echo "VM_MEMORY = $VM_MEMORY MBytes"
|
||||
echo "VM_CPU = $VM_CPU"
|
||||
echo "VM_DISK = $VM_DISK GBytes"
|
||||
|
||||
echo "############################################################"
|
||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||
echo "############################################################"
|
||||
acquire_vm_create_lock
|
||||
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
||||
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --disk $VM_DISK --unsafe-caching --template ci-scripts/template-host.xml
|
||||
echo "Waiting for VM to be started"
|
||||
uvt-kvm wait $VM_NAME --insecure
|
||||
|
||||
|
||||
@@ -125,7 +125,16 @@ fi
|
||||
git config user.email "jenkins@openairinterface.org"
|
||||
git config user.name "OAI Jenkins"
|
||||
|
||||
git checkout -f $SOURCE_COMMIT_ID
|
||||
git checkout -f $SOURCE_COMMIT_ID > checkout.txt 2>&1
|
||||
STATUS=`egrep -c "fatal: reference is not a tree" checkout.txt`
|
||||
rm -f checkout.txt
|
||||
if [ $STATUS -ne 0 ]
|
||||
then
|
||||
echo "fatal: reference is not a tree --> $SOURCE_COMMIT_ID"
|
||||
STATUS=-1
|
||||
exit $STATUS
|
||||
fi
|
||||
|
||||
git log -n1 --pretty=format:\"%s\" > .git/CI_COMMIT_MSG
|
||||
|
||||
git merge --ff $TARGET_COMMIT_ID -m "Temporary merge for CI"
|
||||
|
||||
@@ -83,43 +83,43 @@ You can get the list of variant specific variables specifying the variant argume
|
||||
VM_NAME=ci-flexran-rtc ARCHIVES_LOC=flexran
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=1 BUILD_OPTIONS="cmake . && make -j2"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant enb-usrp OR -v1 ( build and test )
|
||||
VM_NAME=ci-enb-usrp ARCHIVES_LOC=enb_usrp
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=9 BUILD_OPTIONS="--eNB -w USRP --mu"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant l1-sim OR -v20 ( test )
|
||||
VM_NAME=ci-l1-sim ARCHIVES_LOC=l1_sim
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant rf-sim OR -v21 ( test )
|
||||
VM_NAME=ci-rf-sim ARCHIVES_LOC=rf_sim
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant l2-sim OR -v22 ( test )
|
||||
VM_NAME=ci-l2-sim ARCHIVES_LOC=l2_sim
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant basic-sim OR -v2 ( build and test )
|
||||
VM_NAME=ci-basic-sim ARCHIVES_LOC=basic_sim
|
||||
VM_MEMORY=8192 VM_CPU=4
|
||||
NB_PATTERN_FILES=13 BUILD_OPTIONS="--eNB --UE"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant phy-sim OR -v3 ( build and test )
|
||||
VM_NAME=ci-phy-sim ARCHIVES_LOC=phy_sim
|
||||
VM_MEMORY=2048 VM_CPU=4
|
||||
NB_PATTERN_FILES=3 BUILD_OPTIONS="--phy_simulators"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant cppcheck OR -v4 ( build and test )
|
||||
VM_NAME=ci-cppcheck ARCHIVES_LOC=cppcheck
|
||||
@@ -131,13 +131,13 @@ You can get the list of variant specific variables specifying the variant argume
|
||||
VM_NAME=ci-enb-ethernet ARCHIVES_LOC=enb_eth
|
||||
VM_MEMORY=4096 VM_CPU=4
|
||||
NB_PATTERN_FILES=8 BUILD_OPTIONS="--eNB"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
--variant ue-ethernet OR -v8 ( build and test )
|
||||
VM_NAME=ci-ue-ethernet ARCHIVES_LOC=ue_eth
|
||||
VM_MEMORY=4096 VM_CPU=4
|
||||
NB_PATTERN_FILES=12 BUILD_OPTIONS="--UE"
|
||||
LOG_PATTERN=.Rel14.txt
|
||||
LOG_PATTERN=.Rel15.txt
|
||||
|
||||
```
|
||||
|
||||
|
||||
1511
ci-scripts/main.py
1511
ci-scripts/main.py
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ function variant_usage {
|
||||
if [ "$1" = "full" ]
|
||||
then
|
||||
printf " VM_NAME=%-15s ARCHIVES_LOC=%-15s\n" "$VM_NAME" "$ARCHIVES_LOC"
|
||||
printf " VM_MEMORY=%-15s VM_CPU=%-15s\n" "$VM_MEMORY" "$VM_CPU"
|
||||
printf " VM_MEMORY=%-15s VM_CPU=%-15s VM_DISK=%-15s\n" "$VM_MEMORY" "$VM_CPU" "$VM_DISK"
|
||||
printf " NB_PATTERN_FILES=%-15s BUILD_OPTIONS=%-15s\n" "$NB_PATTERN_FILES" "\"$BUILD_OPTIONS\""
|
||||
printf " LOG_PATTERN=%-15s EXPERIMENTAL=%-15s\n\n\n" "$LOG_PATTERN" "$EXPERIMENTAL"
|
||||
fi
|
||||
@@ -140,10 +140,25 @@ function command_options_usage {
|
||||
echo ""
|
||||
}
|
||||
|
||||
# function to set specific behavior depending on the TESTPLATFORM_OWNER variable
|
||||
# which may be set by a jenkins server for exemple
|
||||
function platform_set {
|
||||
if [ "$TESTPLATFORM_OWNER" != "" ]
|
||||
then
|
||||
echo "Running on $TESTPLATFORM_OWNER platform"
|
||||
if [ -x "/usr/local/bin/oai_${TESTPLATFORM_OWNER}_setenv.sh" ]
|
||||
then
|
||||
. /usr/local/bin/oai_${TESTPLATFORM_OWNER}_setenv.sh
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function setvar_usage {
|
||||
declare -A HELP_VAR
|
||||
HELP_VAR["VM_OSREL"]="OS release to use in virtual machines"
|
||||
HELP_VAR["RUN_EXPERIMENTAL"]="Enforce execution of variants with EXPERIMENTAL variable set to \"true\""
|
||||
HELP_VAR["OPTIONAL_APTCACHER"]="build and Run tests will fail if apt-cacher not installed and this variable not set to \"true\""
|
||||
HELP_VAR["TESTPLATFORM_OWNER"]="Allow pipeline customization via execution of an externel scripts residing on the jenkins server"
|
||||
echo "--setvar_<varname> <value> where varname is one of:"
|
||||
for i in ${AUTHORIZED_VAR[@]}; do printf "%20s : %s\n" "$i" "${HELP_VAR[$i]}" ;done
|
||||
}
|
||||
@@ -167,16 +182,28 @@ function variant__v2__basic_sim {
|
||||
}
|
||||
|
||||
function variant__v3__phy_sim {
|
||||
NB_PATTERN_FILES=3
|
||||
NB_PATTERN_FILES=12
|
||||
BUILD_OPTIONS="--phy_simulators"
|
||||
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
|
||||
VM_MEMORY=8192
|
||||
VM_DISK=20
|
||||
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510* 015111\" -q -np -b"
|
||||
}
|
||||
|
||||
function variant__v4__cppcheck {
|
||||
VM_MEMORY=4096
|
||||
LOG_PATTERN=cppcheck.xml
|
||||
NB_PATTERN_FILES=1
|
||||
BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 --suppressions-list=ci-scripts/cppcheck_suppressions.list -I common/utils -I openair3/NAS/COMMON/UTIL -j4"
|
||||
BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c --suppressions-list=ci-scripts/cppcheck_suppressions.list -I common/utils -I openair3/NAS/COMMON/UTIL -j4"
|
||||
}
|
||||
|
||||
function variant__v5__gnb_usrp {
|
||||
NB_PATTERN_FILES=9
|
||||
BUILD_OPTIONS="--gNB -w USRP"
|
||||
}
|
||||
|
||||
function variant__v6__nr_ue_usrp {
|
||||
NB_PATTERN_FILES=9
|
||||
BUILD_OPTIONS="--nrUE -w USRP"
|
||||
}
|
||||
|
||||
function variant__v7__enb_ethernet {
|
||||
@@ -185,6 +212,7 @@ function variant__v7__enb_ethernet {
|
||||
NB_PATTERN_FILES=8
|
||||
BUILD_OPTIONS="--eNB"
|
||||
}
|
||||
|
||||
function variant__v8__ue_ethernet {
|
||||
VM_MEMORY=4096
|
||||
ARCHIVES_LOC=ue_eth
|
||||
@@ -195,9 +223,10 @@ function variant__v8__ue_ethernet {
|
||||
function variant__v10__flexran_rtc {
|
||||
ARCHIVES_LOC=flexran
|
||||
NB_PATTERN_FILES=1
|
||||
BUILD_OPTIONS="cmake . && make -j2"
|
||||
BUILD_OPTIONS="cmake .. && make -j2"
|
||||
VARIANT_INFO="non-OSA"
|
||||
}
|
||||
|
||||
function variant__v20__l1_sim {
|
||||
ARCHIVES_LOC=l1_sim
|
||||
RUN_OPTIONS="complex"
|
||||
@@ -244,6 +273,7 @@ function check_set_variant {
|
||||
ARCHIVES_LOC=${VARIANTS_LONG[$i]//"-"/"_"}
|
||||
VM_MEMORY=2048
|
||||
VM_CPU=4
|
||||
VM_DISK=10
|
||||
EXPERIMENTAL=""
|
||||
NBARGS=$[$NBARGS+$VARIANT_OPTID]
|
||||
variant__${VARIANTS_SHORT[$i]}__${VARIANTS_LONG[$i]//"-"/"_"}
|
||||
@@ -315,6 +345,7 @@ function check_setvar {
|
||||
exit 1
|
||||
}
|
||||
|
||||
platform_set
|
||||
MY_DIR=$(dirname $(readlink -f $0))
|
||||
. $MY_DIR/createVM.sh
|
||||
. $MY_DIR/buildOnVM.sh
|
||||
@@ -324,6 +355,7 @@ MY_DIR=$(dirname $(readlink -f $0))
|
||||
. $MY_DIR/reportBuildLocally.sh
|
||||
. $MY_DIR/reportTestLocally.sh
|
||||
|
||||
|
||||
if [ $# -lt 1 ]
|
||||
then
|
||||
echo "Syntax Error: too few arguments"
|
||||
@@ -335,10 +367,11 @@ fi
|
||||
VM_TEMPLATE=ci-
|
||||
|
||||
|
||||
# look for default ASN1 release in cmake directives
|
||||
# look for ASN1 release in cmake directives
|
||||
# It will be the release used when building
|
||||
ASN1VEROPT=( `grep "add_list2_option(RRC_ASN1_VERSION" cmake_targets/CMakeLists.txt` )
|
||||
ASN1VER=${ASN1VEROPT[1]//\"}
|
||||
ASN1VEROPT=( `grep "set (RRC_ASN1_VERSION" cmake_targets/CMakeLists.txt` )
|
||||
ASN1VER=${ASN1VEROPT[2]//\"}
|
||||
ASN1VER=${ASN1VER//)}
|
||||
unset ASN1VEROPT
|
||||
|
||||
# variable to identify and store the command (build, create ...)
|
||||
@@ -440,7 +473,7 @@ RUN_OPTIONS="none"
|
||||
|
||||
|
||||
# list of variables that can be set via the --setvar option
|
||||
AUTHORIZED_VAR=("VM_OSREL RUN_EXPERIMENTAL")
|
||||
AUTHORIZED_VAR=("VM_OSREL RUN_EXPERIMENTAL OPTIONAL_APTCACHER TESTPLATFORM_OWNER")
|
||||
|
||||
|
||||
#variables to set which OS VM should use
|
||||
@@ -463,6 +496,7 @@ AUTHORIZED_VAR=("VM_OSREL RUN_EXPERIMENTAL")
|
||||
# -V<xx> option.
|
||||
VM_NAME=""
|
||||
VM_MEMORY=0
|
||||
VM_DISK=0
|
||||
VM_CPU=0
|
||||
ARCHIVES_LOC=""
|
||||
LOG_PATTERN=""
|
||||
|
||||
@@ -510,68 +510,121 @@ function report_build {
|
||||
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
|
||||
|
||||
summary_table_header "OAI Build eNB -- USRP option" ./archives/enb_usrp
|
||||
summary_table_row "LTE SoftModem - Release 14" ./archives/enb_usrp/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/enb_usrp/coding.Rel14.txt "Built target coding" ./enb_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 14" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/enb_usrp/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./enb_usrp_row4.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_row5.html
|
||||
summary_table_row "LTE SoftModem - Release 15" ./archives/enb_usrp/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/enb_usrp/coding.Rel15.txt "Built target coding" ./enb_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 15" ./archives/enb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_usrp_row4.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row5.html
|
||||
summary_table_row "NASMESH - Release 15" ./archives/enb_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./enb_usrp_row6.html
|
||||
summary_table_row "RB Tool - Release 15" ./archives/enb_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./enb_usrp_row7.html
|
||||
summary_table_row "RF Simulator - Release 15" ./archives/enb_usrp/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_usrp_row8.html
|
||||
summary_table_row "TCP Bridge - Release 15" ./archives/enb_usrp/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_usrp_row9.html
|
||||
summary_table_footer
|
||||
|
||||
summary_table_header "OAI Build basic simulator option" ./archives/basic_sim
|
||||
summary_table_row "LTE SoftModem - Release 14" ./archives/basic_sim/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./basic_sim_row1.html
|
||||
summary_table_row "LTE UE SoftModem - Release 14" ./archives/basic_sim/lte-uesoftmodem.Rel14.txt "Built target lte-uesoftmodem" ./basic_sim_row2.htm
|
||||
summary_table_row "Conf 2 UE data - Release 14" ./archives/basic_sim/conf2uedata.Rel14.txt "Built target conf2uedata" ./basic_sim_row3.html
|
||||
summary_table_row "RB Tool - Release 14" ./archives/basic_sim/rb_tool.Rel14.txt "Built target rb_tool" ./basic_sim_row4.html
|
||||
summary_table_row "NASMESH - Release 14" ./archives/basic_sim/nasmesh.Rel14.txt "Built target nasmesh" ./basic_sim_row5.html
|
||||
summary_table_row "LTE SoftModem - Release 15" ./archives/basic_sim/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./basic_sim_row1.html
|
||||
summary_table_row "LTE UE SoftModem - Release 15" ./archives/basic_sim/lte-uesoftmodem.Rel15.txt "Built target lte-uesoftmodem" ./basic_sim_row2.htm
|
||||
summary_table_row "Coding - Release 15" ./archives/basic_sim/coding.Rel15.txt "Built target coding" ./basic_sim_row3.html
|
||||
summary_table_row "Conf 2 UE data - Release 15" ./archives/basic_sim/conf2uedata.Rel15.txt "Built target conf2uedata" ./basic_sim_row4.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/basic_sim/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./basic_sim_row5.html
|
||||
summary_table_row "NASMESH - Release 15" ./archives/basic_sim/nasmesh.Rel15.txt "Built target nasmesh" ./basic_sim_row6.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/basic_sim/params_libconfig.Rel15.txt "Built target params_libconfig" ./basic_sim_row7.html
|
||||
summary_table_row "RB Tool - Release 15" ./archives/basic_sim/rb_tool.Rel15.txt "Built target rb_tool" ./basic_sim_row8.html
|
||||
summary_table_row "RF Simulator - Release 15" ./archives/basic_sim/rfsimulator.Rel15.txt "Built target rfsimulator" ./basic_sim_row9.html
|
||||
summary_table_row "TCP Bridge - Release 15" ./archives/basic_sim/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./basic_sim_row10.html
|
||||
summary_table_row "UE IP - Release 15" ./archives/basic_sim/ue_ip.Rel15.txt "Built target ue_ip" ./basic_sim_row11.html
|
||||
summary_table_row "USIM - Release 15" ./archives/basic_sim/usim.Rel15.txt "Built target usim" ./basic_sim_row12.html
|
||||
summary_table_row "NVRAM - Release 15" ./archives/basic_sim/nvram.Rel15.txt "Built target nvram" ./basic_sim_row13.html
|
||||
summary_table_footer
|
||||
|
||||
summary_table_header "OAI Build Physical simulators option" ./archives/phy_sim
|
||||
summary_table_row "DL Simulator - Release 14" ./archives/phy_sim/dlsim.Rel14.txt "Built target dlsim" ./phy_sim_row1.html
|
||||
summary_table_row "UL Simulator - Release 14" ./archives/phy_sim/ulsim.Rel14.txt "Built target ulsim" ./phy_sim_row2.html
|
||||
summary_table_row "Coding - Release 14" ./archives/phy_sim/coding.Rel14.txt "Built target coding" ./phy_sim_row3.html
|
||||
summary_table_row "LTE DL Simulator - Release 15" ./archives/phy_sim/dlsim.Rel15.txt "Built target dlsim" ./phy_sim_row1.html
|
||||
summary_table_row "LTE UL Simulator - Release 15" ./archives/phy_sim/ulsim.Rel15.txt "Built target ulsim" ./phy_sim_row2.html
|
||||
summary_table_row "Coding - Release 15" ./archives/phy_sim/coding.Rel15.txt "Built target coding" ./phy_sim_row3.html
|
||||
if [ -f ./archives/phy_sim/ldpctest.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR LDPC Test - Release 15" ./archives/phy_sim/ldpctest.Rel15.txt "Built target ldpctest" ./phy_sim_row4.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/polartest.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR Polar Test - Release 15" ./archives/phy_sim/polartest.Rel15.txt "Built target polartest" ./phy_sim_row5.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_pbchsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR PBCH Test - Release 15" ./archives/phy_sim/nr_pbchsim.Rel15.txt "Built target nr_pbchsim" ./phy_sim_row6.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_dlschsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR DLSCH Test - Release 15" ./archives/phy_sim/nr_dlschsim.Rel15.txt "Built target nr_dlschsim" ./phy_sim_row7.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_pucchsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR PUCCH Test - Release 15" ./archives/phy_sim/nr_pucchsim.Rel15.txt "Built target nr_pucchsim" ./phy_sim_row8.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/smallblocktest.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR Small Block Test - Release 15" ./archives/phy_sim/smallblocktest.Rel15.txt "Built target smallblocktest" ./phy_sim_row9.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_dlsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR DL Sim Test - Release 15" ./archives/phy_sim/nr_dlsim.Rel15.txt "Built target nr_dlsim" ./phy_sim_row10.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_ulschsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR ULSCH Test - Release 15" ./archives/phy_sim/nr_ulschsim.Rel15.txt "Built target nr_ulschsim" ./phy_sim_row11.html
|
||||
fi
|
||||
if [ -f ./archives/phy_sim/nr_ulsim.Rel15.txt ]
|
||||
then
|
||||
summary_table_row "NR UL Sim Test - Release 15" ./archives/phy_sim/nr_ulsim.Rel15.txt "Built target nr_ulsim" ./phy_sim_row12.html
|
||||
fi
|
||||
summary_table_footer
|
||||
|
||||
|
||||
if [ -f archives/gnb_usrp/nr-softmodem.Rel14.txt ]
|
||||
if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
|
||||
then
|
||||
summary_table_header "OAI Build gNB -- USRP option" ./archives/gnb_usrp
|
||||
summary_table_row "LTE SoftModem - Release 14" ./archives/gnb_usrp/nr-softmodem.Rel14.txt "Built target nr-softmodem" ./gnb_usrp_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/gnb_usrp/coding.Rel14.txt "Built target coding" ./gnb_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 14" ./archives/gnb_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/gnb_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./gnb_usrp_row4.html
|
||||
summary_table_row "5G NR SoftModem - Release 15" ./archives/gnb_usrp/nr-softmodem.Rel15.txt "Built target nr-softmodem" ./gnb_usrp_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/gnb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./gnb_usrp_row4.html
|
||||
summary_table_row "NASMESH - Release 15" ./archives/gnb_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./gnb_usrp_row5.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row6.html
|
||||
summary_table_row "RB Tool - Release 15" ./archives/gnb_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./gnb_usrp_row7.html
|
||||
summary_table_footer
|
||||
fi
|
||||
|
||||
if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel14.txt ]
|
||||
if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
|
||||
then
|
||||
summary_table_header "OAI Build 5G NR UE -- USRP option" ./archives/nrue_usrp
|
||||
summary_table_row "UE SoftModem - Release 14" ./archives/nrue_usrp/nr-uesoftmodem.Rel14.txt "Built target nr-uesoftmodem" ./nrue_usrp_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/nrue_usrp/coding.Rel14.txt "Built target coding" ./nrue_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 14" ./archives/nrue_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./nrue_usrp_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/nrue_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./nrue_usrp_row4.html
|
||||
summary_table_row "5G NR UE SoftModem - Release 15" ./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt "Built target nr-uesoftmodem" ./nrue_usrp_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/nrue_usrp/coding.Rel15.txt "Built target coding" ./nrue_usrp_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 15" ./archives/nrue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nrue_usrp_row3.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/nrue_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./nrue_usrp_row4.html
|
||||
summary_table_row "NASMESH - Release 15" ./archives/nrue_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./nrue_usrp_row5.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row6.html
|
||||
summary_table_row "RB Tool - Release 15" ./archives/nrue_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./nrue_usrp_row7.html
|
||||
summary_table_footer
|
||||
fi
|
||||
|
||||
summary_table_header "OAI Build eNB -- ETHERNET transport option" ./archives/enb_eth
|
||||
summary_table_row "LTE SoftModem - Release 14" ./archives/enb_eth/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_eth_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/enb_eth/coding.Rel14.txt "Built target coding" ./enb_eth_row2.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/enb_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_eth_row4.html
|
||||
summary_table_row "RF Simulator - Release 14" ./archives/enb_eth/rfsimulator.Rel14.txt "Built target rfsimulator" ./enb_eth_row5.html
|
||||
summary_table_row "TCP OAI Bridge - Release 14" ./archives/enb_eth/tcp_bridge_oai.Rel14.txt "Built target tcp_bridge_oai" ./enb_eth_row6.html
|
||||
summary_table_row "LTE SoftModem - Release 15" ./archives/enb_eth/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_eth_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/enb_eth/coding.Rel15.txt "Built target coding" ./enb_eth_row2.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_eth_row4.html
|
||||
summary_table_row "RF Simulator - Release 15" ./archives/enb_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_eth_row5.html
|
||||
summary_table_row "TCP OAI Bridge - Release 15" ./archives/enb_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_eth_row6.html
|
||||
summary_table_footer
|
||||
|
||||
summary_table_header "OAI Build UE -- ETHERNET transport option" ./archives/ue_eth
|
||||
summary_table_row "LTE UE SoftModem - Release 14" ./archives/ue_eth/lte-uesoftmodem.Rel14.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/ue_eth/coding.Rel14.txt "Built target coding" ./ue_eth_row2.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/ue_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/ue_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./ue_eth_row4.html
|
||||
summary_table_row "RF Simulator - Release 14" ./archives/ue_eth/rfsimulator.Rel14.txt "Built target rfsimulator" ./ue_eth_row5.html
|
||||
summary_table_row "TCP OAI Bridge - Release 14" ./archives/ue_eth/tcp_bridge_oai.Rel14.txt "Built target tcp_bridge_oai" ./ue_eth_row6.html
|
||||
summary_table_row "Conf 2 UE Data - Release 14" ./archives/ue_eth/conf2uedata.Rel14.txt "Built target conf2uedata" ./ue_eth_row7.html
|
||||
summary_table_row "NVRAM - Release 14" ./archives/ue_eth/nvram.Rel14.txt "Built target nvram" ./ue_eth_row8.html
|
||||
summary_table_row "UE IP - Release 14" ./archives/ue_eth/ue_ip.Rel14.txt "Built target ue_ip" ./ue_eth_row9.html
|
||||
summary_table_row "USIM - Release 14" ./archives/ue_eth/usim.Rel14.txt "Built target usim" ./ue_eth_row9a.html
|
||||
summary_table_row "LTE UE SoftModem - Release 15" ./archives/ue_eth/lte-uesoftmodem.Rel15.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/ue_eth/coding.Rel15.txt "Built target coding" ./ue_eth_row2.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/ue_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/ue_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./ue_eth_row4.html
|
||||
summary_table_row "RF Simulator - Release 15" ./archives/ue_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./ue_eth_row5.html
|
||||
summary_table_row "TCP OAI Bridge - Release 15" ./archives/ue_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./ue_eth_row6.html
|
||||
summary_table_row "Conf 2 UE Data - Release 15" ./archives/ue_eth/conf2uedata.Rel15.txt "Built target conf2uedata" ./ue_eth_row7.html
|
||||
summary_table_row "NVRAM - Release 15" ./archives/ue_eth/nvram.Rel15.txt "Built target nvram" ./ue_eth_row8.html
|
||||
summary_table_row "UE IP - Release 15" ./archives/ue_eth/ue_ip.Rel15.txt "Built target ue_ip" ./ue_eth_row9.html
|
||||
summary_table_row "USIM - Release 15" ./archives/ue_eth/usim.Rel15.txt "Built target usim" ./ue_eth_row9a.html
|
||||
summary_table_footer
|
||||
|
||||
if [ -e ./archives/red_hat ]
|
||||
@@ -579,11 +632,10 @@ function report_build {
|
||||
echo " <h2>Red Hat Enterprise Linux Server release 7.6) -- Summary</h2>" >> ./build_results.html
|
||||
|
||||
summary_table_header "Red Hat -- OAI Build eNB -- USRP option" ./archives/red_hat
|
||||
summary_table_row "LTE SoftModem - Release 14" ./archives/red_hat/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
|
||||
summary_table_row "Coding - Release 14" ./archives/red_hat/coding.Rel14.txt "Built target coding" ./enb_usrp_rh_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 14" ./archives/red_hat/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
|
||||
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/red_hat/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./enb_usrp_rh_row4.html
|
||||
summary_table_row "Parameters Lib Config - Release 14" ./archives/red_hat/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_rh_row5.html
|
||||
summary_table_row "LTE SoftModem - Release 15" ./archives/red_hat/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
|
||||
summary_table_row "Coding - Release 15" ./archives/red_hat/coding.Rel15.txt "Built target coding" ./enb_usrp_rh_row2.html
|
||||
summary_table_row "OAI USRP device if - Release 15" ./archives/red_hat/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
|
||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/red_hat/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_rh_row4.html
|
||||
summary_table_footer
|
||||
fi
|
||||
|
||||
@@ -605,7 +657,7 @@ function report_build {
|
||||
cat $DETAILS_TABLE >> ./build_results.html
|
||||
done
|
||||
fi
|
||||
if [ -f ./phy_sim_row1.html ] || [ -f ./phy_sim_row2.html ] || [ -f ./phy_sim_row3.html ]
|
||||
if [ -f ./phy_sim_row1.html ] || [ -f ./phy_sim_row2.html ] || [ -f ./phy_sim_row3.html ] || [ -f ./phy_sim_row4.html ] || [ -f ./phy_sim_row5.html ] || [ -f ./phy_sim_row6.html ] || [ -f ./phy_sim_row7.html ] || [ -f ./phy_sim_row8.html ]
|
||||
then
|
||||
for DETAILS_TABLE in `ls ./phy_sim_row*.html`
|
||||
do
|
||||
|
||||
@@ -61,15 +61,15 @@ function start_basic_sim_enb {
|
||||
fi
|
||||
echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
|
||||
echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --basicsim\" > ./my-lte-softmodem-run.sh " >> $1
|
||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
|
||||
rm $1
|
||||
@@ -104,14 +104,14 @@ function start_basic_sim_ue {
|
||||
local LOC_UE_LOG_FILE=$3
|
||||
local LOC_NB_RBS=$4
|
||||
local LOC_FREQUENCY=$5
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" > $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" > $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build" >> $1
|
||||
echo "echo \"./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_NB_RBS --log_config.global_log_options nocolor,level --basicsim\" > ./my-lte-uesoftmodem-run.sh" >> $1
|
||||
echo "chmod 775 ./my-lte-uesoftmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-uesoftmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ./my-lte-uesoftmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ./my-lte-uesoftmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||
rm $1
|
||||
@@ -399,14 +399,14 @@ function recover_core_dump {
|
||||
then
|
||||
local TC=`echo $3 | sed -e "s#^.*enb_##" -e "s#Hz.*#Hz#"`
|
||||
echo "Segmentation fault detected on enb -> recovering core dump"
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" > $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" > $1
|
||||
echo "sync" >> $1
|
||||
echo "sudo tar -cjhf basic-simulator-enb-core-${TC}.bz2 core lte-softmodem *.so ci-lte-basic-sim.conf my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo rm core" >> $1
|
||||
echo "rm ci-lte-basic-sim.conf" >> $1
|
||||
echo "sync" >> $1
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/basic-simulator-enb-core-${TC}.bz2 $4
|
||||
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/ran_build/build/basic-simulator-enb-core-${TC}.bz2 $4
|
||||
rm -f $1
|
||||
fi
|
||||
}
|
||||
@@ -476,7 +476,7 @@ function install_epc_on_vm {
|
||||
local LOC_EPC_VM_IP_ADDR=`uvt-kvm ip $LOC_EPC_VM_NAME`
|
||||
|
||||
echo "$LOC_EPC_VM_NAME has for IP addr = $LOC_EPC_VM_IP_ADDR"
|
||||
scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$LOC_EPC_VM_IP_ADDR:/home/ubuntu
|
||||
[ -f /etc/apt/apt.conf.d/01proxy ] && scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$LOC_EPC_VM_IP_ADDR:/home/ubuntu
|
||||
|
||||
# ltebox specific actions (install and start)
|
||||
LTE_BOX_TO_INSTALL=1
|
||||
@@ -500,7 +500,7 @@ function install_epc_on_vm {
|
||||
echo "############################################################"
|
||||
echo "Install EPC on EPC VM ($LOC_EPC_VM_NAME)"
|
||||
echo "############################################################"
|
||||
echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $LOC_EPC_VM_CMDS
|
||||
echo "sudo [ -f 01proxy ] && cp 01proxy /etc/apt/apt.conf.d/" > $LOC_EPC_VM_CMDS
|
||||
echo "touch /home/ubuntu/.hushlogin" >> $LOC_EPC_VM_CMDS
|
||||
echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $LOC_EPC_VM_CMDS
|
||||
echo "sudo apt-get update > zip-install.txt 2>&1" >> $LOC_EPC_VM_CMDS
|
||||
@@ -710,9 +710,9 @@ function start_l2_sim_enb {
|
||||
echo "sed -i -e 's#N_RB_DL.*=.*;#N_RB_DL = $LOC_NB_RBS;#' -e 's#CI_MME_IP_ADDR#$LOC_EPC_IP_ADDR#' -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
|
||||
echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
|
||||
echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||
then
|
||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||
@@ -722,7 +722,7 @@ function start_l2_sim_enb {
|
||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
|
||||
rm $1
|
||||
@@ -789,8 +789,8 @@ function add_ue_l2_sim_ue {
|
||||
echo "echo \"awk -v num_ues=$LOC_NB_UES -f /home/ubuntu/tmp/ci-scripts/add_user_to_conf_file.awk ue_eurecom_test_sfr.conf > ue_eurecom_test_sfr_multi_ues.conf\"" >> $1
|
||||
echo "awk -v num_ues=$LOC_NB_UES -f /home/ubuntu/tmp/ci-scripts/add_user_to_conf_file.awk ue_eurecom_test_sfr.conf > ue_eurecom_test_sfr_multi_ues.conf" >> $1
|
||||
fi
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "sudo rm -f *.u*" >> $1
|
||||
if [ $LOC_NB_UES -eq 1 ]
|
||||
then
|
||||
@@ -818,9 +818,9 @@ function start_l2_sim_ue {
|
||||
echo "cd /home/ubuntu/tmp/ci-scripts/conf_files/" >> $1
|
||||
echo "cp $LOC_CONF_FILE ci-$LOC_CONF_FILE" >> $1
|
||||
echo "sed -i -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||
then
|
||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread $LOC_NB_UES --nokrnmod 1 --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||
@@ -830,7 +830,7 @@ function start_l2_sim_ue {
|
||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
|
||||
rm $1
|
||||
@@ -930,9 +930,9 @@ function start_rf_sim_enb {
|
||||
echo "sed -i -e 's#N_RB_DL.*=.*;#N_RB_DL = $LOC_NB_RBS;#' -e 's#CI_MME_IP_ADDR#$LOC_EPC_IP_ADDR#' -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
|
||||
echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
|
||||
echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||
then
|
||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||
@@ -942,7 +942,7 @@ function start_rf_sim_enb {
|
||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
|
||||
rm $1
|
||||
@@ -1009,9 +1009,9 @@ function start_rf_sim_ue {
|
||||
echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
|
||||
echo "echo \"export RFSIMULATOR=${LOC_ENB_VM_IP_ADDR}\"" >> $1
|
||||
echo "export RFSIMULATOR=${LOC_ENB_VM_IP_ADDR}" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/ran_build/build/\"" >> $1
|
||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
echo "cd /home/ubuntu/tmp/cmake_targets/ran_build/build/" >> $1
|
||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||
then
|
||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||
@@ -1021,7 +1021,7 @@ function start_rf_sim_ue {
|
||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/ran_build/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
|
||||
rm $1
|
||||
@@ -1149,6 +1149,11 @@ function run_test_on_vm {
|
||||
echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
|
||||
echo "cd log" >> $VM_CMDS
|
||||
echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
|
||||
echo "echo \"############################################################\"" >> $VM_CMDS
|
||||
echo "echo \"Evaluating remaining memory on disk!\"" >> $VM_CMDS
|
||||
echo "echo \"############################################################\"" >> $VM_CMDS
|
||||
echo "echo \"df -h\"" >> $VM_CMDS
|
||||
echo "df -h" >> $VM_CMDS
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
|
||||
|
||||
@@ -1843,7 +1848,7 @@ function run_test_on_vm {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $S1_NOS1_CFG -eq 0 ]
|
||||
if [ $S1_NOS1_CFG -eq 2 ]
|
||||
then
|
||||
get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
|
||||
echo "############################################################"
|
||||
|
||||
@@ -76,6 +76,8 @@ function wait_on_vm_build {
|
||||
echo "echo \"ps -aux | grep build \"" >> $VM_CMDS
|
||||
echo "while [ \$(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done" >> $VM_CMDS
|
||||
fi
|
||||
echo "echo \"df -h\"" >> $VM_CMDS
|
||||
echo "df -h" >> $VM_CMDS
|
||||
|
||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
|
||||
rm -f $VM_CMDS
|
||||
@@ -134,14 +136,10 @@ function check_on_vm_build {
|
||||
if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
|
||||
then
|
||||
filename=$(basename -- "$FULLFILE")
|
||||
if [ "$LOG_PATTERN" == ".Rel14.txt" ]
|
||||
if [ "$LOG_PATTERN" == ".Rel15.txt" ]
|
||||
then
|
||||
PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
|
||||
fi
|
||||
if [ "$LOG_PATTERN" == "basic_simulator" ]
|
||||
then
|
||||
PASS_PATTERN="lte-"
|
||||
fi
|
||||
if [ "$LOG_PATTERN" == "cppcheck.xml" ]
|
||||
then
|
||||
PASS_PATTERN="results version"
|
||||
@@ -172,6 +170,9 @@ function check_on_vm_build {
|
||||
if [[ "$VM_NAME" == *"-cppcheck"* ]]
|
||||
then
|
||||
echo "COMMAND: cppcheck $BUILD_OPTIONS . 2> cppcheck.xml" > $ARCHIVES_LOC/build_final_status.log
|
||||
elif [[ "$VM_NAME" == *"-flexran-rtc"* ]]
|
||||
then
|
||||
echo "COMMAND: $BUILD_OPTIONS" > $ARCHIVES_LOC/build_final_status.log
|
||||
else
|
||||
echo "COMMAND: build_oai -I $BUILD_OPTIONS" > $ARCHIVES_LOC/build_final_status.log
|
||||
fi
|
||||
|
||||
@@ -25,10 +25,23 @@
|
||||
<htmlTabName>EPC-Start</htmlTabName>
|
||||
<htmlTabIcon>log-in</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010101 090101
|
||||
050101 060101 070101
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="010101">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build eNB (USRP)</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
</testCase>
|
||||
|
||||
<testCase id="090101">
|
||||
<class>Build_OAI_UE</class>
|
||||
<desc>Build OAI UE</desc>
|
||||
<Build_OAI_UE_args>-w USRP --UE</Build_OAI_UE_args>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050101">
|
||||
<class>Initialize_HSS</class>
|
||||
<desc>Initialize HSS</desc>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-05-tm1-nos1-tunnel</htmlTabRef>
|
||||
<htmlTabName>Test-05MHz-TM1-noS1-tunnel</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201 090109
|
||||
030101 000001 090101 000002 040501 040502 000001 040601 040602 040641 040642 000001 090109 030201
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-05-tm1-tunnel</htmlTabRef>
|
||||
<htmlTabName>Test-05MHz-TM1-tunnel</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201 090109
|
||||
030102 000001 090102 000002 040503 000001 040603 040604 040643 040644 000001 090109 030201
|
||||
|
||||
@@ -25,10 +25,16 @@
|
||||
<htmlTabName>EPC-Closure</htmlTabName>
|
||||
<htmlTabIcon>log-out</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
040202
|
||||
050201 060201 070201
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="040202">
|
||||
<class>Terminate_CatM_module</class>
|
||||
<desc>Terminate CAT-M Module</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050201">
|
||||
<class>Terminate_HSS</class>
|
||||
<desc>Terminate HSS</desc>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-10-tm1</htmlTabRef>
|
||||
<htmlTabName>Test-10MHz-TM1</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040102
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<htmlTabRef>test-05-tm2</htmlTabRef>
|
||||
<htmlTabName>Test-05MHz-TM2</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-20-tm1</htmlTabRef>
|
||||
<htmlTabName>Test-20MHz-TM1</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<testCase id="030111">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize eNB (FDD/Band7/10MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf</Initialize_eNB_args>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf --eNBs.[0].component_carriers.[0].drx_Config_present prRelease</Initialize_eNB_args>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030201">
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-10-cdrx-tm1</htmlTabRef>
|
||||
<htmlTabName>Test-10MHz-CDRX-TM1</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
030112 040302 040512 040612 040650 040401 040201 030201
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="030112">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize eNB (FDD/Band7/10MHz) with CDRX</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf --eNBs.[0].component_carriers.[0].drx_Config_present prSetup</Initialize_eNB_args>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030201">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate eNB</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040101">
|
||||
<class>Initialize_UE</class>
|
||||
<desc>Initialize UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040201">
|
||||
<class>Terminate_UE</class>
|
||||
<desc>Terminate UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040302">
|
||||
<class>Attach_UE</class>
|
||||
<desc>Attach UE</desc>
|
||||
<nbMaxUEtoAttach>1</nbMaxUEtoAttach>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040401">
|
||||
<class>Detach_UE</class>
|
||||
<desc>Detach UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040512">
|
||||
<class>Ping</class>
|
||||
<desc>ping (10MHz - 20 sec)</desc>
|
||||
<ping_args>-c 20</ping_args>
|
||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040612">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>balanced</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040650">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (10MHz - UL/20Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||
<iperf_args>-u -b 20M -t 30 -i 1 -R</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>balanced</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
@@ -22,8 +22,9 @@
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-f1-05</htmlTabRef>
|
||||
<htmlTabName>Test-F1-CU/DU-05MHz</htmlTabName>
|
||||
<htmlTabName>Test-F1-CU-DU-05MHz</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-f1-10</htmlTabRef>
|
||||
<htmlTabName>Test-F1-CU/DU-10MHz</htmlTabName>
|
||||
<htmlTabName>Test-F1-CU-DU-10MHz</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-f1-20</htmlTabRef>
|
||||
<htmlTabName>Test-F1-CU/DU-20MHz</htmlTabName>
|
||||
<htmlTabName>Test-F1-CU-DU-20MHz</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
71
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
Normal file
71
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
Normal file
@@ -0,0 +1,71 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>run-oai-gnb-nr-ue</htmlTabRef>
|
||||
<htmlTabName>Run-gNB-and-NR-UE</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
090101 000001 090102 000002 090108 090109
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="090101">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize gNB USRP</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf</Initialize_eNB_args>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000001">
|
||||
<class>IdleSleep</class>
|
||||
<desc>Sleep</desc>
|
||||
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000002">
|
||||
<class>IdleSleep</class>
|
||||
<desc>Waiting for NR UE to synchronize w/ gNB</desc>
|
||||
<idle_sleep_time_in_sec>180</idle_sleep_time_in_sec>
|
||||
</testCase>
|
||||
|
||||
<testCase id="090102">
|
||||
<class>Initialize_OAI_UE</class>
|
||||
<desc>Initialize NR UE USRP</desc>
|
||||
<Initialize_OAI_UE_args>-C 3510000000 --numerology 1 -r 106 --phy-test --usrp-args "addr=192.168.30.2,clock_source=external,time_source=external" --threadoffset 16</Initialize_OAI_UE_args>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
<testCase id="090108">
|
||||
<class>Terminate_OAI_UE</class>
|
||||
<desc>Terminate NR UE</desc>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
<testCase id="090109">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate gNB</desc>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
44
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
Normal file
44
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>terminate-oai-gnb-nr-ue</htmlTabRef>
|
||||
<htmlTabName>Terminate-gNB-and-NR-UE</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
090108 090109
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="090108">
|
||||
<class>Terminate_OAI_UE</class>
|
||||
<desc>Terminate NR UE</desc>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
<testCase id="090109">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate gNB</desc>
|
||||
<air_interface>NR</air_interface>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
39
ci-scripts/xml_files/gnb_usrp_build.xml
Normal file
39
ci-scripts/xml_files/gnb_usrp_build.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>gnb-build-tab</htmlTabRef>
|
||||
<htmlTabName>Build-gNB</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010101
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="010101">
|
||||
<mode>TesteNB</mode>
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build gNB (USRP)</desc>
|
||||
<Build_eNB_args>--gNB -w USRP</Build_eNB_args>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-20</htmlTabRef>
|
||||
<htmlTabName>Test-20MHz</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201
|
||||
040101
|
||||
|
||||
84
ci-scripts/xml_files/multi_rru_band38_build.xml
Normal file
84
ci-scripts/xml_files/multi_rru_band38_build.xml
Normal file
@@ -0,0 +1,84 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>build-tab</htmlTabRef>
|
||||
<htmlTabName>Build</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010101 010102 010103
|
||||
000101 000102 000103
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="010101">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build RCC</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
<backgroundBuild>True</backgroundBuild>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000101">
|
||||
<class>WaitEndBuild_eNB</class>
|
||||
<desc>Wait for end of Build RCC</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="010102">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build Master RRU</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
<backgroundBuild>True</backgroundBuild>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000102">
|
||||
<class>WaitEndBuild_eNB</class>
|
||||
<desc>Wait for end of Build Master RRU</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="010103">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build Slave RRU</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>2</eNB_instance>
|
||||
<eNB_serverId>2</eNB_serverId>
|
||||
<backgroundBuild>True</backgroundBuild>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000103">
|
||||
<class>WaitEndBuild_eNB</class>
|
||||
<desc>Wait for end of Build Slave RRU</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>2</eNB_instance>
|
||||
<eNB_serverId>2</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
53
ci-scripts/xml_files/multi_rru_band38_full_termination.xml
Normal file
53
ci-scripts/xml_files/multi_rru_band38_full_termination.xml
Normal file
@@ -0,0 +1,53 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-full-termintation</htmlTabRef>
|
||||
<htmlTabName>Test-RCC-RRUs-Termination</htmlTabName>
|
||||
<htmlTabIcon>off</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
030211 030212 030213
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="030211">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate RCC</desc>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030212">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Master RRU</desc>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030213">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Slave RRU</desc>
|
||||
<eNB_instance>2</eNB_instance>
|
||||
<eNB_serverId>2</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
87
ci-scripts/xml_files/multi_rru_band38_test_10mhz_tm1.xml
Normal file
87
ci-scripts/xml_files/multi_rru_band38_test_10mhz_tm1.xml
Normal file
@@ -0,0 +1,87 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-multi-rru-10</htmlTabRef>
|
||||
<htmlTabName>Test-Multi-RRU-10MHz</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030211 030212 030213
|
||||
030111 030112 030113
|
||||
000001
|
||||
030211 030212 030213
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="000001">
|
||||
<class>IdleSleep</class>
|
||||
<desc>Sleep</desc>
|
||||
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030111">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize RCC (TDD/Band38/10MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/rcc.band38.tm1.50PRB.multi.rru.conf --noS1</Initialize_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030112">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize Master RRU (TDD/Band38/10MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/rru.band38.tm1.master.conf --noS1</Initialize_eNB_args>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030113">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize Slave RRU (TDD/Band38/10MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/rru.band38.tm1.slave.conf --noS1</Initialize_eNB_args>
|
||||
<eNB_instance>2</eNB_instance>
|
||||
<eNB_serverId>2</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030211">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate RCC</desc>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030212">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Master RRU</desc>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030213">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Slave RRU</desc>
|
||||
<eNB_instance>2</eNB_instance>
|
||||
<eNB_serverId>2</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
40
ci-scripts/xml_files/nr_ue_usrp_build.xml
Normal file
40
ci-scripts/xml_files/nr_ue_usrp_build.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>nr-ue-build-tab</htmlTabRef>
|
||||
<htmlTabName>Build-NR-UE</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010102
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="010102">
|
||||
<mode>TestUE</mode>
|
||||
<class>Build_OAI_UE</class>
|
||||
<desc>Build NR UE (USRP)</desc>
|
||||
<Build_OAI_UE_args>--nrUE -w USRP</Build_OAI_UE_args>
|
||||
<clean_repository>false</clean_repository>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
41
ci-scripts/xml_files/simple_dummy_build.xml
Normal file
41
ci-scripts/xml_files/simple_dummy_build.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>build-tab</htmlTabRef>
|
||||
<htmlTabName>Build</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010101
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList>
|
||||
</TestCaseExclusionList>
|
||||
|
||||
<testCase id="010101">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build Master eNB (USRP)</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
@@ -20,6 +20,7 @@
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
|
||||
<testCaseList>
|
||||
<TestCaseRequestedList>010101 050101 060101 070101 030101 030201 050201 070201 060201</TestCaseRequestedList>
|
||||
<TestCaseExclusionList>010102 030102 030103 030104 030105 030106</TestCaseExclusionList>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-10mhz-orange</htmlTabRef>
|
||||
<htmlTabName>Test-10Mhz-Orange</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
090109
|
||||
090110 000001 090109
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<htmlTabRef>test-10mHz-sfr</htmlTabRef>
|
||||
<htmlTabName>Test-10MHz-SFR</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>4</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
090109
|
||||
090111 000001 090109
|
||||
|
||||
66
ci-scripts/xml_files/x2ho_enb_usrp210_band13_build.xml
Normal file
66
ci-scripts/xml_files/x2ho_enb_usrp210_band13_build.xml
Normal file
@@ -0,0 +1,66 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>build-tab</htmlTabRef>
|
||||
<htmlTabName>Build</htmlTabName>
|
||||
<htmlTabIcon>wrench</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
010101
|
||||
010102
|
||||
050101 060101 070101
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList>
|
||||
</TestCaseExclusionList>
|
||||
|
||||
<testCase id="010101">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build Master eNB (USRP)</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="010102">
|
||||
<class>Build_eNB</class>
|
||||
<desc>Build Slave eNB (USRP)</desc>
|
||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050101">
|
||||
<class>Initialize_HSS</class>
|
||||
<desc>Initialize HSS</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="060101">
|
||||
<class>Initialize_MME</class>
|
||||
<desc>Initialize MME</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="070101">
|
||||
<class>Initialize_SPGW</class>
|
||||
<desc>Initialize SPGW</desc>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
47
ci-scripts/xml_files/x2ho_enb_usrp210_band13_epc_closure.xml
Normal file
47
ci-scripts/xml_files/x2ho_enb_usrp210_band13_epc_closure.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>epc-closure</htmlTabRef>
|
||||
<htmlTabName>EPC-Closure</htmlTabName>
|
||||
<htmlTabIcon>log-out</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
050201 060201 070201
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="050201">
|
||||
<class>Terminate_HSS</class>
|
||||
<desc>Terminate HSS</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="060201">
|
||||
<class>Terminate_MME</class>
|
||||
<desc>Terminate MME</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="070201">
|
||||
<class>Terminate_SPGW</class>
|
||||
<desc>Terminate SPGW</desc>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
@@ -0,0 +1,52 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-x2-ho-full-end</htmlTabRef>
|
||||
<htmlTabName>Test-X2-HO-Full-Terminate</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<TestCaseRequestedList>
|
||||
030201 030202
|
||||
050202
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="030201">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Master eNB</desc>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030202">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Slave eNB</desc>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050202">
|
||||
<class>Terminate_FlexranCtrl</class>
|
||||
<desc>Stopping Flexran Controller</desc>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
191
ci-scripts/xml_files/x2ho_enb_usrp210_band13_test_05mhz_tm1.xml
Normal file
191
ci-scripts/xml_files/x2ho_enb_usrp210_band13_test_05mhz_tm1.xml
Normal file
@@ -0,0 +1,191 @@
|
||||
<!--
|
||||
|
||||
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The OpenAirInterface Software Alliance licenses this file to You under
|
||||
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.openairinterface.org/?page_id=698
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
contact@openairinterface.org
|
||||
|
||||
030101 000002 030102 040301 040501 040601 040641 050401 000002 040502 040602 040642 050402 000002 040503 040603 040643 040401 040201 030201 030202
|
||||
-->
|
||||
<testCaseList>
|
||||
<htmlTabRef>test-x2-ho-05-tm1</htmlTabRef>
|
||||
<htmlTabName>Test-X2-HO-FDD-05MHz-TM1</htmlTabName>
|
||||
<htmlTabIcon>tasks</htmlTabIcon>
|
||||
<repeatCount>2</repeatCount>
|
||||
<TestCaseRequestedList>
|
||||
030201 030202
|
||||
040101
|
||||
050102
|
||||
030101 000002 030102 040301 040501 050401 000002 040502 050402 000002 040503 040401 040201 030201 030202
|
||||
050202
|
||||
</TestCaseRequestedList>
|
||||
<TestCaseExclusionList></TestCaseExclusionList>
|
||||
|
||||
<testCase id="000001">
|
||||
<class>IdleSleep</class>
|
||||
<desc>Waiting for 60 seconds</desc>
|
||||
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
|
||||
</testCase>
|
||||
|
||||
<testCase id="000002">
|
||||
<class>IdleSleep</class>
|
||||
<desc>Waiting for 10 seconds</desc>
|
||||
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050102">
|
||||
<class>Initialize_FlexranCtrl</class>
|
||||
<desc>Starting Flexran Controller</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050202">
|
||||
<class>Terminate_FlexranCtrl</class>
|
||||
<desc>Stopping Flexran Controller</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030101">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize Master eNB (FDD/Band7/5MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band13.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030102">
|
||||
<class>Initialize_eNB</class>
|
||||
<desc>Initialize Slave eNB (FDD/Band7/5MHz)</desc>
|
||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.slave.band13.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030201">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Master eNB</desc>
|
||||
<eNB_instance>0</eNB_instance>
|
||||
<eNB_serverId>0</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="030202">
|
||||
<class>Terminate_eNB</class>
|
||||
<desc>Terminate Slave eNB</desc>
|
||||
<eNB_instance>1</eNB_instance>
|
||||
<eNB_serverId>1</eNB_serverId>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040101">
|
||||
<class>Initialize_UE</class>
|
||||
<desc>Initialize UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040201">
|
||||
<class>Terminate_UE</class>
|
||||
<desc>Terminate UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040301">
|
||||
<class>Attach_UE</class>
|
||||
<desc>Attach UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040401">
|
||||
<class>Detach_UE</class>
|
||||
<desc>Detach UE</desc>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040501">
|
||||
<class>Ping</class>
|
||||
<desc>ping (5MHz - 20 sec)</desc>
|
||||
<ping_args>-c 20</ping_args>
|
||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040502">
|
||||
<class>Ping</class>
|
||||
<desc>ping (5MHz - 20 sec)</desc>
|
||||
<ping_args>-c 20</ping_args>
|
||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040503">
|
||||
<class>Ping</class>
|
||||
<desc>ping (5MHz - 20 sec)</desc>
|
||||
<ping_args>-c 20</ping_args>
|
||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040601">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - DL/8Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 8M -t 30 -i 1</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040602">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - DL/8Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 8M -t 30 -i 1</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040603">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - DL/8Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 8M -t 30 -i 1</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040641">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - UL/5Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 5M -t 30 -i 1 -R</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040642">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - UL/5Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 5M -t 30 -i 1 -R</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="040643">
|
||||
<class>Iperf</class>
|
||||
<desc>iperf (5MHz - UL/5Mbps/UDP)(30 sec)</desc>
|
||||
<iperf_args>-u -b 5M -t 30 -i 1 -R</iperf_args>
|
||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||
<iperf_profile>single-ue</iperf_profile>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050401">
|
||||
<class>Perform_X2_Handover</class>
|
||||
<desc>Doing a Flexran-Controlled X2 Handover</desc>
|
||||
<x2_ho_options>network</x2_ho_options>
|
||||
</testCase>
|
||||
|
||||
<testCase id="050402">
|
||||
<class>Perform_X2_Handover</class>
|
||||
<desc>Doing a Flexran-Controlled X2 Handover</desc>
|
||||
<x2_ho_options>network</x2_ho_options>
|
||||
</testCase>
|
||||
|
||||
</testCaseList>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -96,11 +96,41 @@ Obj.# Case# Test# Description
|
||||
(Test 4, 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)),
|
||||
(Test 5, 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)),
|
||||
(Test 6, 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%))
|
||||
01 51 02 pucchsim (TBD)
|
||||
01 51 03 prachsim (TBD)
|
||||
01 51 04 pdcchsim (TBD)
|
||||
01 51 05 pbchsim (TBD)
|
||||
01 51 06 mbmssim (TBD)
|
||||
01 51 02 ldpc Test cases. (Test1: block length = 3872),
|
||||
(Test2: block length = 4224),
|
||||
(Test3: block length = 4576),
|
||||
(Test4: block length = 4928),
|
||||
(Test5: block length = 5280),
|
||||
(Test6: block length = 5632),
|
||||
(Test7: block length = 6336),
|
||||
(Test8: block length = 7040),
|
||||
(Test9: block length = 7744),
|
||||
(Test10: block length = 8448)
|
||||
01 51 03 polartest Test cases. (Test1: PBCH polar test),
|
||||
(Test2: DCI polar test)
|
||||
01 51 04 nr_pbchsim Test cases. (Test1: PBCH-only, 106 PRB),
|
||||
(Test2: PBCH and synchronization, 106PBR),
|
||||
(Test3: PBCH-only, 217 PRB),
|
||||
(Test4: PBCH and synchronization, 217 RPB),
|
||||
(Test5: PBCH-only, 273 PRB),
|
||||
(Test6: PBCH and synchronization, 273 PRB)
|
||||
01 51 05 nr_dlsim Test cases. (Test1: 106 PRB),
|
||||
(Test2: 217 PRB),
|
||||
(Test3: 273 PRB)
|
||||
01 51 06 nr_dlschsim Test cases. (Test1: 106 PRB),
|
||||
(Test2: 217 PRB),
|
||||
(Test3: 273 PRB)
|
||||
01 51 07 shortblocktest Test cases. (Test1: 3 bits),
|
||||
(Test2: 6 bits),
|
||||
(Test3: 7 bits),
|
||||
(Test4: 11 bits)
|
||||
01 51 08 nr_ulschsim Test cases. (Test1: 106 PRB),
|
||||
(Test2: 217 PRB),
|
||||
(Test3: 273 PRB)
|
||||
01 51 09 nr_pucchsim Test cases. (Test1: Format 0 ACK miss 106 PRB),
|
||||
(Test2: Format 1 ACK miss 106 PRB),
|
||||
(Test3: Format 1 ACK miss 273 PRB),
|
||||
(Test4: Format 1 NACKtoACK 106 PRB)
|
||||
01 51 10 dlsim_tm4 test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB),
|
||||
(Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)),
|
||||
(Test 6: 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)),
|
||||
@@ -110,8 +140,11 @@ Obj.# Case# Test# Description
|
||||
(Test 10: 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)),
|
||||
(Test 10b: 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)),
|
||||
(Test 11: 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%))
|
||||
(TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)),
|
||||
(TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
|
||||
(TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)),
|
||||
(TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
|
||||
01 51 11 nr_ulsim Test cases. (Test1: MCS 9),
|
||||
(Test2: MCS 16),
|
||||
(Test3: MCS 28)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -303,8 +303,9 @@ function test_compile_and_run() {
|
||||
do
|
||||
global_result=1
|
||||
result_string=""
|
||||
PROPER_DESC=`echo ${desc_array[$tags_array_index]} | sed -e "s@^.*lsim.*est case.*(Test@Test@" -e "s@^ *(@@" -e "s/),$//"`
|
||||
|
||||
PROPER_DESC=`echo ${desc_array[$tags_array_index]} | sed -e "s@^.*Test cases.*(Test@Test@" -e "s@^ *(@@" -e"s/)$//" -e "s/),$//"`
|
||||
echo_info "$PROPER_DESC"
|
||||
|
||||
for (( run_index=1; run_index <= $nruns; run_index++ ))
|
||||
do
|
||||
temp_exec_log=$log_dir/test.$test_case_name.${tags_array[$tags_array_index]}.run_$run_index
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,8 +5,8 @@ cd /tmp/oai_test_setup/oai
|
||||
source oaienv
|
||||
sudo rmmod nasmesh || true
|
||||
sudo rmmod ue_ip || true
|
||||
cd cmake_targets/lte_build_oai/build
|
||||
cd cmake_targets/ran_build/build
|
||||
ulimit -c unlimited
|
||||
sudo rm -f core
|
||||
#sudo -E ./lte-softmodem -O $OPENAIR_DIR/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.conf
|
||||
sudo -E ./lte-softmodem -O /tmp/enb.conf
|
||||
sudo -E ./lte-softmodem -O /tmp/enb.conf
|
||||
@@ -26,17 +26,15 @@
|
||||
|
||||
set -e
|
||||
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
# Include helper functions
|
||||
ORIGIN_PATH=$PWD
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/tools/build_helper
|
||||
|
||||
# set environment variables (OPENAIR_HOME, ...)
|
||||
# Set environment variables (OPENAIR_HOME, ...)
|
||||
set_openair_env
|
||||
|
||||
#variables for UE data generation
|
||||
# Variables for UE data generation
|
||||
gen_nvram_path=$OPENAIR_DIR/targets/bin
|
||||
conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
|
||||
|
||||
@@ -46,10 +44,9 @@ UE_EXPANSION="False"
|
||||
UESIM_EXPANSION="False"
|
||||
PRINT_STATS="False"
|
||||
VCD_TIMING="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
|
||||
CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
|
||||
REL="Rel14"
|
||||
DEADLINE_SCHEDULER_FLAG_USER=""
|
||||
CPU_AFFINITY_FLAG_USER="False" #Only valid when low-latency flag is set to False
|
||||
REL="Rel15"
|
||||
HW="None"
|
||||
TP="None"
|
||||
EPC=0
|
||||
@@ -68,6 +65,7 @@ UE_DEBUG_TRACE="False"
|
||||
UE_TIMING_TRACE="False"
|
||||
USRP_REC_PLAY="False"
|
||||
BUILD_ECLIPSE=0
|
||||
NR="False"
|
||||
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope msc"
|
||||
trap handle_ctrl_c INT
|
||||
|
||||
@@ -76,8 +74,6 @@ function print_help() {
|
||||
This program installs OpenAirInterface Software
|
||||
You should have ubuntu 16.xx or 18.04 updated
|
||||
Options
|
||||
-h
|
||||
This help
|
||||
-c | --clean
|
||||
Erase all files to make a rebuild from start
|
||||
-C | --clean-all
|
||||
@@ -89,30 +85,33 @@ Options
|
||||
This option will require root password
|
||||
--install-optional-packages
|
||||
Install useful but not mandatory packages such as valgrind
|
||||
-i | --install-system-files
|
||||
Install OpenAirInterface required files in Linux system
|
||||
This option will require root password
|
||||
-g | --run-with-gdb
|
||||
Add debugging symbols to compilation directives. It also disables any compiler optimization. Only for debugging. Do not use in normal operation!
|
||||
-h | --help
|
||||
Print this help
|
||||
--eNB
|
||||
Makes the LTE softmodem
|
||||
Makes the LTE softmodem
|
||||
--gNB
|
||||
Makes the NR softmodem
|
||||
--nrUE
|
||||
Makes the NR UE softmodem
|
||||
--UE
|
||||
Makes the UE specific parts (ue_ip, usim, nvram) from the given configuration file
|
||||
--UE-conf-nvram [configuration file]
|
||||
Specify conf_nvram_path (default \"$conf_nvram_path\")
|
||||
--UE-gen-nvram [output path]
|
||||
Specify gen_nvram_path (default \"$gen_nvram_path\")
|
||||
--HWLAT
|
||||
Makes test program for haw latency tests
|
||||
-a | --agent
|
||||
Enables agent for software-defined control of the eNB
|
||||
-r | --3gpp-release
|
||||
default is Rel14,
|
||||
Rel8 limits the implementation to 3GPP Release 8 version
|
||||
Rel10 limits the implementation to 3GPP Release 10 version
|
||||
-w | --hardware
|
||||
EXMIMO, USRP, BLADERF, LMSSDR, IRIS, None (Default)
|
||||
EXMIMO, USRP, BLADERF, LMSSDR, IRIS, ADRV9371_ZC706, SIMU, None (Default)
|
||||
Adds this RF board support (in external packages installation and in compilation)
|
||||
--phy_simulators
|
||||
-P | --phy_simulators
|
||||
Makes the unitary tests Layer 1 simulators
|
||||
--core_simulators
|
||||
-S | --core_simulators
|
||||
Makes the core security features unitary simulators
|
||||
-s | --check
|
||||
runs a set of auto-tests based on simulators and several compilation tests
|
||||
@@ -120,9 +119,6 @@ Options
|
||||
runs only specified test cases specified here. This flag is only valid with -s
|
||||
-V | --vcd
|
||||
Adds a debgging facility to the binary files: GUI with major internal synchronization events
|
||||
--install-system-files
|
||||
Install OpenArInterface required files in Linux system
|
||||
(will ask root password)
|
||||
--verbose-compile
|
||||
Shows detailed compilation instructions in makefile
|
||||
--cflags_processor
|
||||
@@ -137,26 +133,31 @@ Options
|
||||
Enable deadline scheduler of Linux kernel (>=3.14.x).
|
||||
--disable-cpu-affinity
|
||||
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
||||
--enable-cpu-affinity
|
||||
--disable-T-Tracer
|
||||
Disables the T tracer.
|
||||
--disable-hardware-dependency
|
||||
Disable HW dependency during installation
|
||||
--ue-autotest-trace
|
||||
Enable specific traces for UE autotest framework
|
||||
Enable specific traces for UE autotest framework
|
||||
--ue-trace
|
||||
Enable traces for UE debugging
|
||||
Enable traces for UE debugging
|
||||
--ue-timing
|
||||
Enable traces for timing
|
||||
Enable traces for timing
|
||||
--uhd-images-dir
|
||||
Download UHD images in the indicated location
|
||||
--build-eclipse
|
||||
Build eclipse project files. Paths are auto corrected by fixprj.sh
|
||||
--build-lib <libraries>
|
||||
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES
|
||||
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES or \"all\"
|
||||
--usrp-recplay
|
||||
Build for I/Q record-playback modes
|
||||
-h | --help
|
||||
Print this help
|
||||
|
||||
Usage (first build):
|
||||
NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB --install-system-files -w USRP
|
||||
Usage (Regular):
|
||||
NI/ETTUS B201 + COTS UE : ./build_oai -I -i --eNB -w USRP
|
||||
Usage (regular):
|
||||
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB
|
||||
NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -w USRP"
|
||||
}
|
||||
@@ -185,6 +186,10 @@ function main() {
|
||||
INSTALL_OPTIONAL=1
|
||||
echo_info "Will install optional packages"
|
||||
shift;;
|
||||
-i | --install-system-files)
|
||||
INSTALL_SYSTEM_FILES=1
|
||||
echo_info "Will copy OpenAirInterface files in Linux directories"
|
||||
shift;;
|
||||
-g | --run-with-gdb)
|
||||
GDB=1
|
||||
CMAKE_BUILD_TYPE="Debug"
|
||||
@@ -195,13 +200,23 @@ function main() {
|
||||
eNB=1
|
||||
echo_info "Will compile eNB"
|
||||
shift;;
|
||||
--gNB)
|
||||
gNB=1
|
||||
NR="True"
|
||||
echo_info "Will compile gNB"
|
||||
shift;;
|
||||
-a | --agent)
|
||||
echo_info "FlexRAN support is always compiled into the eNB"
|
||||
shift;;
|
||||
echo_info "FlexRAN support is always compiled into the eNB"
|
||||
shift;;
|
||||
--UE)
|
||||
UE=1
|
||||
echo_info "Will compile UE"
|
||||
shift;;
|
||||
--nrUE)
|
||||
nrUE=1
|
||||
NR="True"
|
||||
echo_info "Will compile NR UE"
|
||||
shift;;
|
||||
--mu)
|
||||
UE_EXPANSION="True"
|
||||
echo_info "Will compile with UE_EXPANSION"
|
||||
@@ -213,32 +228,31 @@ function main() {
|
||||
--UE-conf-nvram)
|
||||
conf_nvram_path=$(readlink -f $2)
|
||||
shift 2;;
|
||||
--UE-gen-nvram)
|
||||
--UE-gen-nvram)
|
||||
gen_nvram_path=$(readlink -f $2)
|
||||
shift 2;;
|
||||
-r | --3gpp-release)
|
||||
REL=$2
|
||||
echo_info "Setting release to: $REL"
|
||||
shift 2;;
|
||||
-w | --hardware)
|
||||
# Use OAI_USRP as the key word USRP is used inside UHD driver
|
||||
case "$2" in
|
||||
"USRP" | "BLADERF" | "LMSSDR" | "IRIS" | "SIMU")
|
||||
HW="OAI_"$2
|
||||
;;
|
||||
"None")
|
||||
HW="None"
|
||||
;;
|
||||
*)
|
||||
echo_fatal "Unknown HW type $HW: exit..."
|
||||
esac
|
||||
echo_info "Setting hardware to: $HW"
|
||||
# Use OAI_USRP as the key word USRP is used inside UHD driver
|
||||
case "$2" in
|
||||
"EXMIMO")
|
||||
HW="EXMIMO"
|
||||
;;
|
||||
"USRP" | "BLADERF" | "LMSSDR" | "IRIS" | "ADRV9371_ZC706" | "SIMU")
|
||||
HW="OAI_"$2
|
||||
;;
|
||||
"None")
|
||||
HW="None"
|
||||
;;
|
||||
*)
|
||||
echo_fatal "Unknown HW type $HW: exit..."
|
||||
esac
|
||||
echo_info "Setting hardware to: $HW"
|
||||
shift 2;;
|
||||
--phy_simulators)
|
||||
-P | --phy_simulators)
|
||||
SIMUS_PHY=1
|
||||
echo_info "Will compile dlsim, ulsim, ..."
|
||||
shift;;
|
||||
--core_simulators)
|
||||
-S | --core_simulators)
|
||||
SIMUS_CORE=1
|
||||
echo_info "Will compile security unitary tests"
|
||||
shift;;
|
||||
@@ -261,12 +275,16 @@ function main() {
|
||||
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
|
||||
echo_info "Will generate the software oscilloscope features"
|
||||
shift;;
|
||||
--install-system-files)
|
||||
INSTALL_SYSTEM_FILES=1
|
||||
echo_info "Will copy OpenAirInterface files in Linux directories"
|
||||
--HWLAT)
|
||||
HWLAT=1
|
||||
echo_info "Will compile hw latency test program"
|
||||
shift;;
|
||||
--HWLAT_TEST)
|
||||
HWLAT_TEST=1
|
||||
echo_info "Will compile hw latency test program"
|
||||
shift;;
|
||||
--verbose-compile)
|
||||
VERBOSE_COMPILE=1
|
||||
VERBOSE_COMPILE=1
|
||||
echo_info "Will compile with verbose instructions"
|
||||
shift;;
|
||||
--cflags_processor)
|
||||
@@ -274,21 +292,25 @@ function main() {
|
||||
echo_info "Setting CPU FLAGS from USER to: $CFLAGS_PROCESSOR_USER"
|
||||
shift 2;;
|
||||
--build-doxygen)
|
||||
BUILD_DOXYGEN=1
|
||||
BUILD_DOXYGEN=1
|
||||
echo_info "Will build doxygen support"
|
||||
shift;;
|
||||
--build-coverity-scan)
|
||||
BUILD_COVERITY_SCAN=1
|
||||
BUILD_COVERITY_SCAN=1
|
||||
echo_info "Will build Coverity-Scan objects for upload"
|
||||
shift;;
|
||||
--disable-deadline)
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
echo_info "Disabling the usage of deadline scheduler"
|
||||
shift 1;;
|
||||
--enable-deadline)
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||
echo_info "Enabling the usage of deadline scheduler"
|
||||
shift 1;;
|
||||
--enable-cpu-affinity)
|
||||
CPU_AFFINITY_FLAG_USER="True"
|
||||
echo_info "Enabling CPU Affinity (only valid when not using deadline scheduler)"
|
||||
shift 1;;
|
||||
--disable-cpu-affinity)
|
||||
CPU_AFFINITY_FLAG_USER="False"
|
||||
echo_info "Disabling CPU Affinity (only valid when not using deadline scheduler)"
|
||||
@@ -301,19 +323,19 @@ function main() {
|
||||
echo_info "Disabling hardware dependency for compiling software"
|
||||
DISABLE_HARDWARE_DEPENDENCY="True"
|
||||
shift 1;;
|
||||
--ue-autotest-trace)
|
||||
--ue-autotest-trace)
|
||||
UE_AUTOTEST_TRACE="True"
|
||||
echo_info "Enabling autotest specific trace for UE"
|
||||
shift 1;;
|
||||
--ue-trace)
|
||||
--ue-trace)
|
||||
UE_DEBUG_TRACE="True"
|
||||
echo_info "Enabling UE trace for debug"
|
||||
shift 1;;
|
||||
--ue-timing)
|
||||
--ue-timing)
|
||||
UE_TIMING_TRACE="True"
|
||||
echo_info "Enabling UE timing trace"
|
||||
shift 1;;
|
||||
--uhd-images-dir)
|
||||
--uhd-images-dir)
|
||||
UHD_IMAGES_DIR=$2
|
||||
echo_info "Downloading UHD images in the indicated location"
|
||||
shift 2;;
|
||||
@@ -324,16 +346,21 @@ function main() {
|
||||
shift 1;;
|
||||
--build-lib)
|
||||
BUILD_OPTLIB=""
|
||||
for alib in $2 ; do
|
||||
if [ "$2" == "all" ] ; then
|
||||
BUILD_OPTLIB="$OPTIONAL_LIBRARIES"
|
||||
echo_info "Enabling build of all optional shared libraries ($OPTIONAL_LIBRARIES)"
|
||||
else
|
||||
for alib in $2 ; do
|
||||
for oklib in $OPTIONAL_LIBRARIES ; do
|
||||
if [ "$alib" = "$oklib" ] ; then
|
||||
BUILD_OPTLIB="$BUILD_OPTLIB $alib"
|
||||
echo_info "Enabling build of lib${alib}.so"
|
||||
fi
|
||||
if [ "$alib" = "$oklib" ] ; then
|
||||
BUILD_OPTLIB="$BUILD_OPTLIB $alib"
|
||||
echo_info "Enabling build of lib${alib}.so"
|
||||
fi
|
||||
done
|
||||
done
|
||||
done
|
||||
if [ "${BUILD_OPTLIB## }" != "$2" ] ; then
|
||||
echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES"
|
||||
if [ "${BUILD_OPTLIB## }" != "$2" ] ; then
|
||||
echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES"
|
||||
fi
|
||||
fi
|
||||
shift 2;;
|
||||
--usrp-recplay)
|
||||
@@ -350,9 +377,9 @@ function main() {
|
||||
esac
|
||||
done
|
||||
|
||||
#########################################################
|
||||
# check if cov-build is installed
|
||||
#########################################################
|
||||
###################################
|
||||
# Check if cov-build is installed #
|
||||
###################################
|
||||
if [ "$BUILD_COVERITY_SCAN" == "1" ] ; then
|
||||
echo_info "Checking cov-build is installed"
|
||||
IS_INSTALLED=`which cov-build | grep -c cov-build || true`
|
||||
@@ -365,28 +392,43 @@ function main() {
|
||||
|
||||
CMAKE_CMD="$CMAKE_CMD .."
|
||||
echo_info "CMAKE_CMD=$CMAKE_CMD"
|
||||
#########################################################
|
||||
# check validity of HW and TP parameters for eNB
|
||||
#########################################################
|
||||
|
||||
########################################################
|
||||
# Check validity of HW and TP parameters for eNB / gNB #
|
||||
########################################################
|
||||
# to be discussed
|
||||
|
||||
if [ "$eNB" = "1" ] ; then
|
||||
if [ "$eNB" = "1" -o "$gNB" = "1" ] ; then
|
||||
if [ "$HW" = "None" -a "$TP" = "None" ] ; then
|
||||
echo_info "No local radio head and no transport protocol selected"
|
||||
echo_info "No local radio head and no transport protocol selected"
|
||||
fi
|
||||
if [ "$HW" = "None" ] ; then
|
||||
echo_info "No radio head has been selected (HW set to $HW)"
|
||||
echo_info "No radio head has been selected (HW set to $HW)"
|
||||
fi
|
||||
if [ "$TP" = "None" ] ; then
|
||||
echo_info "No transport protocol has been selected (TP set to $TP)"
|
||||
echo_info "No transport protocol has been selected (TP set to $TP)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo_info "RF HW set to $HW"
|
||||
# If the user doesn't specify the Linux scheduler to use, we set a value
|
||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
if [ "$HWLAT" = "1" ] ; then
|
||||
if [ "$HW" = "None" ] ; then
|
||||
echo_info "No radio head has been selected (HW set to $HW)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo_info "RF HW set to $HW"
|
||||
# If the user doesn't specify the Linux scheduler to use, we set a value
|
||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
||||
case "$HW" in
|
||||
"EXMIMO")
|
||||
DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||
;;
|
||||
*)
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
#Disable CPU Affinity for deadline scheduler
|
||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
|
||||
CPU_AFFINITY_FLAG_USER="False"
|
||||
@@ -399,9 +441,10 @@ function main() {
|
||||
echo_error "UHD images download settings will not be applied without -I present"
|
||||
exit
|
||||
fi
|
||||
############################################
|
||||
# setting and printing OAI envs, we should check here
|
||||
############################################
|
||||
|
||||
#######################################################
|
||||
# Setting and printing OAI envs, we should check here #
|
||||
#######################################################
|
||||
|
||||
echo_info "2. Setting the OAI PATHS ..."
|
||||
|
||||
@@ -418,7 +461,6 @@ function main() {
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "$CLEAN_ALL" = "1" ] ; then
|
||||
clean_all_files
|
||||
echo_info "Erased all previously producted files"
|
||||
@@ -438,6 +480,10 @@ function main() {
|
||||
install_usrp_uhd_driver $UHD_IMAGES_DIR
|
||||
fi
|
||||
fi
|
||||
# if [ "$HW" == "OAI_ADRV9371_ZC706" ] ; then
|
||||
# echo_info "\nInstalling packages for ADRV9371_ZC706 support"
|
||||
# check_install_libiio_driver
|
||||
# fi
|
||||
if [ "$HW" == "OAI_BLADERF" ] ; then
|
||||
echo_info "installing packages for BLADERF support"
|
||||
check_install_bladerf_driver
|
||||
@@ -467,96 +513,104 @@ function main() {
|
||||
echo_info "3. building the compilation directives ..."
|
||||
|
||||
DIR=$OPENAIR_DIR/cmake_targets
|
||||
|
||||
if [ "$T_TRACER" = "False" ] ; then
|
||||
noLOGDirsuffix="_noLOG"
|
||||
fi
|
||||
lte_build_dir=lte_build_oai
|
||||
bin_suffix=""
|
||||
|
||||
lte_build_dir="lte_build_oai${noLOGDirsuffix}"
|
||||
if [ "$T_TRACER" = "False" ] ; then
|
||||
build_dir=ran_build_noLOG
|
||||
else
|
||||
build_dir=ran_build
|
||||
fi
|
||||
|
||||
if [ "$gNB" = "1" ] ; then
|
||||
exec=nr-softmodem
|
||||
elif [ "$nrUE" = "1" ] ; then
|
||||
exec=nr-uesoftmodem
|
||||
elif [ "$eNB" = "1" ] ; then
|
||||
exec=lte-softmodem
|
||||
elif [ "$UE" = "1" ] ; then
|
||||
exec=lte-uesoftmodem
|
||||
fi
|
||||
|
||||
# configuration module libraries, one currently available, using libconfig
|
||||
config_libconfig_shlib=params_libconfig
|
||||
|
||||
# first generate the CMakefile in the right directory
|
||||
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
|
||||
if [ "$eNB" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HW" = "EXMIMO" ] ; then
|
||||
|
||||
# LTE softmodem compilation
|
||||
[ "$CLEAN" = "1" ] && rm -rf $DIR/$lte_build_dir/build
|
||||
mkdir -p $DIR/$lte_build_dir/build
|
||||
cmake_file=$DIR/$lte_build_dir/CMakeLists.txt
|
||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
||||
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
|
||||
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
|
||||
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||
echo "set ( UESIM_EXPANSION $UESIM_EXPANSION )" >> $cmake_file
|
||||
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
|
||||
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
|
||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||
echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $cmake_file
|
||||
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
|
||||
echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file
|
||||
echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
|
||||
echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file
|
||||
echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$lte_build_dir/build
|
||||
# softmodem compilation
|
||||
[ "$CLEAN" = "1" ] && rm -rf $DIR/$build_dir/build
|
||||
mkdir -p $DIR/$build_dir/build
|
||||
cmake_file=$DIR/$build_dir/CMakeLists.txt
|
||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
||||
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
|
||||
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
|
||||
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||
echo "set ( UESIM_EXPANSION $UESIM_EXPANSION )" >> $cmake_file
|
||||
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
|
||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||
echo "set ( PACKAGE_NAME \"${exec}\")" >> $cmake_file
|
||||
echo "set ( DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
|
||||
echo "set ( UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE )" >> $cmake_file
|
||||
echo "set ( UE_DEBUG_TRACE $UE_DEBUG_TRACE )" >> $cmake_file
|
||||
echo "set ( UE_TIMING_TRACE $UE_TIMING_TRACE )" >> $cmake_file
|
||||
echo "set ( USRP_REC_PLAY $USRP_REC_PLAY )" >> $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$build_dir/build
|
||||
eval $CMAKE_CMD
|
||||
fi
|
||||
|
||||
if [ "$eNB" = "1" ] ; then
|
||||
lte_exec=lte-softmodem${bin_suffix}
|
||||
if [ "$eNB" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" ] ; then
|
||||
echo_info "Compiling $exec"
|
||||
compilations \
|
||||
$lte_build_dir $lte_exec \
|
||||
$lte_exec $dbin/$lte_exec.$REL
|
||||
$build_dir $exec \
|
||||
$exec $dbin/$exec.$REL
|
||||
|
||||
# if --eNB --UE are both provided together as build options
|
||||
if [ "$eNB" = "1" -a "$UE" = "1" ] ; then
|
||||
echo_info "Compiling lte-uesoftmodem"
|
||||
compilations \
|
||||
$build_dir lte-uesoftmodem \
|
||||
lte-uesoftmodem $dbin/lte-uesoftmodem.$REL
|
||||
fi
|
||||
|
||||
# if --gNB --nrUE are both provided together as build options
|
||||
if [ "$gNB" = "1" -a "$nrUE" = "1" ] ; then
|
||||
echo_info "Compiling nr-uesoftmodem"
|
||||
compilations \
|
||||
$build_dir nr-uesoftmodem \
|
||||
nr-uesoftmodem $dbin/nr-uesoftmodem.$REL
|
||||
fi
|
||||
|
||||
# mandatory shared libraries common to UE and (e/g)NB
|
||||
|
||||
# mandatory shared lib
|
||||
compilations \
|
||||
$lte_build_dir $config_libconfig_shlib \
|
||||
$build_dir $config_libconfig_shlib \
|
||||
lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
||||
compilations \
|
||||
$lte_build_dir coding \
|
||||
libcoding.so $dbin/libcoding.so
|
||||
# optional libs (used when noS1 with kernel modules
|
||||
compilations \
|
||||
$lte_build_dir nasmesh \
|
||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
||||
compilations \
|
||||
$lte_build_dir rb_tool \
|
||||
rb_tool $dbin/rb_tool
|
||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
||||
fi
|
||||
|
||||
if [ "$UE" = 1 ] ; then
|
||||
lte_exec=lte-uesoftmodem${bin_suffix}
|
||||
compilations \
|
||||
$lte_build_dir $lte_exec \
|
||||
$lte_exec $dbin/$lte_exec.$REL
|
||||
|
||||
# mandatory shared lib
|
||||
compilations \
|
||||
$lte_build_dir $config_libconfig_shlib \
|
||||
lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
||||
compilations \
|
||||
$lte_build_dir coding \
|
||||
libcoding.so $dbin/libcoding.so
|
||||
# optional libs (used when noS1 with kernel modules
|
||||
compilations \
|
||||
$lte_build_dir nasmesh \
|
||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
||||
compilations \
|
||||
$lte_build_dir rb_tool \
|
||||
rb_tool $dbin/rb_tool
|
||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
||||
$build_dir coding \
|
||||
libcoding.so $dbin/libcoding.so
|
||||
|
||||
compilations \
|
||||
$build_dir nasmesh \
|
||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
||||
|
||||
compilations \
|
||||
$build_dir rb_tool \
|
||||
rb_tool $dbin/rb_tool
|
||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
||||
fi
|
||||
|
||||
if [ "$UE" = 1 ] ; then
|
||||
# ue_ip driver compilation
|
||||
echo_info "Compiling UE specific part"
|
||||
compilations \
|
||||
$lte_build_dir ue_ip \
|
||||
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
|
||||
$build_dir ue_ip \
|
||||
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
|
||||
|
||||
# mkdir -p $DIR/at_commands/build
|
||||
# cd $DIR/at_commands/build
|
||||
@@ -577,23 +631,23 @@ function main() {
|
||||
nas_sim_tools nvram \
|
||||
nvram $dbin/nvram
|
||||
compilations \
|
||||
nas_sim_tools conf2uedata \
|
||||
conf2uedata $dbin/conf2uedata
|
||||
nas_sim_tools conf2uedata \
|
||||
conf2uedata $dbin/conf2uedata
|
||||
|
||||
# generate USIM data
|
||||
if [ -f $dbin/conf2uedata ]; then
|
||||
install_nas_tools $conf_nvram_path $gen_nvram_path
|
||||
echo_info "Copying UE specific part to $DIR/$lte_build_dir/build"
|
||||
cp -Rvf $dbin/.ue_emm.nvram0 $DIR/$lte_build_dir/build
|
||||
cp -Rvf $dbin/.ue.nvram0 $DIR/$lte_build_dir/build
|
||||
cp -Rvf $dbin/.usim.nvram0 $DIR/$lte_build_dir/build
|
||||
echo_info "Copying UE specific part to $DIR/$build_dir/build"
|
||||
cp -Rvf $dbin/.ue_emm.nvram0 $DIR/$build_dir/build
|
||||
cp -Rvf $dbin/.ue.nvram0 $DIR/$build_dir/build
|
||||
cp -Rvf $dbin/.usim.nvram0 $DIR/$build_dir/build
|
||||
else
|
||||
echo_warning "not generated UE NAS files: binaries not found"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then
|
||||
cd $OPENAIR_DIR/cmake_targets/lte-simulators
|
||||
cd $OPENAIR_DIR/cmake_targets/phy_simulators
|
||||
[ "$CLEAN" = "1" ] && rm -rf build
|
||||
mkdir -p build
|
||||
cd build
|
||||
@@ -601,156 +655,230 @@ function main() {
|
||||
eval $CMAKE_CMD
|
||||
fi
|
||||
|
||||
##################
|
||||
# PHY simulators #
|
||||
##################
|
||||
if [ "$SIMUS_PHY" = "1" ] ; then
|
||||
# lte unitary simulators compilation
|
||||
echo_info "Compiling unitary tests simulators"
|
||||
echo_info "Compiling physical unitary tests simulators"
|
||||
# TODO: fix: dlsim_tm4 pucchsim prachsim pdcchsim pbchsim mbmssim
|
||||
#simlist="dlsim_tm4 dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
|
||||
simlist="dlsim ulsim"
|
||||
simlist="dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim"
|
||||
for f in $simlist ; do
|
||||
compilations \
|
||||
lte-simulators $f \
|
||||
$f $dbin/$f.$REL
|
||||
phy_simulators $f \
|
||||
$f $dbin/$f.$REL
|
||||
done
|
||||
compilations \
|
||||
lte-simulators coding \
|
||||
libcoding.so $dbin/libcoding.so
|
||||
phy_simulators coding \
|
||||
libcoding.so $dbin/libcoding.so
|
||||
# compilations \
|
||||
# lte-simulators $config_libconfig_shlib \
|
||||
# lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
||||
# lte-simulators $config_libconfig_shlib \
|
||||
# lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
||||
fi
|
||||
|
||||
# Core simulators
|
||||
#############
|
||||
###################
|
||||
# Core simulators #
|
||||
###################
|
||||
if [ "$SIMUS_CORE" = "1" ] ; then
|
||||
# lte unitary simulators compilation
|
||||
echo_info "Compiling unitary tests simulators"
|
||||
echo_info "Compiling security unitary tests simulators"
|
||||
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
|
||||
for f in $simlist ; do
|
||||
compilations \
|
||||
lte-simulators test_$f \
|
||||
test_$f $dbin/test_$f.$REL
|
||||
phy_simulators test_$f \
|
||||
test_$f $dbin/test_$f.$REL
|
||||
done
|
||||
fi
|
||||
|
||||
# EXMIMO drivers & firmware loader
|
||||
###############
|
||||
####################################
|
||||
# EXMIMO drivers & firmware loader #
|
||||
####################################
|
||||
if [ "$HW" = "EXMIMO" ] ; then
|
||||
|
||||
echo_info "Compiling Express MIMO 2 board drivers"
|
||||
compilations \
|
||||
$lte_build_dir openair_rf \
|
||||
CMakeFiles/openair_rf/openair_rf.ko $dbin/openair_rf.ko
|
||||
$build_dir openair_rf \
|
||||
CMakeFiles/openair_rf/openair_rf.ko $dbin/openair_rf.ko
|
||||
compilations \
|
||||
$lte_build_dir updatefw \
|
||||
$build_dir updatefw \
|
||||
updatefw $dbin/updatefw
|
||||
echo_info "Compiling oarf tools. The logfile for compilation is here: $dlog/oarf.txt"
|
||||
make -C $OPENAIR_DIR/cmake_targets/$lte_build_dir/build oarf > $dlog/oarf.txt 2>&1
|
||||
cp $OPENAIR_DIR/cmake_targets/$lte_build_dir/build/*.oct $dbin
|
||||
make -C $OPENAIR_DIR/cmake_targets/$build_dir/build oarf > $dlog/oarf.txt 2>&1
|
||||
cp $OPENAIR_DIR/cmake_targets/$build_dir/build/*.oct $dbin
|
||||
if [ -s $dbin/oarf_config_exmimo.oct ] ; then
|
||||
echo_success "oarf tools compiled"
|
||||
echo_success "oarf tools compiled"
|
||||
else
|
||||
echo_error "oarf tools compilation failed"
|
||||
echo_error "oarf tools compilation failed"
|
||||
fi
|
||||
cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin
|
||||
fi
|
||||
# optional libraries
|
||||
#####################
|
||||
|
||||
######################
|
||||
# Optional libraries #
|
||||
######################
|
||||
if [ ! -z "$BUILD_OPTLIB" ] ; then
|
||||
for oklib in $BUILD_OPTLIB ; do
|
||||
compilations \
|
||||
$lte_build_dir $oklib \
|
||||
lib${oklib}.so $dbin/lib${oklib}.so
|
||||
$build_dir $oklib \
|
||||
lib${oklib}.so $dbin/lib${oklib}.so
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
#####################
|
||||
# HWLAT compilation #
|
||||
#####################
|
||||
if [ "$HWLAT" = "1" ] ; then
|
||||
|
||||
hwlat_exec=lte-hwlat
|
||||
hwlat_build_dir=lte-hwlat
|
||||
|
||||
echo_info "Compiling $hwlat_exec ..."
|
||||
|
||||
[ "$CLEAN" = "1" ] && rm -rf $DIR/lte-hwlat/build
|
||||
mkdir -p $DIR/$hwlat_build_dir/build
|
||||
cmake_file=$DIR/$hwlat_build_dir/CMakeLists.txt
|
||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo 'set ( PACKAGE_NAME "\"lte-hwlat\"")' >> $cmake_file
|
||||
echo "set ( DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( HWLAT \"${HWLAT}\" )" >> $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$hwlat_build_dir/build
|
||||
cmake ..
|
||||
compilations \
|
||||
lte-hwlat lte-hwlat \
|
||||
lte-hwlat $dbin/lte-hwlat
|
||||
fi
|
||||
|
||||
# build RF device and transport protocol libraries
|
||||
#####################################
|
||||
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
|
||||
##########################
|
||||
# HWLAT_TEST compilation #
|
||||
##########################
|
||||
if [ "$HWLAT_TEST" = "1" ] ; then
|
||||
|
||||
hwlat_test_exec=lte-hwlat-test
|
||||
hwlat_test_build_dir=lte-hwlat-test
|
||||
|
||||
echo_info "Compiling $hwlat_test_exec ..."
|
||||
|
||||
[ "$CLEAN" = "1" ] && rm -rf $DIR/lte-hwlat-test/build
|
||||
mkdir -p $DIR/$hwlat_test_build_dir/build
|
||||
cmake_file=$DIR/$hwlat_test_build_dir/CMakeLists.txt
|
||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo 'set ( PACKAGE_NAME "\"lte-hwlat-test\"")' >> $cmake_file
|
||||
echo "set ( DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >> $cmake_file
|
||||
echo "set ( HWLAT \"${HWLAT}\" )" >> $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$hwlat_test_build_dir/build
|
||||
cmake ..
|
||||
compilations \
|
||||
lte-hwlat-test lte-hwlat-test \
|
||||
lte-hwlat-test $dbin/lte-hwlat-test
|
||||
fi
|
||||
|
||||
####################################################
|
||||
# Build RF device and transport protocol libraries #
|
||||
####################################################
|
||||
if [ "$eNB" = "1" -o "$UE" = "1" -o "$gNB" = "1" -o "$nrUE" = "1" -o "$HWLAT" = "1" ] ; then
|
||||
|
||||
# build RF device libraries
|
||||
if [ "$HW" != "None" ] ; then
|
||||
rm -f liboai_device.so
|
||||
rm -f $dbin/liboai_device.so
|
||||
rm -f liboai_device.so
|
||||
rm -f $dbin/liboai_device.so
|
||||
|
||||
# link liboai_device.so with the selected RF device library
|
||||
if [ "$HW" == "OAI_USRP" ] ; then
|
||||
# link liboai_device.so with the selected RF device library
|
||||
if [ "$HW" == "EXMIMO" ] ; then
|
||||
compilations \
|
||||
$build_dir oai_exmimodevif \
|
||||
liboai_exmimodevif.so $dbin/liboai_exmimodevif.so.$REL
|
||||
|
||||
ln -sf liboai_exmimodevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_exmimodevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to EXMIMO device library"
|
||||
elif [ "$HW" == "OAI_USRP" ] ; then
|
||||
compilations \
|
||||
$lte_build_dir oai_usrpdevif \
|
||||
$build_dir oai_usrpdevif \
|
||||
liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
|
||||
|
||||
ln -sf liboai_usrpdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_usrpdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to USRP device library"
|
||||
elif [ "$HW" == "OAI_BLADERF" ] ; then
|
||||
if [ -f "/usr/include/libbladeRF.h" ] ; then
|
||||
compilations \
|
||||
$lte_build_dir oai_bladerfdevif \
|
||||
liboai_bladerfdevif.so $dbin/liboai_bladerfdevif.so.$REL
|
||||
fi
|
||||
|
||||
ln -sf liboai_bladerfdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_bladerfdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to BLADERF device library"
|
||||
elif [ "$HW" == "OAI_LMSSDR" ] ; then
|
||||
# if [ -f "/usr/include/libbladeRF.h" ] ; then
|
||||
compilations \
|
||||
$lte_build_dir oai_lmssdrdevif \
|
||||
liboai_lmssdrdevif.so $dbin/liboai_lmssdrdevif.so.$REL
|
||||
# fi
|
||||
|
||||
ln -sf liboai_lmssdrdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_lmssdrdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to LMSSDR device library"
|
||||
elif [ "$HW" == "OAI_IRIS" ] ; then
|
||||
|
||||
ln -sf liboai_usrpdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_usrpdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to USRP device library"
|
||||
elif [ "$HW" == "OAI_BLADERF" ] ; then
|
||||
if [ -f "/usr/include/libbladeRF.h" ] ; then
|
||||
compilations \
|
||||
$lte_build_dir oai_irisdevif \
|
||||
liboai_irisdevif.so $dbin/liboai_irisdevif.so.$REL
|
||||
$build_dir oai_bladerfdevif \
|
||||
liboai_bladerfdevif.so $dbin/liboai_bladerfdevif.so.$REL
|
||||
fi
|
||||
|
||||
ln -sf liboai_bladerfdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_bladerfdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to BLADERF device library"
|
||||
elif [ "$HW" == "OAI_LMSSDR" ] ; then
|
||||
# if [ -f "/usr/include/libbladeRF.h" ] ; then
|
||||
compilations \
|
||||
$build_dir oai_lmssdrdevif \
|
||||
liboai_lmssdrdevif.so $dbin/liboai_lmssdrdevif.so.$REL
|
||||
# fi
|
||||
|
||||
ln -sf liboai_lmssdrdevif.so liboai_device.so
|
||||
ln -sf $dbin/liboai_lmssdrdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to LMSSDR device library"
|
||||
elif [ "$HW" == "OAI_IRIS" ] ; then
|
||||
compilations \
|
||||
$build_dir oai_irisdevif \
|
||||
liboai_irisdevif.so $dbin/liboai_irisdevif.so.$REL
|
||||
|
||||
ln -s liboai_irisdevif.so liboai_device.so
|
||||
ln -s $dbin/liboai_irisdevif.so.$REL $dbin/liboai_device.so
|
||||
echo_info "liboai_device.so is linked to IRIS device library"
|
||||
else
|
||||
echo_info "liboai_device.so is not linked to any device library"
|
||||
fi
|
||||
elif [ "$HW" == "OAI_ADRV9371_ZC706" ] ; then
|
||||
SYRIQ_KVER=$(uname -r)
|
||||
SYRIQ_KMAJ=$(echo $SYRIQ_KVER | sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/')
|
||||
SYRIQ_KMIN=$(echo $SYRIQ_KVER | sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/')
|
||||
# echo $SYRIQ_KMAJ$SYRIQ_KMIN
|
||||
if [ "$SYRIQ_KMAJ$SYRIQ_KMIN" == "319" ] || [ "$SYRIQ_KMAJ$SYRIQ_KMIN" == "410" ] || [ "$SYRIQ_KMAJ$SYRIQ_KMIN" == "415" ] ; then
|
||||
# echo "Kernel $SYRIQ_KMAJ.$SYRIQ_KMIN detected"
|
||||
ln -sf /usr/local/lib/syriq/libadrv9371zc706.so liboai_device.so
|
||||
else
|
||||
echo_error "== FAILED == Unexpected Kernel $SYRIQ_KMAJ.$SYRIQ_KMIN"
|
||||
fi
|
||||
echo_info "liboai_device.so is linked to ADRV9371_ZC706 device library for Kernel $SYRIQ_KMAJ.$SYRIQ_KMIN"
|
||||
else
|
||||
echo_info "liboai_device.so is not linked to any device library"
|
||||
fi
|
||||
fi
|
||||
|
||||
# build simulators devices
|
||||
echo_info "Compiling rfsimulator"
|
||||
compilations \
|
||||
$lte_build_dir rfsimulator \
|
||||
librfsimulator.so $dbin/librfsimulator.so.$REL
|
||||
echo_info "Compiling basicsimulator"
|
||||
compilations \
|
||||
$lte_build_dir tcp_bridge_oai \
|
||||
libtcp_bridge_oai.so $dbin/libtcp_bridge_oai.so.$REL
|
||||
# build transport protocol libraries (currently only ETHERNET is available)
|
||||
#build simulators devices
|
||||
echo_info "Compiling rfsimulator"
|
||||
compilations \
|
||||
$build_dir rfsimulator \
|
||||
librfsimulator.so $dbin/librfsimulator.so.$REL
|
||||
|
||||
echo_info "Compiling basicsimulator"
|
||||
compilations \
|
||||
$build_dir tcp_bridge_oai \
|
||||
libtcp_bridge_oai.so $dbin/libtcp_bridge_oai.so.$REL
|
||||
|
||||
rm -f liboai_transpro.so
|
||||
#build transport protocol libraries (currently only ETHERNET is available)
|
||||
rm -f liboai_transpro.so
|
||||
rm -f $dbin/liboai_transpro.so
|
||||
compilations \
|
||||
$lte_build_dir oai_eth_transpro \
|
||||
compilations \
|
||||
$build_dir oai_eth_transpro \
|
||||
liboai_eth_transpro.so $dbin/liboai_eth_transpro.so.$REL
|
||||
ln -sf liboai_eth_transpro.so liboai_transpro.so
|
||||
ln -sf $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so
|
||||
echo_info "liboai_transpro.so is linked to ETHERNET transport"
|
||||
fi
|
||||
ln -sf liboai_eth_transpro.so liboai_transpro.so
|
||||
ln -sf $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so
|
||||
echo_info "liboai_transpro.so is linked to ETHERNET transport"
|
||||
fi
|
||||
|
||||
if [ "$RFSIMULATOR" == "true" -o "$HW" == "OAI_SIMU" ] ; then
|
||||
echo_info "Compiling rfsimulator"
|
||||
compilations \
|
||||
$lte_build_dir rfsimulator \
|
||||
librfsimulator.so $dbin/librfsimulator.so.$REL
|
||||
fi
|
||||
|
||||
# Doxygen Support
|
||||
#####################
|
||||
if [ "$BUILD_DOXYGEN" = "1" ] ;then
|
||||
###################
|
||||
# Doxygen Support #
|
||||
###################
|
||||
if [ "$BUILD_DOXYGEN" = "1" ] ; then
|
||||
doxygen_log=$OPENAIR_DIR/cmake_targets/log/doxygen.log
|
||||
echo_info "Building doxygen based documentation. The documentation file is located here: $OPENAIR_DIR/targets/DOCS/html/index.html"
|
||||
echo_info "Doxygen Generation log is located here: $doxygen_log"
|
||||
echo_info "Generating doxygen files....please wait"
|
||||
echo_info "Building Doxygen based documentation. The documentation file is located here: $OPENAIR_DIR/targets/DOCS/html/index.html"
|
||||
echo_info "Doxygen generation log is located here: $doxygen_log"
|
||||
echo_info "Generating Doxygen files....please wait"
|
||||
(
|
||||
[ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/doxygen/build
|
||||
mkdir -p $OPENAIR_DIR/cmake_targets/doxygen/build
|
||||
@@ -760,9 +888,10 @@ function main() {
|
||||
) >& $doxygen_log
|
||||
fi
|
||||
|
||||
# Auto-tests
|
||||
#####################
|
||||
if [ "$OAI_TEST" = "1" ]; then
|
||||
##############
|
||||
# Auto-tests #
|
||||
##############
|
||||
if [ "$OAI_TEST" = "1" ] ; then
|
||||
echo_info "10. Running OAI pre commit tests (pre-ci) ..."
|
||||
echo_error "These scripts ASSUME that user is in /etc/sudoers and can execute commands without PASSWORD prompt"
|
||||
echo_error "Add the following lines in /etc/sudoers file to make your __user_name__ sudo without password prompt"
|
||||
@@ -770,7 +899,7 @@ function main() {
|
||||
echo_error " __your_user_name__ ALL = (ALL) NOPASSWD: ALL "
|
||||
echo_info "The log file for the autotest script for debugging is located here: $OPENAIR_DIR/cmake_targets/autotests/log/autotests.log "
|
||||
echo_info "The results of autotests results is located here: $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml "
|
||||
echo_info "You can hit CTRL-C any time to terminate the autotests..."
|
||||
echo_info "You can hit CTRL-C at any time to terminate the autotests..."
|
||||
echo "Current User Name: $USER"
|
||||
read -s -p "Enter Password: " mypassword
|
||||
echo -e "\n"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
#sudo ./build_oai -c -C -I --install-optional-packages --install-system-files --UE -w USRP -V
|
||||
#sudo ./build_oai -c -C -I --install-optional-packages --UE -w USRP -V
|
||||
#sudo ./build_oai -c -C --UE -w USRP -V
|
||||
sudo ./build_oai -c -C --UE -w USRP
|
||||
#sudo ./build_oai -c -C --UE -w USRP --build-eclipse
|
||||
@@ -1,10 +0,0 @@
|
||||
set(ENABLE_ITTI True)
|
||||
set(ENABLE_USE_MME False)
|
||||
set(PDCP_USE_NETLINK True)
|
||||
set(LINK_ENB_PDCP_TO_IP_DRIVER True)
|
||||
set(LINK_ENB_PDCP_TO_GTPV1U False)
|
||||
set(PDCP_USE_NETLINK_QUEUES False)
|
||||
set(LINUX True)
|
||||
set(SECU False)
|
||||
set(NAS_UE False)
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
|
||||
set ( DEBUG_OMG False )
|
||||
set ( DISABLE_XER_PRINT False )
|
||||
set ( DRIVER2013 True )
|
||||
set ( ENABLE_ITTI True )
|
||||
set ( ENABLE_NAS_UE_LOGGING True )
|
||||
set ( ENABLE_NEW_MULTICAST True )
|
||||
set ( ENABLE_RAL False )
|
||||
set ( ENABLE_STANDALONE_EPC False)
|
||||
set ( ENABLE_USE_CPU_EXECUTION_TIME True )
|
||||
set ( ENABLE_USE_MME True )
|
||||
set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True)
|
||||
set ( ENABLE_VCD_FIFO False )
|
||||
set ( ENB_MODE True )
|
||||
set ( EXMIMO_IOT True )
|
||||
set ( JUMBO_FRAME True )
|
||||
set ( LARGE_SCALE False )
|
||||
set ( LINK_ENB_PDCP_TO_GTPV1U True)
|
||||
set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD True )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False)
|
||||
set ( MSG_PRINT False )
|
||||
set ( MU_RECEIVER False )
|
||||
set ( NAS_ADDRESS_FIX False )
|
||||
set ( NAS_BUILT_IN_UE True)
|
||||
set ( NAS_MME False )
|
||||
set ( NAS_UE True )
|
||||
set ( NB_ANTENNAS_RX "2" )
|
||||
set ( NB_ANTENNAS_TX "2" )
|
||||
set ( NO_RRM True )
|
||||
set ( OAISIM True )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PACKAGE_NAME "oaisim" )
|
||||
set ( PDCP_USE_NETLINK True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PHY_CONTEXT False )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( RF_BOARD "False" )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
set ( RRC_ASN1_VERSION "Rel10" )
|
||||
set ( RRC_DEFAULT_RAB_IS_AM True)
|
||||
set ( RRC_MSG_PRINT False )
|
||||
set ( SECU False )
|
||||
set ( SMBV False )
|
||||
set ( TEST_OMG False )
|
||||
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
|
||||
set ( USE_MME "R10" )
|
||||
set ( XER_PRINT False )
|
||||
@@ -1,61 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
|
||||
set ( DEBUG_OMG False )
|
||||
set ( DISABLE_XER_PRINT False )
|
||||
set ( DRIVER2013 False )
|
||||
set ( ENABLE_ITTI True )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST False )
|
||||
set ( ENABLE_RAL False )
|
||||
set ( ENABLE_STANDALONE_EPC False )
|
||||
set ( ENABLE_USE_CPU_EXECUTION_TIME False )
|
||||
set ( ENABLE_USE_MME False )
|
||||
set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True)
|
||||
set ( ENABLE_VCD_FIFO False )
|
||||
set ( ENB_MODE False )
|
||||
set ( EPC_BUILD True )
|
||||
set ( EXMIMO_IOT False )
|
||||
set ( JUMBO_FRAME False )
|
||||
set ( LARGE_SCALE False )
|
||||
set ( LINK_ENB_PDCP_TO_GTPV1U True)
|
||||
set ( LINUX_LIST False )
|
||||
set ( LINUX False )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MSG_PRINT False )
|
||||
set ( MU_RECEIVER False )
|
||||
set ( NAS_ADDRESS_FIX False )
|
||||
set ( NAS_BUILT_IN_EPC True )
|
||||
set ( NAS_MME True )
|
||||
set ( NAS_NETLINK False )
|
||||
set ( NAS_UE False )
|
||||
set ( NB_ANTENNAS_RX "2" )
|
||||
set ( NB_ANTENNAS_TX "2" )
|
||||
set ( NO_RRM False )
|
||||
set ( OAISIM False )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OPENAIR2 False )
|
||||
set ( OPENAIR_LTE False )
|
||||
set ( PACKAGE_NAME "EPC" )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PHY_CONTEXT False )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM False )
|
||||
set ( RF_BOARD "False" )
|
||||
set ( RRC_ASN1_VERSION "Rel10" )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
set ( RRC_MSG_PRINT False )
|
||||
set ( SECU False )
|
||||
set ( SMBV False )
|
||||
set ( TEST_OMG False )
|
||||
set ( UPDATE_RELEASE_9 True)
|
||||
set ( UPDATE_RELEASE_10 True)
|
||||
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
|
||||
set ( USE_MME "R10" )
|
||||
set ( XER_PRINT False )
|
||||
set ( XFORMS False )
|
||||
@@ -1,62 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set ( DEBUG_OMG False )
|
||||
set ( DISABLE_XER_PRINT False )
|
||||
set ( DRIVER2013 True )
|
||||
set ( ENABLE_ITTI True )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST True )
|
||||
set ( ENABLE_RAL False )
|
||||
set ( ENABLE_STANDALONE_EPC False)
|
||||
set ( ENABLE_USE_CPU_EXECUTION_TIME True )
|
||||
set ( ENABLE_USE_MME False )
|
||||
set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False)
|
||||
set ( ENABLE_VCD_FIFO False )
|
||||
set ( ENB_MODE True )
|
||||
set ( EXMIMO_IOT True )
|
||||
set ( JUMBO_FRAME True )
|
||||
set ( LARGE_SCALE False )
|
||||
set ( LINK_ENB_PDCP_TO_GTPV1U False)
|
||||
set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD 1 )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False )
|
||||
set ( MESSAGE_CHART_GENERATOR_RLC_MAC False )
|
||||
set ( MESSAGE_CHART_GENERATOR_PHY False )
|
||||
set ( MSG_PRINT False )
|
||||
set ( MU_RECEIVER False )
|
||||
set ( NAS_ADDRESS_FIX False )
|
||||
set ( NAS_BUILT_IN_UE False)
|
||||
set ( NAS_MME False )
|
||||
set ( NAS_UE False )
|
||||
set ( NB_ANTENNAS_RX "2" )
|
||||
set ( NB_ANTENNAS_TX "2" )
|
||||
set ( NO_RRM True )
|
||||
set ( OAISIM True )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PACKAGE_NAME "oaisim" )
|
||||
set ( PDCP_USE_NETLINK True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PHY_CONTEXT False )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( RF_BOARD "False" )
|
||||
set ( RRC_ASN1_VERSION "Rel10" )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
set ( RRC_MSG_PRINT False )
|
||||
set ( SECU False )
|
||||
set ( SMBV False )
|
||||
set ( TEST_OMG False )
|
||||
set ( USE_3GPP_ADDR_AS_LINK_ADDR False )
|
||||
set ( USE_MME "R10" )
|
||||
set ( XER_PRINT False )
|
||||
set ( DEBUG_PHY False )
|
||||
set ( DEBUG_PHY_PROC False)
|
||||
set ( DEBUG_DLSCH False)
|
||||
@@ -3,11 +3,11 @@ set(PACKAGE_NAME "unitary_tests_simulators")
|
||||
set(PHYSIM True)
|
||||
set(RF_BOARD None)
|
||||
set(XFORMS True)
|
||||
set(ENABLE_ITTI False)
|
||||
set(ENABLE_ITTI True)
|
||||
set(DEBUG_PHY False)
|
||||
set(MU_RECIEVER False)
|
||||
set(NAS_UE False)
|
||||
set(MESSAGE_CHART_GENERATOR False)
|
||||
set(RRC_ASN1_VERSION "Rel14")
|
||||
set (UE_TIMING_TRACE True)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
|
||||
set(RRC_ASN1_VERSION "Rel15")
|
||||
set(T_TRACER True)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
|
||||
@@ -149,7 +149,7 @@ clean_all_files() {
|
||||
set_openair_env
|
||||
dir=$OPENAIR_DIR/cmake_targets
|
||||
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
|
||||
rm -rf $dir/lte_build_oai $dir/lte-simulators/build
|
||||
rm -rf $dir/ran_build $dir/lte-simulators/build
|
||||
rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
|
||||
rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build
|
||||
}
|
||||
@@ -299,7 +299,7 @@ check_install_usrp_uhd_driver(){
|
||||
$SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host
|
||||
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
|
||||
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils cmake
|
||||
$SUDO pip install requests
|
||||
$SUDO -H pip install requests
|
||||
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
|
||||
# until EPEL repo hasn't bumped UHD driver to >=3.10 in EPEL, build driver from source
|
||||
$SUDO $INSTALLER -y remove uhd uhd-devel uhd-firmware
|
||||
@@ -560,8 +560,8 @@ check_install_additional_tools (){
|
||||
|
||||
#The packages below are already installed for Redhat distros (RHEL, CentOS, Fedora)
|
||||
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
|
||||
$SUDO pip install paramiko
|
||||
$SUDO pip install pyroute2 colorama
|
||||
$SUDO -H pip install paramiko
|
||||
$SUDO -H pip install pyroute2 colorama
|
||||
log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt
|
||||
echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface"
|
||||
(
|
||||
@@ -761,7 +761,7 @@ install_asn1c_from_source(){
|
||||
# better to use a given commit than a branch in case the branch
|
||||
# is updated and requires modifications in the source of OAI
|
||||
#git checkout velichkov_s1ap_plus_option_group
|
||||
git checkout 0a7524184f16e7093990a31d8d4db487a16e5782
|
||||
git checkout f12568d617dbf48497588f8e227d70388fa217c9
|
||||
autoreconf -iv
|
||||
./configure
|
||||
make -j`nproc`
|
||||
|
||||
@@ -94,7 +94,7 @@ function patch_rrc()
|
||||
case "$version" in
|
||||
Rel14 )
|
||||
echo "patching RRC files release 14"
|
||||
apply_patches "$directory" RRC_Rel14 ${#RRC_Rel14[*]}
|
||||
#apply_patches "$directory" RRC_Rel14 ${#RRC_Rel14[*]}
|
||||
;;
|
||||
Rel10 )
|
||||
echo "patching RRC files release 10"
|
||||
@@ -109,12 +109,31 @@ function patch_rrc()
|
||||
esac
|
||||
}
|
||||
|
||||
function patch_nr_rrc()
|
||||
{
|
||||
local directory="$1"
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
NR_Rel15 )
|
||||
echo "patching NR_RRC files release 15"
|
||||
apply_patches "$directory" NR_RRC_Rel15 ${#NR_RRC_Rel15[*]}
|
||||
;;
|
||||
* )
|
||||
error unknwon/unhandled NR_RRC version \'"$version"\'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
function patch_x2ap()
|
||||
{
|
||||
local directory="$1"
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
R14 )
|
||||
;;
|
||||
R11 )
|
||||
echo "patching X2AP files release 11.2"
|
||||
apply_patches "$directory" X2AP_Rel11_2 ${#X2AP_Rel11_2[*]}
|
||||
@@ -131,6 +150,8 @@ function patch_s1ap()
|
||||
local version="$2"
|
||||
|
||||
case "$version" in
|
||||
R14 )
|
||||
;;
|
||||
R10 )
|
||||
#nothing to do anymore (fixes went to asn1c)
|
||||
;;
|
||||
@@ -177,6 +198,9 @@ function main()
|
||||
RRC )
|
||||
patch_rrc "$directory" "$version"
|
||||
;;
|
||||
NR_RRC )
|
||||
patch_nr_rrc "$directory" "$version"
|
||||
;;
|
||||
X2AP )
|
||||
patch_x2ap "$directory" "$version"
|
||||
;;
|
||||
|
||||
@@ -9,12 +9,11 @@ cd ${PROTOCOL_DIR}
|
||||
# Because use $* also include directory, so we need shift
|
||||
shift
|
||||
|
||||
# There are three types parameter for asn1c
|
||||
# One is for RRC
|
||||
# and one is for F1AP
|
||||
# another is for other protocols
|
||||
local module="$2"
|
||||
|
||||
if echo ${PROTOCOL_DIR} | grep -q "RRC"; then
|
||||
#if this script is called with only 2 arguments (so 1 here after the shift), it's for RRC
|
||||
#(there may be a better way...)
|
||||
if [ $# -eq 2 ]; then
|
||||
|
||||
#asn1c does not work well with extension groups, we need the following fix:
|
||||
# replace [[ by '<name> SEQUENCE {'
|
||||
@@ -105,7 +104,24 @@ EOF
|
||||
|
||||
echo running asn1c
|
||||
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example fixed_grammar.asn 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
case "$module" in
|
||||
RRC )
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example fixed_grammar.asn 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
NR_RRC )
|
||||
export ASN1C_PREFIX=NR_
|
||||
asn1c -gen-PER -fcompound-names -findirect-choice -no-gen-example fixed_grammar.asn 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
S1AP )
|
||||
export ASN1C_PREFIX=S1AP_
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example fixed_grammar.asn 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
X2AP )
|
||||
export ASN1C_PREFIX=X2AP_
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example fixed_grammar.asn 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
rm -f fixed_grammar.asn
|
||||
|
||||
@@ -116,9 +132,25 @@ elif echo ${PROTOCOL_DIR} | grep -q "F1AP"; then
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example -findirect-choice -fno-include-deps $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
|
||||
else
|
||||
|
||||
asn1c -gen-PER -fcompound-names -no-gen-example $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
|
||||
|
||||
case "$module" in
|
||||
RRC )
|
||||
asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
NR_RRC )
|
||||
export ASN1C_PREFIX=NR_
|
||||
asn1c -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
S1AP )
|
||||
export ASN1C_PREFIX=S1AP_
|
||||
asn1c -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
X2AP )
|
||||
export ASN1C_PREFIX=X2AP_
|
||||
asn1c -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
awk '
|
||||
|
||||
@@ -11,5 +11,14 @@ if [ "$done_flag" -ot $ASN1_SOURCE_DIR ] ; then
|
||||
rm -f "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}*.c "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}*.h
|
||||
mkdir -p "$GENERATED_FULL_DIR"
|
||||
asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example $options -D $GENERATED_FULL_DIR $ASN1_SOURCE_DIR |& egrep -v "^Copied|^Compiled" | sort -u
|
||||
if [ "$ASN1C_PREFIX" = "X2AP_" ] ; then
|
||||
sed -i 's/18446744073709551615))/18446744073709551615U))/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReport-Item.c
|
||||
sed -i 's/18446744073709551615 }/18446744073709551615U }/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReport-Item.c
|
||||
fi
|
||||
if [ "$ASN1C_PREFIX" = "S1AP_" ] ; then
|
||||
sed -i 's/18446744073709551615))/18446744073709551615U))/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReportItem.c
|
||||
sed -i 's/18446744073709551615 }/18446744073709551615U }/g' "$GENERATED_FULL_DIR"/${ASN1C_PREFIX}E-RABUsageReportItem.c
|
||||
fi
|
||||
|
||||
fi
|
||||
touch $done_flag
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
## config module management
|
||||
|
||||
```c
|
||||
configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t initflags)
|
||||
```
|
||||
@@ -14,23 +16,17 @@ void End_configmodule(void)
|
||||
* Free memory which has been allocated by the configuration module since its initialization.
|
||||
* Possibly calls the `config_<config source>_end` function
|
||||
|
||||
## Retrieving parameter's values
|
||||
|
||||
```c
|
||||
int config_get(paramdef_t *params,int numparams, char *prefix)
|
||||
```
|
||||
* Reads as many parameters as described in params, they must all be in the same configuration file section
|
||||
* Calls the `config_<config source>_get` function
|
||||
* Calls the `config_process_cmdline` function
|
||||
* `params` points to an array of `paramdef_t` structures which describes the parameters to be read, possibly including a pointer to a checking function. The following bits can possibly be set in the `paramflags` mask before calling
|
||||
- `PARAMFLAG_MANDATORY`: -1 is returned if the parameter is not explicitly defined in the config source.
|
||||
- `PARAMFLAG_DISABLECMDLINE`: parameter cannot be modified via the command line
|
||||
- `PARAMFLAG_DONOTREAD`: ignore the parameter, can be used at run-time, to alter a pre-defined `paramdef_t` array which is used in several `config_get` or/and `config_getlist` calls.
|
||||
- `PARAMFLAG_NOFREE`: do not free the memory possibly allocated by the config module to store the value of the parameter. Default behavior is for the config module to free the memory it has allocated when the `config_end` function is called.
|
||||
- `PARAMFLAG_BOOL`: Only relevant for integer types. tell the config module that when processing the command line, the corresponding option can be specified without any arggument and that in this case it must set the value to 1.
|
||||
* `params` points to an array of `paramdef_t` structures which describes the parameters to be read, possibly including a pointer to a checking function.The `paramflags` bit mask can be used to modify how a specific parameter is processed and the same mask is also used by the configuration module to return information about how the parameter has been processed. Bits definitions are described in the [`paramdef_t` structure description](./struct.md)
|
||||
|
||||
|
||||
* `params` is also used as an output parameter, `< XXX >ptr >` field is used by the config module to store the value it has read. The following bits can possibly be set in the `paramflags` mask after the call:
|
||||
- `PARAMFLAG_MALLOCINCONFIG`: memory has been allocated for the ` < XXX >ptr > ` field
|
||||
- `PARAMFLAG_PARAMSET`: parameter has been found in the config source, it is not set to default value.
|
||||
- `PARAMFLAG_PARAMSET`: parameter has been set to its default value
|
||||
* `numparams` is the number of entries in the params array
|
||||
* `prefix` is a character string to be appended to the parameters name, it defines the parameters position in the configuration file hierarchy (the section name in libconfig terminology).
|
||||
* The returned value is the number of parameters which have been assigned a value or -1 if a severe error occured
|
||||
@@ -44,6 +40,9 @@ int config_libconfig_getlist(paramlist_def_t *ParamList, paramdef_t *params, int
|
||||
* `ParamList` points to a structure, where `paramarray` field points to an array of `paramdef_t` structure, allocated by the function. It is used to return the values of the parameters.
|
||||
* The returned value is the number of occurrences in the list or -1 in case of severe error
|
||||
|
||||
## utility functions and macros
|
||||
|
||||
The configuration module also defines APIs to access the `paramdef_t` and `configmodule_interface_t` fields. They are listed in the configuration module [include file `common/config/config_userapi.h`](https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/common/config/config_userapi.h)
|
||||
|
||||
[Configuration module developer main page](../../config/devusage.md)
|
||||
[Configuration module home](../../config.md)
|
||||
|
||||
@@ -5,6 +5,7 @@ It is defined in include file [ common/config/config_paramdesc.h ](https://gitla
|
||||
|:-----------|:------------------------------------------------------------------|----:|
|
||||
| `optname` | parameter name, as used when looking for it in the config source, 63 bytes max (64 with trailing \0) | I |
|
||||
| `helstr` | pointer to a C string printed when using --help on the command line | I |
|
||||
| `paramflags` | bit mask, used to modify how the parameter is processed, or to return to the API caller how the parameter has been set, see list in the next table | IO |
|
||||
| `strptr` `strlistptr` `u8ptr` `i8ptr` `u16ptr` `i16ptr` `uptr` `iptr` `u64ptr` `i64ptr` `dblptr` `voidptr` | a pointer to a variable where the parameter value(s) will be returned. This field is an anonymous union, the supported pointer types have been built to avoid type mismatch warnings at compile time. | O |
|
||||
| `defstrval` `defstrlistval` `defuintval` `defintval` `defint64val` `defintarrayval` `defdblval` | this field is an anonymous union, it can be used to define the default value for the parameter. It is ignored if `PARAMFLAG_MANDATORY` is set in the `paramflags` field.| I |
|
||||
| `type` | Supported parameter types are defined as integer macros. Supported simple types are `TYPE_STRING`, parameter value is returned in `strptr` field, `TYPE_INT8` `TYPE_UINT8` `TYPE_INT16` `TYPE_UINT16` `TYPE_INT32` `TYPE_UINT32` `TYPE_INT64` `TYPE_UINT64`, parameter value is returned in the corresponding uXptr or iXptr, `TYPE_MASK`, value is returned in `u32ptr`, `TYPE_DOUBLE` value is returned in `dblptr`, `TYPE_IPV4ADDR` value is returned in binary, network bytes order in `u32ptr` field. `TYPE_STRINGLIST`, `TYPE_INTARRAY` and `TYPE_UINTARRAY` are multiple values types. Multiple values are returned in respectively, `strlistptr`, `iptr` and `uptr` fields which then point to arrays. The `numelt` field gives the number of item in the array. | I |
|
||||
@@ -12,6 +13,22 @@ It is defined in include file [ common/config/config_paramdesc.h ](https://gitla
|
||||
| `chkPptr` | possible pointer to the structure containing the info used to check parameter values | I |
|
||||
| `processedvalue` | When `chkPptr` is not `ǸULL`, is used to return a value, computed from the original parameter, as read from the configuration source. | O |
|
||||
|
||||
## `paramflags` bits definition
|
||||
|
||||
|
||||
| C macro bit definition | usage | I/O |
|
||||
|:-------------------------------------|:---------------------------------------------------------------------------------------------------------------------|----:|
|
||||
| `PARAMFLAG_MANDATORY` | parameter is mandatory, comfiguration module will stop the process if it is not specified. Default value is ignored | I |
|
||||
| `PARAMFLAG_DISABLECMDLINE` | parameter cannot be specified on the command line | I |
|
||||
| `PARAMFLAG_DONOTREAD` | ignore the parameter, usefull when a parameter group is used in different context | I |
|
||||
| `PARAMFLAG_NOFREE` | The end_configmodule API won't free the memory which has been possibly allocated to store the value of the parameter.| I |
|
||||
| `PARAMFLAG_BOOL` | Parameter is a boolean, it can be specified without a value to set it to true | I |
|
||||
| `PARAMFLAG_CMDLINE_NOPREFIXENABLED` | parameter can be specified without the prefix on the command line. Must be used with care, carefuly checking unicity, especially for short parameter names | I |
|
||||
| `PARAMFLAG_MALLOCINCONFIG` | Memory for the parameter value has been allocated by the configuration module |O |
|
||||
| `PARAMFLAG_PARAMSET` | Parameter value has been explicitely set, as the parameter was specified either on the command line or the config source | O |
|
||||
| `PARAMFLAG_PARAMSETDEF` | Parameter value has been set to it's default | O |
|
||||
|
||||
|
||||
# `paramlist_def_t`structure
|
||||
It is defined in include file [ common/config/config_paramdesc.h ](https://gitlab.eurecom.fr/oai/openairinterface5g/blob/develop/common/config/config_paramdesc.h#L160).
|
||||
It is used as an argument to `config_getlist` calls, to get values of multiple occurrences of group of parameters.
|
||||
|
||||
@@ -167,8 +167,8 @@ int config_check_unknown_cmdlineopt(char *prefix) {
|
||||
char testprefix[CONFIG_MAXOPTLENGTH];
|
||||
int finalcheck = 0;
|
||||
memset(testprefix,0,sizeof(testprefix));
|
||||
|
||||
memset(testprefix,0,sizeof(testprefix));
|
||||
|
||||
if (prefix != NULL) {
|
||||
if (strcmp(prefix,CONFIG_CHECKALLSECTIONS) == 0)
|
||||
finalcheck = 1;
|
||||
@@ -253,7 +253,9 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix)
|
||||
}
|
||||
|
||||
if ( ((strlen(oneargv) == 2) && (strcmp(oneargv + 1,cfgpath) == 0)) || /* short option, one "-" */
|
||||
((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) ) {
|
||||
((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) || /* long option beginning with "--" */
|
||||
((strlen(oneargv) == 2) && (strcmp(oneargv + 1,cfgoptions[n].optname) == 0) && (cfgoptions[n].paramflags & PARAMFLAG_CMDLINE_NOPREFIXENABLED )) ||
|
||||
((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 ) && (cfgoptions[n].paramflags & PARAMFLAG_CMDLINE_NOPREFIXENABLED )) ) {
|
||||
char *valptr=NULL;
|
||||
int ret;
|
||||
config_get_if()->argv_info[i] |= CONFIG_CMDLINEOPT_PROCESSED;
|
||||
|
||||
@@ -181,7 +181,10 @@ int config_cmdlineonly_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
|
||||
return numdefvals;
|
||||
}
|
||||
|
||||
configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t initflags) {
|
||||
configmodule_interface_t *load_configmodule(int argc,
|
||||
char **argv,
|
||||
uint32_t initflags)
|
||||
{
|
||||
char *cfgparam=NULL;
|
||||
char *modeparams=NULL;
|
||||
char *cfgmode=NULL;
|
||||
@@ -193,7 +196,8 @@ configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t init
|
||||
|
||||
/* first parse the command line to look for the -O option */
|
||||
for (i = 0; i<argc; i++) {
|
||||
if (strlen(argv[i]) < 2) continue;
|
||||
if (strlen(argv[i]) < 2)
|
||||
continue;
|
||||
|
||||
if ( argv[i][1] == 'O' && i < (argc -1)) {
|
||||
cfgparam = argv[i+1];
|
||||
@@ -223,7 +227,7 @@ configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t init
|
||||
if (cfgparam == NULL) {
|
||||
tmpflags = tmpflags | CONFIG_NOOOPT;
|
||||
|
||||
if ( initflags & CONFIG_ENABLECMDLINEONLY) {
|
||||
if ( initflags & CONFIG_ENABLECMDLINEONLY) {
|
||||
cfgparam = CONFIG_CMDLINEONLY ":dbgl0" ;
|
||||
} else {
|
||||
cfgparam = CONFIG_CMDLINEONLY ":dbgl0" ;
|
||||
|
||||
@@ -34,9 +34,6 @@
|
||||
#define INCLUDE_CONFIG_PARAMDESC_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define MAX_OPTNAME_SIZE 64
|
||||
#define CONFIG_MAXOPTLENGTH 512 /* max full option length, full option name exemple: (prefix1.[<index>].prefix2.optname */
|
||||
|
||||
@@ -48,7 +45,7 @@
|
||||
#define PARAMFLAG_DONOTREAD (1 << 2) // parameter must be ignored in get function
|
||||
#define PARAMFLAG_NOFREE (1 << 3) // don't free parameter in end function
|
||||
#define PARAMFLAG_BOOL (1 << 4) // integer param can be 0 or 1
|
||||
|
||||
#define PARAMFLAG_CMDLINE_NOPREFIXENABLED (1 << 5) // on the command line, allow a parameter to be specified without the prefix
|
||||
|
||||
/* Flags used by config modules to return info to calling modules and/or to for internal usage*/
|
||||
#define PARAMFLAG_MALLOCINCONFIG (1 << 15) // parameter allocated in config module
|
||||
@@ -104,8 +101,8 @@ typedef struct paramdef {
|
||||
char *helpstr; /* help string */
|
||||
unsigned int paramflags; /* value is a "ored" combination of above PARAMFLAG_XXXX values */
|
||||
union { /* pointer to the parameter value, completed by the config module */
|
||||
char **strptr;
|
||||
char **strlistptr;
|
||||
char **strptr;
|
||||
char **strlistptr;
|
||||
uint8_t *u8ptr;
|
||||
int8_t *i8ptr;
|
||||
uint16_t *u16ptr;
|
||||
|
||||
@@ -81,7 +81,7 @@ char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) {
|
||||
}
|
||||
|
||||
if (*ptr == NULL) {
|
||||
*ptr = malloc(length);
|
||||
*ptr = malloc(length>40?length:40); // LTS: dummy fix, waiting Francois full fix in 4G branch
|
||||
|
||||
if ( *ptr != NULL) {
|
||||
memset(*ptr,0,length);
|
||||
@@ -172,7 +172,7 @@ int config_get_processedint(paramdef_t *cfgoption) {
|
||||
return ret;
|
||||
}
|
||||
void config_printhelp(paramdef_t *params,int numparams, char *prefix) {
|
||||
printf("\n-----Help for section %-26s: %03i entries------\n",(prefix==NULL)?"(root section)":prefix ,numparams);
|
||||
printf("\n-----Help for section %-26s: %03i entries------\n",(prefix==NULL)?"(root section)":prefix,numparams);
|
||||
|
||||
for (int i=0 ; i<numparams ; i++) {
|
||||
printf(" %s%s: %s",
|
||||
@@ -184,7 +184,7 @@ void config_printhelp(paramdef_t *params,int numparams, char *prefix) {
|
||||
printf("--------------------------------------------------------------------\n\n");
|
||||
}
|
||||
|
||||
int config_execcheck(paramdef_t *params,int numparams, char *prefix) {
|
||||
int config_execcheck(paramdef_t *params, int numparams, char *prefix) {
|
||||
int st=0;
|
||||
|
||||
for (int i=0 ; i<numparams ; i++) {
|
||||
@@ -204,7 +204,17 @@ int config_execcheck(paramdef_t *params,int numparams, char *prefix) {
|
||||
return st;
|
||||
}
|
||||
|
||||
int config_get(paramdef_t *params,int numparams, char *prefix) {
|
||||
int config_paramidx_fromname(paramdef_t *params, int numparams, char *name) {
|
||||
for (int i=0; i<numparams ; i++) {
|
||||
if (strcmp(name,params[i].optname) == 0)
|
||||
return i;
|
||||
}
|
||||
|
||||
fprintf(stderr,"[CONFIG]config_paramidx_fromname , %s is not a valid parameter name\n",name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int config_get(paramdef_t *params, int numparams, char *prefix) {
|
||||
int ret= -1;
|
||||
|
||||
if (CONFIG_ISFLAGSET(CONFIG_ABORT)) {
|
||||
@@ -215,11 +225,11 @@ int config_get(paramdef_t *params,int numparams, char *prefix) {
|
||||
configmodule_interface_t *cfgif = config_get_if();
|
||||
|
||||
if (cfgif != NULL) {
|
||||
ret = config_get_if()->get(params, numparams,prefix);
|
||||
ret = config_get_if()->get(params, numparams, prefix);
|
||||
|
||||
if (ret >= 0) {
|
||||
config_process_cmdline(params,numparams,prefix);
|
||||
config_execcheck(params,numparams,prefix);
|
||||
config_process_cmdline(params, numparams, prefix);
|
||||
config_execcheck(params, numparams, prefix);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -438,7 +448,7 @@ int config_setdefault_intlist(paramdef_t *cfgoptions, char *prefix) {
|
||||
status=1;
|
||||
|
||||
for (int j=0; j<cfgoptions->numelt ; j++) {
|
||||
printf_params("[CONFIG] %s[%i] set to default value %i\n",cfgoptions->optname ,j,(int)cfgoptions->iptr[j]);
|
||||
printf_params("[CONFIG] %s[%i] set to default value %i\n",cfgoptions->optname,j,(int)cfgoptions->iptr[j]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,7 +462,7 @@ int config_setdefault_double(paramdef_t *cfgoptions, char *prefix) {
|
||||
if( ((cfgoptions->paramflags & PARAMFLAG_MANDATORY) == 0)) {
|
||||
*(cfgoptions->dblptr)=cfgoptions->defdblval;
|
||||
status=1;
|
||||
printf_params("[CONFIG] %s set to default value %lf\n",cfgoptions->optname , *(cfgoptions->dblptr));
|
||||
printf_params("[CONFIG] %s set to default value %lf\n",cfgoptions->optname, *(cfgoptions->dblptr));
|
||||
}
|
||||
|
||||
return status;
|
||||
@@ -460,7 +470,7 @@ int config_setdefault_double(paramdef_t *cfgoptions, char *prefix) {
|
||||
|
||||
int config_assign_ipv4addr(paramdef_t *cfgoptions, char *ipv4addr) {
|
||||
config_check_valptr(cfgoptions,(char **)&(cfgoptions->uptr), sizeof(int));
|
||||
int rst=inet_pton(AF_INET, ipv4addr ,cfgoptions->uptr );
|
||||
int rst=inet_pton(AF_INET, ipv4addr,cfgoptions->uptr );
|
||||
|
||||
if (rst == 1 && *(cfgoptions->uptr) > 0) {
|
||||
printf_params("[CONFIG] %s: %s\n",cfgoptions->optname, ipv4addr);
|
||||
|
||||
@@ -39,6 +39,7 @@ extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/* utility functions to ease usage of config module structures */
|
||||
#define CONFIG_GETSOURCE ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgmode )
|
||||
#define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP )
|
||||
#define CONFIG_GETP(P) ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgP[P] )
|
||||
@@ -46,6 +47,8 @@ extern "C"
|
||||
#define CONFIG_SETRTFLAG(P) if (config_get_if()) { config_get_if()->rtflags |= P; }
|
||||
#define CONFIG_CLEARRTFLAG(P) if (config_get_if()) { config_get_if()->rtflags &= (~P); }
|
||||
#define CONFIG_ISPARAMFLAGSET(P,F) ( !!(P.paramflags & F))
|
||||
extern int config_paramidx_fromname(paramdef_t *params,int numparams, char *name);
|
||||
|
||||
/* utility functions, to be used by configuration module and/or configuration libraries */
|
||||
extern configmodule_interface_t *config_get_if(void);
|
||||
extern char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) ;
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file PHY/impl_defs_lte.h
|
||||
/*! \file common/ran_context.h
|
||||
* \brief LTE Physical channel configuration and variable structure definitions
|
||||
* \author R. Knopp, F. Kaltenberger
|
||||
* \date 2011
|
||||
* \version 0.1
|
||||
* \company Eurecom
|
||||
* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr
|
||||
* \email: knopp@eurecom.fr, florian.kaltenberger@eurecom.fr
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
@@ -38,10 +38,8 @@
|
||||
#include "PHY/defs_eNB.h"
|
||||
#include "PHY/types.h"
|
||||
#include "PHY/impl_defs_top.h"
|
||||
#include "PHY/impl_defs_lte.h"
|
||||
|
||||
#include "ENB_APP/enb_config.h"
|
||||
#include "RRC/LTE/rrc_defs.h"
|
||||
#include "flexran_agent_defs.h"
|
||||
|
||||
#include "gtpv1u.h"
|
||||
@@ -51,9 +49,9 @@
|
||||
#include "gtpv1u_eNB_defs.h"
|
||||
|
||||
#include "PHY/defs_L1_NB_IoT.h"
|
||||
|
||||
#include "RRC/LTE/defs_NB_IoT.h"
|
||||
|
||||
#include "RRC/LTE/rrc_defs.h"
|
||||
#include "RRC/NR/nr_rrc_defs.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
@@ -61,38 +59,56 @@ typedef struct {
|
||||
char *config_file_name;
|
||||
/// Number of RRC instances in this node
|
||||
int nb_inst;
|
||||
/// Number of NB_IoT RRC instances in this node
|
||||
int nb_nb_iot_rrc_inst;
|
||||
/// Number of NR RRC instances in this node
|
||||
int nb_nr_inst;
|
||||
/// Number of Component Carriers per instance in this node
|
||||
int *nb_CC;
|
||||
/// Number of NB_IoT instances in this node
|
||||
int nb_nb_iot_rrc_inst;
|
||||
/// Number of NR Component Carriers per instance in this node
|
||||
int *nb_nr_CC;
|
||||
/// Number of MACRLC instances in this node
|
||||
int nb_macrlc_inst;
|
||||
/// Number of NB_IoT MACRLC instances in this node
|
||||
int nb_nb_iot_macrlc_inst;
|
||||
/// Number of NR MACRLC instances in this node
|
||||
int nb_nr_macrlc_inst;
|
||||
/// Number of component carriers per instance in this node
|
||||
int *nb_mac_CC;
|
||||
/// Number of component carriers per instance in this node
|
||||
int *nb_nr_mac_CC;
|
||||
/// Number of L1 instances in this node
|
||||
int nb_L1_inst;
|
||||
/// Number of NB_IoT L1 instances in this node
|
||||
int nb_nb_iot_L1_inst;
|
||||
/// Number of NR L1 instances in this node
|
||||
int nb_nr_L1_inst;
|
||||
/// Number of Component Carriers per instance in this node
|
||||
int *nb_L1_CC;
|
||||
/// Number of NR Component Carriers per instance in this node
|
||||
int *nb_nr_L1_CC;
|
||||
/// Number of RU instances in this node
|
||||
int nb_RU;
|
||||
/// FlexRAN context variables
|
||||
flexran_agent_info_t **flexran;
|
||||
/// eNB context variables
|
||||
struct PHY_VARS_eNB_s ***eNB;
|
||||
/// gNB context variables
|
||||
struct PHY_VARS_gNB_s ***gNB;
|
||||
/// NB_IoT L1 context variables
|
||||
struct PHY_VARS_eNB_NB_IoT_s **L1_NB_IoT;
|
||||
/// RRC context variables
|
||||
struct eNB_RRC_INST_s **rrc;
|
||||
/// NB_IoT RRC context variables
|
||||
//struct eNB_RRC_INST_NB_IoT_s **nb_iot_rrc;
|
||||
/// NR RRC context variables
|
||||
struct gNB_RRC_INST_s **nrrrc;
|
||||
/// MAC context variables
|
||||
struct eNB_MAC_INST_s **mac;
|
||||
/// NB_IoT MAC context variables
|
||||
struct eNB_MAC_INST_NB_IoT_s **nb_iot_mac;
|
||||
/// NR MAC context variables
|
||||
struct gNB_MAC_INST_s **nrmac;
|
||||
/// GTPu descriptor
|
||||
gtpv1u_data_t *gtpv1u_data_g;
|
||||
/// RU descriptors. These describe what each radio unit is supposed to do and contain the necessary functions for fronthaul interfaces
|
||||
|
||||
@@ -43,10 +43,22 @@
|
||||
#include <string.h>
|
||||
#include <linux/prctl.h>
|
||||
#include "common/config/config_userapi.h"
|
||||
|
||||
// main log variables
|
||||
|
||||
|
||||
|
||||
log_mem_cnt_t log_mem_d[2];
|
||||
int log_mem_flag=0;
|
||||
int log_mem_multi=1;
|
||||
volatile int log_mem_side=0;
|
||||
pthread_mutex_t log_mem_lock;
|
||||
pthread_cond_t log_mem_notify;
|
||||
pthread_t log_mem_thread;
|
||||
int log_mem_file_cnt=0;
|
||||
volatile int log_mem_write_flag=0;
|
||||
volatile int log_mem_write_side=0;
|
||||
char __log_mem_filename[1024]={0};
|
||||
char * log_mem_filename = &__log_mem_filename[0];
|
||||
char logmem_filename[1024] = {0};
|
||||
|
||||
mapping log_level_names[] = {
|
||||
{"error", OAILOG_ERR},
|
||||
@@ -71,7 +83,13 @@ char *log_level_highlight_start[] = {LOG_RED, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL
|
||||
char *log_level_highlight_end[] = {LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET}; /*!< \brief Optional end-format strings for highlighting */
|
||||
|
||||
|
||||
int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format) {
|
||||
int write_file_matlab(const char *fname,
|
||||
const char *vname,
|
||||
void *data,
|
||||
int length,
|
||||
int dec,
|
||||
char format)
|
||||
{
|
||||
FILE *fp=NULL;
|
||||
int i;
|
||||
|
||||
@@ -211,9 +229,10 @@ int write_file_matlab(const char *fname,const char *vname,void *data,int length,
|
||||
}
|
||||
|
||||
/* get log parameters from configuration file */
|
||||
void log_getconfig(log_t *g_log) {
|
||||
void log_getconfig(log_t *g_log)
|
||||
{
|
||||
char *gloglevel = NULL;
|
||||
int consolelog ;
|
||||
int consolelog = 0;
|
||||
paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC;
|
||||
paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS];
|
||||
paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS];
|
||||
@@ -305,7 +324,9 @@ void log_getconfig(log_t *g_log) {
|
||||
|
||||
config_get( logparams_debug,(sizeof(log_maskmap)/sizeof(mapping)) - 1,CONFIG_STRING_LOG_PREFIX);
|
||||
config_get( logparams_dump,(sizeof(log_maskmap)/sizeof(mapping)) - 1,CONFIG_STRING_LOG_PREFIX);
|
||||
config_check_unknown_cmdlineopt(CONFIG_STRING_LOG_PREFIX);
|
||||
|
||||
if (config_check_unknown_cmdlineopt(CONFIG_STRING_LOG_PREFIX) > 0)
|
||||
exit(1);
|
||||
|
||||
/* set the debug mask according to the debug parameters values */
|
||||
for (int i=0; log_maskmap[i].name != NULL ; i++) {
|
||||
@@ -320,7 +341,10 @@ void log_getconfig(log_t *g_log) {
|
||||
set_glog_onlinelog(consolelog);
|
||||
}
|
||||
|
||||
int register_log_component(char *name, char *fext, int compidx) {
|
||||
int register_log_component(char *name,
|
||||
char *fext,
|
||||
int compidx)
|
||||
{
|
||||
int computed_compidx=compidx;
|
||||
|
||||
if (strlen(fext) > 3) {
|
||||
@@ -343,13 +367,14 @@ int register_log_component(char *name, char *fext, int compidx) {
|
||||
g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/<name>.%s */
|
||||
sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext);
|
||||
} else {
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't register componemt %s\n",__FILE__,__LINE__,name);
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't register component %s\n",__FILE__,__LINE__,name);
|
||||
}
|
||||
|
||||
return computed_compidx;
|
||||
}
|
||||
|
||||
int isLogInitDone (void) {
|
||||
int isLogInitDone (void)
|
||||
{
|
||||
if (g_log == NULL)
|
||||
return 0;
|
||||
|
||||
@@ -359,7 +384,8 @@ int isLogInitDone (void) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int logInit (void) {
|
||||
int logInit (void)
|
||||
{
|
||||
int i;
|
||||
g_log = calloc(1, sizeof(log_t));
|
||||
|
||||
@@ -398,20 +424,22 @@ int logInit (void) {
|
||||
register_log_component("USIM","txt",USIM);
|
||||
register_log_component("SIM","txt",SIM);
|
||||
/* following log component are used for the localization*/
|
||||
/* following log component are used for the localization*/
|
||||
register_log_component("LOCALIZE","log",LOCALIZE);
|
||||
register_log_component("NAS","log",NAS);
|
||||
register_log_component("UDP","",UDP_);
|
||||
register_log_component("GTPV1U","",GTPU);
|
||||
register_log_component("S1AP","",S1AP);
|
||||
register_log_component("F1AP","",F1AP);
|
||||
register_log_component("X2AP","",X2AP);
|
||||
register_log_component("SCTP","",SCTP);
|
||||
register_log_component("X2AP","",X2AP);
|
||||
register_log_component("LOADER","log",LOADER);
|
||||
register_log_component("ASN","log",ASN);
|
||||
register_log_component("NFAPI_PNF","log",NFAPI_PNF);
|
||||
register_log_component("NFAPI_VNF","log",NFAPI_VNF);
|
||||
register_log_component("NFAPI_PNF","log",NFAPI_PNF);
|
||||
register_log_component("GNB_APP","log",GNB_APP);
|
||||
register_log_component("NR_RRC","log",NR_RRC);
|
||||
register_log_component("NR_MAC","log",NR_MAC);
|
||||
register_log_component("NR_PHY","log",NR_PHY);
|
||||
|
||||
for (int i=0 ; log_level_names[i].name != NULL ; i++)
|
||||
g_log->level2string[i] = toupper(log_level_names[i].name[0]); // uppercased first letter of level name
|
||||
@@ -430,7 +458,9 @@ int logInit (void) {
|
||||
}
|
||||
|
||||
|
||||
char *log_getthreadname(char *threadname, int bufsize) {
|
||||
char *log_getthreadname(char *threadname,
|
||||
int bufsize)
|
||||
{
|
||||
int rt = pthread_getname_np(pthread_self(), threadname,bufsize) ;
|
||||
|
||||
if (rt == 0) {
|
||||
@@ -440,7 +470,12 @@ char *log_getthreadname(char *threadname, int bufsize) {
|
||||
}
|
||||
}
|
||||
|
||||
static int log_header(char *log_buffer, int buffsize, int comp, int level,const char *format) {
|
||||
static int log_header(char *log_buffer,
|
||||
int buffsize,
|
||||
int comp,
|
||||
int level,
|
||||
const char *format)
|
||||
{
|
||||
char threadname[PR_SET_NAME];
|
||||
return snprintf(log_buffer, buffsize, "%s%s[%s]%c %s %s%s",
|
||||
log_level_highlight_end[level],
|
||||
@@ -452,22 +487,51 @@ static int log_header(char *log_buffer, int buffsize, int comp, int level,const
|
||||
log_level_highlight_end[level]);
|
||||
}
|
||||
|
||||
void logRecord_mt(const char *file, const char *func, int line, int comp, int level, const char *format, ... ) {
|
||||
char log_buffer[MAX_LOG_TOTAL];
|
||||
void logRecord_mt(const char *file,
|
||||
const char *func,
|
||||
int line,
|
||||
int comp,
|
||||
int level,
|
||||
const char *format,
|
||||
... )
|
||||
{
|
||||
char log_buffer[MAX_LOG_TOTAL]= {0};
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
log_header(log_buffer,MAX_LOG_TOTAL,comp, level,format);
|
||||
g_log->log_component[comp].vprint(g_log->log_component[comp].stream,log_buffer, args);
|
||||
va_start(args,format);
|
||||
if (log_mem_flag == 1) {
|
||||
log_output_memory(file,func,line,comp,level,format,args);
|
||||
} else {
|
||||
log_header(log_buffer,MAX_LOG_TOTAL,comp,level,format);
|
||||
g_log->log_component[comp].vprint(g_log->log_component[comp].stream,log_buffer,args);
|
||||
fflush(g_log->log_component[comp].stream);
|
||||
}
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void vlogRecord_mt(const char *file, const char *func, int line, int comp, int level, const char *format, va_list args ) {
|
||||
void vlogRecord_mt(const char *file,
|
||||
const char *func,
|
||||
int line,
|
||||
int comp,
|
||||
int level,
|
||||
const char *format,
|
||||
va_list args )
|
||||
{
|
||||
char log_buffer[MAX_LOG_TOTAL];
|
||||
if (log_mem_flag == 1) {
|
||||
log_output_memory(file,func,line,comp,level, format,args);
|
||||
} else {
|
||||
log_header(log_buffer,MAX_LOG_TOTAL,comp, level,format);
|
||||
g_log->log_component[comp].vprint(g_log->log_component[comp].stream,log_buffer, args);
|
||||
}
|
||||
}
|
||||
|
||||
void log_dump(int component, void *buffer, int buffsize,int datatype, const char *format, ... ) {
|
||||
void log_dump(int component,
|
||||
void *buffer,
|
||||
int buffsize,
|
||||
int datatype,
|
||||
const char *format,
|
||||
... )
|
||||
{
|
||||
va_list args;
|
||||
char *wbuf;
|
||||
|
||||
@@ -508,7 +572,9 @@ void log_dump(int component, void *buffer, int buffsize,int datatype, const char
|
||||
}
|
||||
}
|
||||
|
||||
int set_log(int component, int level) {
|
||||
int set_log(int component,
|
||||
int level)
|
||||
{
|
||||
/* Checking parameters */
|
||||
DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
|
||||
component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
|
||||
@@ -524,13 +590,15 @@ int set_log(int component, int level) {
|
||||
|
||||
|
||||
|
||||
void set_glog(int level) {
|
||||
void set_glog(int level)
|
||||
{
|
||||
for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
|
||||
set_log(c, level);
|
||||
}
|
||||
}
|
||||
|
||||
void set_glog_onlinelog(int enable) {
|
||||
void set_glog_onlinelog(int enable)
|
||||
{
|
||||
for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
|
||||
if ( enable ) {
|
||||
g_log->log_component[c].level = g_log->log_component[c].savedlevel;
|
||||
@@ -542,7 +610,8 @@ void set_glog_onlinelog(int enable) {
|
||||
}
|
||||
}
|
||||
}
|
||||
void set_glog_filelog(int enable) {
|
||||
void set_glog_filelog(int enable)
|
||||
{
|
||||
static FILE *fptr;
|
||||
|
||||
if ( enable ) {
|
||||
@@ -566,7 +635,8 @@ void set_glog_filelog(int enable) {
|
||||
}
|
||||
}
|
||||
|
||||
void set_component_filelog(int comp) {
|
||||
void set_component_filelog(int comp)
|
||||
{
|
||||
if (g_log->log_component[comp].stream == NULL || g_log->log_component[comp].stream == stdout) {
|
||||
g_log->log_component[comp].stream = fopen(g_log->log_component[comp].filelog_name,"w");
|
||||
}
|
||||
@@ -575,7 +645,8 @@ void set_component_filelog(int comp) {
|
||||
g_log->log_component[comp].print = fprintf;
|
||||
g_log->log_component[comp].filelog = 1;
|
||||
}
|
||||
void close_component_filelog(int comp) {
|
||||
void close_component_filelog(int comp)
|
||||
{
|
||||
g_log->log_component[comp].filelog = 0;
|
||||
|
||||
if (g_log->log_component[comp].stream != NULL && g_log->log_component[comp].stream != stdout ) {
|
||||
@@ -592,7 +663,9 @@ void close_component_filelog(int comp) {
|
||||
* with string value NULL
|
||||
*/
|
||||
/* map a string to an int. Takes a mapping array and a string as arg */
|
||||
int map_str_to_int(mapping *map, const char *str) {
|
||||
int map_str_to_int(mapping *map,
|
||||
const char *str)
|
||||
{
|
||||
while (1) {
|
||||
if (map->name == NULL) {
|
||||
return(-1);
|
||||
@@ -607,7 +680,9 @@ int map_str_to_int(mapping *map, const char *str) {
|
||||
}
|
||||
|
||||
/* map an int to a string. Takes a mapping array and a value */
|
||||
char *map_int_to_str(mapping *map, int val) {
|
||||
char *map_int_to_str(mapping *map,
|
||||
int val)
|
||||
{
|
||||
while (1) {
|
||||
if (map->name == NULL) {
|
||||
return NULL;
|
||||
@@ -621,7 +696,9 @@ char *map_int_to_str(mapping *map, int val) {
|
||||
}
|
||||
}
|
||||
|
||||
int is_newline( char *str, int size) {
|
||||
int is_newline(char *str,
|
||||
int size)
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0; i < size; i++ ) {
|
||||
@@ -634,7 +711,8 @@ int is_newline( char *str, int size) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void logClean (void) {
|
||||
void logClean (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if(isLogInitDone()) {
|
||||
@@ -646,6 +724,265 @@ void logClean (void) {
|
||||
}
|
||||
}
|
||||
|
||||
extern volatile int oai_exit;//extern int oai_exit;
|
||||
void flush_mem_to_file(void)
|
||||
{
|
||||
int fp;
|
||||
char f_name[1024];
|
||||
struct timespec slp_tm;
|
||||
slp_tm.tv_sec = 0;
|
||||
slp_tm.tv_nsec = 10000;
|
||||
|
||||
pthread_setname_np( pthread_self(), "flush_mem_to_file");
|
||||
|
||||
while (!oai_exit) {
|
||||
pthread_mutex_lock(&log_mem_lock);
|
||||
log_mem_write_flag=0;
|
||||
pthread_cond_wait(&log_mem_notify, &log_mem_lock);
|
||||
log_mem_write_flag=1;
|
||||
pthread_mutex_unlock(&log_mem_lock);
|
||||
// write!
|
||||
if(log_mem_d[log_mem_write_side].enable_flag==0){
|
||||
if(log_mem_file_cnt>5){
|
||||
log_mem_file_cnt=5;
|
||||
printf("log over write!!!\n");
|
||||
}
|
||||
snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
|
||||
fp=open(f_name, O_WRONLY | O_CREAT, 0666);
|
||||
int ret = write(fp, log_mem_d[log_mem_write_side].buf_p, log_mem_d[log_mem_write_side].buf_index);
|
||||
if ( ret < 0) {
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
close(fp);
|
||||
log_mem_file_cnt++;
|
||||
log_mem_d[log_mem_write_side].buf_index=0;
|
||||
log_mem_d[log_mem_write_side].enable_flag=1;
|
||||
}else{
|
||||
printf("If you'd like to write log, you should set enable flag to 0!!!\n");
|
||||
nanosleep(&slp_tm,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char logmem_log_level[NUM_LOG_LEVEL]={'E','W','I','D','T'};
|
||||
|
||||
void log_output_memory(const char *file, const char *func, int line, int comp, int level, const char* format,va_list args)
|
||||
{
|
||||
//logRecord_mt(file,func,line, pthread_self(), comp, level, format, ##args)
|
||||
int len = 0;
|
||||
log_component_t *c;
|
||||
char *log_start;
|
||||
char *log_end;
|
||||
/* The main difference with the version above is the use of this local log_buffer.
|
||||
* The other difference is the return value of snprintf which was not used
|
||||
* correctly. It was not a big problem because in practice MAX_LOG_TOTAL is
|
||||
* big enough so that the buffer is never full.
|
||||
*/
|
||||
char log_buffer[MAX_LOG_TOTAL];
|
||||
|
||||
/* for no gcc warnings */
|
||||
(void)log_start;
|
||||
(void)log_end;
|
||||
|
||||
|
||||
c = &g_log->log_component[comp];
|
||||
|
||||
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_LOG_RECORD, VCD_FUNCTION_IN);
|
||||
|
||||
// make sure that for log trace the extra info is only printed once, reset when the level changes
|
||||
if (level == OAILOG_TRACE) {
|
||||
log_start = log_buffer;
|
||||
len = vsnprintf(log_buffer, MAX_LOG_TOTAL, format, args);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
log_end = log_buffer + len;
|
||||
} else {
|
||||
if ( (g_log->flag & 0x001) || (c->flag & 0x001) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s",
|
||||
log_level_highlight_start[level]);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
|
||||
log_start = log_buffer + len;
|
||||
|
||||
// if ( (g_log->flag & 0x004) || (c->flag & 0x004) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]",
|
||||
g_log->log_component[comp].name);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
// }
|
||||
|
||||
if ( (level >= OAILOG_ERR) && (level <= OAILOG_TRACE) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%c]",
|
||||
logmem_log_level[level]);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
|
||||
if ( (g_log->flag & FLAG_THREAD) || (c->flag & FLAG_THREAD) ) {
|
||||
# define THREAD_NAME_LEN 128
|
||||
char threadname[THREAD_NAME_LEN];
|
||||
if (pthread_getname_np(pthread_self(), threadname, THREAD_NAME_LEN) != 0)
|
||||
{
|
||||
perror("pthread_getname_np : ");
|
||||
} else {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s]", threadname);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
# undef THREAD_NAME_LEN
|
||||
}
|
||||
|
||||
if ( (g_log->flag & FLAG_FUNCT) || (c->flag & FLAG_FUNCT) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s] ",
|
||||
func);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
|
||||
if ( (g_log->flag & FLAG_FILE_LINE) || (c->flag & FLAG_FILE_LINE) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%s:%d]",
|
||||
file, line);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
|
||||
/* len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%08lx]", thread_id);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
|
||||
struct timeval gettime;
|
||||
gettimeofday(&gettime,NULL);
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "[%ld.%06ld]", gettime.tv_sec, gettime.tv_usec);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
*/
|
||||
if ( (g_log->flag & FLAG_NOCOLOR) || (c->flag & FLAG_NOCOLOR) ) {
|
||||
len += snprintf(&log_buffer[len], MAX_LOG_TOTAL - len, "%s",
|
||||
log_level_highlight_end[level]);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
}
|
||||
|
||||
len += vsnprintf(&log_buffer[len], MAX_LOG_TOTAL - len, format, args);
|
||||
if (len > MAX_LOG_TOTAL) len = MAX_LOG_TOTAL;
|
||||
log_end = log_buffer + len;
|
||||
}
|
||||
|
||||
//va_end(args);
|
||||
|
||||
// OAI printf compatibility
|
||||
if(log_mem_flag==1){
|
||||
if(log_mem_d[log_mem_side].enable_flag==1){
|
||||
int temp_index;
|
||||
temp_index=log_mem_d[log_mem_side].buf_index;
|
||||
if(temp_index+len+1 < LOG_MEM_SIZE){
|
||||
log_mem_d[log_mem_side].buf_index+=len;
|
||||
memcpy(&log_mem_d[log_mem_side].buf_p[temp_index],log_buffer,len);
|
||||
}else{
|
||||
log_mem_d[log_mem_side].enable_flag=0;
|
||||
if(log_mem_d[1-log_mem_side].enable_flag==1){
|
||||
temp_index=log_mem_d[1-log_mem_side].buf_index;
|
||||
if(temp_index+len+1 < LOG_MEM_SIZE){
|
||||
log_mem_d[1-log_mem_side].buf_index+=len;
|
||||
log_mem_side=1-log_mem_side;
|
||||
memcpy(&log_mem_d[log_mem_side].buf_p[temp_index],log_buffer,len);
|
||||
/* write down !*/
|
||||
if (pthread_mutex_lock(&log_mem_lock) != 0) {
|
||||
return;
|
||||
}
|
||||
if(log_mem_write_flag==0){
|
||||
log_mem_write_side=1-log_mem_side;
|
||||
if(pthread_cond_signal(&log_mem_notify) != 0) {
|
||||
}
|
||||
}
|
||||
if(pthread_mutex_unlock(&log_mem_lock) != 0) {
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
log_mem_d[1-log_mem_side].enable_flag=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
fwrite(log_buffer, len, 1, stdout);
|
||||
}
|
||||
}
|
||||
|
||||
int logInit_log_mem (void)
|
||||
{
|
||||
if(log_mem_flag==1){
|
||||
if(log_mem_multi==1){
|
||||
printf("log-mem multi!!!\n");
|
||||
log_mem_d[0].buf_p = malloc(LOG_MEM_SIZE);
|
||||
log_mem_d[0].buf_index=0;
|
||||
log_mem_d[0].enable_flag=1;
|
||||
log_mem_d[1].buf_p = malloc(LOG_MEM_SIZE);
|
||||
log_mem_d[1].buf_index=0;
|
||||
log_mem_d[1].enable_flag=1;
|
||||
log_mem_side=0;
|
||||
if ((pthread_mutex_init (&log_mem_lock, NULL) != 0)
|
||||
|| (pthread_cond_init (&log_mem_notify, NULL) != 0)) {
|
||||
log_mem_d[1].enable_flag=0;
|
||||
return -1;
|
||||
}
|
||||
pthread_create(&log_mem_thread, NULL, (void *(*)(void *))flush_mem_to_file, (void*)NULL);
|
||||
}else{
|
||||
printf("log-mem single!!!\n");
|
||||
log_mem_d[0].buf_p = malloc(LOG_MEM_SIZE);
|
||||
log_mem_d[0].buf_index=0;
|
||||
log_mem_d[0].enable_flag=1;
|
||||
log_mem_d[1].enable_flag=0;
|
||||
log_mem_side=0;
|
||||
}
|
||||
}else{
|
||||
log_mem_d[0].buf_p=NULL;
|
||||
log_mem_d[1].buf_p=NULL;
|
||||
log_mem_d[0].enable_flag=0;
|
||||
log_mem_d[1].enable_flag=0;
|
||||
}
|
||||
|
||||
printf("log init done\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void close_log_mem(void){
|
||||
int fp;
|
||||
char f_name[1024];
|
||||
|
||||
if(log_mem_flag==1){
|
||||
log_mem_d[0].enable_flag=0;
|
||||
log_mem_d[1].enable_flag=0;
|
||||
usleep(10); // wait for log writing
|
||||
while(log_mem_write_flag==1){
|
||||
usleep(100);
|
||||
}
|
||||
if(log_mem_multi==1){
|
||||
snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
|
||||
fp=open(f_name, O_WRONLY | O_CREAT, 0666);
|
||||
int ret = write(fp, log_mem_d[0].buf_p, log_mem_d[0].buf_index);
|
||||
if ( ret < 0) {
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
close(fp);
|
||||
free(log_mem_d[0].buf_p);
|
||||
|
||||
snprintf(f_name,1024, "%s_%d.log",log_mem_filename,log_mem_file_cnt);
|
||||
fp=open(f_name, O_WRONLY | O_CREAT, 0666);
|
||||
ret = write(fp, log_mem_d[1].buf_p, log_mem_d[1].buf_index);
|
||||
if ( ret < 0) {
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,f_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
close(fp);
|
||||
free(log_mem_d[1].buf_p);
|
||||
}else{
|
||||
fp=open(log_mem_filename, O_WRONLY | O_CREAT, 0666);
|
||||
int ret = write(fp, log_mem_d[0].buf_p, log_mem_d[0].buf_index);
|
||||
if ( ret < 0) {
|
||||
fprintf(stderr,"{LOG} %s %d Couldn't write in %s \n",__FILE__,__LINE__,log_mem_filename);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
close(fp);
|
||||
free(log_mem_d[0].buf_p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef LOG_TEST
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
* \date 2009 - 2014
|
||||
* \version 0.5
|
||||
* @ingroup util
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __LOG_H__
|
||||
@@ -53,6 +52,7 @@
|
||||
#endif
|
||||
#include <pthread.h>
|
||||
#include "T.h"
|
||||
#include <common/utils/utils.h>
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -82,11 +82,11 @@ extern "C" {
|
||||
* @brief LOG defines 9 levels of messages for users. Importance of these levels decrease gradually from 0 to 8
|
||||
* @{*/
|
||||
# define OAILOG_DISABLE -1 /*!< \brief disable all LOG messages, cannot be used in LOG macros, use only in LOG module */
|
||||
# define OAILOG_ERR 0 /*!< \brief critical error conditions, impact on "must have" fuctinalities */
|
||||
# define OAILOG_ERR 0 /*!< \brief critical error conditions, impact on "must have" functionalities */
|
||||
# define OAILOG_WARNING 1 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */
|
||||
# define OAILOG_INFO 2 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */
|
||||
# define OAILOG_DEBUG 3 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */
|
||||
# define OAILOG_TRACE 4 /*!< \brief second level debug-level messages, for developers ,likely impact real-time behavior*/
|
||||
# define OAILOG_DEBUG 3 /*!< \brief first level debug-level messages, for developers, may impact real-time behavior */
|
||||
# define OAILOG_TRACE 4 /*!< \brief second level debug-level messages, for developers, likely impact real-time behavior*/
|
||||
|
||||
#define NUM_LOG_LEVEL 5 /*!< \brief the number of message levels users have with LOG (OAILOG_DISABLE is not available to user as a level, so it is not included)*/
|
||||
/* @}*/
|
||||
@@ -118,6 +118,8 @@ extern "C" {
|
||||
#define FLAG_NOCOLOR 0x0001 /*!< \brief use colors in log messages, depending on level */
|
||||
#define FLAG_THREAD 0x0008 /*!< \brief display thread name in log messages */
|
||||
#define FLAG_LEVEL 0x0010 /*!< \brief display log level in log messages */
|
||||
#define FLAG_FUNCT 0x0020
|
||||
#define FLAG_FILE_LINE 0x0040
|
||||
#define FLAG_TIME 0x0100
|
||||
#define FLAG_INITIALIZED 0x8000
|
||||
|
||||
@@ -182,6 +184,7 @@ typedef enum {
|
||||
MIN_LOG_COMPONENTS = 0,
|
||||
PHY = MIN_LOG_COMPONENTS,
|
||||
MAC,
|
||||
EMU,
|
||||
SIM,
|
||||
OCG,
|
||||
OMG,
|
||||
@@ -198,6 +201,7 @@ typedef enum {
|
||||
NAS,
|
||||
PERF,
|
||||
OIP,
|
||||
CLI,
|
||||
MSC,
|
||||
OCM,
|
||||
UDP_,
|
||||
@@ -218,6 +222,10 @@ typedef enum {
|
||||
PROTO_AGENT,
|
||||
F1U,
|
||||
X2AP,
|
||||
GNB_APP,
|
||||
NR_RRC,
|
||||
NR_MAC,
|
||||
NR_PHY,
|
||||
LOADER,
|
||||
ASN,
|
||||
NFAPI_VNF,
|
||||
@@ -288,7 +296,7 @@ extern "C" {
|
||||
# include "log_if.h"
|
||||
/*----------------------------------------------------------------------------*/
|
||||
int logInit (void);
|
||||
int isLogInitDone (void);
|
||||
int isLogInitDone (void);
|
||||
void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
|
||||
void vlogRecord_mt(const char *file, const char *func, int line, int comp, int level, const char *format, va_list args );
|
||||
void log_dump(int component, void *buffer, int buffsize,int datatype, const char *format, ... );
|
||||
@@ -307,6 +315,19 @@ int is_newline( char *str, int size);
|
||||
|
||||
int register_log_component(char *name, char *fext, int compidx);
|
||||
|
||||
#define LOG_MEM_SIZE 100*1024*1024
|
||||
#define LOG_MEM_FILE "./logmem.log"
|
||||
void flush_mem_to_file(void);
|
||||
void log_output_memory(const char *file, const char *func, int line, int comp, int level, const char* format,va_list args);
|
||||
int logInit_log_mem(void);
|
||||
void close_log_mem(void);
|
||||
|
||||
typedef struct {
|
||||
char* buf_p;
|
||||
int buf_index;
|
||||
int enable_flag;
|
||||
} log_mem_cnt_t;
|
||||
|
||||
/* @}*/
|
||||
|
||||
/*!\fn int32_t write_file_matlab(const char *fname, const char *vname, void *data, int length, int dec, char format);
|
||||
@@ -341,14 +362,14 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
|
||||
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
/* LOG globalconfiguration parameters */
|
||||
/* optname help paramflags XXXptr defXXXval type numelt */
|
||||
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
/* LOG globalconfiguration parameters */
|
||||
/* optname help paramflags XXXptr defXXXval type numelt */
|
||||
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
#define LOG_GLOBALPARAMS_DESC { \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, "Default log level for all componemts\n", 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, "Default console output option, for all components\n", 0, iptr:&(consolelog), defintval:1, TYPE_INT, 0}, \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS, LOG_CONFIG_HELP_OPTIONS, 0, strlistptr:NULL, defstrlistval:NULL, TYPE_STRINGLIST,0} \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, "Default log level for all componemts\n", 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, "Default console output option, for all components\n", 0, iptr:&(consolelog), defintval:1, TYPE_INT, 0}, \
|
||||
{LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS, LOG_CONFIG_HELP_OPTIONS, 0, strlistptr:NULL, defstrlistval:NULL, TYPE_STRINGLIST, 0} \
|
||||
}
|
||||
|
||||
#define LOG_OPTIONS_IDX 2
|
||||
@@ -382,17 +403,17 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
|
||||
/* define variable only used in LOG macro's */
|
||||
# define LOG_VAR(A,B) A B
|
||||
# else /* T_TRACER: remove all debugging and tracing messages, except errors */
|
||||
# define LOG_I(c, x...) /* */
|
||||
# define LOG_W(c, x...) /* */
|
||||
# define LOG_E(c, x...) /* */
|
||||
# define LOG_D(c, x...) /* */
|
||||
# define LOG_I(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0)/* */
|
||||
# define LOG_W(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ; } while(0)/* */
|
||||
# define LOG_E(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x) ; } while(0)/* */
|
||||
# define LOG_D(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x) ; } while(0)/* */
|
||||
# define LOG_T(c, x...) /* */
|
||||
|
||||
# define LOG_DUMPMSG(c, b, s, x...) /* */
|
||||
# define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...)
|
||||
# define LOG_DEBUGFLAG(D) ( 0 )
|
||||
# define LOG_DUMPFLAG(D) ( 0 )
|
||||
# define LOG_M(file, vector, data, len, dec, format)
|
||||
# define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)
|
||||
# define LOG_VAR(A,B)
|
||||
# endif /* T_TRACER */
|
||||
/* avoid warnings for variables only used in LOG macro's but set outside debug section */
|
||||
@@ -429,7 +450,10 @@ static __inline__ uint64_t rdtsc(void) {
|
||||
|
||||
extern double cpuf;
|
||||
|
||||
static inline uint64_t checkTCPU(int timeout, char *file, int line) {
|
||||
static inline uint64_t checkTCPU(int timeout,
|
||||
char *file,
|
||||
int line)
|
||||
{
|
||||
static uint64_t __thread lastCPUTime=0;
|
||||
static uint64_t __thread last=0;
|
||||
uint64_t cur=rdtsc();
|
||||
@@ -451,7 +475,10 @@ static inline uint64_t checkTCPU(int timeout, char *file, int line) {
|
||||
return cur;
|
||||
}
|
||||
|
||||
static inline unsigned long long checkT(int timeout, char *file, int line) {
|
||||
static inline unsigned long long checkT(int timeout,
|
||||
char *file,
|
||||
int line)
|
||||
{
|
||||
static unsigned long long __thread last=0;
|
||||
unsigned long long cur=rdtsc();
|
||||
int microCycles=(int)(cpuf*1000);
|
||||
@@ -471,7 +498,10 @@ typedef struct m {
|
||||
uint64_t maxArray[11];
|
||||
} Meas;
|
||||
|
||||
static inline void printMeas(char *txt, Meas *M, int period) {
|
||||
static inline void printMeas(char *txt,
|
||||
Meas *M,
|
||||
int period)
|
||||
{
|
||||
if (M->iterations%period == 0 ) {
|
||||
char txt2[512];
|
||||
sprintf(txt2,"%s avg=%" PRIu64 " iterations=%" PRIu64 " max=%"
|
||||
@@ -489,13 +519,19 @@ static inline void printMeas(char *txt, Meas *M, int period) {
|
||||
}
|
||||
}
|
||||
|
||||
static inline int cmpint(const void *a, const void *b) {
|
||||
static inline int cmpint(const void *a,
|
||||
const void *b)
|
||||
{
|
||||
uint64_t *aa=(uint64_t *)a;
|
||||
uint64_t *bb=(uint64_t *)b;
|
||||
return (int)(*aa-*bb);
|
||||
}
|
||||
|
||||
static inline void updateTimes(uint64_t start, Meas *M, int period, char *txt) {
|
||||
static inline void updateTimes(uint64_t start,
|
||||
Meas *M,
|
||||
int period,
|
||||
char *txt)
|
||||
{
|
||||
if (start!=0) {
|
||||
uint64_t end=rdtsc();
|
||||
long long diff=(end-start)/(cpuf*1000);
|
||||
@@ -532,5 +568,3 @@ static inline void updateTimes(uint64_t start, Meas *M, int period, char *txt) {
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -27,4 +27,6 @@ extern log_t *g_log;
|
||||
extern mapping log_level_names[];
|
||||
extern mapping log_options[];
|
||||
extern mapping log_maskmap[];
|
||||
|
||||
extern int log_mem_flag;
|
||||
extern char * log_mem_filename;
|
||||
extern char logmem_filename[1024];
|
||||
|
||||
@@ -76,10 +76,10 @@ const char* eurecomVariablesNames[] = {
|
||||
"frame_number_TX1_RU",
|
||||
"frame_number_RX0_RU",
|
||||
"frame_number_RX1_RU",
|
||||
"subframe_number_TX0_RU",
|
||||
"subframe_number_TX1_RU",
|
||||
"subframe_number_RX0_RU",
|
||||
"subframe_number_RX1_RU",
|
||||
"tti_number_TX0_RU",
|
||||
"tti_number_TX1_RU",
|
||||
"tti_number_RX0_RU",
|
||||
"tti_number_RX1_RU",
|
||||
"subframe_number_if4p5_north_out",
|
||||
"frame_number_if4p5_north_out",
|
||||
"subframe_number_if4p5_north_asynch_in",
|
||||
@@ -238,7 +238,18 @@ const char* eurecomVariablesNames[] = {
|
||||
"ue0_drx_long_cycle",
|
||||
"ue0_drx_retransmission_harq0",
|
||||
"ue0_drx_active_time",
|
||||
"ue0_drx_active_time_condition"
|
||||
"ue0_drx_active_time_condition",
|
||||
/*signal for NR*/
|
||||
"frame_number_TX0_gNB",
|
||||
"frame_number_TX1_gNB",
|
||||
"frame_number_RX0_gNB",
|
||||
"frame_number_RX1_gNB",
|
||||
"slot_number_TX0_gNB",
|
||||
"slot_number_TX1_gNB",
|
||||
"slot_number_RX0_gNB",
|
||||
"slot_number_RX1_gNB",
|
||||
"ru_tx_ofdm_mask",
|
||||
"trx_write_event"
|
||||
};
|
||||
|
||||
const char* eurecomFunctionsNames[] = {
|
||||
@@ -276,7 +287,7 @@ const char* eurecomFunctionsNames[] = {
|
||||
"do_DL_sig",
|
||||
"do_UL_sig",
|
||||
"UE_trx_read",
|
||||
/* RRH signals */
|
||||
/* RRH signals */
|
||||
"eNB_tx",
|
||||
"eNB_rx",
|
||||
"eNB_trx",
|
||||
@@ -286,7 +297,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"eNB_proc_sleep",
|
||||
"trx_read_rf",
|
||||
"trx_write_rf",
|
||||
|
||||
/* PHY signals */
|
||||
"ue_synch",
|
||||
"ue_slot_fep",
|
||||
@@ -320,6 +330,13 @@ const char* eurecomFunctionsNames[] = {
|
||||
"phy_procedures_ru_feptx_ofdm7",
|
||||
"phy_procedures_ru_feptx_ofdm8",
|
||||
"phy_procedures_ru_feptx_ofdm9",
|
||||
"phy_procedures_ru_feptx_ofdm10",
|
||||
"phy_procedures_ru_feptx_ofdm11",
|
||||
"phy_procedures_ru_feptx_ofdm12",
|
||||
"phy_procedures_ru_feptx_ofdm13",
|
||||
"phy_procedures_ru_feptx_ofdm14",
|
||||
"phy_procedures_ru_feptx_ofdm15",
|
||||
"phy_procedures_ru_feptx_ofdm16",
|
||||
"phy_procedures_ru_feptx_prec0",
|
||||
"phy_procedures_ru_feptx_prec1",
|
||||
"phy_procedures_ru_feptx_prec2",
|
||||
@@ -335,6 +352,7 @@ const char* eurecomFunctionsNames[] = {
|
||||
"phy_procedures_ue_tx",
|
||||
"phy_procedures_ue_rx",
|
||||
"phy_procedures_ue_tx_ulsch_uespec",
|
||||
"phy_procedures_nr_ue_tx_ulsch_uespec",
|
||||
"phy_procedures_ue_tx_pucch",
|
||||
"phy_procedures_ue_tx_ulsch_common",
|
||||
"phy_procedures_ue_tx_prach",
|
||||
@@ -358,6 +376,11 @@ const char* eurecomFunctionsNames[] = {
|
||||
"dlsch_decoding5",
|
||||
"dlsch_decoding6",
|
||||
"dlsch_decoding7",
|
||||
"dlsch_segmentation",
|
||||
"dlsch_deinterleaving",
|
||||
"dlsch_rate_matching",
|
||||
"dlsch_ldpc",
|
||||
"dlsch_compine_seg",
|
||||
"dlsch_pmch_decoding",
|
||||
"rx_pdcch",
|
||||
"dci_decoding",
|
||||
@@ -386,6 +409,7 @@ const char* eurecomFunctionsNames[] = {
|
||||
"phy_enb_prach_rx",
|
||||
"phy_ru_prach_rx",
|
||||
"phy_enb_pdcch_tx",
|
||||
"phy_enb_common_tx",
|
||||
"phy_enb_rs_tx",
|
||||
"phy_ue_generate_prach",
|
||||
"phy_ue_ulsch_modulation",
|
||||
@@ -400,7 +424,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"phy_eNB_dlsch_scrambling",
|
||||
"phy_eNB_beam_precoding",
|
||||
"phy_eNB_ofdm_mod_l",
|
||||
|
||||
/* MAC signals */
|
||||
"macxface_macphy_init",
|
||||
"macxface_macphy_exit",
|
||||
@@ -417,7 +440,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"mac_dlsch_preprocessor",
|
||||
"mac_schedule_dlsch",
|
||||
"mac_fill_dlsch_dci",
|
||||
|
||||
"macxface_out_of_sync_ind",
|
||||
"macxface_ue_decode_si",
|
||||
"macxface_ue_decode_pcch",
|
||||
@@ -429,9 +451,7 @@ const char* eurecomFunctionsNames[] = {
|
||||
"macxface_ue_process_rar",
|
||||
"macxface_ue_scheduler",
|
||||
"macxface_ue_get_sr",
|
||||
|
||||
"ue_send_mch_sdu",
|
||||
|
||||
/*RLC signals */
|
||||
"rlc_data_req",
|
||||
// "rlc_data_ind", // this calls "pdcp_data_ind",
|
||||
@@ -441,7 +461,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"rlc_um_try_reassembly",
|
||||
"rlc_um_check_timer_dar_time_out",
|
||||
"rlc_um_receive_process_dar",
|
||||
|
||||
/* PDCP signals */
|
||||
"pdcp_run",
|
||||
"pdcp_data_req",
|
||||
@@ -471,7 +490,6 @@ const char* eurecomFunctionsNames[] = {
|
||||
"itti_dump_enqueue_message_malloc",
|
||||
"itti_relay_thread",
|
||||
"test",
|
||||
|
||||
/* IF4/IF5 signals */
|
||||
"send_if4_ru",
|
||||
"send_if4_ru1",
|
||||
@@ -481,10 +499,8 @@ const char* eurecomFunctionsNames[] = {
|
||||
"recv_if4_ru2",
|
||||
"send_if5",
|
||||
"recv_if5",
|
||||
|
||||
"compress_if",
|
||||
"decompress_if",
|
||||
|
||||
"nfapi_subframe",
|
||||
"generate_pcfich",
|
||||
"generate_dci0",
|
||||
@@ -494,7 +510,10 @@ const char* eurecomFunctionsNames[] = {
|
||||
"pdcch_modulation",
|
||||
"pdcch_interleaving",
|
||||
"pdcch_tx",
|
||||
|
||||
/*NR softmodem signal*/
|
||||
"wakeup_txfh",
|
||||
"gNB_thread_rxtx0",
|
||||
"gNB_thread_rxtx1"
|
||||
};
|
||||
|
||||
struct vcd_module_s vcd_modules[] = {
|
||||
@@ -613,6 +632,10 @@ inline static uint32_t vcd_get_write_index(void)
|
||||
return write_index;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_ITTI)
|
||||
int signal_mask(void);
|
||||
#endif
|
||||
|
||||
void *vcd_dumper_thread_rt(void *args)
|
||||
{
|
||||
vcd_queue_user_data_t *data;
|
||||
@@ -621,7 +644,7 @@ void *vcd_dumper_thread_rt(void *args)
|
||||
uint32_t data_ready_wait;
|
||||
|
||||
# if defined(ENABLE_ITTI)
|
||||
signal_mask();
|
||||
return 0; //signal_mask(); //function defined at common/utils/ocp_itti/intertask_interface.cpp
|
||||
# endif
|
||||
|
||||
sched_param.sched_priority = sched_get_priority_min(SCHED_FIFO) + 1;
|
||||
|
||||
@@ -53,10 +53,10 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX0_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_TX0_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_TX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_RX0_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_RX1_RU,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_OUT,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_OUT,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN,
|
||||
@@ -216,6 +216,19 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_DRX_RETRANSMISSION_HARQ0,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_DRX_ACTIVE_TIME,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_DRX_ACTIVE_TIME_CONDITION,
|
||||
/*signal for NR*/
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_TX0_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_TX1_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_RX0_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_RX1_GNB,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_RU_TX_OFDM_MASK,
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_RU_TRX_WRITE_EVENT,
|
||||
|
||||
|
||||
VCD_SIGNAL_DUMPER_VARIABLES_END
|
||||
} vcd_signal_dump_variables;
|
||||
|
||||
@@ -298,6 +311,13 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM7,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM8,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM9,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM10,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM11,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM12,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM13,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM14,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM15,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM16,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC1,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC2,
|
||||
@@ -313,6 +333,7 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_UESPEC,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_NR_UE_TX_ULSCH_UESPEC,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PUCCH,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PRACH,
|
||||
@@ -336,6 +357,11 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING5,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING6,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING7,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_SEGMENTATION,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DEINTERLEAVING,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_RATE_MATCHING,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_LDPC,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_COMBINE_SEG,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PMCH_DECODING,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING,
|
||||
@@ -364,6 +390,7 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GENERATE_PRACH,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION,
|
||||
@@ -475,6 +502,11 @@ typedef enum {
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PDCCH_INTERLEAVING,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PDCCH_TX,
|
||||
|
||||
/*NR softmodem signal*/
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_WAKEUP_TXFH,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PROC_RXTX0,
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_PROC_RXTX1,
|
||||
|
||||
VCD_SIGNAL_DUMPER_FUNCTIONS_END
|
||||
} vcd_signal_dump_functions;
|
||||
|
||||
@@ -533,12 +565,20 @@ extern int ouput_vcd;
|
||||
|
||||
#include "T.h"
|
||||
|
||||
#define VCD_SIGNAL_DUMPER_INIT(x) /* nothing */
|
||||
#define VCD_SIGNAL_DUMPER_CLOSE() /* nothing */
|
||||
#define VCD_SIGNAL_DUMPER_CREATE_HEADER() /* nothing */
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(var, val) T_VCD_VARIABLE(var, val)
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(var, val) T_VCD_FUNCTION(var, val)
|
||||
#else
|
||||
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(var, val)
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(var, val)
|
||||
#else /* T_TRACER */
|
||||
|
||||
#define VCD_SIGNAL_DUMPER_INIT(aRgUmEnT) vcd_signal_dumper_init(aRgUmEnT)
|
||||
#define VCD_SIGNAL_DUMPER_CLOSE() vcd_signal_dumper_close()
|
||||
#define VCD_SIGNAL_DUMPER_CREATE_HEADER() vcd_signal_dumper_create_header()
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_variable_by_name(vAr1,vAr2)
|
||||
#define VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(vAr1,vAr2) vcd_signal_dumper_dump_function_by_name(vAr1,vAr2)
|
||||
|
||||
|
||||
#endif /* T_TRACER */
|
||||
|
||||
|
||||
@@ -1,3 +1,35 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*!\file common/utils/T/T_defs.h
|
||||
* \brief
|
||||
* \author
|
||||
* \date
|
||||
* \version
|
||||
* \company EURECOM
|
||||
* \email
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
|
||||
#ifndef _T_defs_H_
|
||||
#define _T_defs_H_
|
||||
|
||||
@@ -41,10 +73,10 @@ typedef struct {
|
||||
} T_cache_t;
|
||||
|
||||
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
|
||||
#define VCD_NUM_FUNCTIONS (228)
|
||||
#define VCD_NUM_FUNCTIONS (245)
|
||||
|
||||
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
|
||||
#define VCD_NUM_VARIABLES (177)
|
||||
#define VCD_NUM_VARIABLES (187)
|
||||
|
||||
/* first VCD function (to be kept up to date! see in T_messages.txt) */
|
||||
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)
|
||||
|
||||
@@ -77,6 +77,10 @@ ID = ENB_PHY_INITIATE_RA_PROCEDURE
|
||||
DESC = eNodeB initiates a random access procedure after detecting enough energy for one of the preambles
|
||||
GROUP = ALL:PHY:ENB:WIRESHARK
|
||||
FORMAT = int,eNB_ID : int,frame : int,subframe : int,preamble : int,energy : int,delay
|
||||
ID = GNB_PHY_DL_TICK
|
||||
DESC = gNodeB downlink tick - one tick per ms at start of downlink processing
|
||||
GROUP = ALL:PHY:GRAPHIC:GNB
|
||||
FORMAT = int,gNB_ID : int,frame : int,subframe
|
||||
ID = ENB_PHY_MIB
|
||||
DESC = MIB data
|
||||
GROUP = ALL:PHY:ENB:WIRESHARK
|
||||
@@ -296,6 +300,27 @@ ID = LEGACY_MAC_TRACE
|
||||
GROUP = ALL:LEGACY_MAC:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_NR_MAC_INFO
|
||||
DESC = NR_MAC legacy logs - info level
|
||||
GROUP = ALL:LEGACY_NR_MAC:LEGACY_GROUP_INFO:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_MAC_ERROR
|
||||
DESC = NR_MAC legacy logs - error level
|
||||
GROUP = ALL:LEGACY_NR_MAC:LEGACY_GROUP_ERROR:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_MAC_WARNING
|
||||
DESC = NR_MAC legacy logs - warning level
|
||||
GROUP = ALL:LEGACY_NR_MAC:LEGACY_GROUP_WARNING:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_MAC_DEBUG
|
||||
DESC = NR_MAC legacy logs - debug level
|
||||
GROUP = ALL:LEGACY_NR_MAC:LEGACY_GROUP_DEBUG:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_MAC_TRACE
|
||||
DESC = NR_MAC legacy logs - trace level
|
||||
GROUP = ALL:LEGACY_NR_MAC:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_PHY_INFO
|
||||
DESC = PHY legacy logs - info level
|
||||
GROUP = ALL:LEGACY_PHY:LEGACY_GROUP_INFO:LEGACY
|
||||
@@ -317,6 +342,27 @@ ID = LEGACY_PHY_TRACE
|
||||
GROUP = ALL:LEGACY_PHY:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_NR_PHY_INFO
|
||||
DESC = NR_PHY legacy logs - info level
|
||||
GROUP = ALL:LEGACY_NR_PHY:LEGACY_GROUP_INFO:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_PHY_ERROR
|
||||
DESC = NR_PHY legacy logs - error level
|
||||
GROUP = ALL:LEGACY_NR_PHY:LEGACY_GROUP_ERROR:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_PHY_WARNING
|
||||
DESC = NR_PHY legacy logs - warning level
|
||||
GROUP = ALL:LEGACY_NR_PHY:LEGACY_GROUP_WARNING:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_PHY_DEBUG
|
||||
DESC = NR_PHY legacy logs - debug level
|
||||
GROUP = ALL:LEGACY_NR_PHY:LEGACY_GROUP_DEBUG:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_PHY_TRACE
|
||||
DESC = NR_PHY legacy logs - trace level
|
||||
GROUP = ALL:LEGACY_NR_PHY:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_S1AP_INFO
|
||||
DESC = S1AP legacy logs - info level
|
||||
GROUP = ALL:LEGACY_S1AP:LEGACY_GROUP_INFO:LEGACY
|
||||
@@ -380,6 +426,27 @@ ID = LEGACY_RRC_TRACE
|
||||
GROUP = ALL:LEGACY_RRC:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_NR_RRC_INFO
|
||||
DESC = NR_RRC legacy logs - info level
|
||||
GROUP = ALL:LEGACY_NR_RRC:LEGACY_GROUP_INFO:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_RRC_ERROR
|
||||
DESC = NR_RRC legacy logs - error level
|
||||
GROUP = ALL:LEGACY_NR_RRC:LEGACY_GROUP_ERROR:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_RRC_WARNING
|
||||
DESC = NR_RRC legacy logs - warning level
|
||||
GROUP = ALL:LEGACY_NR_RRC:LEGACY_GROUP_WARNING:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_RRC_DEBUG
|
||||
DESC = NR_RRC legacy logs - debug level
|
||||
GROUP = ALL:LEGACY_NR_RRC:LEGACY_GROUP_DEBUG:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_NR_RRC_TRACE
|
||||
DESC = NR_RRC legacy logs - trace level
|
||||
GROUP = ALL:LEGACY_NR_RRC:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_RLC_INFO
|
||||
DESC = RLC legacy logs - info level
|
||||
GROUP = ALL:LEGACY_RLC:LEGACY_GROUP_INFO:LEGACY
|
||||
@@ -443,6 +510,27 @@ ID = LEGACY_ENB_APP_TRACE
|
||||
GROUP = ALL:LEGACY_ENB_APP:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_GNB_APP_INFO
|
||||
DESC = GNB_APP legacy logs - info level
|
||||
GROUP = ALL:LEGACY_GNB_APP:LEGACY_GROUP_INFO:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_GNB_APP_ERROR
|
||||
DESC = GNB_APP legacy logs - error level
|
||||
GROUP = ALL:LEGACY_GNB_APP:LEGACY_GROUP_ERROR:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_GNB_APP_WARNING
|
||||
DESC = GNB_APP legacy logs - warning level
|
||||
GROUP = ALL:LEGACY_GNB_APP:LEGACY_GROUP_WARNING:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_GNB_APP_DEBUG
|
||||
DESC = GNB_APP legacy logs - debug level
|
||||
GROUP = ALL:LEGACY_GNB_APP:LEGACY_GROUP_DEBUG:LEGACY
|
||||
FORMAT = string,log
|
||||
ID = LEGACY_GNB_APP_TRACE
|
||||
DESC = GNB_APP legacy logs - trace level
|
||||
GROUP = ALL:LEGACY_GNB_APP:LEGACY_GROUP_TRACE:LEGACY
|
||||
FORMAT = string,log
|
||||
|
||||
ID = LEGACY_FLEXRAN_AGENT_INFO
|
||||
DESC = FLEXRAN_AGENT legacy logs - info level
|
||||
GROUP = ALL:LEGACY_FLEXRAN_AGENT:LEGACY_GROUP_INFO:LEGACY
|
||||
@@ -1105,26 +1193,26 @@ ID = VCD_VARIABLE_FRAME_NUMBER_RX1_RU
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = frame_number_RX1_RU
|
||||
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX0_RU
|
||||
DESC = VCD variable SUBFRAME_NUMBER_TX0_RU
|
||||
ID = VCD_VARIABLE_TTI_NUMBER_TX0_RU
|
||||
DESC = VCD variable TTI_NUMBER_TX0_RU
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = subframe_number_TX0_RU
|
||||
ID = VCD_VARIABLE_SUBFRAME_NUMBER_TX1_RU
|
||||
DESC = VCD variable SUBFRAME_NUMBER_TX1_RU
|
||||
VCD_NAME = tti_number_TX0_RU
|
||||
ID = VCD_VARIABLE_TTI_NUMBER_TX1_RU
|
||||
DESC = VCD variable TTI_NUMBER_TX1_RU
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = subframe_number_TX1_RU
|
||||
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX0_RU
|
||||
DESC = VCD variable SUBFRAME_NUMBER_RX0_RU
|
||||
VCD_NAME = tti_number_TX1_RU
|
||||
ID = VCD_VARIABLE_TTI_NUMBER_RX0_RU
|
||||
DESC = VCD variable TTI_NUMBER_RX0_RU
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = subframe_number_RX0_RU
|
||||
ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_RU
|
||||
DESC = VCD variable SUBFRAME_NUMBER_RX1_RU
|
||||
VCD_NAME = tti_number_RX0_RU
|
||||
ID = VCD_VARIABLE_TTI_NUMBER_RX1_RU
|
||||
DESC = VCD variable TTI_NUMBER_RX1_RU
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = subframe_number_RX1_RU
|
||||
VCD_NAME = tti_number_RX1_RU
|
||||
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_NORTH_OUT
|
||||
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_NORTH_OUT
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
@@ -1921,6 +2009,58 @@ ID = VCD_VARIABLE_DRX_ACTIVE_TIME_CONDITION
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = ue0_drx_active_time_condition
|
||||
|
||||
#variable for gNB
|
||||
ID = VCD_VARIABLE_FRAME_NUMBER_TX0_GNB
|
||||
DESC = VCD variable FRAME_NUMBER_TX0_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = frame_number_TX0_gNB
|
||||
ID = VCD_VARIABLE_FRAME_NUMBER_TX1_GNB
|
||||
DESC = VCD variable FRAME_NUMBER_TX1_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = frame_number_TX1_gNB
|
||||
ID = VCD_VARIABLE_FRAME_NUMBER_RX0_GNB
|
||||
DESC = VCD variable FRAME_NUMBER_RX0_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = frame_number_RX0_gNB
|
||||
ID = VCD_VARIABLE_FRAME_NUMBER_RX1_GNB
|
||||
DESC = VCD variable FRAME_NUMBER_RX1_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = frame_number_RX1_gNB
|
||||
ID = VCD_VARIABLE_SLOT_NUMBER_TX0_GNB
|
||||
DESC = VCD variable SLOT_NUMBER_TX0_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = slot_number_TX0_gNB
|
||||
ID = VCD_VARIABLE_SLOT_NUMBER_TX1_GNB
|
||||
DESC = VCD variable SLOT_NUMBER_TX1_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = slot_number_TX1_gNB
|
||||
ID = VCD_VARIABLE_SLOT_NUMBER_RX0_GNB
|
||||
DESC = VCD variable SLOT_NUMBER_RX0_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = slot_number_RX0_gNB
|
||||
ID = VCD_VARIABLE_SLOT_NUMBER_RX1_GNB
|
||||
DESC = VCD variable SLOT_NUMBER_RX1_GNB
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = slot_number_RX1_gNB
|
||||
ID = VCD_VARIABLE_RU_TX_OFDM_MASK
|
||||
DESC = VCD variable RU_TX_OFDM_MASK
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = ru_tx_ofdm_mask
|
||||
ID = VCD_VARIABLE_RU_TRX_WRITE_EVENT
|
||||
DESC = VCD variable RU_TRX_WRITE_EVENT
|
||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||
FORMAT = ulong,value
|
||||
VCD_NAME = trx_write_event
|
||||
|
||||
#functions
|
||||
|
||||
ID = VCD_FUNCTION_RT_SLEEP
|
||||
@@ -2288,6 +2428,41 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM9
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm9
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM10
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM10
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm10
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM11
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM11
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm11
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM12
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM12
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm12
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM13
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM13
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm13
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM14
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM14
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm14
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM15
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM15
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm15
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM16
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM16
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ru_feptx_ofdm16
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC
|
||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
@@ -2363,6 +2538,11 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_ULSCH_UESPEC
|
||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_ue_tx_ulsch_uespec
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_NR_UE_TX_ULSCH_UESPEC
|
||||
DESC = VCD function PHY_PROCEDURES_NR_UE_TX_ULSCH_UESPEC
|
||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_procedures_nr_ue_tx_ulsch_uespec
|
||||
ID = VCD_FUNCTION_PHY_PROCEDURES_UE_TX_PUCCH
|
||||
DESC = VCD function PHY_PROCEDURES_UE_TX_PUCCH
|
||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||
@@ -2478,6 +2658,31 @@ ID = VCD_FUNCTION_DLSCH_DECODING7
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_decoding7
|
||||
ID = VCD_FUNCTION_DLSCH_SEGMENTATION
|
||||
DESC = VCD function DLSCH_SEGMENTATION
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_segmentation
|
||||
ID = VCD_FUNCTION_DLSCH_DEINTERLEAVING
|
||||
DESC = VCD function DLSCH_DEINTERLEAVING
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_deinterleaving
|
||||
ID = VCD_FUNCTION_DLSCH_RATE_MATCHING
|
||||
DESC = VCD function DLSCH_RATE_MATCHING
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_rate_matching
|
||||
ID = VCD_FUNCTION_DLSCH_LDPC
|
||||
DESC = VCD function DLSCH_LDPC
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_ldpc
|
||||
ID = VCD_FUNCTION_DLSCH_COMBINE_SEG
|
||||
DESC = VCD function DLSCH_COMBINE_SEG
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = dlsch_compine_seg
|
||||
ID = VCD_FUNCTION_DLSCH_PMCH_DECODING
|
||||
DESC = VCD function DLSCH_PMCH_DECODING
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
@@ -2618,6 +2823,11 @@ ID = VCD_FUNCTION_PHY_ENB_PDCCH_TX
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_enb_pdcch_tx
|
||||
ID = VCD_FUNCTION_PHY_ENB_COMMON_TX
|
||||
DESC = VCD function PHY_ENB_COMMON_TX
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = phy_enb_common_tx
|
||||
ID = VCD_FUNCTION_PHY_ENB_RS_TX
|
||||
DESC = VCD function PHY_ENB_RS_TX
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
@@ -3063,3 +3273,20 @@ ID = VCD_FUNCTION_PDCCH_TX
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = pdcch_tx
|
||||
|
||||
#function for gNB
|
||||
ID = VCD_FUNCTION_WAKEUP_TXFH
|
||||
DESC = VCD function WAKEUP_TXFH
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = wakeup_txfh
|
||||
ID = VCD_FUNCTION_gNB_PROC_RXTX0
|
||||
DESC = VCD function gNB_PROC_RXTX0
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = gNB_thread_rxtx0
|
||||
ID = VCD_FUNCTION_gNB_PROC_RXTX1
|
||||
DESC = VCD function gNB_PROC_RXTX1
|
||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||
FORMAT = int,value
|
||||
VCD_NAME = gNB_thread_rxtx1
|
||||
|
||||
@@ -52,6 +52,7 @@ typedef struct {
|
||||
int max_mib;
|
||||
int max_sib;
|
||||
int live;
|
||||
int no_bind;
|
||||
/* runtime vars */
|
||||
int cur_mib;
|
||||
int cur_sib;
|
||||
@@ -264,9 +265,11 @@ void *receiver(void *_d) {
|
||||
abort();
|
||||
}
|
||||
|
||||
if (bind(s, (struct sockaddr *)&d->to, sizeof(struct sockaddr_in)) == -1) {
|
||||
perror("bind");
|
||||
abort();
|
||||
if (d->no_bind == 0) {
|
||||
if (bind(s, (struct sockaddr *)&d->to, sizeof(struct sockaddr_in)) == -1) {
|
||||
perror("bind");
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
while (1) {
|
||||
@@ -290,6 +293,7 @@ void usage(void) {
|
||||
" -live run live\n"
|
||||
" -live-ip <IP address> tracee's IP address (default %s)\n"
|
||||
" -live-port <port> tracee's port (default %d)\n"
|
||||
" -no-bind don't bind to IP address (for remote logging)\n"
|
||||
"-i and -live are mutually exclusive options. One of them must be provided\n"
|
||||
"but not both.\n",
|
||||
DEFAULT_IP,
|
||||
@@ -318,78 +322,18 @@ int main(int n, char **v) {
|
||||
|
||||
for (i = 1; i < n; i++) {
|
||||
if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage();
|
||||
|
||||
if (!strcmp(v[i], "-d")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
database_filename = v[++i];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-i")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
input_filename = v[++i];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-ip")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
ip = v[++i];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-p")) {
|
||||
if(i>n-2)usage();
|
||||
|
||||
port=atoi(v[++i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-no-mib")) {
|
||||
d.no_mib = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-no-sib")) {
|
||||
d.no_sib = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-max-mib")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
d.max_mib = atoi(v[++i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-max-sib")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
d.max_sib = atoi(v[++i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-live")) {
|
||||
live = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-live-ip")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
live_ip = v[++i];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-live-port")) {
|
||||
if (i > n-2) usage();
|
||||
|
||||
live_port = atoi(v[++i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(v[i], "-d")) { if(i>n-2)usage(); database_filename = v[++i]; continue; }
|
||||
if (!strcmp(v[i], "-i")) { if(i>n-2)usage(); input_filename = v[++i]; continue; }
|
||||
if (!strcmp(v[i], "-ip")) { if(i>n-2)usage(); ip = v[++i]; continue; }
|
||||
if (!strcmp(v[i], "-p")) { if(i>n-2)usage(); port = atoi(v[++i]); continue; }
|
||||
if (!strcmp(v[i], "-no-mib")) { d.no_mib = 1; continue; }
|
||||
if (!strcmp(v[i], "-no-sib")) { d.no_sib = 1; continue; }
|
||||
if (!strcmp(v[i], "-max-mib")) { if(i>n-2)usage(); d.max_mib = atoi(v[++i]); continue; }
|
||||
if (!strcmp(v[i], "-max-sib")) { if(i>n-2)usage(); d.max_sib = atoi(v[++i]); continue; }
|
||||
if (!strcmp(v[i], "-live")) { live = 1; continue; }
|
||||
if (!strcmp(v[i], "-live-ip")) { if(i>n-2)usage(); live_ip = v[++i]; continue; }
|
||||
if (!strcmp(v[i], "-live-port")) { if(i>n-2)usage(); live_port = atoi(v[++i]); continue; }
|
||||
if (!strcmp(v[i], "-no-bind")) { d.no_bind = 1; continue; }
|
||||
usage();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,16 @@
|
||||
|
||||
#ifndef BACKTRACE_H_
|
||||
#define BACKTRACE_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void display_backtrace(void);
|
||||
|
||||
void backtrace_handle_signal(siginfo_t *info);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* BACKTRACE_H_ */
|
||||
|
||||
@@ -162,34 +162,6 @@ hashtable_rc_t hashtable_is_key_exists (const hash_table_t *const hashtblP, cons
|
||||
return HASH_TABLE_KEY_NOT_EXISTS;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
hashtable_rc_t hashtable_apply_funct_on_elements (hash_table_t *const hashtblP, void functP(hash_key_t keyP, void *dataP, void *parameterP), void *parameterP)
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
hash_node_t *node = NULL;
|
||||
unsigned int i = 0;
|
||||
unsigned int num_elements = 0;
|
||||
|
||||
if (hashtblP == NULL) {
|
||||
return HASH_TABLE_BAD_PARAMETER_HASHTABLE;
|
||||
}
|
||||
|
||||
while ((num_elements < hashtblP->num_elements) && (i < hashtblP->size)) {
|
||||
if (hashtblP->nodes[i] != NULL) {
|
||||
node=hashtblP->nodes[i];
|
||||
|
||||
while(node) {
|
||||
num_elements += 1;
|
||||
functP(node->key, node->data, parameterP);
|
||||
node=node->next;
|
||||
}
|
||||
}
|
||||
|
||||
i += 1;
|
||||
}
|
||||
|
||||
return HASH_TABLE_OK;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
hashtable_rc_t hashtable_dump_content (const hash_table_t *const hashtblP, char *const buffer_pP, int *const remaining_bytes_in_buffer_pP )
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
{
|
||||
@@ -266,7 +238,6 @@ hashtable_rc_t hashtable_insert(hash_table_t *const hashtblP, const hash_key_t k
|
||||
}
|
||||
|
||||
hashtblP->nodes[hash]=node;
|
||||
hashtblP->num_elements += 1;
|
||||
return HASH_TABLE_OK;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -295,7 +266,6 @@ hashtable_rc_t hashtable_remove(hash_table_t *const hashtblP, const hash_key_t k
|
||||
}
|
||||
|
||||
free(node);
|
||||
hashtblP->num_elements -= 1;
|
||||
return HASH_TABLE_OK;
|
||||
}
|
||||
|
||||
@@ -335,47 +305,3 @@ hashtable_rc_t hashtable_get(const hash_table_t *const hashtblP, const hash_key_
|
||||
*dataP = NULL;
|
||||
return HASH_TABLE_KEY_NOT_EXISTS;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
/*
|
||||
* Resizing
|
||||
* The number of elements in a hash table is not always known when creating the table.
|
||||
* If the number of elements grows too large, it will seriously reduce the performance of most hash table operations.
|
||||
* If the number of elements are reduced, the hash table will waste memory. That is why we provide a function for resizing the table.
|
||||
* Resizing a hash table is not as easy as a realloc(). All hash values must be recalculated and each element must be inserted into its new position.
|
||||
* We create a temporary hash_table_t object (newtbl) to be used while building the new hashes.
|
||||
* This allows us to reuse hashtable_insert() and hashtable_remove(), when moving the elements to the new table.
|
||||
* After that, we can just free the old table and copy the elements from newtbl to hashtbl.
|
||||
*/
|
||||
|
||||
hashtable_rc_t hashtable_resize(hash_table_t *const hashtblP, const hash_size_t sizeP) {
|
||||
hash_table_t newtbl;
|
||||
hash_size_t n;
|
||||
hash_node_t *node,*next;
|
||||
|
||||
if (hashtblP == NULL) {
|
||||
return HASH_TABLE_BAD_PARAMETER_HASHTABLE;
|
||||
}
|
||||
|
||||
newtbl.size = sizeP;
|
||||
newtbl.hashfunc = hashtblP->hashfunc;
|
||||
newtbl.num_elements = 0;
|
||||
|
||||
if(!(newtbl.nodes=calloc(sizeP, sizeof(hash_node_t *)))) return -1;
|
||||
|
||||
for(n=0; n<hashtblP->size; ++n) {
|
||||
for(node=hashtblP->nodes[n]; node; node=next) {
|
||||
next = node->next;
|
||||
hashtable_insert(&newtbl, node->key, node->data);
|
||||
// Lionel GAUTHIER: BAD CODE TO BE REWRITTEN
|
||||
hashtable_remove(hashtblP, node->key);
|
||||
}
|
||||
}
|
||||
|
||||
free(hashtblP->nodes);
|
||||
hashtblP->size=newtbl.size;
|
||||
hashtblP->nodes=newtbl.nodes;
|
||||
return HASH_TABLE_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -49,7 +49,6 @@ typedef struct hash_node_s {
|
||||
|
||||
typedef struct hash_table_s {
|
||||
hash_size_t size;
|
||||
hash_size_t num_elements;
|
||||
struct hash_node_s **nodes;
|
||||
hash_size_t (*hashfunc)(const hash_key_t);
|
||||
void (*freefunc)(void *);
|
||||
@@ -60,12 +59,10 @@ void hash_free_int_func(void *memoryP);
|
||||
hash_table_t *hashtable_create (const hash_size_t size, hash_size_t (*hashfunc)(const hash_key_t ), void (*freefunc)(void *));
|
||||
hashtable_rc_t hashtable_destroy(hash_table_t **hashtbl);
|
||||
hashtable_rc_t hashtable_is_key_exists (const hash_table_t *const hashtbl, const uint64_t key);
|
||||
hashtable_rc_t hashtable_apply_funct_on_elements (hash_table_t *const hashtblP, void funct(hash_key_t keyP, void *dataP, void *parameterP), void *parameterP);
|
||||
hashtable_rc_t hashtable_dump_content (const hash_table_t *const hashtblP, char *const buffer_pP, int *const remaining_bytes_in_buffer_pP );
|
||||
hashtable_rc_t hashtable_insert (hash_table_t *const hashtbl, const hash_key_t key, void *data);
|
||||
hashtable_rc_t hashtable_remove (hash_table_t *const hashtbl, const hash_key_t key);
|
||||
hashtable_rc_t hashtable_get (const hash_table_t *const hashtbl, const hash_key_t key, void **dataP);
|
||||
hashtable_rc_t hashtable_resize (hash_table_t *const hashtbl, const hash_size_t size);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -91,6 +91,8 @@
|
||||
<TASK_MAC_ENB enabled="1"/>
|
||||
<TASK_RLC_ENB enabled="1"/>
|
||||
<TASK_PDCP_ENB enabled="1"/>
|
||||
<TASK_DATA_FORWARDING enabled="1"/>
|
||||
<TASK_END_MARKER enabled="1"/>
|
||||
<TASK_RRC_ENB enabled="1"/>
|
||||
<TASK_RAL_ENB enabled="1"/>
|
||||
<TASK_S1AP enabled="1"/>
|
||||
@@ -114,6 +116,8 @@
|
||||
<TASK_MAC_ENB enabled="1"/>
|
||||
<TASK_RLC_ENB enabled="1"/>
|
||||
<TASK_PDCP_ENB enabled="1"/>
|
||||
<TASK_DATA_FORWARDING enabled="1"/>
|
||||
<TASK_END_MARKER enabled="1"/>
|
||||
<TASK_RRC_ENB enabled="1"/>
|
||||
<TASK_RAL_ENB enabled="1"/>
|
||||
<TASK_S1AP enabled="1"/>
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
<TASK_MAC_ENB enabled="1"/>
|
||||
<TASK_RLC_ENB enabled="1"/>
|
||||
<TASK_PDCP_ENB enabled="1"/>
|
||||
<TASK_DATA_FORWARDING enabled="1"/>
|
||||
<TASK_END_MARKER enabled="1"/>
|
||||
<TASK_RRC_ENB enabled="1"/>
|
||||
<TASK_RAL_ENB enabled="1"/>
|
||||
<TASK_S1AP enabled="1"/>
|
||||
@@ -153,6 +155,8 @@
|
||||
<TASK_MAC_ENB enabled="1"/>
|
||||
<TASK_RLC_ENB enabled="1"/>
|
||||
<TASK_PDCP_ENB enabled="1"/>
|
||||
<TASK_DATA_FORWARDING enabled="1"/>
|
||||
<TASK_END_MARKER enabled="1"/>
|
||||
<TASK_RRC_ENB enabled="1"/>
|
||||
<TASK_RAL_ENB enabled="1"/>
|
||||
<TASK_S1AP enabled="1"/>
|
||||
|
||||
@@ -8,13 +8,14 @@
|
||||
|
||||
|
||||
#include <intertask_interface.h>
|
||||
#include <common/utils/system.h>
|
||||
|
||||
typedef struct timer_elm_s {
|
||||
timer_type_t type; ///< Timer type
|
||||
long instance;
|
||||
timer_type_t type; ///< Timer type
|
||||
long instance;
|
||||
long duration;
|
||||
uint64_t timeout;
|
||||
void *timer_arg; ///< Optional argument that will be passed when timer expires
|
||||
void *timer_arg; ///< Optional argument that will be passed when timer expires
|
||||
} timer_elm_t ;
|
||||
|
||||
typedef struct task_list_s {
|
||||
@@ -263,7 +264,8 @@ extern "C" {
|
||||
pthread_mutex_unlock (&t->queue_cond_lock);
|
||||
}
|
||||
|
||||
void itti_poll_msg(task_id_t task_id, MessageDef **received_msg) {
|
||||
void itti_poll_msg(task_id_t task_id, MessageDef **received_msg)
|
||||
{
|
||||
//reception of one message, non-blocking
|
||||
task_list_t *t=&tasks[task_id];
|
||||
pthread_mutex_lock(&t->queue_cond_lock);
|
||||
@@ -278,24 +280,13 @@ extern "C" {
|
||||
pthread_mutex_unlock (&t->queue_cond_lock);
|
||||
}
|
||||
|
||||
int itti_create_task(task_id_t task_id, void *(*start_routine)(void *), void *args_p) {
|
||||
int itti_create_task(task_id_t task_id,
|
||||
void *(*start_routine)(void *),
|
||||
void *args_p)
|
||||
{
|
||||
task_list_t *t=&tasks[task_id];
|
||||
AssertFatal ( pthread_create (&t->thread, NULL, start_routine, args_p) ==0,
|
||||
"Thread creation for task %d failed!\n", task_id);
|
||||
pthread_setname_np( t->thread, itti_get_task_name(task_id) );
|
||||
threadCreate (&t->thread, start_routine, args_p, (char*)itti_get_task_name(task_id),-1,OAI_PRIORITY_RT);
|
||||
LOG_I(TMR,"Created Posix thread %s\n", itti_get_task_name(task_id) );
|
||||
#if 1 // BMC test RT prio
|
||||
{
|
||||
int policy;
|
||||
struct sched_param sparam;
|
||||
memset(&sparam, 0, sizeof(sparam));
|
||||
sparam.sched_priority = sched_get_priority_max(SCHED_FIFO)-10;
|
||||
policy = SCHED_FIFO ;
|
||||
if (pthread_setschedparam(t->thread, policy, &sparam) != 0) {
|
||||
LOG_E(TMR,"task %s : Failed to set pthread priority\n", itti_get_task_name(task_id) );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -303,14 +294,19 @@ extern "C" {
|
||||
pthread_exit (NULL);
|
||||
}
|
||||
|
||||
void itti_terminate_tasks(task_id_t task_id) {
|
||||
void itti_terminate_tasks(task_id_t task_id)
|
||||
{
|
||||
// Sends Terminate signals to all tasks.
|
||||
itti_send_terminate_message (task_id);
|
||||
usleep(100*1000); // Allow the tasks to receive the message before going returning to main thread
|
||||
}
|
||||
|
||||
int itti_init(task_id_t task_max, thread_id_t thread_max, MessagesIds messages_id_max, const task_info_t *tasks_info,
|
||||
const message_info_t *messages_info) {
|
||||
int itti_init(task_id_t task_max,
|
||||
thread_id_t thread_max,
|
||||
MessagesIds messages_id_max,
|
||||
const task_info_t *tasks_info,
|
||||
const message_info_t *messages_info)
|
||||
{
|
||||
AssertFatal(TASK_MAX<UINT16_MAX, "Max itti tasks");
|
||||
|
||||
for(int i=0; i<task_max; ++i) {
|
||||
@@ -335,7 +331,8 @@ extern "C" {
|
||||
int32_t instance,
|
||||
timer_type_t type,
|
||||
void *timer_arg,
|
||||
long *timer_id) {
|
||||
long *timer_id)
|
||||
{
|
||||
task_list_t *t=&tasks[task_id];
|
||||
|
||||
do {
|
||||
@@ -369,7 +366,8 @@ extern "C" {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int timer_remove(long timer_id) {
|
||||
int timer_remove(long timer_id)
|
||||
{
|
||||
task_id_t task_id=(task_id_t)(timer_id&0xffff);
|
||||
int ret;
|
||||
pthread_mutex_lock (&tasks[task_id].queue_cond_lock);
|
||||
|
||||
@@ -25,7 +25,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
uint32_t interval_sec;
|
||||
uint32_t interval_us;
|
||||
long task_id;
|
||||
long task_id;
|
||||
int32_t instance;
|
||||
timer_type_t type;
|
||||
void *timer_arg;
|
||||
@@ -33,7 +33,7 @@ typedef struct {
|
||||
} timer_create_t;
|
||||
|
||||
typedef struct {
|
||||
long task_id;
|
||||
long task_id;
|
||||
long timer_id;
|
||||
} timer_delete_t;
|
||||
|
||||
@@ -283,12 +283,16 @@ typedef struct {
|
||||
TASK_DEF(TASK_RLC_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_RRC_ENB_NB_IoT, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_PDCP_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_DATA_FORWARDING, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_END_MARKER, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200, NULL,NULL)\
|
||||
TASK_DEF(TASK_RRC_GNB, TASK_PRIORITY_MED, 200, NULL,NULL)\
|
||||
TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_X2AP, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_SCTP, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_ENB_APP, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_GNB_APP, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_FLEXRAN_AGENT,TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_PHY_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
TASK_DEF(TASK_MAC_UE, TASK_PRIORITY_MED, 200, NULL, NULL) \
|
||||
@@ -401,10 +405,6 @@ typedef struct __attribute__ ((__packed__)) MessageDef_s {
|
||||
|
||||
#define INSTANCE_DEFAULT (UINT16_MAX - 1)
|
||||
|
||||
static inline int64_t clock_difftime_ns(struct timespec start, struct timespec end) {
|
||||
return (int64_t)( end.tv_sec-start.tv_sec) * (int64_t)(1000*1000*1000) + end.tv_nsec-start.tv_nsec;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -536,6 +536,7 @@ int timer_setup(
|
||||
int timer_remove(long timer_id);
|
||||
#define timer_stop timer_remove
|
||||
int signal_handle(int *end);
|
||||
int signal_mask(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -28,13 +28,23 @@
|
||||
* separate process solves this problem.
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include "system.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <common/utils/assertions.h>
|
||||
#include <common/utils/LOG/log.h>
|
||||
#define MAX_COMMAND 4096
|
||||
|
||||
static int command_pipe_read;
|
||||
@@ -50,37 +60,37 @@ static int module_initialized = 0;
|
||||
/* util functions */
|
||||
/********************************************************************/
|
||||
|
||||
static void lock_system(void)
|
||||
{
|
||||
static void lock_system(void) {
|
||||
if (pthread_mutex_lock(&lock) != 0) {
|
||||
printf("pthread_mutex_lock fails\n");
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
static void unlock_system(void)
|
||||
{
|
||||
static void unlock_system(void) {
|
||||
if (pthread_mutex_unlock(&lock) != 0) {
|
||||
printf("pthread_mutex_unlock fails\n");
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
static void write_pipe(int p, char *b, int size)
|
||||
{
|
||||
static void write_pipe(int p, char *b, int size) {
|
||||
while (size) {
|
||||
int ret = write(p, b, size);
|
||||
|
||||
if (ret <= 0) exit(0);
|
||||
|
||||
b += ret;
|
||||
size -= ret;
|
||||
}
|
||||
}
|
||||
|
||||
static void read_pipe(int p, char *b, int size)
|
||||
{
|
||||
static void read_pipe(int p, char *b, int size) {
|
||||
while (size) {
|
||||
int ret = read(p, b, size);
|
||||
|
||||
if (ret <= 0) exit(0);
|
||||
|
||||
b += ret;
|
||||
size -= ret;
|
||||
}
|
||||
@@ -95,14 +105,13 @@ static void read_pipe(int p, char *b, int size)
|
||||
* when the main process exits, because then a "read" on the pipe
|
||||
* will return 0, in which case "read_pipe" exits.
|
||||
*/
|
||||
static void background_system_process(void)
|
||||
{
|
||||
static void background_system_process(void) {
|
||||
int len;
|
||||
int ret;
|
||||
char command[MAX_COMMAND+1];
|
||||
|
||||
while (1) {
|
||||
read_pipe(command_pipe_read, (char*)&len, sizeof(int));
|
||||
read_pipe(command_pipe_read, (char *)&len, sizeof(int));
|
||||
read_pipe(command_pipe_read, command, len);
|
||||
ret = system(command);
|
||||
write_pipe(result_pipe_write, (char *)&ret, sizeof(int));
|
||||
@@ -114,8 +123,7 @@ static void background_system_process(void)
|
||||
/* return -1 on error, 0 on success */
|
||||
/********************************************************************/
|
||||
|
||||
int background_system(char *command)
|
||||
{
|
||||
int background_system(char *command) {
|
||||
int res;
|
||||
int len;
|
||||
|
||||
@@ -125,18 +133,22 @@ int background_system(char *command)
|
||||
}
|
||||
|
||||
len = strlen(command)+1;
|
||||
|
||||
if (len > MAX_COMMAND) {
|
||||
printf("FATAL: command too long. Increase MAX_COMMAND (%d).\n", MAX_COMMAND);
|
||||
printf("command was: '%s'\n", command);
|
||||
abort();
|
||||
}
|
||||
|
||||
/* only one command can run at a time, so let's lock/unlock */
|
||||
lock_system();
|
||||
write_pipe(command_pipe_write, (char*)&len, sizeof(int));
|
||||
write_pipe(command_pipe_write, (char *)&len, sizeof(int));
|
||||
write_pipe(command_pipe_write, command, len);
|
||||
read_pipe(result_pipe_read, (char*)&res, sizeof(int));
|
||||
read_pipe(result_pipe_read, (char *)&res, sizeof(int));
|
||||
unlock_system();
|
||||
|
||||
if (res == -1 || !WIFEXITED(res) || WEXITSTATUS(res) != 0) return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -146,17 +158,16 @@ int background_system(char *command)
|
||||
/* to be called very early by the main processing */
|
||||
/********************************************************************/
|
||||
|
||||
void start_background_system(void)
|
||||
{
|
||||
void start_background_system(void) {
|
||||
int p[2];
|
||||
pid_t son;
|
||||
|
||||
module_initialized = 1;
|
||||
|
||||
if (pipe(p) == -1) {
|
||||
perror("pipe");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
command_pipe_read = p[0];
|
||||
command_pipe_write = p[1];
|
||||
|
||||
@@ -164,10 +175,11 @@ void start_background_system(void)
|
||||
perror("pipe");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
result_pipe_read = p[0];
|
||||
result_pipe_write = p[1];
|
||||
|
||||
son = fork();
|
||||
|
||||
if (son == -1) {
|
||||
perror("fork");
|
||||
exit(1);
|
||||
@@ -181,6 +193,56 @@ void start_background_system(void)
|
||||
|
||||
close(result_pipe_read);
|
||||
close(command_pipe_write);
|
||||
|
||||
background_system_process();
|
||||
}
|
||||
|
||||
|
||||
void threadCreate(pthread_t* t, void * (*func)(void*), void * param, char* name, int affinity, int priority){
|
||||
pthread_attr_t attr;
|
||||
pthread_attr_init(&attr);
|
||||
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
|
||||
pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
|
||||
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
|
||||
struct sched_param sparam={0};
|
||||
sparam.sched_priority = priority;
|
||||
pthread_attr_setschedparam(&attr, &sparam);
|
||||
|
||||
pthread_create(t, &attr, func, param);
|
||||
|
||||
pthread_setname_np(*t, name);
|
||||
if (affinity != -1 ) {
|
||||
cpu_set_t cpuset;
|
||||
CPU_ZERO(&cpuset);
|
||||
CPU_SET(affinity, &cpuset);
|
||||
AssertFatal( pthread_setaffinity_np(*t, sizeof(cpu_set_t), &cpuset) == 0, "Error setting processor affinity");
|
||||
}
|
||||
|
||||
pthread_attr_destroy(&attr);
|
||||
}
|
||||
|
||||
// Block CPU C-states deep sleep
|
||||
void configure_linux(void) {
|
||||
int ret;
|
||||
static int latency_target_fd=-1;
|
||||
uint32_t latency_target_value=10; // in microseconds
|
||||
if (latency_target_fd == -1) {
|
||||
if ( (latency_target_fd = open("/dev/cpu_dma_latency", O_RDWR)) != -1 ) {
|
||||
ret = write(latency_target_fd, &latency_target_value, sizeof(latency_target_value));
|
||||
if (ret == 0) {
|
||||
printf("# error setting cpu_dma_latency to %d!: %s\n", latency_target_value, strerror(errno));
|
||||
close(latency_target_fd);
|
||||
latency_target_fd=-1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (latency_target_fd != -1)
|
||||
LOG_I(HW,"# /dev/cpu_dma_latency set to %dus\n", latency_target_value);
|
||||
else
|
||||
LOG_E(HW,"Can't set /dev/cpu_dma_latency to %dus\n", latency_target_value);
|
||||
|
||||
// Set CPU frequency to it's maximum
|
||||
if ( 0 != system("for d in /sys/devices/system/cpu/cpu[0-9]*; do cat $d/cpufreq/cpuinfo_max_freq > $d/cpufreq/scaling_min_freq; done"))
|
||||
LOG_W(HW,"Can't set cpu frequency\n");
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,12 @@
|
||||
|
||||
#ifndef _SYSTEM_H_OAI_
|
||||
#define _SYSTEM_H_OAI_
|
||||
#include <stdint.h>
|
||||
#include <pthread.h>
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/****************************************************
|
||||
* send a command to the background process
|
||||
@@ -36,4 +42,23 @@ int background_system(char *command);
|
||||
|
||||
void start_background_system(void);
|
||||
|
||||
void set_latency_target(void);
|
||||
void configure_linux(void);
|
||||
|
||||
void threadCreate(pthread_t* t, void * (*func)(void*), void * param, char* name, int affinity, int priority);
|
||||
#define OAI_PRIORITY_RT_LOW sched_get_priority_min(SCHED_FIFO)
|
||||
#define OAI_PRIORITY_RT sched_get_priority_max(SCHED_FIFO)-10
|
||||
#define OAI_PRIORITY_RT_MAX sched_get_priority_max(SCHED_FIFO)
|
||||
|
||||
void thread_top_init(char *thread_name,
|
||||
int affinity,
|
||||
uint64_t runtime,
|
||||
uint64_t deadline,
|
||||
uint64_t period);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _SYSTEM_H_OAI_ */
|
||||
|
||||
@@ -8,7 +8,7 @@ By default the embedded telnet server, which is implemented in a shared library,
|
||||
./build_oai --build-lib telnetsrv
|
||||
```
|
||||
|
||||
This will create the `libtelnetsrv.so` file in the `targets/bin` and `cmake_targets/lte_build_oai/build` sub directories of the oai repository.
|
||||
This will create the `libtelnetsrv.so` file in the `targets/bin` and `cmake_targets/ran_build/build` sub directories of the oai repository.
|
||||
|
||||
When starting the softmodem, you must specify the **_\-\-telnetsrv_** option to load and start the telnet server. The telnet server is loaded via the [oai shared library loader](loader).
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ void client_printf(const char *message, ...) {
|
||||
|
||||
if (telnetparams.new_socket > 0) {
|
||||
vsnprintf(telnetparams.msgbuff,sizeof(telnetparams.msgbuff)-1,message, va_args);
|
||||
send(telnetparams.new_socket,telnetparams.msgbuff , strlen(telnetparams.msgbuff), MSG_NOSIGNAL);
|
||||
send(telnetparams.new_socket,telnetparams.msgbuff, strlen(telnetparams.msgbuff), MSG_NOSIGNAL);
|
||||
} else {
|
||||
vprintf(message, va_args);
|
||||
}
|
||||
@@ -475,7 +475,7 @@ int process_command(char *buf) {
|
||||
memset(cmdb,0,sizeof(cmdb));
|
||||
bufbck=strdup(buf);
|
||||
rt=CMDSTATUS_NOTFOUND;
|
||||
j = sscanf(buf,"%9s %9s %9[^\t\n]",modulename,cmd,cmdb);
|
||||
j = sscanf(buf,"%19s %19s %19[^\t\n]",modulename,cmd,cmdb);
|
||||
|
||||
if (telnetparams.telnetdbg > 0)
|
||||
printf("process_command: %i words, module=%s cmd=%s, parameters= %s\n",j,modulename,cmd,cmdb);
|
||||
@@ -543,7 +543,7 @@ void run_telnetsrv(void) {
|
||||
char buf[TELNET_MAX_MSGLENGTH];
|
||||
struct sockaddr cli_addr;
|
||||
unsigned int cli_len = sizeof(cli_addr);
|
||||
int readc , filled;
|
||||
int readc, filled;
|
||||
int status;
|
||||
int optval = 1;
|
||||
pthread_setname_np(pthread_self(), "telnet");
|
||||
@@ -604,7 +604,7 @@ void run_telnetsrv(void) {
|
||||
}
|
||||
|
||||
if (telnetparams.telnetdbg > 0)
|
||||
printf("[TELNETSRV] Command received: readc %i filled %i \"%s\"\n", readc, filled ,buf);
|
||||
printf("[TELNETSRV] Command received: readc %i filled %i \"%s\"\n", readc, filled,buf);
|
||||
|
||||
if (buf[0] == '!') {
|
||||
if (buf[1] == '!') {
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
|
||||
|
||||
set(TELNETROOT ${OPENAIR_DIR}/common/utils/telnetsrv )
|
||||
|
||||
|
||||
|
||||
set(TELNETSRV_SOURCE
|
||||
${TELNETROOT}/telnetsrv.c
|
||||
${TELNETROOT}/telnetsrv_phycmd.c
|
||||
@@ -16,14 +12,12 @@ set(TELNETSRV_SOURCE
|
||||
# ${APPROOT}/telnetsrv/telnetsrv_ethdevcmd.c
|
||||
# )
|
||||
|
||||
|
||||
|
||||
add_library(telnetsrv MODULE ${TELNETSRV_SOURCE} )
|
||||
#add_library(telnetsrv_ethdevcmd MODULE ${TELNETSRV_ETHDEVCMD_SOURCE} )
|
||||
target_link_libraries(telnetsrv PRIVATE history)
|
||||
|
||||
install(TARGETS telnetsrv DESTINATION bin)
|
||||
|
||||
if (EXISTS "${OPENAIR_BUILD_DIR}/lte_build_oai/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/lte_build_oai/build")
|
||||
install(TARGETS telnetsrv DESTINATION ${OPENAIR_BUILD_DIR}/lte_build_oai/build)
|
||||
endif (EXISTS "${OPENAIR_BUILD_DIR}/lte_build_oai/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/lte_build_oai/build")
|
||||
if (EXISTS "${OPENAIR_BUILD_DIR}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/ran_build/build")
|
||||
install(TARGETS telnetsrv DESTINATION ${OPENAIR_BUILD_DIR}/ran_build/build)
|
||||
endif (EXISTS "${OPENAIR_BUILD_DIR}/ran_build/build" AND IS_DIRECTORY "${OPENAIR_BUILD_DIR}/ran_build/build")
|
||||
@@ -81,8 +81,8 @@
|
||||
{"total_num_pdus", &(macuestatptr->total_num_pdus),TELNET_VARTYPE_INT32,0},\
|
||||
{"overhead_bytes", &(macuestatptr->overhead_bytes),TELNET_VARTYPE_INT64,0},\
|
||||
{"crnti", &(macuestatptr->crnti),TELNET_VARTYPE_INT16,0},\
|
||||
{"normalized_rx_power", &(macuestatptr->normalized_rx_power),TELNET_VARTYPE_INT32,0},\
|
||||
{"target_rx_power", &(macuestatptr->target_rx_power),TELNET_VARTYPE_INT32,0},\
|
||||
{"snr", &(macuestatptr->snr),TELNET_VARTYPE_INT32,0},\
|
||||
{"target_snr ", &(macuestatptr->target_snr),TELNET_VARTYPE_INT32,0},\
|
||||
{"ulsch_mcs1", &(macuestatptr->ulsch_mcs1),TELNET_VARTYPE_INT8,0},\
|
||||
{"ulsch_mcs2", &(macuestatptr->ulsch_mcs2),TELNET_VARTYPE_INT8,0},\
|
||||
{"rbs_used_rx", &(macuestatptr->rbs_used_rx),TELNET_VARTYPE_INT32,0},\
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
all: measurement_display thread-pool-test
|
||||
all:
|
||||
measurement_display thread-pool-test
|
||||
|
||||
measurement_display: measurement_display.c thread-pool.h
|
||||
gcc measurement_display.c -I /data/openairinterface5g.nr/common/utils/ -I. /data/openairinterface5g.nr/common/utils/backtrace.c -lpthread -D TEST_THREAD_POOL -I../LOG -I../../utils/T -o measurement_display
|
||||
measurement_display:
|
||||
measurement_display.c thread-pool.h
|
||||
gcc measurement_display.c -I $ {OPENAIR_DIR}/ -I $ {OPENAIR_DIR}/common/utils/ -I. $ {OPENAIR_DIR}/common/utils/backtrace.c -lpthread -D TEST_THREAD_POOL -I../LOG -I../../utils/T -o
|
||||
measurement_display
|
||||
|
||||
thread-pool-test: thread-pool.c thread-pool.h
|
||||
gcc -g thread-pool.c -I /data/openairinterface5g.nr/common/utils/ -I. /data/openairinterface5g.nr/common/utils/backtrace.c -lpthread -D TEST_THREAD_POOL -I../LOG -I../../utils/T -o thread-pool-test
|
||||
thread-pool-test:
|
||||
thread-pool.c thread-pool.h
|
||||
gcc -g thread-pool.c -I $ {OPENAIR_DIR}/ -I $ {OPENAIR_DIR}/common/utils/ -I. $ {OPENAIR_DIR}/common/utils/backtrace.c -I $ {OPENAIR_DIR}/openair2/COMMON $ {OPENAIR_DIR}/common/utils/LOG/log.c $ {OPENAIR_DIR}/common/config/config_userapi.c
|
||||
$ {OPENAIR_DIR}/common/config/config_load_configmodule.c $ {OPENAIR_DIR}/common/config/config_cmdline.c -lpthread -ldl -D TEST_THREAD_POOL -I../LOG -I../../utils/T -o thread-pool-test
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user