mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-19 23:50:30 +00:00
Compare commits
1013 Commits
3GPP_TTCN_
...
ldpc_decod
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f709560814 | ||
|
|
ec99b5179d | ||
|
|
d30c7c30bb | ||
|
|
0a5b46c4c8 | ||
|
|
580ea58119 | ||
|
|
0d4bceabad | ||
|
|
eea9f4874e | ||
|
|
c86bc8ce5c | ||
|
|
c115f01155 | ||
|
|
58ccdb2993 | ||
|
|
3fd8e59814 | ||
|
|
007f001b81 | ||
|
|
4e3da82743 | ||
|
|
f31cde65e3 | ||
|
|
f054fa20f3 | ||
|
|
b332265971 | ||
|
|
211ebf4ac4 | ||
|
|
153498a471 | ||
|
|
5e3f72ccc7 | ||
|
|
b61ea4bea3 | ||
|
|
6f996be21a | ||
|
|
d7187155f8 | ||
|
|
3375775a32 | ||
|
|
1d860c0f00 | ||
|
|
662f6634bf | ||
|
|
45a9bb8bd9 | ||
|
|
16967ddb2e | ||
|
|
cc3d03f738 | ||
|
|
d509dba9f0 | ||
|
|
db034d4f48 | ||
|
|
fd4597b8de | ||
|
|
20b10593db | ||
|
|
6a59f7e7f7 | ||
|
|
8b3993c75b | ||
|
|
9e0e7a8e14 | ||
|
|
bf54022242 | ||
|
|
139bc7d8ea | ||
|
|
76918b076a | ||
|
|
f9a19017a6 | ||
|
|
4e133fff30 | ||
|
|
495f5f563c | ||
|
|
4bfabcb1d5 | ||
|
|
d0f55118a7 | ||
|
|
e8e88f5459 | ||
|
|
19afd37b93 | ||
|
|
ce879f1f92 | ||
|
|
03e5bdd8ae | ||
|
|
e9def5ce04 | ||
|
|
052d0001e3 | ||
|
|
9ea6af0fc2 | ||
|
|
2ec8fefbe8 | ||
|
|
736c0fd37f | ||
|
|
2fa341ba59 | ||
|
|
6529863af2 | ||
|
|
33fa06d0a5 | ||
|
|
ba70d91ba4 | ||
|
|
e5297febe4 | ||
|
|
1c8e4c364e | ||
|
|
c87b390501 | ||
|
|
2039a4f25b | ||
|
|
94e6cdb2bf | ||
|
|
bbd6f35a6f | ||
|
|
5effa74067 | ||
|
|
909fd5a9ec | ||
|
|
25fdc1d23d | ||
|
|
0a8e1b49d0 | ||
|
|
c31d250d28 | ||
|
|
871078a64d | ||
|
|
d1a272be1b | ||
|
|
6ef44ee3ae | ||
|
|
00523c2b2f | ||
|
|
30feb7e493 | ||
|
|
51ae5e2c05 | ||
|
|
6af674be59 | ||
|
|
7c788be9e0 | ||
|
|
14b7311bd8 | ||
|
|
aa8cf7c41a | ||
|
|
b1609e0534 | ||
|
|
e806315963 | ||
|
|
3d2b32ac1e | ||
|
|
a59a69d5e5 | ||
|
|
6435ed309c | ||
|
|
2b76e88823 | ||
|
|
5e547c617c | ||
|
|
35f5fdf960 | ||
|
|
dfe16d985a | ||
|
|
ad7bd05f9a | ||
|
|
fb554dc6c9 | ||
|
|
6e7ea5ce8d | ||
|
|
dafaea7dda | ||
|
|
9726a47fbb | ||
|
|
e586efb29d | ||
|
|
b22891d403 | ||
|
|
d47eb536b0 | ||
|
|
3e44aba1ea | ||
|
|
d8696f703c | ||
|
|
a57098ec02 | ||
|
|
9a4d1e920d | ||
|
|
ca2d9ec2a1 | ||
|
|
3cdb0d795e | ||
|
|
9c602a7790 | ||
|
|
7dffdcd797 | ||
|
|
3779483b1b | ||
|
|
335fa3fc50 | ||
|
|
386ff01f57 | ||
|
|
798158cfe1 | ||
|
|
fc9c5084eb | ||
|
|
168582b5a1 | ||
|
|
89d89a7564 | ||
|
|
39e7839f19 | ||
|
|
3a99fb8293 | ||
|
|
2e804f53c0 | ||
|
|
659a81997b | ||
|
|
d0f32d8aad | ||
|
|
ae5702d014 | ||
|
|
ffcf53fc75 | ||
|
|
2da09aba80 | ||
|
|
2c878c10ec | ||
|
|
e2163ba312 | ||
|
|
5bf498fca4 | ||
|
|
4810efdcfd | ||
|
|
9fedbf31dd | ||
|
|
380cf5c603 | ||
|
|
a12460e882 | ||
|
|
5acfa47325 | ||
|
|
983ee2794d | ||
|
|
89aad98093 | ||
|
|
0a5e8b7666 | ||
|
|
f23c1dff00 | ||
|
|
c7c1cb2dbf | ||
|
|
1c58bc2e1a | ||
|
|
9a1381a92e | ||
|
|
cec91a2a22 | ||
|
|
5eef9b3574 | ||
|
|
31b2428db8 | ||
|
|
992e7fa117 | ||
|
|
cb0a888565 | ||
|
|
8094952f6e | ||
|
|
8ae5bb5632 | ||
|
|
167c06bb87 | ||
|
|
7782f4aef0 | ||
|
|
44a0a45460 | ||
|
|
32d9e75dc5 | ||
|
|
6b21dea1ee | ||
|
|
8f549a5433 | ||
|
|
f680babbdd | ||
|
|
cf950dfa86 | ||
|
|
12229ef50e | ||
|
|
a9902d883c | ||
|
|
3fa73e4bdd | ||
|
|
39070f6541 | ||
|
|
70751e04d8 | ||
|
|
848b0f34ee | ||
|
|
9acf60a339 | ||
|
|
5f684d7f05 | ||
|
|
f6dcc19fe5 | ||
|
|
0efaec657a | ||
|
|
d465ed2fbc | ||
|
|
b0b8818549 | ||
|
|
965b7f63b0 | ||
|
|
0e7e66ecd8 | ||
|
|
5223013153 | ||
|
|
bfaa906a1e | ||
|
|
e50978e7de | ||
|
|
3d7ab0ebc6 | ||
|
|
7ddba36279 | ||
|
|
b2eb0f74b6 | ||
|
|
8365630946 | ||
|
|
6da87cf062 | ||
|
|
9d77057775 | ||
|
|
b242a483f1 | ||
|
|
bd721c3bdb | ||
|
|
77af1ab97b | ||
|
|
82c0b441e5 | ||
|
|
b8089ba9a6 | ||
|
|
bb766be0c3 | ||
|
|
8e92df78de | ||
|
|
803b0289a6 | ||
|
|
f207ac12be | ||
|
|
00cb43bac3 | ||
|
|
7563937af8 | ||
|
|
e445ba2d1a | ||
|
|
745ea1c1dd | ||
|
|
99c8dd420a | ||
|
|
0316431e27 | ||
|
|
9d81708b49 | ||
|
|
bb9af4c7dc | ||
|
|
ed05c94c3e | ||
|
|
686f1816d0 | ||
|
|
52bd1ad7c6 | ||
|
|
2b44e5252d | ||
|
|
52f077c478 | ||
|
|
f30e354b77 | ||
|
|
d0daf03089 | ||
|
|
59086151e0 | ||
|
|
fbf257f6ba | ||
|
|
5692217c29 | ||
|
|
181ec25a23 | ||
|
|
9c1a8733c1 | ||
|
|
fc5258962f | ||
|
|
46ca521042 | ||
|
|
9e0bcb7fe4 | ||
|
|
48d68f7d90 | ||
|
|
eab8dfa4c4 | ||
|
|
bad93150ff | ||
|
|
4acb9be7c0 | ||
|
|
23a865db77 | ||
|
|
a92ab368f2 | ||
|
|
03c2f6277d | ||
|
|
2cb6fd0890 | ||
|
|
2d6aef5183 | ||
|
|
c78b8dda56 | ||
|
|
95a8767383 | ||
|
|
4c698bce2b | ||
|
|
6fce492177 | ||
|
|
869b78efe2 | ||
|
|
d581c671e9 | ||
|
|
0ed8fb7205 | ||
|
|
2e0186f884 | ||
|
|
032d4fc9ff | ||
|
|
ad5eb8cd14 | ||
|
|
9eeaee450b | ||
|
|
f0f0cf8048 | ||
|
|
4a1c505782 | ||
|
|
fae529b384 | ||
|
|
409fa5d0af | ||
|
|
490620a0d8 | ||
|
|
76aaf60dd1 | ||
|
|
2cb95d5505 | ||
|
|
3926e140e8 | ||
|
|
101f178c3e | ||
|
|
561119a2d6 | ||
|
|
a382a08bd3 | ||
|
|
383eb9f5a1 | ||
|
|
84568102de | ||
|
|
95fe106a40 | ||
|
|
b76eb19471 | ||
|
|
8ac2c87494 | ||
|
|
140ac7d4cd | ||
|
|
c4570bc829 | ||
|
|
cd052951d5 | ||
|
|
3a014e199f | ||
|
|
fe7be3f130 | ||
|
|
44410df598 | ||
|
|
a6fb797477 | ||
|
|
b331ad21f4 | ||
|
|
f7665357fc | ||
|
|
9a0408a5c7 | ||
|
|
4baac21ec6 | ||
|
|
bf2baf2ffe | ||
|
|
ae4cbcfb0c | ||
|
|
c9a40c464e | ||
|
|
b790150e54 | ||
|
|
a6ce2896f7 | ||
|
|
9aeacd3455 | ||
|
|
f28f9e52ac | ||
|
|
6bc486f504 | ||
|
|
3dd0d45907 | ||
|
|
93280a3e75 | ||
|
|
b2a46e3b76 | ||
|
|
19033ca822 | ||
|
|
ead066d630 | ||
|
|
2ff1253321 | ||
|
|
dc91550e2c | ||
|
|
1f7ec847bc | ||
|
|
612bbaeca6 | ||
|
|
2bee8edcab | ||
|
|
2fa80efb52 | ||
|
|
7ccc768805 | ||
|
|
32c238925e | ||
|
|
b12d3a4fc8 | ||
|
|
e77912a5b9 | ||
|
|
0a997ee08e | ||
|
|
ef1c85e099 | ||
|
|
3d2bf72efa | ||
|
|
09675f6544 | ||
|
|
05aa348f80 | ||
|
|
3a18c17d5a | ||
|
|
6b62c4378b | ||
|
|
c1668cd7c0 | ||
|
|
4cb0bd3712 | ||
|
|
98ebd0d71e | ||
|
|
5bde26246f | ||
|
|
cbf8489707 | ||
|
|
e6719d7718 | ||
|
|
e8a083767a | ||
|
|
4cd82e7c47 | ||
|
|
1a2ae185c5 | ||
|
|
38284919b3 | ||
|
|
62cb46fe24 | ||
|
|
9beb1323e4 | ||
|
|
fe866405e7 | ||
|
|
5524b2c706 | ||
|
|
e9b5d84eb4 | ||
|
|
29542595eb | ||
|
|
ccddddc64e | ||
|
|
394431a594 | ||
|
|
f58765d023 | ||
|
|
ec5fdfca5f | ||
|
|
2d163fc747 | ||
|
|
23ed53da41 | ||
|
|
ae2a79e566 | ||
|
|
9dabdde3e8 | ||
|
|
0753615c85 | ||
|
|
9c0614d72e | ||
|
|
580b1a84f1 | ||
|
|
22ba6b751d | ||
|
|
be9b976023 | ||
|
|
04e6828c62 | ||
|
|
373b7d9e37 | ||
|
|
04c8f73616 | ||
|
|
cd8f076979 | ||
|
|
359880fa73 | ||
|
|
9dc0dc5ffe | ||
|
|
4ddb2d3bac | ||
|
|
1e47311259 | ||
|
|
75efcf49b9 | ||
|
|
e1885f65d8 | ||
|
|
83c59b05e9 | ||
|
|
676ba4355c | ||
|
|
021f97cf10 | ||
|
|
910d37dd7a | ||
|
|
26175c5413 | ||
|
|
6475c79453 | ||
|
|
fefdac733d | ||
|
|
fb1e6ee740 | ||
|
|
b14a783e86 | ||
|
|
9a320a16a5 | ||
|
|
4fb936d767 | ||
|
|
73e3178b88 | ||
|
|
78b48a1e59 | ||
|
|
89757758f4 | ||
|
|
148db50990 | ||
|
|
4fc164953b | ||
|
|
fc8ed209a2 | ||
|
|
9f86e33ec2 | ||
|
|
9c72b29f3b | ||
|
|
fcc5be01c3 | ||
|
|
f226879d3c | ||
|
|
d795c72990 | ||
|
|
94581840a0 | ||
|
|
df9e5ccdd2 | ||
|
|
343673b0ea | ||
|
|
680c1a6b20 | ||
|
|
ff0007cd94 | ||
|
|
bfb6e407f2 | ||
|
|
e6b7195122 | ||
|
|
cf497215cd | ||
|
|
8b9891f28e | ||
|
|
5f754729cf | ||
|
|
6ce94be807 | ||
|
|
b8012a9855 | ||
|
|
2e3ee6f57d | ||
|
|
1b9bc4f6d6 | ||
|
|
0480b69c75 | ||
|
|
5467351935 | ||
|
|
2db259984f | ||
|
|
93f595828d | ||
|
|
7f63a7024d | ||
|
|
4fb3cfaf6a | ||
|
|
11855a0bc1 | ||
|
|
e5900e0757 | ||
|
|
141577c88b | ||
|
|
279bd1794a | ||
|
|
f325d02d33 | ||
|
|
514537e63e | ||
|
|
7026763286 | ||
|
|
27ac298515 | ||
|
|
52fcd348a0 | ||
|
|
9a45ecf1f9 | ||
|
|
e72d50bfd6 | ||
|
|
3c5ddf9469 | ||
|
|
bcfe3a6733 | ||
|
|
d5a4272177 | ||
|
|
83f66f2ade | ||
|
|
2c1f32b6e6 | ||
|
|
0a603a1000 | ||
|
|
2dcfabb6de | ||
|
|
b8a86fecfd | ||
|
|
bf69e25676 | ||
|
|
fb0d2714c6 | ||
|
|
f5c7fc3b11 | ||
|
|
21744d883a | ||
|
|
f30b42d877 | ||
|
|
15191452f3 | ||
|
|
541ef60c89 | ||
|
|
073812ca0c | ||
|
|
7264f9e052 | ||
|
|
2ae138d7c0 | ||
|
|
7a86e36ca3 | ||
|
|
0e6b0f3e7a | ||
|
|
9724ff0329 | ||
|
|
432fee1a6e | ||
|
|
fe0d70e8f3 | ||
|
|
6bec8779c6 | ||
|
|
0f76ac5868 | ||
|
|
caa45af197 | ||
|
|
273018ea48 | ||
|
|
5af81bbc9d | ||
|
|
d1e6b9507c | ||
|
|
ca8babd7b6 | ||
|
|
aa47716a27 | ||
|
|
8035cad75a | ||
|
|
3b69bc278a | ||
|
|
6c3675905e | ||
|
|
b1f7cc9025 | ||
|
|
deacf439a4 | ||
|
|
d6f425adc6 | ||
|
|
28489a29ba | ||
|
|
8ea2e77ab2 | ||
|
|
760aee6d29 | ||
|
|
ca54d75f3e | ||
|
|
9e694c228e | ||
|
|
6ba76d6ac1 | ||
|
|
d41a6e0524 | ||
|
|
d8572d5569 | ||
|
|
ee57ae6598 | ||
|
|
199f8c21cb | ||
|
|
70719c3b8f | ||
|
|
94497435e7 | ||
|
|
b6f156cf4a | ||
|
|
0abe8b6493 | ||
|
|
8ddc49e5e8 | ||
|
|
4ac6e1c83d | ||
|
|
53ff69ed04 | ||
|
|
473e7207db | ||
|
|
3b0f4479c4 | ||
|
|
8159abdcd3 | ||
|
|
4033606fff | ||
|
|
6fc8eb0fee | ||
|
|
d35dbe6377 | ||
|
|
df1cb77000 | ||
|
|
32bbd64a97 | ||
|
|
c95c12e874 | ||
|
|
1d6dc56797 | ||
|
|
97afd62522 | ||
|
|
9623f49a2e | ||
|
|
c7d2a108be | ||
|
|
7307bd4ead | ||
|
|
2bdc9de0af | ||
|
|
2c676865dc | ||
|
|
442097e69a | ||
|
|
7e440ae3a9 | ||
|
|
52aff43e2d | ||
|
|
23a2f63830 | ||
|
|
4602feea3b | ||
|
|
79bde47b57 | ||
|
|
34ea6c7a90 | ||
|
|
61a3125d24 | ||
|
|
88bbb5f520 | ||
|
|
2a482e7f49 | ||
|
|
e19b71409f | ||
|
|
5ef1217acc | ||
|
|
da9fe96efc | ||
|
|
707aab3af1 | ||
|
|
327b9a8b70 | ||
|
|
a476e18120 | ||
|
|
edcd0019d2 | ||
|
|
88ca38287f | ||
|
|
1b989c4d15 | ||
|
|
350746f4f6 | ||
|
|
23d792a0bd | ||
|
|
489300f82d | ||
|
|
40783ea351 | ||
|
|
e8bb01579d | ||
|
|
4384ea2b59 | ||
|
|
612e6bbc3d | ||
|
|
e61b977878 | ||
|
|
2908cd51ea | ||
|
|
4d4eb6c8cf | ||
|
|
798ceeeef2 | ||
|
|
d2f8276d14 | ||
|
|
a7273f0da0 | ||
|
|
2de46b9e79 | ||
|
|
4639458f22 | ||
|
|
100d3b3acd | ||
|
|
69962ef9ab | ||
|
|
bbc82731f7 | ||
|
|
9aaa7f100a | ||
|
|
4c658cdd50 | ||
|
|
dbc84d91fc | ||
|
|
b09d241151 | ||
|
|
2b28b735c2 | ||
|
|
5b52752a30 | ||
|
|
4aa9ffc9e6 | ||
|
|
ad3427107a | ||
|
|
dd4eb9f8bc | ||
|
|
5b64f685e4 | ||
|
|
64f55693e3 | ||
|
|
4d51b344a1 | ||
|
|
b20561c451 | ||
|
|
fadd3d0083 | ||
|
|
44dc8f8daa | ||
|
|
4a36f7dd7b | ||
|
|
9c913fa040 | ||
|
|
6312587621 | ||
|
|
4980be04f3 | ||
|
|
b17354b74f | ||
|
|
516b91fc90 | ||
|
|
54cc2e0bb5 | ||
|
|
9fab212441 | ||
|
|
297ef9d139 | ||
|
|
6cfb5b7ace | ||
|
|
37e6e7e944 | ||
|
|
45d4cec2a6 | ||
|
|
ce0f48d2b2 | ||
|
|
a5bf6c7812 | ||
|
|
3405bcf926 | ||
|
|
99643acf2e | ||
|
|
9055fabe9b | ||
|
|
e120f54f30 | ||
|
|
e60f82ccc2 | ||
|
|
3c5edab8f5 | ||
|
|
f4659b2b0c | ||
|
|
0199d861b7 | ||
|
|
321c475176 | ||
|
|
a9718835d4 | ||
|
|
00b62ab6c0 | ||
|
|
517effa586 | ||
|
|
18125459dc | ||
|
|
86bd6de7dd | ||
|
|
4e4a59b5bc | ||
|
|
d58bedaed1 | ||
|
|
9a4e9a2adc | ||
|
|
582e8302c6 | ||
|
|
f94941b5e6 | ||
|
|
165afbd5b5 | ||
|
|
f5f9983173 | ||
|
|
12e1045d2a | ||
|
|
c985a794c7 | ||
|
|
33b19935ff | ||
|
|
830b8a208a | ||
|
|
489824fdcf | ||
|
|
98e9129d69 | ||
|
|
f7917abb28 | ||
|
|
cd5822e927 | ||
|
|
39518b19d5 | ||
|
|
ae60dede8e | ||
|
|
1dfb30b857 | ||
|
|
a29d1eed7f | ||
|
|
6d5a0ab454 | ||
|
|
7aec889cf6 | ||
|
|
f23c91cc5a | ||
|
|
760e0aaae4 | ||
|
|
a1902a03f8 | ||
|
|
6d09f0542b | ||
|
|
8abf975faf | ||
|
|
7db4732ce1 | ||
|
|
c51b2a64fb | ||
|
|
cec6b8925a | ||
|
|
e5afdcdd43 | ||
|
|
9465ae778b | ||
|
|
092047984a | ||
|
|
5b53f4ee0f | ||
|
|
0077d219fb | ||
|
|
a87df90504 | ||
|
|
971ab65fe5 | ||
|
|
13517cd6bc | ||
|
|
0cc278f19b | ||
|
|
b4750d8d81 | ||
|
|
9dd52c9d44 | ||
|
|
ffa5ba400a | ||
|
|
9f8fad86ee | ||
|
|
9b3ab10c20 | ||
|
|
8dc29be02f | ||
|
|
973d13937d | ||
|
|
811721bb72 | ||
|
|
5ae7d6685a | ||
|
|
37f3f0b6a4 | ||
|
|
66bf27bce9 | ||
|
|
6a12784872 | ||
|
|
105368a437 | ||
|
|
6b37d183ce | ||
|
|
a25b209e7f | ||
|
|
7a8b2fe4a9 | ||
|
|
b9fd5a6f75 | ||
|
|
006b68fa3f | ||
|
|
55728a98c1 | ||
|
|
bfd519953b | ||
|
|
37421c3f92 | ||
|
|
f7c2732899 | ||
|
|
75f5215b22 | ||
|
|
f1938acbab | ||
|
|
90fa3d5534 | ||
|
|
4cdf4d61f3 | ||
|
|
be41a4ea60 | ||
|
|
0ce0282238 | ||
|
|
6b01cfb8e2 | ||
|
|
8e4526e221 | ||
|
|
ccba7c875d | ||
|
|
7fc8fe2513 | ||
|
|
a4bb7da1ce | ||
|
|
76f06a9386 | ||
|
|
dac55975b5 | ||
|
|
155d24f9e4 | ||
|
|
7c146154f5 | ||
|
|
ca93e68410 | ||
|
|
26aa7c2e33 | ||
|
|
043da0c440 | ||
|
|
e5fc1ebde6 | ||
|
|
bedcd5a1be | ||
|
|
30e403f4a2 | ||
|
|
ba9d4afbe3 | ||
|
|
02ee2a9726 | ||
|
|
bbe8e16ca5 | ||
|
|
c7f1dcfb51 | ||
|
|
7fe29041c2 | ||
|
|
7bfa8e78fd | ||
|
|
0ccd4ad000 | ||
|
|
9cf0640432 | ||
|
|
e6f0f80c9f | ||
|
|
95442d6075 | ||
|
|
8cf8a44e8e | ||
|
|
a1d660d6df | ||
|
|
15488a18e3 | ||
|
|
333946ed27 | ||
|
|
4622d33e3b | ||
|
|
fc42a2a5f1 | ||
|
|
a1c4c356bd | ||
|
|
4c248a433e | ||
|
|
0147bb2e08 | ||
|
|
04027b9265 | ||
|
|
a100929067 | ||
|
|
56abe6c118 | ||
|
|
245f430ad9 | ||
|
|
075f8330f6 | ||
|
|
4cc1bb5433 | ||
|
|
6c42ea6293 | ||
|
|
ce771a17dc | ||
|
|
41037d57b5 | ||
|
|
b615162630 | ||
|
|
2e7b926827 | ||
|
|
168b172f9a | ||
|
|
60c052a95a | ||
|
|
1b9ba55843 | ||
|
|
1f6d4a6cfe | ||
|
|
c202e9173f | ||
|
|
c0b7ac9a7e | ||
|
|
7ffc403098 | ||
|
|
f261ce9124 | ||
|
|
31274f6c64 | ||
|
|
4a5d924375 | ||
|
|
3fd119ff29 | ||
|
|
92b8453960 | ||
|
|
bfc41d1038 | ||
|
|
1127a9850b | ||
|
|
dd93181951 | ||
|
|
d27d193339 | ||
|
|
e30552c23a | ||
|
|
5686b2a26d | ||
|
|
f6a039f38b | ||
|
|
48ed7fba0d | ||
|
|
a516a632d4 | ||
|
|
8a8b38ae70 | ||
|
|
b215a60a3b | ||
|
|
8d16ff8459 | ||
|
|
2bb632a7fe | ||
|
|
f969eddbe2 | ||
|
|
8820a57547 | ||
|
|
c76a9d43f2 | ||
|
|
d268378f2b | ||
|
|
1465fed81c | ||
|
|
12a1c8a820 | ||
|
|
87a1ff5b37 | ||
|
|
98df398dc3 | ||
|
|
d7ba96f4ee | ||
|
|
6c71775ea1 | ||
|
|
ee9570993d | ||
|
|
7accbd9778 | ||
|
|
850f26fc5c | ||
|
|
9e5c5497ab | ||
|
|
6dfd7cdc71 | ||
|
|
7cfd5a1f21 | ||
|
|
ec326e856e | ||
|
|
e69e787ab0 | ||
|
|
70444f133a | ||
|
|
e3aff6c37b | ||
|
|
9249131046 | ||
|
|
295f221a9b | ||
|
|
58335443b1 | ||
|
|
b5159b5e47 | ||
|
|
e8ae696c8f | ||
|
|
7a631ce3a2 | ||
|
|
1001f2eb13 | ||
|
|
018ca77aa0 | ||
|
|
e580450ae2 | ||
|
|
64e6c6e5b2 | ||
|
|
841869b0ec | ||
|
|
d3acd5d6c0 | ||
|
|
3a4dac00ee | ||
|
|
b461fe5e6b | ||
|
|
00e883c563 | ||
|
|
2f05261f6b | ||
|
|
4bca825053 | ||
|
|
819427a6a0 | ||
|
|
082007834c | ||
|
|
6379350f51 | ||
|
|
e4a704ed61 | ||
|
|
787f4431c3 | ||
|
|
9ce9d79b33 | ||
|
|
f251a41410 | ||
|
|
e7596f9bd5 | ||
|
|
9278394f3c | ||
|
|
246a8aff16 | ||
|
|
3c6ae9c2cb | ||
|
|
73243f668e | ||
|
|
959df471f3 | ||
|
|
d326477494 | ||
|
|
10940010f5 | ||
|
|
0ad85cb111 | ||
|
|
5238ce912b | ||
|
|
f2213bf792 | ||
|
|
b101e682f5 | ||
|
|
075f564606 | ||
|
|
e217980249 | ||
|
|
3e4526a6ad | ||
|
|
db6710f853 | ||
|
|
9fd1b9ac69 | ||
|
|
17f2eaa558 | ||
|
|
ca06b77a89 | ||
|
|
c626e55f67 | ||
|
|
b51a144d7d | ||
|
|
8b889d908c | ||
|
|
08dbc5bf08 | ||
|
|
4e8f58b498 | ||
|
|
4455b37548 | ||
|
|
40b52bc8f4 | ||
|
|
70f536a0f0 | ||
|
|
d5a0455560 | ||
|
|
5ac881b7c1 | ||
|
|
82bd07ebd5 | ||
|
|
cf22a331e5 | ||
|
|
65d494fb09 | ||
|
|
944925ff69 | ||
|
|
0fb0b055e5 | ||
|
|
8d225a7e10 | ||
|
|
3e2d5f8820 | ||
|
|
1fc16077ff | ||
|
|
cbf446e267 | ||
|
|
179ecb8e84 | ||
|
|
c7a2471542 | ||
|
|
388942b5d3 | ||
|
|
7340abc6f4 | ||
|
|
46e27ba445 | ||
|
|
956df365de | ||
|
|
740189c625 | ||
|
|
177ddaa079 | ||
|
|
00cb7efa2a | ||
|
|
2f81f190d1 | ||
|
|
a771d58472 | ||
|
|
67e5547957 | ||
|
|
aaaa00378a | ||
|
|
ae66ba7a7b | ||
|
|
1cefbdb87f | ||
|
|
cdd629de89 | ||
|
|
aa18edb8ac | ||
|
|
f247373474 | ||
|
|
1c747e8223 | ||
|
|
1bd6018f91 | ||
|
|
9518e00923 | ||
|
|
00f85d54c5 | ||
|
|
c8539aeef5 | ||
|
|
590afc811f | ||
|
|
c73642868a | ||
|
|
fece66201c | ||
|
|
578af2f81f | ||
|
|
00d78f048a | ||
|
|
c02908453a | ||
|
|
bb66056b75 | ||
|
|
a5055cacf0 | ||
|
|
bcbf9287ba | ||
|
|
f5dccc2a59 | ||
|
|
f49dbf470a | ||
|
|
31b4f48e29 | ||
|
|
af49883543 | ||
|
|
ac51870b43 | ||
|
|
1056e53acb | ||
|
|
c719b3f057 | ||
|
|
d977ac8fc1 | ||
|
|
114fb5dbca | ||
|
|
e64e687fcd | ||
|
|
28d9b5b004 | ||
|
|
252a7cafdb | ||
|
|
434b2b2245 | ||
|
|
b915482e9b | ||
|
|
ab75ad2427 | ||
|
|
2b859cd7e2 | ||
|
|
f010058e45 | ||
|
|
99c4e5477c | ||
|
|
17cbd4352c | ||
|
|
960d0cc01f | ||
|
|
445aac11b9 | ||
|
|
27975f99d3 | ||
|
|
e31d87eee9 | ||
|
|
90f82d19da | ||
|
|
1cd990c05a | ||
|
|
408cebc1e7 | ||
|
|
132c0738c0 | ||
|
|
94474ac660 | ||
|
|
39a5e72818 | ||
|
|
de7bc13000 | ||
|
|
fac5c1f624 | ||
|
|
61a2c085ca | ||
|
|
d7931ea412 | ||
|
|
aecc695d02 | ||
|
|
55c91e726c | ||
|
|
da57e23637 | ||
|
|
bb078e61e0 | ||
|
|
6554816721 | ||
|
|
de5f23c52b | ||
|
|
82423fba45 | ||
|
|
09bd7b5b39 | ||
|
|
cc0ba68082 | ||
|
|
c4b1966fc5 | ||
|
|
18951f04e6 | ||
|
|
309d5cacc9 | ||
|
|
d67383bd42 | ||
|
|
a07461813d | ||
|
|
615284c5c8 | ||
|
|
6fdb69a898 | ||
|
|
ab2b868b75 | ||
|
|
9992a19a6f | ||
|
|
bff1f06350 | ||
|
|
efeb538490 | ||
|
|
c0934b26da | ||
|
|
1924b3c793 | ||
|
|
8a3c329e90 | ||
|
|
67fb98a16c | ||
|
|
105e9b5f58 | ||
|
|
da26eacfd4 | ||
|
|
2c2b7416c1 | ||
|
|
ea1921809f | ||
|
|
219b4b7680 | ||
|
|
7a9b3485b1 | ||
|
|
e3547dfb38 | ||
|
|
593191b51a | ||
|
|
507e08cd39 | ||
|
|
42254e6267 | ||
|
|
c114d2f547 | ||
|
|
ed89498c4f | ||
|
|
24baf08c87 | ||
|
|
d9b87d1cb7 | ||
|
|
6bbcc1d275 | ||
|
|
8e7ecaa73a | ||
|
|
1d10a73b95 | ||
|
|
ab65bc3b08 | ||
|
|
df9cd171f6 | ||
|
|
0d0e111135 | ||
|
|
5610ce0738 | ||
|
|
749779247d | ||
|
|
68a89e53e9 | ||
|
|
6fecb6fbfe | ||
|
|
ebeb26528a | ||
|
|
3011b706ba | ||
|
|
a953cd0d8b | ||
|
|
0c15ee9706 | ||
|
|
a652a032b0 | ||
|
|
5fa52ecf76 | ||
|
|
d81b617d1c | ||
|
|
4666cddb1a | ||
|
|
3596955fb0 | ||
|
|
27447f94bf | ||
|
|
235567bb6a | ||
|
|
915c106ee3 | ||
|
|
2241ed17cf | ||
|
|
71486a0d7e | ||
|
|
f21c2cf822 | ||
|
|
fced989d60 | ||
|
|
fd66d17214 | ||
|
|
4b2a59b027 | ||
|
|
b74fc09c28 | ||
|
|
c08fb6ccb0 | ||
|
|
eb487e0196 | ||
|
|
de263d4a40 | ||
|
|
d7a2795432 | ||
|
|
f042bd7a2d | ||
|
|
c547a4c1f8 | ||
|
|
21918ffd0a | ||
|
|
9a2e080f77 | ||
|
|
dfa012162b | ||
|
|
0d128f9cad | ||
|
|
e65cb0cf42 | ||
|
|
a193518579 | ||
|
|
a22eccc0b8 | ||
|
|
9d2ad34b1b | ||
|
|
94b23d1eb0 | ||
|
|
5b0e797ef7 | ||
|
|
243c985af8 | ||
|
|
b5f0a32ac2 | ||
|
|
72337b9c43 | ||
|
|
cfaa182f57 | ||
|
|
6793cb300a | ||
|
|
4062d3dcb3 | ||
|
|
be3452a10e | ||
|
|
829d8c3c1b | ||
|
|
2ba79f3fdc | ||
|
|
87242ca92a | ||
|
|
47d1f8bb82 | ||
|
|
45c00b7ad2 | ||
|
|
f92f7460b6 | ||
|
|
4268bdad89 | ||
|
|
ca9504ec1d | ||
|
|
cef6a0250b | ||
|
|
8510ffa3f9 | ||
|
|
550b713635 | ||
|
|
29c3f22872 | ||
|
|
84e1d8205e | ||
|
|
2baa126028 | ||
|
|
81641ea43d | ||
|
|
08ad45ad5e | ||
|
|
19a51f67b2 | ||
|
|
851cf96943 | ||
|
|
7c24dea132 | ||
|
|
2a03d79389 | ||
|
|
e8f0700881 | ||
|
|
028de7a697 | ||
|
|
efe065462d | ||
|
|
04357e8b45 | ||
|
|
cde318ced8 | ||
|
|
3c3c1e6fe6 | ||
|
|
a0c5a3604a | ||
|
|
b30c9c8f3c | ||
|
|
97b3c6bc68 | ||
|
|
13d33163e9 | ||
|
|
86ca5fdd55 | ||
|
|
eb60194fa3 | ||
|
|
568973d5be | ||
|
|
8404da759f | ||
|
|
ddf3b1614c | ||
|
|
729aa41952 | ||
|
|
3f1dd8d7ba | ||
|
|
96ff859cb7 | ||
|
|
9cc53a43b1 | ||
|
|
8b728a45eb | ||
|
|
1e1679b668 | ||
|
|
2b90061669 | ||
|
|
686da85d05 | ||
|
|
4895cf14c1 | ||
|
|
1244c9a278 | ||
|
|
e290b2ab1b | ||
|
|
e66588b556 | ||
|
|
442af3c943 | ||
|
|
6719c376e2 | ||
|
|
4b8bcf7efd | ||
|
|
4f5b7fcb9e | ||
|
|
c70a9dc9eb | ||
|
|
ffe9096b0e | ||
|
|
7732689b9b | ||
|
|
8e6f7d9594 | ||
|
|
ef5df38fd2 | ||
|
|
4f60810d32 | ||
|
|
e3747ab592 | ||
|
|
f571043da8 | ||
|
|
8940400aa6 | ||
|
|
fdb993279e | ||
|
|
e289c11b1b | ||
|
|
fec145cac6 | ||
|
|
171d9950a1 | ||
|
|
5f652b1716 | ||
|
|
b380af69dc | ||
|
|
0e85db5419 | ||
|
|
a0e7733035 | ||
|
|
16765f3545 | ||
|
|
8a9b69984b | ||
|
|
680c6b69e1 | ||
|
|
5951caa91e | ||
|
|
e6e25275ed | ||
|
|
0f1f76878e | ||
|
|
087480084b | ||
|
|
0e2c9e8ebb | ||
|
|
c9f58179e4 | ||
|
|
0716d1d6c0 | ||
|
|
b63762f9fe | ||
|
|
ca1ca5f5af | ||
|
|
d534e444f0 | ||
|
|
876b2ce8f6 | ||
|
|
defc97ec16 | ||
|
|
8d37fde91f | ||
|
|
7364d9bde7 | ||
|
|
7873292f28 | ||
|
|
205cc66546 | ||
|
|
8f747d7aa2 | ||
|
|
6658eb28f0 | ||
|
|
3289189a2d | ||
|
|
c5b6195a60 | ||
|
|
ad77def89d | ||
|
|
13ac4105b9 | ||
|
|
2ace33d289 | ||
|
|
2f9fe36412 | ||
|
|
a227eb7720 | ||
|
|
21d3a4ea51 | ||
|
|
338426ed72 | ||
|
|
df86214067 | ||
|
|
effe4f1c81 | ||
|
|
7106f3c15c | ||
|
|
a3f472a58b | ||
|
|
aaddf3623c | ||
|
|
fa27f9ad48 | ||
|
|
fbe2b65ee6 | ||
|
|
a323195aed | ||
|
|
0f9b335951 | ||
|
|
f81a463f99 | ||
|
|
d1f490243e | ||
|
|
4e625b01d2 | ||
|
|
b9f0299165 | ||
|
|
cc61d4f7be | ||
|
|
d4d534f1ef | ||
|
|
f85e3adc5a | ||
|
|
7cceaa3fae | ||
|
|
0bb67e9552 | ||
|
|
b21552973c | ||
|
|
a6ad11a20e | ||
|
|
44e31bd845 |
484
CMakeLists.txt
484
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
@@ -5,22 +5,26 @@ We want to make contributing to this project as easy and transparent as possible
|
||||
Please refer to the steps described on our website: [How to contribute to OAI](https://www.openairinterface.org/?page_id=112).
|
||||
|
||||
1. Sign and return a Contributor License Agreement to OAI team.
|
||||
2. Register on [Eurecom GitLab Server](https://gitlab.eurecom.fr/users/sign_up) if you do not have any.
|
||||
2. Register on [Eurecom GitLab Server](https://gitlab.eurecom.fr/users/sign_up)
|
||||
if you do not have any.
|
||||
- We recommend that you register with a professional or student email address.
|
||||
- If your email domain (`@domain.com`) is not whitelisted, please contact us (mailto:contact@openairinterface.org).
|
||||
- If your email domain (`@domain.com`) is not whitelisted, please contact us
|
||||
(mailto:contact@openairinterface.org).
|
||||
- Eurecom GitLab does NOT accept public email domains.
|
||||
3. Provide the OAI team with the **username** of this account to (mailto:contact@openairinterface.org) ; we will give you the developer rights on this repository.
|
||||
4. The policies are described in these wiki pages: [OAI Policies](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/oai-policies-home).
|
||||
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account. It just eats up space on our servers.
|
||||
- You can fork onto another hosting system. But we will NOT accept a merge request from a forked repository.
|
||||
3. Provide the OAI team with the **username** of this account to
|
||||
(mailto:contact@openairinterface.org) ; we will give you the developer
|
||||
rights on this repository.
|
||||
4. The contributing policies are described in the [corresponding documentation
|
||||
page](doc/code-style-contrib.md).
|
||||
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account.
|
||||
It just eats up space on our servers.
|
||||
- You can fork onto another hosting system. But we will NOT accept a merge
|
||||
request from a forked repository.
|
||||
* This decision was made for the license reasons.
|
||||
* The Continuous Integration will reject your merge request.
|
||||
- All merge requests SHALL have `develop` branch as target branch.
|
||||
|
||||
## Coding Styles ##
|
||||
# License #
|
||||
|
||||
There are described [here](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/guidelines/guidelines-home).
|
||||
|
||||
## License ##
|
||||
|
||||
By contributing to OpenAirInterface, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.
|
||||
By contributing to OpenAirInterface, you agree that your contributions will be
|
||||
licensed under the license described in the file [`LICENSE`](./LICENSE) in the
|
||||
root directory of this source tree.
|
||||
|
||||
@@ -4,15 +4,6 @@ For more details of the license, refer to [LICENSE](LICENSE) file in the same di
|
||||
|
||||
However, the source code also contains third party software that is acknowledged here for reference.
|
||||
|
||||
## Credits for LFDS user space source code located in folder openair2/UTILS/LFDS/ ##
|
||||
|
||||
See on [liblfds website](https://liblfds.org/) the license section.
|
||||
|
||||
<pre>
|
||||
"There is no license. You are free to use this software in any way, for any purpose. Go forth and create wealth!
|
||||
If however for legal reasons a licence is required, the license of your choice will be granted."
|
||||
</pre>
|
||||
|
||||
## Credits for source code common/utils/collection/queue.h: ##
|
||||
|
||||
The Regents of the University of California: BSD 3-Clause Licence.
|
||||
|
||||
30
README.md
30
README.md
@@ -4,12 +4,12 @@
|
||||
|
||||
<p align="center">
|
||||
<a href="https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-OAI--Public--V1.1-blue" alt="License"></a>
|
||||
<a href="https://releases.ubuntu.com/18.04/"><img src="https://img.shields.io/badge/OS-Ubuntu18-Green" alt="Supported OS Ubuntu 18"></a>
|
||||
<a href="https://releases.ubuntu.com/20.04/"><img src="https://img.shields.io/badge/OS-Ubuntu20-Green" alt="Supported OS Ubuntu 20"></a>
|
||||
<a href="https://releases.ubuntu.com/22.04/"><img src="https://img.shields.io/badge/OS-Ubuntu22-Green" alt="Supported OS Ubuntu 22"></a>
|
||||
<a href="https://releases.ubuntu.com/24.04/"><img src="https://img.shields.io/badge/OS-Ubuntu24-Green" alt="Supported OS Ubuntu 24"></a>
|
||||
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL8-Green" alt="Supported OS RHEL8"></a>
|
||||
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL9-Green" alt="Supported OS RELH9"></a>
|
||||
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore37-Green" alt="Supported OS Fedora 37"></a>
|
||||
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore40-Green" alt="Supported OS Fedora 40"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -25,6 +25,7 @@
|
||||
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-nr-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-nr-ue?label=NR-UE%20docker%20pulls"></a>
|
||||
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-enb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-enb?label=eNB%20docker%20pulls"></a>
|
||||
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-lte-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-lte-ue?label=LTE-UE%20docker%20pulls"></a>
|
||||
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-nr-cuup"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-nr-cuup?label=NR-CUUP%20docker%20pulls"></a>
|
||||
</p>
|
||||
|
||||
# OpenAirInterface License #
|
||||
@@ -69,10 +70,27 @@ openairinterface5g
|
||||
├── executables : Top-level executable source files (gNB, eNB, ...)
|
||||
├── maketags : Script to generate emacs tags.
|
||||
├── nfapi : (n)FAPI code for MAC-PHY interface
|
||||
├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
|
||||
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
|
||||
├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
|
||||
├── openair1 : Layer 1 (3GPP LTE Rel-10/12 PHY, NR Rel-15 PHY)
|
||||
├── openair2 : Layer 2 (3GPP LTE Rel-10 MAC/RLC/PDCP/RRC/X2AP, LTE Rel-14 M2AP, NR Rel-15+ MAC/RLC/PDCP/SDAP/RRC/X2AP/F1AP/E1AP), E2AP
|
||||
├── openair3 : Layer 3 (3GPP LTE Rel-10 S1AP/GTP, NR Rel-15 NGAP/GTP)
|
||||
├── openshift : OpenShift helm charts for some deployment options of OAI
|
||||
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, ...
|
||||
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, 7.2 FHI, ...
|
||||
└── targets : Some configuration files; only historical relevance, and might be deleted in the future
|
||||
```
|
||||
|
||||
# How to get support from the OAI Community #
|
||||
|
||||
You can ask your question on the [mailing lists](https://gitlab.eurecom.fr/oai/openairinterface5g/-/wikis/MailingList).
|
||||
|
||||
Your email should contain below information:
|
||||
|
||||
- A clear subject in your email.
|
||||
- For all the queries there should be [Query\] in the subject of the email and for problems there should be [Problem\].
|
||||
- In case of a problem, add a small description.
|
||||
- Do not share any photos unless you want to share a diagram.
|
||||
- OAI gNB/DU/CU/CU-CP/CU-UP configuration file in `.conf` format only.
|
||||
- Logs of OAI gNB/DU/CU/CU-CP/CU-UP in `.log` or `.txt` format only.
|
||||
- In case your question is related to performance, include a small description of the machine (Operating System, Kernel version, CPU, RAM and networking card) and diagram of your testing environment.
|
||||
- Known/open issues are present on [GitLab](https://gitlab.eurecom.fr/oai/openairinterface5g/-/issues), so keep checking.
|
||||
|
||||
Always remember a structured email will help us understand your issues quickly.
|
||||
|
||||
@@ -1,303 +0,0 @@
|
||||
# Sequans USRP N310 Setup
|
||||
|
||||
This document describes how to connect the USRP N310 device and build the software and run gNB.
|
||||
|
||||
## 1 N310 Connection Options
|
||||
|
||||
The N310 comes with 4 ports that can be used for connection to the PC.
|
||||
Note that some ports can be used for device management only while others for data streaming only.
|
||||
|
||||
* USB Console port implements 2 serial interfaces that can be used for device management only:
|
||||
1. The Linux console of the ARM CPU.
|
||||
2. The console of the STM32. For example, it can be used to reboot the device remotely.
|
||||
|
||||
The baud rate is 115200 for both interfaces. This example shows how to connect to the Linux console (`if00` interface):
|
||||
|
||||
$ ls /dev/serial/by-id
|
||||
usb-Silicon_Labs_CP2105_Dual_USB_to_UART_Bridge_Controller_007F6CB5-if00-port0
|
||||
usb-Silicon_Labs_CP2105_Dual_USB_to_UART_Bridge_Controller_007F6CB5-if01-port0
|
||||
|
||||
$ sudo screen /dev/serial/by-id/usb-Silicon_Labs_CP2105_Dual_USB_to_UART_Bridge_Controller_007F6CB5-if00-port0 115200
|
||||
|
||||
* Ethernet port provides access to the Linux console via SSH. Can be used as a management port only.
|
||||
User `root`, no password.
|
||||
* SFP0 can be used as a data port. The port speed depends on the variant of the FPGA firmware
|
||||
(1Gb for the HG variant or 10Gb for the XG).
|
||||
* SFP1 is a 10 Gb port and can be used as a data port.
|
||||
|
||||
Default network configuration:
|
||||
|
||||
| Interface | Configuration | Configuration File | Configuration File (old image ver.) |
|
||||
|-----------|---------------|------------------------------|-------------------------------------|
|
||||
| eth0 | dhcp | `/data/network/eth0.network` | `/etc/systemd/network/eth0.network` |
|
||||
| sfp0 | 192.168.10.2 | `/data/network/sfp0.network` | `/etc/systemd/network/sfp0.network` |
|
||||
| sfp1 | 192.168.20.2 | `/data/network/sfp1.network` | `/etc/systemd/network/sfp1.network` |
|
||||
|
||||
## 2 Connect N310
|
||||
|
||||
In current setup we use 10Gb SFP1 port that is connected to the `enp1s0f0` 10Gb interface of the lab PC.
|
||||
|
||||
1. Insert the 10Gb copper adapter to the SFP1 port and connect the port to the PC via Cat6e ethernet cable.
|
||||
2. Configure the static IP address on the interface connected to the N310:
|
||||
|
||||
sudo ip addr add 192.168.20.1/24 dev enp1s0f0
|
||||
|
||||
2. Try to ping N310:
|
||||
|
||||
ping 192.168.20.2
|
||||
|
||||
|
||||
## 3 Build and Install UHD Driver
|
||||
|
||||
UHD is a USRP host driver. We'll need its apps to update N310 firmware and libraries to build gNB.
|
||||
|
||||
1. Install required packages.
|
||||
|
||||
sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
|
||||
|
||||
2. Download sources.
|
||||
|
||||
git clone https://github.com/EttusResearch/uhd.git ~/uhd -b v4.3.0.0
|
||||
|
||||
Current version is 4.3.0.0.
|
||||
|
||||
3. Build and install UHD.
|
||||
|
||||
cd ~/uhd/host
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
make -j
|
||||
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
4. Check if UHD can find N310.
|
||||
|
||||
$ uhd_find_devices
|
||||
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.3.0.HEAD-0-g1f8fd345
|
||||
--------------------------------------------------
|
||||
-- UHD Device 0
|
||||
--------------------------------------------------
|
||||
Device Address:
|
||||
serial: 327B212
|
||||
addr: 192.168.10.2
|
||||
claimed: False
|
||||
mgmt_addr: 192.168.10.2
|
||||
product: n310
|
||||
type: n3xx
|
||||
|
||||
## 4 Update N310 Image.
|
||||
|
||||
It's important to update the USRP image so that it matches the UHD driver version.
|
||||
The image contains the embedded Linux file system.
|
||||
The easiest way is to update the file system via Mender.
|
||||
|
||||
1. Download image.
|
||||
The `uhd_images_downloader` will download the version that matches the currently installed UHD.
|
||||
|
||||
sudo uhd_images_downloader -t mender -t n3xx --yes -v
|
||||
|
||||
If the command fails, the image can be downloaded manually.
|
||||
Check the `uhd_images_downloader` output and find the following lines:
|
||||
|
||||
[INFO] Using base URL: https://files.ettus.com/binaries/cache/
|
||||
...
|
||||
[DEBUG] URLs to download:
|
||||
n3xx/meta-ettus-v4.3.0.0/n3xx_common_mender_default-v4.3.0.0.zip
|
||||
|
||||
Combine those URLs:
|
||||
|
||||
wget https://files.ettus.com/binaries/cache/n3xx/meta-ettus-v4.3.0.0/n3xx_common_mender_default-v4.3.0.0.zip
|
||||
unzip n3xx_common_mender_default-v4.3.0.0.zip
|
||||
|
||||
2. Copy image to N310.
|
||||
Images downloaded with `uhd_images_downloader` are located in `/usr/local/share/uhd/images/`.
|
||||
|
||||
scp n3xx_common_mender_default-v4.3.0.0.zip root@192.168.10.2:/home/root
|
||||
|
||||
3. SSH into N310 and run the installation procedure.
|
||||
|
||||
ssh root@192.168.10.2
|
||||
|
||||
Note, command examples that must be executed on N310 contain `root@ni-n3xx-327B212:~#` prompt.
|
||||
|
||||
The installation is tricky because it depends on what Mender version is currently installed on N310.
|
||||
First, try modern version:
|
||||
|
||||
root@ni-n3xx-327B212:~# mender install /home/root/usrp_n3xx_fs.mender
|
||||
|
||||
If it didn't work, try to run Mender using old-style command line arguments:
|
||||
|
||||
root@ni-n3xx-327B212:~# mender -rootfs /home/root/usrp_n3xx_fs.mender -f
|
||||
|
||||
4. Reboot and Validate the Installation.
|
||||
|
||||
root@ni-n3xx-327B212:~# reboot
|
||||
|
||||
After device booted, check the version:
|
||||
|
||||
root@ni-n3xx-327B212:~# uhd_config_info --version
|
||||
root@ni-n3xx-327B212:~# cat /etc/mender/artifact_info
|
||||
|
||||
Mender uses A+B partitioning scheme, where one partition is active and another one is used for update.
|
||||
After upgrade, the next boot runs from the newly-updated partition once.
|
||||
However, we need to let Mender know that upgraded FS work fine. Otherwise, it will fall back to
|
||||
the previous version after reboot:
|
||||
|
||||
root@ni-n3xx-327B212:~# mender -commit
|
||||
|
||||
## 5 Update FPGA firmware
|
||||
|
||||
1. Download FPGA firmware.
|
||||
|
||||
sudo uhd_images_downloader -t n310_fpga -v
|
||||
|
||||
If download failes, use the same workaround as for image downloading and unzip files to UHD inventory location.
|
||||
|
||||
wget https://files.ettus.com/binaries/cache/n3xx/uhd-dd757ac/n3xx_n310_fpga_default-gdd757ac.zip
|
||||
sudo unzip n3xx_n310_fpga_default-gdd757ac.zip -d /usr/local/share/uhd/images
|
||||
|
||||
2. Update FPGA firmware
|
||||
|
||||
uhd_image_loader --args type=n3xx,addr=ni-n3xx-<Device_serial_addr>
|
||||
|
||||
where `<Device_serial_addr>` is the serial address of the USRP, which can be obtained by running `uhd_find_devices`.
|
||||
|
||||
## 6 Build gNB with USRP support
|
||||
|
||||
1. Install `lttng`.
|
||||
|
||||
sudo apt-add-repository ppa:lttng/stable-2.13
|
||||
sudo apt update
|
||||
sudo apt install -y lttng-tools lttng-modules-dkms liblttng-ust-dev
|
||||
|
||||
2. Obtain sources and install required packages.
|
||||
|
||||
git clone https://gitlab-shared.sequans.com/sequans/system/ttcn/firecell_sequansrd -b Latest_3GPP_FRD_299
|
||||
cd firecell_sequansrd
|
||||
./FirecellRD/components/RAN/cmake_targets/build_oai -I
|
||||
|
||||
If build fails while installing ASN1 because `gitlab.eurecom.fr` is inaccessible,
|
||||
configure git to use gitlab-shared.sequans.com instead:
|
||||
|
||||
git config --global url.https://gitlab-shared.sequans.com/sequans/system/ttcn/asn1c.insteadof https://gitlab.eurecom.fr/oai/asn1c.git
|
||||
|
||||
3. Build gNB.
|
||||
|
||||
cd FirecellRD/components/RAN
|
||||
. oaienv
|
||||
cd cmake_targets
|
||||
./build_oai -I
|
||||
./build_oai -w USRP --ninja --nrUE --gNB --build-lib all -c
|
||||
|
||||
## 7 Run gNB
|
||||
|
||||
1. Run gNB (from the OAI dir):
|
||||
|
||||
./cmake_targets/ran_build/build/nr-softmodem -O ci-scripts/conf_files/gNB.N78.fr1.40MHz.N310.conf --sa --usrp-tx-thread-config 1 --log_config.global_log_options wall_clock
|
||||
|
||||
2. *Opional step, for Fibocom UE only*. Connect to the AT port:
|
||||
Add `udev` rule for the Fibocom modem to prevent the ModemManager to interfere with the AT console.
|
||||
Create the `/etc/udev/rules.d/99-fibocom.rules` file with following content:
|
||||
|
||||
ATTRS{idVendor}=="0403" ATTRS{idProduct}=="6010", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
|
||||
Reload the rules:
|
||||
|
||||
sudo udevadm control --reload-rules
|
||||
|
||||
If the above method doesn't help, try to stop `ModemManager` or even to disable it:
|
||||
|
||||
sudo systemctl stop ModemManager
|
||||
sudo systemctl disable ModemManager
|
||||
|
||||
Connect to the AT console:
|
||||
|
||||
sudo minicom -D /dev/serial/by-id/usb-Fibocom_Fibocom_FM160_Modem_SN:5033FA31_5033fa31-if02-port0
|
||||
|
||||
Check that band n78 is enabled
|
||||
|
||||
at+gtact?
|
||||
+GTACT: 14,,,5078
|
||||
|
||||
OK
|
||||
|
||||
in the response we have:
|
||||
- 14: enabled RATs, NR only.
|
||||
- 5078: NR band n78
|
||||
|
||||
Set `cfun=1`:
|
||||
|
||||
at+cfun=1
|
||||
OK
|
||||
|
||||
+SIM: Inserted
|
||||
|
||||
+C5GREG: 2
|
||||
|
||||
+CEREG: 2
|
||||
|
||||
+SIM READY
|
||||
|
||||
Check that 5G registration status changed from 0 to 2 (it may take up to half a minute):
|
||||
|
||||
at+c5greg?
|
||||
+C5GREG: 2,2
|
||||
|
||||
OK
|
||||
|
||||
3. Check gNB log, it should contain the `UE State = NR_RRC_CONNECTED` message (at the end of the example below).
|
||||
|
||||
1692024360.127029 [NR_MAC] Frame.Slot 128.0
|
||||
UE RNTI c723 (1) PH 49 dB PCMAX 21 dBm, average RSRP 0 (0 meas)
|
||||
UE c723: CQI 0, RI 1, PMI (0,0)
|
||||
UE c723: dlsch_rounds 178/27/27/27, dlsch_errors 27, pucch0_DTX 108, BLER 0.93539 MCS 6
|
||||
UE c723: dlsch_total_bytes 20734
|
||||
UE c723: ulsch_rounds 177/25/25/25, ulsch_DTX 100, ulsch_errors 25, BLER 0.92023 MCS 6
|
||||
UE c723: ulsch_total_bytes_scheduled 19373, ulsch_total_bytes_received 17356
|
||||
UE c723: LCID 1: 3 bytes TX
|
||||
|
||||
1692024360.749749 [NR_PHY] [gNB 0][RAPROC] Frame 189, slot 19 Initiating RA procedure with preamble 19, energy 46.6 dB (I0 78, thres 120), delay 7 start symbol 4 freq index 0
|
||||
1692024360.749807 [MAC] UL_info[Frame 189, Slot 19] Calling initiate_ra_proc RACH:SFN/SLOT:189/19
|
||||
1692024360.749814 [NR_MAC] Search for not existing rnti (ignore for RA): 37d2
|
||||
1692024360.749816 [NR_MAC] [gNB 0][RAPROC] CC_id 0 Frame 189 Activating Msg2 generation in frame 190, slot 7 using RA rnti 10f SSB, new rnti 37d2 index 0 RA index 0
|
||||
1692024360.750433 [NR_MAC] [gNB 0][RAPROC] CC_id 0 Frame 190, slotP 7: Generating RA-Msg2 DCI, rnti 0x10f, state 1, CoreSetType 2
|
||||
1692024360.750449 [NR_MAC] [RAPROC] Msg3 slot 17: current slot 7 Msg3 frame 190 k2 7 Msg3_tda_id 3
|
||||
1692024360.750456 [NR_MAC] [gNB 0][RAPROC] Frame 190, Subframe 7: rnti 37d2 RA state 2
|
||||
1692024360.758679 [NR_MAC] Search for not existing rnti (ignore for RA): 37d2
|
||||
1692024360.758684 [NR_MAC] Adding UE with rnti 0x37d2
|
||||
1692024360.759265 [NR_MAC] [gNB 0][RAPROC] PUSCH with TC_RNTI 0x37d2 received correctly, adding UE MAC Context RNTI 0x37d2
|
||||
1692024360.759271 [NR_MAC] [RAPROC] RA-Msg3 received (sdu_lenP 7)
|
||||
1692024360.759275 [RLC] activated srb0 for UE with RNTI 0x37d2
|
||||
1692024360.759279 [MAC] [RAPROC] Received SDU for CCCH length 6 for UE 37d2
|
||||
1692024360.759344 [NR_MAC] Activating scheduling RA-Msg4 for TC_RNTI 0x37d2 (state 2)
|
||||
1692024360.759346 [NR_MAC] Unexpected ULSCH HARQ PID 0 (have -1) for RNTI 0x37d2 (ignore this warning for RA)
|
||||
1692024360.759353 [RRC] initial UL RRC message nr_cellid 0 does not match RRC's 12345678
|
||||
1692024360.759379 [NR_RRC] Decoding CCCH: RNTI 37d2, inst 0, payload_size 6
|
||||
1692024360.759655 [NR_RRC] rrc_gNB_generate_RRCSetup for RNTI 37d2
|
||||
1692024360.759700 [PDCP] nr_pdcp_entity_set_security: rb_id=1 INT=0, CIP=0
|
||||
1692024360.759737 [NR_MAC] Adding SchedulingRequestconfig
|
||||
1692024360.759739 [NR_MAC] Adding BSR config
|
||||
1692024360.759741 [NR_MAC] Adding TAG config
|
||||
1692024360.759741 [NR_MAC] Adding PHR config
|
||||
1692024360.759757 [RLC] /home/labo/dev/lmeyer/ttcn/openairinterface5g/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c:961:add_rlc_srb: added srb 1 to UE with RNTI 0x37d2
|
||||
1692024360.759986 [NR_MAC] ( 191. 6) SRB0 has 136 bytes
|
||||
1692024360.760019 [NR_MAC] Generate msg4, rnti: 37d2
|
||||
1692024360.760022 [NR_MAC] Encoded RRCSetup Piggyback (136 + 2 bytes), mac_pdu_length 145
|
||||
1692024360.764081 [NR_MAC] (UE RNTI 0x37d2) Received Ack of RA-Msg4. CBRA procedure succeeded!
|
||||
1692024360.764089 [NR_MAC] (191.14) Activating RRC processing timer for UE 37d2 with 10 ms
|
||||
1692024360.774173 [NR_MAC] (192.14) De-activating RRC processing timer for UE 37d2
|
||||
1692024360.774260 [NR_MAC] Modified rnti 37d2 with CellGroup
|
||||
1692024360.774263 [NR_MAC] Adding SchedulingRequestconfig
|
||||
1692024360.774264 [NR_MAC] Adding BSR config
|
||||
1692024360.774268 [NR_MAC] Adding TAG config
|
||||
1692024360.774269 [NR_MAC] Adding PHR config
|
||||
1692024360.918633 [PDCP] nr_pdcp_entity_recv_pdu: Entity security status(0): ciphering -1, integrity check -1
|
||||
1692024360.918692 [PDCP] RLC => PDCP: rcvd_count=0, rcvd_sn=0: 00 00 10 00 05 df 80 10 5e 40 03 40 40 be 0a 7c 3f c0 00 04 00 00 04 65 cb 80 bc 1c 00 00 00 00 00
|
||||
1692024360.918698 [PDCP] nr_pdcp_entity_recv_pdu: deciphering did not apply
|
||||
1692024360.918813 [NR_RRC] [FRAME 00000][gNB][MOD 00][RNTI 37d2] RLC RB 01 --- RLC_DATA_IND 27 bytes (RRCSetupComplete) ---> RRC_gNB
|
||||
1692024360.918821 [NR_RRC] [FRAME 00000][gNB][MOD 00][RNTI 37d2] [RAPROC] Logical Channel UL-DCCH, processing NR_RRCSetupComplete from UE (SRB1 Active)
|
||||
1692024360.918826 [NR_RRC] [FRAME 00000][gNB][MOD 00][RNTI 37d2] UE State = NR_RRC_CONNECTED
|
||||
1692024360.918833 [NGAP] No AMF is associated to the gNB
|
||||
|
||||
36
charts/physims/charts/nr-psbchsim/Chart.yaml
Normal file
36
charts/physims/charts/nr-psbchsim/Chart.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
apiVersion: v1
|
||||
name: oai-nr-psbchsim
|
||||
description: A Helm subchart for nr-psbchsim network function
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
|
||||
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
version: 0.1.1
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application.
|
||||
appVersion: v1
|
||||
|
||||
keywords:
|
||||
- Physical Simulator
|
||||
- nr-psbchsim
|
||||
- RAN
|
||||
- 5G
|
||||
|
||||
sources:
|
||||
- https://gitlab.eurecom.fr/oai/openairinterface5g
|
||||
|
||||
maintainers:
|
||||
- name: OPENAIRINTERFACE
|
||||
email: contact@openairinterface.org
|
||||
63
charts/physims/charts/nr-psbchsim/templates/_helpers.tpl
Normal file
63
charts/physims/charts/nr-psbchsim/templates/_helpers.tpl
Normal file
@@ -0,0 +1,63 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.labels" -}}
|
||||
helm.sh/chart: {{ include "oai-nr-psbchsim.chart" . }}
|
||||
{{ include "oai-nr-psbchsim.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "oai-nr-psbchsim.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "oai-nr-psbchsim.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "oai-nr-psbchsim.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
42
charts/physims/charts/nr-psbchsim/templates/job.yaml
Normal file
42
charts/physims/charts/nr-psbchsim/templates/job.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ .Chart.Name }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: physim
|
||||
spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: physim
|
||||
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
env:
|
||||
- name: OPENAIR_DIR
|
||||
value: /opt/oai-physim
|
||||
command: ["/bin/sh", "-c"]
|
||||
args:
|
||||
- >
|
||||
cmake_targets/autotests/run_exec_autotests.bash -g "nr_psbchsim" -d bin/ &&
|
||||
echo "FINISHED" && sleep infinity
|
||||
dnsPolicy: ClusterFirst
|
||||
restartPolicy: Never
|
||||
schedulerName: default-scheduler
|
||||
serviceAccountName: {{ .Values.global.serviceAccountName }}
|
||||
terminationGracePeriodSeconds: 30
|
||||
{{- if .Values.global.nodeSelector}}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.global.nodeName.nrpsbchsim}}
|
||||
nodeName: {{ .Values.global.nodeName.nrpsbchsim }}
|
||||
{{- end }}
|
||||
48
charts/physims/charts/nr-psbchsim/values.yaml
Normal file
48
charts/physims/charts/nr-psbchsim/values.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
# Default values for oai-nr-psbchsim
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
# pullPolicy: IfNotPresent or Never or Always
|
||||
pullPolicy: Always
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name: "oai-nr-psbchsim"
|
||||
|
||||
podSecurityContext:
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
|
||||
securityContext:
|
||||
privileged: false
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
@@ -27,13 +27,14 @@ global:
|
||||
nrpbschsim106rb: dedale
|
||||
nrpbchsim217rb: dedale
|
||||
nrpbchsim273rb: dedale
|
||||
nrpsbchsim: dedale
|
||||
nrprachsim: dedale
|
||||
nrpucchsim: dedale
|
||||
nrulschsim: theseus
|
||||
nrulsim3gpp: theseus
|
||||
nrulsimmimo: theseus
|
||||
nrulsimmisc: theseus
|
||||
nrulsimscfdma: theseus
|
||||
polartest: theseus
|
||||
smallblocktest: theseus
|
||||
ulsim: theseus
|
||||
nrulschsim: demophon
|
||||
nrulsim3gpp: demophon
|
||||
nrulsimmimo: demophon
|
||||
nrulsimmisc: demophon
|
||||
nrulsimscfdma: demophon
|
||||
polartest: demophon
|
||||
smallblocktest: demophon
|
||||
ulsim: demophon
|
||||
|
||||
@@ -562,6 +562,52 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("SA-2x2-Module-CN5G") {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-2x2-Module-CN5G', 'SA-2x2-Module-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saTDD2x2Status = finalizeSlaveJob('RAN-SA-2x2-Module-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
failingStages += saTDD2x2Status
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("SA-FHI72-CN5G") {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
script {
|
||||
triggerSlaveJob ('RAN-SA-FHI72-CN5G', 'SA-FHI72-CN5G')
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||
// due to parallel-time concurrency
|
||||
saFHI72Status = finalizeSlaveJob('RAN-SA-FHI72-CN5G')
|
||||
}
|
||||
}
|
||||
failure {
|
||||
script {
|
||||
currentBuild.result = 'FAILURE'
|
||||
failingStages += saFHI72Status
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("SA-OAIUE-CN5G") {
|
||||
when { expression {do5Gtest} }
|
||||
steps {
|
||||
|
||||
@@ -229,6 +229,10 @@ pipeline {
|
||||
// Zipping all archived log files
|
||||
sh "mkdir test_logs"
|
||||
sh "mv *.log* test_logs || true"
|
||||
// Zip all log files matching cmake_targets/{*.log*,log/*} into test_logs_XXXX.zip
|
||||
if (fileExists('../cmake_targets/log')) {
|
||||
sh "mv ../cmake_targets/log/* test_logs || true"
|
||||
}
|
||||
sh "zip -r -qq test_logs_${env.BUILD_ID}.zip *test_log*/"
|
||||
sh "rm -rf *test_log*/"
|
||||
if (fileExists("test_logs_${env.BUILD_ID}.zip")) {
|
||||
|
||||
@@ -221,6 +221,10 @@ pipeline {
|
||||
// Zipping all archived log files
|
||||
sh "mkdir test_logs"
|
||||
sh "mv *.log* test_logs || true"
|
||||
// Zip all log files matching cmake_targets/{*.log*,log/*} into test_logs_XXXX.zip
|
||||
if (fileExists('../cmake_targets/log')) {
|
||||
sh "mv ../cmake_targets/log/* test_logs || true"
|
||||
}
|
||||
sh "zip -r -qq test_logs_${env.BUILD_ID}.zip *test_log*/"
|
||||
sh "rm -rf *test_log*/"
|
||||
if (fileExists("test_logs_${env.BUILD_ID}.zip")) {
|
||||
|
||||
@@ -76,7 +76,7 @@ pipeline {
|
||||
withCredentials([
|
||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password']
|
||||
]) {
|
||||
def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "oai-nr-cuup"]
|
||||
def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "oai-nr-cuup", "oai-gnb-fhi72"]
|
||||
// Logging in on both registries
|
||||
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
|
||||
sh "docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr > /dev/null 2>&1"
|
||||
|
||||
@@ -304,7 +304,7 @@ pipeline {
|
||||
[$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}"
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --BuildId=${env.BUILD_ID}"
|
||||
|
||||
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"
|
||||
|
||||
@@ -274,7 +274,7 @@ pipeline {
|
||||
[$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}"
|
||||
sh "python3 ci-scripts/main.py --mode=LogCollecteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --BuildId=${env.BUILD_ID}"
|
||||
|
||||
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"
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
BEGIN{lineIdx=0;captureUEDesc=0}
|
||||
{
|
||||
if ($0 ~/UE0/) {
|
||||
captureUEDesc = 1
|
||||
}
|
||||
if (captureUEDesc == 1) {
|
||||
captureLine[lineIdx] = $0
|
||||
lineIdx = lineIdx + 1
|
||||
}
|
||||
print $0
|
||||
}
|
||||
END {
|
||||
for (ueIdx = 1; ueIdx < num_ues; ueIdx++) {
|
||||
print ""
|
||||
for (k = 0; k < lineIdx; k++) {
|
||||
if (captureLine[k] ~/UE0/) {
|
||||
mLine = captureLine[k]
|
||||
gsub("UE0", "UE"ueIdx, mLine)
|
||||
print mLine
|
||||
} else {
|
||||
if (captureLine[k] ~/MSIN=/) {
|
||||
mLine = captureLine[k]
|
||||
MSIN=sprintf("%08d", 1111+int(ueIdx))
|
||||
gsub("00001111", MSIN, mLine)
|
||||
print mLine
|
||||
} else {
|
||||
print captureLine[k]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
BEGIN{lineIdx=0}
|
||||
{
|
||||
captureLine[lineIdx] = $0
|
||||
lineIdx = lineIdx + 1
|
||||
print $0
|
||||
}
|
||||
END{
|
||||
for (ueIdx = 1; ueIdx < num_ues; ueIdx++) {
|
||||
for (k = 0; k < lineIdx; k++) {
|
||||
if (captureLine[k] ~/UserName=/) {
|
||||
mLine = captureLine[k]
|
||||
MSIN=sprintf("%08d", 1111+int(ueIdx))
|
||||
gsub("00001111", MSIN, mLine)
|
||||
print mLine
|
||||
} else {
|
||||
if (captureLine[k] ~/SubscriptionIndex/) {
|
||||
mLine = captureLine[k]
|
||||
MSIN=sprintf("%d", 111+int(ueIdx))
|
||||
gsub("111", MSIN, mLine)
|
||||
print mLine
|
||||
} else {
|
||||
print captureLine[k]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,8 +25,8 @@ allow dynamic UE creation from remote API */
|
||||
rf_port: 0,
|
||||
bandwidth: 20,
|
||||
band: 78,
|
||||
dl_nr_arfcn:627360,
|
||||
ssb_nr_arfcn:627360,
|
||||
dl_nr_arfcn:630048,
|
||||
ssb_nr_arfcn:630048,
|
||||
subcarrier_spacing: 30,
|
||||
n_antenna_dl: N_ANTENNA_DL,
|
||||
n_antenna_ul: N_ANTENNA_UL,
|
||||
@@ -39,7 +39,7 @@ allow dynamic UE creation from remote API */
|
||||
ue_list: [
|
||||
{
|
||||
"ue_id" : 1,
|
||||
"imsi": "208970000000111",
|
||||
"imsi": "001020000000001",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -54,7 +54,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 2,
|
||||
"imsi": "208970000000112",
|
||||
"imsi": "001020000000002",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -69,7 +69,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 3,
|
||||
"imsi": "208970000000113",
|
||||
"imsi": "001020000000003",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -84,7 +84,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 4,
|
||||
"imsi": "208970000000114",
|
||||
"imsi": "001020000000004",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -99,7 +99,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 5,
|
||||
"imsi": "208970000000115",
|
||||
"imsi": "001020000000005",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -114,7 +114,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 6,
|
||||
"imsi": "208970000000116",
|
||||
"imsi": "001020000000006",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -129,7 +129,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 7,
|
||||
"imsi": "208970000000100",
|
||||
"imsi": "001020000000007",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -144,7 +144,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 8,
|
||||
"imsi": "208970000000102",
|
||||
"imsi": "001020000000008",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -159,7 +159,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 9,
|
||||
"imsi": "208970000000103",
|
||||
"imsi": "001020000000009",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -174,7 +174,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 10,
|
||||
"imsi": "208970000000104",
|
||||
"imsi": "001020000000010",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -189,7 +189,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 11,
|
||||
"imsi": "208970000000110",
|
||||
"imsi": "001020000000011",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -204,7 +204,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 12,
|
||||
"imsi": "208970000000105",
|
||||
"imsi": "001020000000012",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -219,7 +219,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 13,
|
||||
"imsi": "208970000000106",
|
||||
"imsi": "001020000000013",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -234,7 +234,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 14,
|
||||
"imsi": "208970000000107",
|
||||
"imsi": "001020000000014",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -249,7 +249,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 15,
|
||||
"imsi": "208970000000108",
|
||||
"imsi": "001020000000015",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -264,7 +264,7 @@ allow dynamic UE creation from remote API */
|
||||
},
|
||||
{
|
||||
"ue_id" : 16,
|
||||
"imsi": "208970000000109",
|
||||
"imsi": "001020000000016",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
@@ -1,280 +0,0 @@
|
||||
/* UE simulator configuration file version 2021-06-17
|
||||
* LTE / 5G Non StandAlone
|
||||
* Copyright (C) 2019-2021 Amarisoft
|
||||
*/
|
||||
{
|
||||
#define N_ANTENNA_DL 2
|
||||
#define TDD 1
|
||||
|
||||
log_options: "all.level=warn,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
|
||||
log_filename: "/tmp/ue.log",
|
||||
|
||||
/* Enable remote API and Web interface */
|
||||
com_addr: "0.0.0.0:9002",
|
||||
|
||||
include "rf_driver/1chan.cfg",
|
||||
|
||||
/* If true, allow the simulation of several UEs at the same time and
|
||||
allow dynamic UE creation from remote API */
|
||||
|
||||
cell_groups: [{
|
||||
group_type: "nr",
|
||||
multi_ue: true,
|
||||
cells: [{
|
||||
rf_port: 0,
|
||||
bandwidth: 20,
|
||||
band: 78,
|
||||
dl_nr_arfcn:627360,
|
||||
ssb_nr_arfcn:627360,
|
||||
subcarrier_spacing: 30,
|
||||
n_antenna_dl: N_ANTENNA_DL,
|
||||
n_antenna_ul: 1,
|
||||
rx_to_tx_latency:2,
|
||||
}],
|
||||
}],
|
||||
|
||||
/* UE capabilities */
|
||||
/* USIM data */
|
||||
ue_list: [
|
||||
{
|
||||
"ue_id" : 1,
|
||||
"imsi": "208970000000111",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 2,
|
||||
"imsi": "208970000000112",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 3,
|
||||
"imsi": "208970000000113",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 4,
|
||||
"imsi": "208970000000114",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 5,
|
||||
"imsi": "208970000000115",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 6,
|
||||
"imsi": "208970000000116",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 7,
|
||||
"imsi": "208970000000117",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 8,
|
||||
"imsi": "208970000000118",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 9,
|
||||
"imsi": "208970000000119",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 10,
|
||||
"imsi": "208970000000120",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 11,
|
||||
"imsi": "208970000000121",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 12,
|
||||
"imsi": "208970000000122",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 13,
|
||||
"imsi": "208970000000123",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 14,
|
||||
"imsi": "208970000000124",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 15,
|
||||
"imsi": "208970000000125",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
{
|
||||
"ue_id" : 16,
|
||||
"imsi": "208970000000126",
|
||||
"K": "fec86ba6eb707ed08905757b1bb44b8f",
|
||||
"sim_algo":"milenage",
|
||||
"op": "1006020f0a478bf6b699f15c062e42b3",
|
||||
|
||||
as_release: 15,
|
||||
ue_category: "nr",
|
||||
apn:"oai",
|
||||
attach_pdn_type:"ipv4",
|
||||
default_nssai: [ { sst: 1, }, ],
|
||||
default_pdu_session_snssai: { sst: 1, },
|
||||
tun_setup_script: "ue-ifup",
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -18,6 +18,14 @@ up2:
|
||||
IF: wwan0
|
||||
MTU: 1500
|
||||
|
||||
up2-fhi72:
|
||||
Host: up2
|
||||
AttachScript: sudo /opt/mbim-fhi72/start_quectel_mbim.sh
|
||||
DetachScript: sudo /opt/mbim-fhi72/stop_quectel_mbim.sh
|
||||
NetworkScript: ip a show dev wwan0
|
||||
IF: wwan0
|
||||
MTU: 1500
|
||||
|
||||
sphex_quectel:
|
||||
Host: sphex
|
||||
InitScript: sudo stdbuf -oL /home/oaicicd/quectel-CM/quectel-CM -4 -s oai.ipv4 &> /tmp/quecel-cm.log &
|
||||
@@ -58,9 +66,24 @@ adb_ue_2:
|
||||
|
||||
oc-cn5g:
|
||||
Host: avra
|
||||
Namespace: "oaicicd-core-for-ci-ran"
|
||||
CNPath: "/opt/oai-cn5g-fed-develop-2024-april-00102"
|
||||
NetworkScript: echo "inet 172.21.6.102"
|
||||
RunIperf3Server: False
|
||||
|
||||
oc-cn5g-20897:
|
||||
Host: cacofonix
|
||||
Namespace: "oaicicd-core-for-fhi72"
|
||||
CNPath: "/opt/oai-cn5g-fed-develop-2024-april-20897"
|
||||
NetworkScript: echo "inet 172.21.6.105"
|
||||
RunIperf3Server: False
|
||||
|
||||
matix-cn5g:
|
||||
Host: matix
|
||||
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
|
||||
CmdPrefix: docker exec prod-trf-gen
|
||||
RunIperf3Server: False
|
||||
|
||||
porcepix-cn4g:
|
||||
Host: porcepix
|
||||
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
|
||||
@@ -91,7 +114,11 @@ ltebox-nepes:
|
||||
|
||||
amarisoft_ue:
|
||||
Host: amariue
|
||||
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_aw2s_asue_2x2/aw2s-multi-20897-2x2.cfg &
|
||||
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_aw2s_asue_2x2/aw2s-multi-00102-2x2.cfg &
|
||||
TermScript: /root/2023-10-27/libs/ws.js -t 10 127.0.0.1:9002 '{"message":"quit"}' || killall -KILL lteue-avx2
|
||||
amarisoft_ue_fhi72:
|
||||
Host: amariue
|
||||
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_fhi72_asue_2x2_benetel550/fhi72-multi-20897-2x2.cfg &
|
||||
TermScript: /root/2023-10-27/libs/ws.js -t 10 127.0.0.1:9002 '{"message":"quit"}' || killall -KILL lteue-avx2
|
||||
amarisoft_ue_1:
|
||||
Host: amariue
|
||||
@@ -327,6 +354,9 @@ rfsim4g_ue:
|
||||
NetworkScript: docker exec rfsim4g-oai-lte-ue0 ip a show dev oaitun_ue1
|
||||
CmdPrefix: docker exec rfsim4g-oai-lte-ue0
|
||||
IF: oaitun_ue1
|
||||
AttachScript: docker start rfsim4g-oai-lte-ue0
|
||||
DetachScript: docker stop rfsim4g-oai-lte-ue0
|
||||
MTU: 1500
|
||||
|
||||
rfsim4g_ext_dn:
|
||||
Host: localhost
|
||||
|
||||
@@ -43,7 +43,9 @@ NAMESPACE = "oaicicd-ran"
|
||||
OCUrl = "https://api.oai.cs.eurecom.fr:6443"
|
||||
OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
|
||||
CI_OC_RAN_NAMESPACE = "oaicicd-ran"
|
||||
CI_OC_CORE_NAMESPACE = "oaicicd-core-for-ci-ran"
|
||||
CN_IMAGES = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-upf", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"]
|
||||
CN_CONTAINERS = ["", "-c nrf", "-c amf", "-c smf", "-c upf", "-c ausf", "-c udm", "-c udr", ""]
|
||||
|
||||
|
||||
def OC_login(cmd, ocUserName, ocPassword, ocProjectName):
|
||||
if ocUserName == '' or ocPassword == '' or ocProjectName == '':
|
||||
@@ -65,6 +67,49 @@ def OC_login(cmd, ocUserName, ocPassword, ocProjectName):
|
||||
def OC_logout(cmd):
|
||||
cmd.run(f'oc logout')
|
||||
|
||||
def OC_deploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
|
||||
logging.debug(f'OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster: {ocNamespace}')
|
||||
succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
|
||||
if not succeeded:
|
||||
return False, CONST.OC_LOGIN_FAIL
|
||||
cmd.run('helm uninstall oai5gcn --wait --timeout 60s')
|
||||
ret = cmd.run(f'helm install --wait --timeout 60s oai5gcn {path}/ci-scripts/charts/oai-5g-basic/.')
|
||||
if ret.returncode != 0:
|
||||
logging.error('OC OAI CN5G: Deployment failed')
|
||||
OC_logout(cmd)
|
||||
return False, CONST.OC_PROJECT_FAIL
|
||||
report = cmd.run('oc get pods')
|
||||
OC_logout(cmd)
|
||||
return True, report
|
||||
|
||||
def OC_undeploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
|
||||
logging.debug(f'OC OAI CN5G: Terminating CN on Openshift Cluster: {ocNamespace}')
|
||||
succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
|
||||
if not succeeded:
|
||||
return False, CONST.OC_LOGIN_FAIL
|
||||
cmd.run(f'rm -Rf {path}/logs')
|
||||
cmd.run(f'mkdir -p {path}/logs')
|
||||
logging.debug('OC OAI CN5G: Collecting log files to workspace')
|
||||
cmd.run(f'oc describe pod &> {path}/logs/describe-pods-post-test.log')
|
||||
cmd.run(f'oc get pods.metrics.k8s &> {path}/logs/nf-resource-consumption.log')
|
||||
for ii, ci in zip(CN_IMAGES, CN_CONTAINERS):
|
||||
podName = cmd.run(f"oc get pods | grep {ii} | awk \'{{print $1}}\'").stdout.strip()
|
||||
if not podName:
|
||||
logging.debug(f'{ii} pod not found!')
|
||||
else:
|
||||
cmd.run(f'oc logs -f {podName} {ci} &> {path}/logs/{ii}.log &')
|
||||
cmd.run(f'cd {path}/logs && zip -r -qq test_logs_CN.zip *.log')
|
||||
cmd.copyin(f'{path}/logs/test_logs_CN.zip','test_logs_CN.zip')
|
||||
ret = cmd.run('helm uninstall --wait --timeout 60s oai5gcn')
|
||||
if ret.returncode != 0:
|
||||
logging.error('OC OAI CN5G: Undeployment failed')
|
||||
cmd.run('helm uninstall --wait --timeout 60s oai5gcn')
|
||||
OC_logout(cmd)
|
||||
return False, CONST.OC_PROJECT_FAIL
|
||||
report = cmd.run('oc get pods')
|
||||
OC_logout(cmd)
|
||||
return True, report
|
||||
|
||||
class Cluster:
|
||||
def __init__(self):
|
||||
self.eNBIPAddress = ""
|
||||
@@ -414,6 +459,34 @@ class Cluster:
|
||||
self.cmd.run(f'oc logs {nrue_job} &> cmake_targets/log/oai-nr-ue.log')
|
||||
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||
|
||||
if status:
|
||||
self._recreate_is_tag('ran-build-fhi72', imageTag, 'openshift/ran-build-fhi72-is.yaml')
|
||||
self._recreate_bc('ran-build-fhi72', imageTag, 'openshift/ran-build-fhi72-bc.yaml')
|
||||
self._retag_image_statement('ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.build.fhi72.rhel9')
|
||||
ranbuildfhi72_job = self._start_build('ran-build-fhi72')
|
||||
attemptedImages += ['ran-build-fhi72']
|
||||
|
||||
wait = ranbuildfhi72_job is not None and self._wait_build_end([ranbuildfhi72_job], 1200)
|
||||
if not wait: logging.error('error during build of ranbuildfhi72_job')
|
||||
status = status and wait
|
||||
self.cmd.run(f'oc logs {ranbuildfhi72_job} &> cmake_targets/log/ran-build-fhi72.log')
|
||||
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||
|
||||
if status:
|
||||
self._recreate_is_tag('oai-gnb-fhi72', imageTag, 'openshift/oai-gnb-fhi72-is.yaml')
|
||||
self._recreate_bc('oai-gnb-fhi72', imageTag, 'openshift/oai-gnb-fhi72-bc.yaml')
|
||||
self._retag_image_statement('ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.gNB.fhi72.rhel9')
|
||||
self._retag_image_statement('ran-build-fhi72', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-build-fhi72', imageTag, 'docker/Dockerfile.gNB.fhi72.rhel9')
|
||||
gnb_fhi72_job = self._start_build('oai-gnb-fhi72')
|
||||
attemptedImages += ['oai-gnb-fhi72']
|
||||
|
||||
wait = gnb_fhi72_job is not None and self._wait_build_end([gnb_fhi72_job], 600)
|
||||
if not wait: logging.error('error during build of gNB-fhi72')
|
||||
status = status and wait
|
||||
# recover logs
|
||||
self.cmd.run(f'oc logs {gnb_fhi72_job} &> cmake_targets/log/oai-gnb-fhi72.log')
|
||||
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||
|
||||
# split and analyze logs
|
||||
imageSize = {}
|
||||
for image in attemptedImages:
|
||||
|
||||
@@ -58,7 +58,7 @@ import cls_oaicitest
|
||||
# Helper functions used here and in other classes
|
||||
# (e.g., cls_cluster.py)
|
||||
#-----------------------------------------------------------
|
||||
IMAGES = ['oai-enb', 'oai-lte-ru', 'oai-lte-ue', 'oai-gnb', 'oai-nr-cuup', 'oai-gnb-aw2s', 'oai-nr-ue', 'oai-gnb-asan', 'oai-nr-ue-asan', 'oai-nr-cuup-asan', 'oai-gnb-aerial']
|
||||
IMAGES = ['oai-enb', 'oai-lte-ru', 'oai-lte-ue', 'oai-gnb', 'oai-nr-cuup', 'oai-gnb-aw2s', 'oai-nr-ue', 'oai-gnb-asan', 'oai-nr-ue-asan', 'oai-nr-cuup-asan', 'oai-gnb-aerial', 'oai-gnb-fhi72']
|
||||
|
||||
def CreateWorkspace(sshSession, sourcePath, ranRepository, ranCommitID, ranTargetBranch, ranAllowMerge):
|
||||
if ranCommitID == '':
|
||||
@@ -169,6 +169,27 @@ def AnalyzeBuildLogs(buildRoot, images, globalStatus):
|
||||
collectInfo[image] = files
|
||||
return collectInfo
|
||||
|
||||
# pyshark livecapture launches 2 processes:
|
||||
# * One using dumpcap -i lIfs -w - (ie redirecting the packets to STDOUT)
|
||||
# * One using tshark -i - -w loFile (ie capturing from STDIN from previous process)
|
||||
# but in fact the packets are read by the following loop before being in fact
|
||||
# really written to loFile.
|
||||
# So it is mandatory to keep the loop
|
||||
def LaunchPySharkCapture(lIfs, lFilter, loFile):
|
||||
capture = pyshark.LiveCapture(interface=lIfs, bpf_filter=lFilter, output_file=loFile, debug=False)
|
||||
for packet in capture.sniff_continuously():
|
||||
pass
|
||||
|
||||
def StopPySharkCapture(testcase):
|
||||
with cls_cmd.LocalCmd() as myCmd:
|
||||
cmd = 'killall tshark'
|
||||
myCmd.run(cmd, reportNonZero=False)
|
||||
cmd = 'killall dumpcap'
|
||||
myCmd.run(cmd, reportNonZero=False)
|
||||
time.sleep(5)
|
||||
cmd = f'mv /tmp/capture_{testcase}.pcap ../cmake_targets/log/{testcase}/.'
|
||||
myCmd.run(cmd, timeout=100, reportNonZero=False)
|
||||
return False
|
||||
#-----------------------------------------------------------
|
||||
# Class Declaration
|
||||
#-----------------------------------------------------------
|
||||
@@ -265,7 +286,7 @@ class Containerize():
|
||||
self.host = result.group(0)
|
||||
if self.host == 'Ubuntu':
|
||||
self.cli = 'docker'
|
||||
self.dockerfileprefix = '.ubuntu20'
|
||||
self.dockerfileprefix = '.ubuntu22'
|
||||
self.cliBuildOptions = ''
|
||||
elif self.host == 'Red Hat':
|
||||
self.cli = 'sudo podman'
|
||||
@@ -298,9 +319,11 @@ class Containerize():
|
||||
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
imageNames.append(('oai-nr-ue', 'nrUE', 'oai-nr-ue-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||
imageNames.append(('ran-build-fhi72', 'build.fhi72', 'ran-build-fhi72', ''))
|
||||
imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', ''))
|
||||
result = re.search('build_cross_arm64', self.imageKind)
|
||||
if result is not None:
|
||||
self.dockerfileprefix = '.ubuntu20.cross-arm64'
|
||||
self.dockerfileprefix = '.ubuntu22.cross-arm64'
|
||||
|
||||
# Workaround for some servers, we need to erase completely the workspace
|
||||
if self.forcedWorkspaceCleanup:
|
||||
@@ -388,13 +411,15 @@ class Containerize():
|
||||
# target images should use the proper ran-build image
|
||||
if image != 'ran-build' and "-asan" in name:
|
||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build-asan:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
elif "fhi72" in name:
|
||||
cmd.run(f'sed -i -e "s#ran-build-fhi72:latest#ran-build-fhi72:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
elif image != 'ran-build':
|
||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||
if image == 'oai-gnb-aerial':
|
||||
cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2023.11.28.tar.gz .')
|
||||
cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2024.05.23.tar.gz .')
|
||||
ret = cmd.run(f'{self.cli} build {self.cliBuildOptions} --target {image} --tag {name}:{imageTag} --file docker/Dockerfile.{pattern}{self.dockerfileprefix} {option} . > cmake_targets/log/{name}.log 2>&1', timeout=1200)
|
||||
if image == 'oai-gnb-aerial':
|
||||
cmd.run('rm -f nvipc_src.2023.11.28.tar.gz')
|
||||
cmd.run('rm -f nvipc_src.2024.05.23.tar.gz')
|
||||
if image == 'ran-build' and ret.returncode == 0:
|
||||
cmd.run(f"docker run --name test-log -d {name}:{imageTag} /bin/true")
|
||||
cmd.run(f"docker cp test-log:/oai-ran/cmake_targets/log/ cmake_targets/log/{name}/")
|
||||
@@ -424,7 +449,7 @@ class Containerize():
|
||||
cmd.run(f"{self.cli} image prune --force")
|
||||
|
||||
# Remove all intermediate build images and clean up
|
||||
cmd.run(f"{self.cli} image rm ran-build:{imageTag} ran-build-asan:{imageTag}")
|
||||
cmd.run(f"{self.cli} image rm ran-build:{imageTag} ran-build-asan:{imageTag} ran-build-fhi72:{imageTag} || true")
|
||||
cmd.run(f"{self.cli} volume prune --force")
|
||||
|
||||
# Remove some cached artifacts to prevent out of diskspace problem
|
||||
@@ -647,7 +672,7 @@ class Containerize():
|
||||
cmd.run(f'git diff HEAD..origin/develop -- cmake_targets/build_oai cmake_targets/tools/build_helper docker/Dockerfile.base{self.dockerfileprefix} | grep --colour=never -i INDEX')
|
||||
result = re.search('index', cmd.getBefore())
|
||||
if result is not None:
|
||||
baseTag = 'develop'
|
||||
baseTag = 'ci-temp'
|
||||
ret = cmd.run(f"docker image inspect --format=\'Size = {{{{.Size}}}} bytes\' {baseImage}:{baseTag}")
|
||||
if ret.returncode != 0:
|
||||
logging.error(f'No {baseImage} image present, cannot build tests')
|
||||
@@ -656,9 +681,11 @@ class Containerize():
|
||||
return False
|
||||
|
||||
# build ran-unittests image
|
||||
dockerfile = "ci-scripts/docker/Dockerfile.unittest.ubuntu20"
|
||||
dockerfile = "ci-scripts/docker/Dockerfile.unittest.ubuntu22"
|
||||
ret = cmd.run(f'docker build --progress=plain --tag ran-unittests:{baseTag} --file {dockerfile} . &> {lSourcePath}/cmake_targets/log/unittest-build.log')
|
||||
if ret.returncode != 0:
|
||||
build_log_name = f'build_log_{self.testCase_id}'
|
||||
CopyLogsToExecutor(cmd, lSourcePath, build_log_name)
|
||||
logging.error(f'Cannot build unit tests')
|
||||
HTML.CreateHtmlTestRow("Unit test build failed", 'KO', [dockerfile])
|
||||
HTML.CreateHtmlTabFooter(False)
|
||||
@@ -667,8 +694,8 @@ class Containerize():
|
||||
HTML.CreateHtmlTestRowQueue("Build unit tests", 'OK', [dockerfile])
|
||||
|
||||
# it worked, build and execute tests, and close connection
|
||||
ret = cmd.run(f'docker run -a STDOUT --rm ran-unittests:develop ctest --output-on-failure --no-label-summary -j$(nproc)')
|
||||
cmd.run(f'docker rmi ran-unittests:develop')
|
||||
ret = cmd.run(f'docker run -a STDOUT --rm ran-unittests:{baseTag} ctest --output-on-failure --no-label-summary -j$(nproc)')
|
||||
cmd.run(f'docker rmi ran-unittests:{baseTag}')
|
||||
build_log_name = f'build_log_{self.testCase_id}'
|
||||
CopyLogsToExecutor(cmd, lSourcePath, build_log_name)
|
||||
cmd.close()
|
||||
@@ -876,9 +903,7 @@ class Containerize():
|
||||
mySSH.command(f'docker compose --file ci-docker-compose.yml up -d -- {svcName}', '\$', 30)
|
||||
|
||||
# Checking Status
|
||||
grep = ''
|
||||
if svcName != '': grep = f' | grep -A3 --color=never {svcName}'
|
||||
mySSH.command(f'docker compose --file ci-docker-compose.yml config {grep}', '\$', 5)
|
||||
mySSH.command(f'docker compose --file ci-docker-compose.yml config {svcName}', '\$', 5)
|
||||
result = re.search('container_name: (?P<container_name>[a-zA-Z0-9\-\_]+)', mySSH.getBefore())
|
||||
unhealthyNb = 0
|
||||
healthyNb = 0
|
||||
@@ -1000,18 +1025,18 @@ class Containerize():
|
||||
for s in allServices:
|
||||
# outputs the hash if the container is running
|
||||
ret = mySSH.run(f'docker compose -f {yamlDir}/ci-docker-compose.yml ps --all --quiet -- {s}')
|
||||
running = ret.stdout.splitlines()
|
||||
logging.debug(f'running services: {running}')
|
||||
c = ret.stdout
|
||||
logging.debug(f'running service {s} with container id {c}')
|
||||
if ret.stdout != "" and ret.returncode == 0: # something is running for that service
|
||||
services.append(s)
|
||||
logging.info(f'stopping services {services}')
|
||||
services.append((s, c))
|
||||
logging.info(f'stopping services {[s for s, _ in services]}')
|
||||
|
||||
mySSH.run(f'docker compose -f {yamlDir}/ci-docker-compose.yml stop -t3')
|
||||
copyin_res = True
|
||||
for svcName in services:
|
||||
for service_name, container_id in services:
|
||||
# head -n -1 suppresses the final "X exited with status code Y"
|
||||
filename = f'{svcName}-{HTML.testCase_id}.log'
|
||||
mySSH.run(f'docker compose -f {yamlDir}/ci-docker-compose.yml logs --no-log-prefix -- {svcName} &> {lSourcePath}/cmake_targets/log/{filename}')
|
||||
filename = f'{service_name}-{HTML.testCase_id}.log'
|
||||
mySSH.run(f'docker logs {container_id} &> {lSourcePath}/cmake_targets/log/{filename}')
|
||||
copyin_res = mySSH.copyin(f'{lSourcePath}/cmake_targets/log/{filename}', f'{filename}') and copyin_res
|
||||
|
||||
mySSH.run(f'docker compose -f {yamlDir}/ci-docker-compose.yml down -v')
|
||||
@@ -1022,7 +1047,7 @@ class Containerize():
|
||||
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.ENB_PROCESS_NOLOGFILE_TO_ANALYZE)
|
||||
self.exitStatus = 1
|
||||
# use function for UE log analysis, when oai-nr-ue container is used
|
||||
elif 'oai-nr-ue' in services or 'lte_ue0' in services:
|
||||
elif any(service_name == 'oai-nr-ue' or service_name == 'lte_ue0' for service_name, _ in services):
|
||||
self.exitStatus == 0
|
||||
logging.debug(f'Analyzing UE logfile {filename}')
|
||||
logStatus = cls_oaicitest.OaiCiTest().AnalyzeLogFile_UE(f'{filename}', HTML, RAN)
|
||||
@@ -1032,12 +1057,12 @@ class Containerize():
|
||||
else:
|
||||
HTML.CreateHtmlTestRow('UE log Analysis', 'OK', CONST.ALL_PROCESSES_OK)
|
||||
else:
|
||||
for svcName in services:
|
||||
if svcName == 'nv-cubb':
|
||||
for service_name, _ in services:
|
||||
if service_name == 'nv-cubb':
|
||||
msg = 'Undeploy PNF/Nvidia CUBB'
|
||||
HTML.CreateHtmlTestRow(msg, 'OK', CONST.ALL_PROCESSES_OK)
|
||||
else:
|
||||
filename = f'{svcName}-{HTML.testCase_id}.log'
|
||||
filename = f'{service_name}-{HTML.testCase_id}.log'
|
||||
logging.debug(f'\u001B[1m Analyzing logfile {filename}\u001B[0m')
|
||||
logStatus = RAN.AnalyzeLogFile_eNB(filename, HTML, self.ran_checkers)
|
||||
if (logStatus < 0):
|
||||
@@ -1183,17 +1208,6 @@ class Containerize():
|
||||
self.UndeployGenObject(HTML, RAN, UE)
|
||||
self.exitStatus = 1
|
||||
|
||||
# pyshark livecapture launches 2 processes:
|
||||
# * One using dumpcap -i lIfs -w - (ie redirecting the packets to STDOUT)
|
||||
# * One using tshark -i - -w loFile (ie capturing from STDIN from previous process)
|
||||
# but in fact the packets are read by the following loop before being in fact
|
||||
# really written to loFile.
|
||||
# So it is mandatory to keep the loop
|
||||
def LaunchPySharkCapture(self, lIfs, lFilter, loFile):
|
||||
capture = pyshark.LiveCapture(interface=lIfs, bpf_filter=lFilter, output_file=loFile, debug=False)
|
||||
for packet in capture.sniff_continuously():
|
||||
pass
|
||||
|
||||
def CaptureOnDockerNetworks(self):
|
||||
myCmd = cls_cmd.LocalCmd(d = self.yamlPath[0])
|
||||
cmd = 'docker-compose -f docker-compose-ci.yml config | grep com.docker.network.bridge.name | sed -e "s@^.*name: @@"'
|
||||
@@ -1218,7 +1232,7 @@ class Containerize():
|
||||
myCmd.run(cmd, timeout=5, reportNonZero=False)
|
||||
myCmd.close()
|
||||
return
|
||||
x = threading.Thread(target = self.LaunchPySharkCapture, args = (interfaces,capture_filter,output_file,))
|
||||
x = threading.Thread(target = LaunchPySharkCapture, args = (interfaces,capture_filter,output_file,))
|
||||
x.daemon = True
|
||||
x.start()
|
||||
|
||||
@@ -1307,21 +1321,9 @@ class Containerize():
|
||||
HTML.CreateHtmlTestRow('UE log Analysis', 'KO', logStatus)
|
||||
else:
|
||||
HTML.CreateHtmlTestRow('UE log Analysis', 'OK', CONST.ALL_PROCESSES_OK)
|
||||
|
||||
if self.tsharkStarted:
|
||||
self.tsharkStarted = True
|
||||
cmd = 'killall tshark'
|
||||
myCmd2.run(cmd, reportNonZero=False)
|
||||
cmd = 'killall dumpcap'
|
||||
myCmd2.run(cmd, reportNonZero=False)
|
||||
time.sleep(5)
|
||||
ymlPath = self.yamlPath[0].split('/')
|
||||
# The working dir is still logPath
|
||||
cmd = f'mv /tmp/capture_{ymlPath[1]}.pcap .'
|
||||
myCmd2.run(cmd, timeout=100, reportNonZero=False)
|
||||
self.tsharkStarted = False
|
||||
myCmd2.close()
|
||||
|
||||
if self.tsharkStarted:
|
||||
self.tsharkStarted = StopPySharkCapture(ymlPath[1])
|
||||
logging.debug('\u001B[1m Undeploying \u001B[0m')
|
||||
logging.debug(f'Working dir is back {self.yamlPath[0]}')
|
||||
cmd = 'docker-compose -f docker-compose-ci.yml down -v'
|
||||
|
||||
@@ -65,6 +65,8 @@ class Module_UE:
|
||||
self.logStore = m.get('LogStore')
|
||||
self.cmd_prefix = m.get('CmdPrefix')
|
||||
self.runIperf3Server = m.get('RunIperf3Server', True)
|
||||
self.namespace = m.get('Namespace')
|
||||
self.cnPath = m.get('CNPath')
|
||||
logging.info(f'initialized {self.module_name}@{self.host} from {filename}')
|
||||
|
||||
def __str__(self):
|
||||
@@ -190,6 +192,12 @@ class Module_UE:
|
||||
def getHost(self):
|
||||
return self.host
|
||||
|
||||
def getNamespace(self):
|
||||
return self.namespace
|
||||
|
||||
def getCNPath(self):
|
||||
return self.cnPath
|
||||
|
||||
def getRunIperf3Server(self):
|
||||
return self.runIperf3Server
|
||||
|
||||
|
||||
@@ -66,26 +66,28 @@ import numpy as np
|
||||
def Iperf_ComputeModifiedBW(idx, ue_num, profile, args):
|
||||
result = re.search('-b\s*(?P<iperf_bandwidth>[0-9\.]+)(?P<unit>[KMG])', str(args))
|
||||
if result is None:
|
||||
raise Exception('Iperf bandwidth not found or in incorrect format!')
|
||||
iperf_bandwidth = result.group('iperf_bandwidth')
|
||||
raise ValueError(f'requested iperf bandwidth not found in iperf options "{args}"')
|
||||
iperf_bandwidth = float(result.group('iperf_bandwidth'))
|
||||
if iperf_bandwidth == 0:
|
||||
raise ValueError('iperf bandwidth set to 0 - invalid value')
|
||||
if profile == 'balanced':
|
||||
iperf_bandwidth_new = float(iperf_bandwidth)/ue_num
|
||||
if profile == 'single-ue':
|
||||
iperf_bandwidth_new = float(iperf_bandwidth)
|
||||
iperf_bandwidth_new = iperf_bandwidth/ue_num
|
||||
if profile =='single-ue':
|
||||
iperf_bandwidth_new = iperf_bandwidth
|
||||
if profile == 'unbalanced':
|
||||
# residual is 2% of max bw
|
||||
residualBW = float(iperf_bandwidth) / 50
|
||||
residualBW = iperf_bandwidth / 50
|
||||
if idx == 0:
|
||||
iperf_bandwidth_new = float(iperf_bandwidth) - ((ue_num - 1) * residualBW)
|
||||
iperf_bandwidth_new = iperf_bandwidth - ((ue_num - 1) * residualBW)
|
||||
else:
|
||||
iperf_bandwidth_new = residualBW
|
||||
iperf_bandwidth_str = result.group(0)
|
||||
iperf_bandwidth_unit = result.group(2)
|
||||
iperf_bandwidth_str_new = f"-b {'%.2f' % iperf_bandwidth_new}{iperf_bandwidth_unit}"
|
||||
result = re.sub(iperf_bandwidth_str, iperf_bandwidth_str_new, str(args))
|
||||
if result is None:
|
||||
raise Exception('Calculate Iperf bandwidth failed!')
|
||||
return result
|
||||
args_new = re.sub(iperf_bandwidth_str, iperf_bandwidth_str_new, str(args))
|
||||
if iperf_bandwidth_unit == 'K':
|
||||
iperf_bandwidth_new = iperf_bandwidth_new / 1000
|
||||
return iperf_bandwidth_new, args_new
|
||||
|
||||
def Iperf_ComputeTime(args):
|
||||
result = re.search('-t\s*(?P<iperf_time>\d+)', str(args))
|
||||
@@ -94,45 +96,44 @@ def Iperf_ComputeTime(args):
|
||||
return int(result.group('iperf_time'))
|
||||
|
||||
def Iperf_analyzeV3TCPJson(filename, iperf_tcp_rate_target):
|
||||
if (not os.path.isfile(filename)):
|
||||
return (False, 'Iperf3 TCP: Log file not present')
|
||||
if (os.path.getsize(filename)==0):
|
||||
return (False, 'Iperf3 TCP: Log file is empty')
|
||||
|
||||
with open(filename) as file:
|
||||
filename = json.load(file)
|
||||
try:
|
||||
sender_bitrate = round(filename['end']['streams'][0]['sender']['bits_per_second']/1000000,2)
|
||||
receiver_bitrate = round(filename['end']['streams'][0]['receiver']['bits_per_second']/1000000,2)
|
||||
except Exception as e:
|
||||
return (False, 'Could not compute Iperf3 bitrate!')
|
||||
|
||||
try:
|
||||
with open(filename) as f:
|
||||
results = json.load(f)
|
||||
sender_bitrate = round(results['end']['streams'][0]['sender']['bits_per_second'] / 1000000, 2)
|
||||
receiver_bitrate = round(results['end']['streams'][0]['receiver']['bits_per_second'] / 1000000, 2)
|
||||
except json.JSONDecodeError as e:
|
||||
return (False, f'Could not decode JSON log file {filename}: {e}')
|
||||
except KeyError as e:
|
||||
e_msg = results.get('error', f'error report not found in {filename}')
|
||||
return (False, f'While parsing Iperf3 results: missing key {e}, {e_msg}')
|
||||
except Exception as e:
|
||||
return (False, f'While parsing Iperf3 results: exception: {e}')
|
||||
snd_msg = f'Sender Bitrate : {sender_bitrate} Mbps'
|
||||
rcv_msg = f'Receiver Bitrate : {receiver_bitrate} Mbps'
|
||||
success = True
|
||||
if (iperf_tcp_rate_target is not None):
|
||||
if (int(receiver_bitrate) < int(iperf_tcp_rate_target)):
|
||||
rcv_msg += f" (too low! < {iperf_tcp_rate_target} Mbps)"
|
||||
success = False
|
||||
if iperf_tcp_rate_target is not None:
|
||||
success = float(receiver_bitrate) >= float(iperf_tcp_rate_target)
|
||||
if success:
|
||||
rcv_msg += f" (target: {iperf_tcp_rate_target})"
|
||||
else:
|
||||
rcv_msg += f" (target : {iperf_tcp_rate_target} Mbps)"
|
||||
rcv_msg += f" (too low! < {iperf_tcp_rate_target})"
|
||||
return(success, f'{snd_msg}\n{rcv_msg}')
|
||||
|
||||
def Iperf_analyzeV3BIDIRJson(filename):
|
||||
if (not os.path.isfile(filename)):
|
||||
return (False, 'Iperf3 Bidir TCP: Log file not present')
|
||||
if (os.path.getsize(filename)==0):
|
||||
return (False, 'Iperf3 Bidir TCP: Log file is empty')
|
||||
|
||||
with open(filename) as file:
|
||||
filename = json.load(file)
|
||||
try:
|
||||
sender_bitrate_dl = round(filename['end']['streams'][0]['sender']['bits_per_second']/1000000,2)
|
||||
receiver_bitrate_dl = round(filename['end']['streams'][0]['receiver']['bits_per_second']/1000000,2)
|
||||
sender_bitrate_ul = round(filename['end']['streams'][1]['sender']['bits_per_second']/1000000,2)
|
||||
receiver_bitrate_ul = round(filename['end']['streams'][1]['receiver']['bits_per_second']/1000000,2)
|
||||
except Exception as e:
|
||||
return (False, 'Could not compute BIDIR bitrate!')
|
||||
try:
|
||||
with open(filename) as f:
|
||||
results = json.load(f)
|
||||
sender_bitrate_ul = round(results['end']['streams'][0]['sender']['bits_per_second'] / 1000000, 2)
|
||||
receiver_bitrate_ul = round(results['end']['streams'][0]['receiver']['bits_per_second'] / 1000000, 2)
|
||||
sender_bitrate_dl = round(results['end']['streams'][1]['sender']['bits_per_second'] / 1000000, 2)
|
||||
receiver_bitrate_dl = round(results['end']['streams'][1]['receiver']['bits_per_second'] / 1000000, 2)
|
||||
except json.JSONDecodeError as e:
|
||||
return (False, f'Could not decode JSON log file: {e}')
|
||||
except KeyError as e:
|
||||
e_msg = results.get('error', f'error report not found in {filename}')
|
||||
return (False, f'While parsing Iperf3 results: missing key {e}, {e_msg}')
|
||||
except Exception as e:
|
||||
return (False, f'While parsing Iperf3 results: exception: {e}')
|
||||
|
||||
msg = f'Sender Bitrate DL : {sender_bitrate_dl} Mbps\n'
|
||||
msg += f'Receiver Bitrate DL : {receiver_bitrate_dl} Mbps\n'
|
||||
@@ -140,7 +141,7 @@ def Iperf_analyzeV3BIDIRJson(filename):
|
||||
msg += f'Receiver Bitrate UL : {receiver_bitrate_ul} Mbps\n'
|
||||
return (True, msg)
|
||||
|
||||
def Iperf_analyzeV3UDP(filename, iperf_bitrate_threshold, iperf_packetloss_threshold):
|
||||
def Iperf_analyzeV3UDP(filename, iperf_bitrate_threshold, iperf_packetloss_threshold, target_bitrate):
|
||||
if (not os.path.isfile(filename)):
|
||||
return (False, 'Iperf3 UDP: Log file not present')
|
||||
if (os.path.getsize(filename)==0):
|
||||
@@ -171,15 +172,15 @@ def Iperf_analyzeV3UDP(filename, iperf_bitrate_threshold, iperf_packetloss_thres
|
||||
sender_bitrate = float(sender_bitrate) / 1000
|
||||
if receiver_unit == 'Kbits/sec':
|
||||
receiver_bitrate = float(receiver_bitrate) / 1000
|
||||
br_perf = 100 * float(receiver_bitrate) / float(sender_bitrate)
|
||||
br_perf = 100 * float(receiver_bitrate) / float(target_bitrate)
|
||||
br_perf = '%.2f ' % br_perf
|
||||
sender_bitrate = '%.2f ' % float(sender_bitrate)
|
||||
receiver_bitrate = '%.2f ' % float(receiver_bitrate)
|
||||
req_msg = f'Sender Bitrate : {sender_bitrate} Mbps'
|
||||
bir_msg = f'Receiver Bitrate : {receiver_bitrate} Mbps'
|
||||
req_msg = f'Sender Bitrate : {sender_bitrate} Mbps'
|
||||
bir_msg = f'Receiver Bitrate: {receiver_bitrate} Mbps'
|
||||
brl_msg = f'{br_perf}%'
|
||||
jit_msg = f'Jitter : {receiver_jitter}'
|
||||
pal_msg = f'Packet Loss : {receiver_packetloss} %'
|
||||
jit_msg = f'Jitter : {receiver_jitter}'
|
||||
pal_msg = f'Packet Loss : {receiver_packetloss} %'
|
||||
if float(br_perf) < float(iperf_bitrate_threshold):
|
||||
brl_msg = f'too low! < {iperf_bitrate_threshold}%'
|
||||
if float(receiver_packetloss) > float(iperf_packetloss_threshold):
|
||||
@@ -189,29 +190,19 @@ def Iperf_analyzeV3UDP(filename, iperf_bitrate_threshold, iperf_packetloss_thres
|
||||
else:
|
||||
return (False, 'Could not analyze iperf report')
|
||||
|
||||
def Iperf_analyzeV2UDP(server_filename, iperf_bitrate_threshold, iperf_packetloss_threshold, iperf_opt):
|
||||
def Iperf_analyzeV2UDP(server_filename, iperf_bitrate_threshold, iperf_packetloss_threshold, target_bitrate):
|
||||
result = None
|
||||
if (not os.path.isfile(server_filename)):
|
||||
return (False, 'Could not analyze, server report not found!')
|
||||
return (False, 'Iperf UDP: Server report not found!')
|
||||
if (os.path.getsize(server_filename)==0):
|
||||
return (False, 'Iperf UDP: Log file is empty')
|
||||
# Computing the requested bandwidth in float
|
||||
req_bw = 1.0 # default iperf throughput, in Mbps
|
||||
result = re.search('-b *(?P<iperf_bandwidth>[0-9\.]+)(?P<magnitude>[kKMG])', iperf_opt)
|
||||
if result is not None:
|
||||
req_bw = float(result.group('iperf_bandwidth'))
|
||||
magn = result.group('magnitude')
|
||||
if magn == "k" or magn == "K":
|
||||
req_bw /= 1000
|
||||
elif magn == "G":
|
||||
req_bw *= 1000
|
||||
statusTemplate = '(?:|\[ *\d+\].*) +0\.0-\s*(?P<duration>[0-9\.]+) +sec +[0-9\.]+ [kKMG]Bytes +(?P<bitrate>[0-9\.]+) (?P<magnitude>[kKMG])bits\/sec +(?P<jitter>[0-9\.]+) ms +(\d+\/ *\d+) +(\((?P<packetloss>[0-9\.]+)%\))'
|
||||
|
||||
statusTemplate = r'(?:|\[ *\d+\].*) +0\.0-\s*(?P<duration>[0-9\.]+) +sec +[0-9\.]+ [kKMG]Bytes +(?P<bitrate>[0-9\.]+) (?P<magnitude>[kKMG])bits\/sec +(?P<jitter>[0-9\.]+) ms +(\d+\/ *\d+) +(\((?P<packetloss>[0-9\.]+)%\))'
|
||||
with open(server_filename, 'r') as server_file:
|
||||
for line in server_file.readlines():
|
||||
res = re.search(statusTemplate, str(line))
|
||||
if res is not None:
|
||||
result = res
|
||||
result = re.search(statusTemplate, str(line))
|
||||
if result is None:
|
||||
return (False, 'Could not parse server report!')
|
||||
|
||||
bitrate = float(result.group('bitrate'))
|
||||
magn = result.group('magnitude')
|
||||
if magn == "k" or magn == "K":
|
||||
@@ -220,16 +211,16 @@ def Iperf_analyzeV2UDP(server_filename, iperf_bitrate_threshold, iperf_packetlos
|
||||
bitrate *= 1000
|
||||
jitter = float(result.group('jitter'))
|
||||
packetloss = float(result.group('packetloss'))
|
||||
br_perf = float(bitrate)/float(req_bw) * 100
|
||||
br_perf = float(bitrate)/float(target_bitrate) * 100
|
||||
br_perf = '%.2f ' % br_perf
|
||||
|
||||
result = float(br_perf) >= float(iperf_bitrate_threshold) and float(packetloss) <= float(iperf_packetloss_threshold)
|
||||
req_msg = f'Req Bitrate : {req_bw}'
|
||||
bir_msg = f'Bitrate : {bitrate}'
|
||||
req_msg = f'Req Bitrate : {target_bitrate}'
|
||||
bir_msg = f'Bitrate : {bitrate}'
|
||||
brl_msg = f'Bitrate Perf: {br_perf} %'
|
||||
if float(br_perf) < float(iperf_bitrate_threshold):
|
||||
brl_msg += f' (too low! <{iperf_bitrate_threshold}%)'
|
||||
jit_msg = f'Jitter : {jitter}'
|
||||
jit_msg = f'Jitter : {jitter}'
|
||||
pal_msg = f'Packet Loss : {packetloss}'
|
||||
if float(packetloss) > float(iperf_packetloss_threshold):
|
||||
pal_msg += f' (too high! >{self.iperf_packetloss_threshold}%)'
|
||||
@@ -796,12 +787,10 @@ class OaiCiTest():
|
||||
udpIperf = re.search('-u', iperf_opt) is not None
|
||||
bidirIperf = re.search('--bidir', iperf_opt) is not None
|
||||
client_filename = f'iperf_client_{self.testCase_id}_{ue.getName()}.log'
|
||||
server_filename = f'iperf_server_{self.testCase_id}_{ue.getName()}.log'
|
||||
ymlPath = CONTAINERS.yamlPath[0].split('/')
|
||||
logPath = f'../cmake_targets/log/{ymlPath[1]}'
|
||||
|
||||
if udpIperf:
|
||||
iperf_opt = Iperf_ComputeModifiedBW(idx, ue_num, self.iperf_profile, self.iperf_args)
|
||||
target_bitrate, iperf_opt = Iperf_ComputeModifiedBW(idx, ue_num, self.iperf_profile, self.iperf_args)
|
||||
# note: for UDP testing we don't want to use json report - reports 0 Mbps received bitrate
|
||||
jsonReport = ""
|
||||
# note: enable server report collection on the UE side, no need to store and collect server report separately on the server side
|
||||
@@ -811,35 +800,29 @@ class OaiCiTest():
|
||||
# hack: the ADB UEs don't have iperf in $PATH, so we need to hardcode for the moment
|
||||
iperf_ue = '/data/local/tmp/iperf3' if re.search('adb', ue.getName()) else 'iperf3'
|
||||
ue_header = f'UE {ue.getName()} ({ueIP})'
|
||||
|
||||
if svr.getName() == "rfsim4g_enb_fembms":
|
||||
with cls_cmd.getConnection(ue.getHost()) as cmd_ue, cls_cmd.getConnection(EPC.IPAddress) as cmd_svr:
|
||||
port = 5002 + idx
|
||||
cmd_ue.run(f'{ue.getCmdPrefix()} iperf -B {ueIP} -s -u -i1 >> {server_filename} &', timeout=iperf_time*1.5)
|
||||
cmd_svr.run(f'{svr.getCmdPrefix()} iperf -c {ueIP} -B {svrIP} {iperf_opt} -i1 2>&1 | tee {client_filename}', timeout=iperf_time*1.5)
|
||||
cmd_ue.run(f'cp {client_filename} {logPath}/{client_filename}')
|
||||
cmd_ue.run(f'cp {server_filename} {logPath}/{server_filename}')
|
||||
status, msg = Iperf_analyzeV2UDP(server_filename, self.iperf_bitrate_threshold, self.iperf_packetloss_threshold, iperf_opt)
|
||||
# create log directory on executor node
|
||||
with cls_cmd.getConnection('localhost') as local:
|
||||
local.run(f'mkdir -p {logPath}')
|
||||
with cls_cmd.getConnection(ue.getHost()) as cmd_ue, cls_cmd.getConnection(EPC.IPAddress) as cmd_svr:
|
||||
port = 5002 + idx
|
||||
# note: some core setups start an iperf3 server automatically, indicated in ci_infra by runIperf3Server: False`
|
||||
t = iperf_time * 2.5
|
||||
cmd_ue.run(f'rm /tmp/{client_filename}', reportNonZero=False)
|
||||
if runIperf3Server:
|
||||
cmd_svr.run(f'{svr.getCmdPrefix()} nohup timeout -vk3 {t} iperf3 -s -B {svrIP} -p {port} -1 {jsonReport} &', timeout=t)
|
||||
cmd_ue.run(f'{ue.getCmdPrefix()} timeout -vk3 {t} {iperf_ue} -B {ueIP} -c {svrIP} -p {port} {iperf_opt} {jsonReport} {serverReport} -O 5 >> /tmp/{client_filename}', timeout=t)
|
||||
localPath = f'{os.getcwd()}'
|
||||
# note: copy iperf3 log to the directory for log collection, used by pipelines running on executor machine
|
||||
cmd_ue.copyin(f'/tmp/{client_filename}', f'{localPath}/{logPath}/{client_filename}')
|
||||
# note: copy iperf3 log to the current directory for log analysis and log collection
|
||||
cmd_ue.copyin(f'/tmp/{client_filename}', f'{localPath}/{client_filename}')
|
||||
cmd_ue.run(f'rm /tmp/{client_filename}', reportNonZero=False)
|
||||
if udpIperf:
|
||||
status, msg = Iperf_analyzeV3UDP(client_filename, self.iperf_bitrate_threshold, self.iperf_packetloss_threshold, target_bitrate)
|
||||
elif bidirIperf:
|
||||
status, msg = Iperf_analyzeV3BIDIRJson(client_filename)
|
||||
else:
|
||||
with cls_cmd.getConnection(ue.getHost()) as cmd_ue, cls_cmd.getConnection(EPC.IPAddress) as cmd_svr:
|
||||
port = 5002 + idx
|
||||
# note: some core setups start an iperf3 server automatically, indicated in ci_infra by runIperf3Server: False`
|
||||
if runIperf3Server:
|
||||
cmd_svr.run(f'{svr.getCmdPrefix()} nohup iperf3 -s -B {svrIP} -p {port} -1 {jsonReport} &', timeout=iperf_time*1.5)
|
||||
cmd_ue.run(f'rm /tmp/{client_filename}', reportNonZero=False)
|
||||
cmd_ue.run(f'{ue.getCmdPrefix()} {iperf_ue} -B {ueIP} -c {svrIP} -p {port} {iperf_opt} {jsonReport} {serverReport} -O 5 >> /tmp/{client_filename}', timeout=iperf_time*1.5)
|
||||
if svr.getHost() == 'localhost':
|
||||
cmd_ue.run(f'mkdir -p {logPath}')
|
||||
cmd_ue.run(f'cp /tmp/{client_filename} {logPath}/{client_filename}')
|
||||
cmd_ue.run(f'cp /tmp/{client_filename} {client_filename}')
|
||||
else:
|
||||
cmd_ue.copyin(f'/tmp/{client_filename}', client_filename)
|
||||
if udpIperf:
|
||||
status, msg = Iperf_analyzeV3UDP(client_filename, self.iperf_bitrate_threshold, self.iperf_packetloss_threshold)
|
||||
elif bidirIperf:
|
||||
status, msg = Iperf_analyzeV3BIDIRJson(client_filename)
|
||||
else:
|
||||
status, msg = Iperf_analyzeV3TCPJson(client_filename, self.iperf_tcp_rate_target)
|
||||
status, msg = Iperf_analyzeV3TCPJson(client_filename, self.iperf_tcp_rate_target)
|
||||
|
||||
logging.info(f'\u001B[1;37;45m iperf result for {ue_header}\u001B[0m')
|
||||
for l in msg.split('\n'):
|
||||
@@ -877,6 +860,46 @@ class OaiCiTest():
|
||||
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', messages)
|
||||
self.AutoTerminateUEandeNB(HTML,RAN,EPC,CONTAINERS)
|
||||
|
||||
def Iperf2_Unidir(self,HTML,RAN,EPC,CONTAINERS):
|
||||
if self.ue_ids == [] or self.svr_id == None or len(self.ue_ids) != 1:
|
||||
raise Exception("no module names in self.ue_ids or/and self.svr_id provided, multi UE scenario not supported")
|
||||
ue = cls_module.Module_UE(self.ue_ids[0].strip())
|
||||
svr = cls_module.Module_UE(self.svr_id)
|
||||
ueIP = ue.getIP()
|
||||
if not ueIP:
|
||||
return (False, f"UE {ue.getName()} has no IP address")
|
||||
svrIP = svr.getIP()
|
||||
if not svrIP:
|
||||
return (False, f"Iperf server {ue.getName()} has no IP address")
|
||||
server_filename = f'iperf_server_{self.testCase_id}_{ue.getName()}.log'
|
||||
ymlPath = CONTAINERS.yamlPath[0].split('/')
|
||||
logPath = f'../cmake_targets/log/{ymlPath[-1]}'
|
||||
iperf_time = Iperf_ComputeTime(self.iperf_args)
|
||||
target_bitrate, iperf_opt = Iperf_ComputeModifiedBW(0, 1, self.iperf_profile, self.iperf_args)
|
||||
t = iperf_time*2.5
|
||||
with cls_cmd.getConnection('localhost') as local:
|
||||
local.run(f'mkdir -p {logPath}')
|
||||
with cls_cmd.getConnection(ue.getHost()) as cmd_ue, cls_cmd.getConnection(EPC.IPAddress) as cmd_svr:
|
||||
cmd_ue.run(f'rm /tmp/{server_filename}', reportNonZero=False)
|
||||
cmd_ue.run(f'{ue.getCmdPrefix()} timeout -vk3 {t} iperf -B {ueIP} -s -u -i1 >> /tmp/{server_filename} &', timeout=t)
|
||||
cmd_svr.run(f'{svr.getCmdPrefix()} timeout -vk3 {t} iperf -c {ueIP} -B {svrIP} {iperf_opt} -i1', timeout=t)
|
||||
localPath = f'{os.getcwd()}'
|
||||
# note: copy iperf2 log to the directory for log collection
|
||||
cmd_ue.copyin(f'/tmp/{server_filename}', f'{localPath}/{logPath}/{server_filename}')
|
||||
# note: copy iperf2 log to the current directory for log analysis and log collection
|
||||
cmd_ue.copyin(f'/tmp/{server_filename}', f'{localPath}/{server_filename}')
|
||||
cmd_ue.run(f'rm /tmp/{server_filename}', reportNonZero=False)
|
||||
success, msg = Iperf_analyzeV2UDP(server_filename, self.iperf_bitrate_threshold, self.iperf_packetloss_threshold, target_bitrate)
|
||||
ue_header = f'UE {ue.getName()} ({ueIP})'
|
||||
logging.info(f'\u001B[1;37;45m iperf result for {ue_header}\u001B[0m')
|
||||
for l in msg.split('\n'):
|
||||
logging.info(f'\u001B[1;35m {l} \u001B[0m')
|
||||
if success:
|
||||
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'OK', [f'{ue_header}\n{msg}'])
|
||||
else:
|
||||
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', [f'{ue_header}\n{msg}'])
|
||||
self.AutoTerminateUEandeNB(HTML,RAN,EPC,CONTAINERS)
|
||||
|
||||
def AnalyzeLogFile_UE(self, UElogFile,HTML,RAN):
|
||||
if (not os.path.isfile(f'./{UElogFile}')):
|
||||
return -1
|
||||
|
||||
@@ -33,9 +33,11 @@ import logging
|
||||
import sshconnection
|
||||
#to update the HTML object
|
||||
import cls_oai_html
|
||||
import cls_cmd
|
||||
from multiprocessing import SimpleQueue
|
||||
#for log folder maintenance
|
||||
import os
|
||||
import re
|
||||
|
||||
class PhySim:
|
||||
def __init__(self):
|
||||
@@ -63,7 +65,7 @@ class PhySim:
|
||||
#PRIVATE Methods
|
||||
#-----------------
|
||||
|
||||
def __CheckResults_LDPCTest(self,HTML,CONST,testcase_id):
|
||||
def __CheckResults_LDPCcudaTest(self,HTML,CONST,testcase_id):
|
||||
mySSH = sshconnection.SSHConnection()
|
||||
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
|
||||
#retrieve run log file and store it locally$
|
||||
@@ -84,42 +86,44 @@ class PhySim:
|
||||
HTML.CreateHtmlTestRowQueue(self.runargs, 'OK', [info])
|
||||
return HTML
|
||||
|
||||
def __CheckResults_LDPCt1Test(self,HTML,CONST,testcase_id):
|
||||
thrs_NOK = 500
|
||||
thrs_KO = 1000
|
||||
mySSH = sshconnection.SSHConnection()
|
||||
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
|
||||
def __CheckResults_LDPCt2Test(self,HTML,CONST,testcase_id):
|
||||
thrs_KO = int(self.timethrs)
|
||||
mySSH = cls_cmd.getConnection(self.eNBIpAddr)
|
||||
#retrieve run log file and store it locally$
|
||||
mySSH.copyin(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord, self.__workSpacePath+self.__runLogFile, '.')
|
||||
mySSH.copyin(f'{self.__workSpacePath}{self.__runLogFile}', f'{self.__runLogFile}')
|
||||
mySSH.close()
|
||||
#parse results looking for Decoding values
|
||||
runResultsT1=[]
|
||||
#parse results looking for encoder/decoder processing time values
|
||||
|
||||
with open(self.__runLogFile) as g:
|
||||
for line in g:
|
||||
if 'decoding time' in line:
|
||||
runResultsT1.append(line)
|
||||
res_enc = re.search(r"DLSCH encoding time\s+(\d+\.\d+)\s+us",line)
|
||||
res_dec = re.search(r'ULSCH total decoding time\s+(\d+\.\d+)\s+us',line)
|
||||
if res_dec is not None:
|
||||
time = res_dec.group(1)
|
||||
info = res_dec.group(0)
|
||||
break
|
||||
if res_enc is not None:
|
||||
time = res_enc.group(1)
|
||||
info = res_enc.group(0)
|
||||
break
|
||||
|
||||
# In case the T1 board does work properly, there is no statistics
|
||||
if len(runResultsT1) == 0:
|
||||
logging.error('no statistics')
|
||||
# In case the T2 board does work properly, there is no statistics
|
||||
if res_enc is None and res_dec is None:
|
||||
logging.error(f'no statistics: res_enc {res_enc} res_dec {res_dec}')
|
||||
HTML.CreateHtmlTestRowQueue(self.runargs, 'KO', ['no statistics'])
|
||||
self.exitStatus = 1
|
||||
os.system('mv '+self.__runLogFile+' '+ self.__runLogPath+'/.')
|
||||
os.system(f'mv {self.__runLogFile} {self.__runLogPath}/.')
|
||||
return HTML
|
||||
|
||||
info = runResultsT1[0][15:-13]
|
||||
result = int(''.join(filter(str.isdigit, info)))/100
|
||||
#once parsed move the local logfile to its folder for tidiness
|
||||
os.system('mv '+self.__runLogFile+' '+ self.__runLogPath+'/.')
|
||||
if result < thrs_NOK:
|
||||
#once parsed move the local logfile to its folder
|
||||
os.system(f'mv {self.__runLogFile} {self.__runLogPath}/.')
|
||||
if float(time) < thrs_KO:
|
||||
HTML.CreateHtmlTestRowQueue(self.runargs, 'OK', [info])
|
||||
elif result > thrs_KO:
|
||||
error_msg = f'Decoding time exceeds a limit of {thrs_KO} us'
|
||||
else:
|
||||
error_msg = f'Processing time exceeds a limit of {thrs_KO} us'
|
||||
logging.error(error_msg)
|
||||
HTML.CreateHtmlTestRowQueue(self.runargs, 'KO', [info + '\n' + error_msg])
|
||||
self.exitStatus = 1
|
||||
else:
|
||||
HTML.CreateHtmlTestRowQueue(self.runargs, 'NOK', [info])
|
||||
return HTML
|
||||
|
||||
def __CheckResults_NRulsimTest(self, HTML, CONST, testcase_id):
|
||||
@@ -228,7 +232,7 @@ class PhySim:
|
||||
return lHTML
|
||||
|
||||
|
||||
def Run_LDPCTest(self,htmlObj,constObj,testcase_id):
|
||||
def Run_CUDATest(self,htmlObj,constObj,testcase_id):
|
||||
self.__workSpacePath = self.eNBSourceCodePath+'/cmake_targets/'
|
||||
#create run logs folder locally
|
||||
os.system('mkdir -p ./'+self.__runLogPath)
|
||||
@@ -243,25 +247,24 @@ class PhySim:
|
||||
mySSH.close()
|
||||
#return updated HTML to main
|
||||
lHTML = cls_oai_html.HTMLManagement()
|
||||
lHTML=self.__CheckResults_LDPCTest(htmlObj,constObj,testcase_id)
|
||||
lHTML=self.__CheckResults_LDPCcudaTest(htmlObj,constObj,testcase_id)
|
||||
return lHTML
|
||||
|
||||
def Run_LDPCt1Test(self,htmlObj,constObj,testcase_id):
|
||||
self.__workSpacePath = self.eNBSourceCodePath+'/cmake_targets/'
|
||||
def Run_T2Test(self,htmlObj,constObj,testcase_id):
|
||||
self.__workSpacePath = f'{self.eNBSourceCodePath}/cmake_targets/'
|
||||
#create run logs folder locally
|
||||
os.system('mkdir -p ./'+self.__runLogPath)
|
||||
os.system(f'mkdir -p ./{self.__runLogPath}')
|
||||
#log file is tc_<testcase_id>.log remotely
|
||||
self.__runLogFile='physim_'+str(testcase_id)+'.log'
|
||||
self.__runLogFile=f'physim_{str(testcase_id)}.log'
|
||||
#open a session for test run
|
||||
mySSH = sshconnection.SSHConnection()
|
||||
mySSH.open(self.eNBIpAddr, self.eNBUserName, self.eNBPassWord)
|
||||
mySSH.command('cd '+self.__workSpacePath,'\$',5)
|
||||
mySSH = cls_cmd.getConnection(self.eNBIpAddr)
|
||||
mySSH.run(f'cd {self.__workSpacePath}')
|
||||
#run and redirect the results to a log file
|
||||
mySSH.command(f'sudo {self.__workSpacePath}ran_build/build/nr_ulsim {self.runargs} > {self.__runLogFile} 2>&1', '\$', 30)
|
||||
mySSH.run(f'sudo {self.__workSpacePath}ran_build/build/{self.runsim} {self.runargs} > {self.__workSpacePath}{self.__runLogFile} 2>&1')
|
||||
mySSH.close()
|
||||
#return updated HTML to main
|
||||
lHTML = cls_oai_html.HTMLManagement()
|
||||
lHTML=self.__CheckResults_LDPCt1Test(htmlObj,constObj,testcase_id)
|
||||
lHTML=self.__CheckResults_LDPCt2Test(htmlObj,constObj,testcase_id)
|
||||
return lHTML
|
||||
|
||||
def Run_NRulsimTest(self, htmlObj, constObj, testcase_id):
|
||||
|
||||
@@ -166,7 +166,7 @@ class PhySim:
|
||||
mySSH.command('oc get pods -o wide -l app=physim | tee -a cmake_targets/log/physim_pods_summary.txt', '\$', 30, resync=True)
|
||||
running_count = mySSH.getBefore().count('Running')
|
||||
completed_count = mySSH.getBefore().count('Completed')
|
||||
if (running_count + completed_count) == 21:
|
||||
if (running_count + completed_count) == 22:
|
||||
logging.debug('\u001B[1m Running the physim test Scenarios\u001B[0m')
|
||||
isRunning = True
|
||||
podNames = re.findall('oai-[\S\d\w]+', mySSH.getBefore())
|
||||
|
||||
@@ -1,227 +0,0 @@
|
||||
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 = 0x1;
|
||||
|
||||
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; } );
|
||||
|
||||
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 = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2160000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
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.61.4";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDRESS";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address, port numbers and SSMode for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
SysInd_port = 7782; #Port Number for System Simulator SysIND Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
remote_s_portc = 50000;
|
||||
local_s_portd = 50011;
|
||||
remote_s_portd = 50010;
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
#scheduler_mode = "fairRR";
|
||||
}
|
||||
);
|
||||
|
||||
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_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config =
|
||||
{
|
||||
global_log_level ="info";
|
||||
pkt_log_level ="debug";
|
||||
#global_log_verbosity ="low";
|
||||
#hw_log_level ="error";
|
||||
#hw_log_verbosity ="low";
|
||||
#phy_log_level ="error";
|
||||
#phy_log_verbosity ="low";
|
||||
mac_log_level ="info";
|
||||
#mac_log_verbosity ="low";
|
||||
#rlc_log_level ="warn";
|
||||
#rlc_log_verbosity ="low";
|
||||
#pdcp_log_level ="analysis";
|
||||
#pdcp_log_verbosity ="low";
|
||||
rrc_log_level ="info";
|
||||
#rrc_log_verbosity ="full";
|
||||
};
|
||||
@@ -1,302 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
# nr_cellid = 0L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 0;
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 12;
|
||||
searchSpaceZero = 10;
|
||||
});
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
# spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 623424;#621312;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 622152; #620040;
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 28875;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
|
||||
# pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 28875;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
|
||||
# rach-ConfigCommon
|
||||
# rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 98;
|
||||
# prach_msg1_FDM
|
||||
# 0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 12;
|
||||
preambleReceivedTargetPower = -90;
|
||||
# preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
# powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
# ra_ReponseWindow
|
||||
# 1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
# ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
# 1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
# oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
# ra_ContentionResolutionTimer
|
||||
# (0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
# prach-RootSequenceIndex_PR
|
||||
# 1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "127.0.0.2";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "127.0.0.2";
|
||||
#GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
#GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "127.0.0.1"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "127.0.0.1"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "127.0.0.1"; #Host for System Simulator VNG Port
|
||||
# Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
# Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "127.0.0.1"; #Host for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
pusch_FailureThres = 100;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
ul_max_mcs = 28;
|
||||
#dl_harq_round_max = 1;
|
||||
#ul_harq_round_max = 1;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pucch0_dtx_threshold = 80;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
sdr_addrs = "mgmt_addr=192.168.20.2,addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="info";
|
||||
};
|
||||
@@ -1,258 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
# nr_cellid = 0L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 18;
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 2;
|
||||
searchSpaceZero = 0;
|
||||
});
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
# spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 620352; # SSB center frequency: 3305.28 MHz
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 620046; # OffsetToPointA=4 # POint A = 3300.69 and kssb=18
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 24; #config shall be 24 PRBs for 10MHZ but OAI does not support 24 PRB
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 6325;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
|
||||
# pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 2;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 24; #config shall be 24 PRBs for 10MHZ but OAI does not support 24 PRB
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 6325;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
|
||||
# rach-ConfigCommon
|
||||
# rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 159;
|
||||
# prach_msg1_FDM
|
||||
# 0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 15;
|
||||
preambleReceivedTargetPower = -90;
|
||||
# preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
# powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
# ra_ReponseWindow
|
||||
# 1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
# ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
# 1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
# one (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
# ra_ContentionResolutionTimer
|
||||
# (0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
# prach-RootSequenceIndex_PR
|
||||
# 1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 2; # SSB index=1 (SIB 1 is in slot 1)
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "127.0.0.2";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "127.0.0.2";
|
||||
#GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
#GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "/tmp/eNBSys.pipe"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "/tmp/eNBSrb.pipe"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "/tmp/eNBVng.pipe"; #Host for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "/tmp/eNBDrb.pipe"; #Host for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo:";
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50601; // vnf p5 port
|
||||
remote_s_portc = 50600; // pnf p5 port [!]
|
||||
local_s_portd = 50611; // vnf p7 port [!]
|
||||
remote_s_portd = 50610; // pnf p7 port [!]
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="debug";
|
||||
pkt_log_level="debug";
|
||||
#hw_log_level ="info";
|
||||
#phy_log_level ="info";
|
||||
#mac_log_level ="info";
|
||||
#rlc_log_level ="info";
|
||||
#pdcp_log_level ="info";
|
||||
#rrc_log_level ="info";
|
||||
#ngap_log_level ="debug";
|
||||
#f1ap_log_level ="info";
|
||||
};
|
||||
@@ -1,302 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
# nr_cellid = 0L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 6;
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 2;
|
||||
searchSpaceZero = 0;
|
||||
});
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
# spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 620352; # SSB center frequency: 3305.28 MHz
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 620058; # OffsetToPointA=4 # POint A = 3300.87 and kssb=6
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 48; #24
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 6325;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
|
||||
# pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 2;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 48; #24;
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 6325;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
|
||||
# rach-ConfigCommon
|
||||
# rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 159;
|
||||
# prach_msg1_FDM
|
||||
# 0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 15;
|
||||
preambleReceivedTargetPower = -90;
|
||||
# preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
# powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
# ra_ReponseWindow
|
||||
# 1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
# ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
# 1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
# one (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
# ra_ContentionResolutionTimer
|
||||
# (0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
# prach-RootSequenceIndex_PR
|
||||
# 1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 2; # SSB index=1 (SIB 1 is in slot 1)
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "127.0.0.2";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "127.0.0.2";
|
||||
#GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
#GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "127.0.0.1"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "127.0.0.1"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "127.0.0.1"; #Host for System Simulator VNG Port
|
||||
# Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
# Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "127.0.0.1"; #Host for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
pusch_FailureThres = 100;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
ul_max_mcs = 28;
|
||||
#dl_harq_round_max = 1;
|
||||
#ul_harq_round_max = 1;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pucch0_dtx_threshold = 80;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
sdr_addrs = "mgmt_addr=192.168.20.2,addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="info";
|
||||
};
|
||||
@@ -1,377 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
min_rxtxtime = 6;
|
||||
|
||||
pdcch_ConfigSIB1 = (
|
||||
{
|
||||
controlResourceSetZero = 12;
|
||||
searchSpaceZero = 0;
|
||||
},
|
||||
{
|
||||
controlResourceSetZero = 12;
|
||||
searchSpaceZero = 0;
|
||||
}
|
||||
);
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
|
||||
absoluteFrequencySSB = 641280;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3600 MHz
|
||||
dl_absoluteFrequencyPointA = 640008;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=27,L=48 (275*(L-1))+RBstart
|
||||
initialDLBWPlocationAndBandwidth = 12952; # 6366 12925 12956 28875 12952
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 12952;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 98;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 13;
|
||||
preambleReceivedTargetPower = -96;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -90;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
},
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 1;
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
|
||||
absoluteFrequencySSB = 641281;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3600 MHz
|
||||
dl_absoluteFrequencyPointA = 640009;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=27,L=48 (275*(L-1))+RBstart
|
||||
initialDLBWPlocationAndBandwidth = 12952; # 6366 12925 12956 28875 12952
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 12952;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 98;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 13;
|
||||
preambleReceivedTargetPower = -96;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -90;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "enp2s0"; //BOND0
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.253.70"; //IP-Address of BOND0
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "enp2s0"; //BOND0
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.253.70"; //IP-Address of BOND0
|
||||
GNB_PORT_FOR_NGU = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 2;
|
||||
local_s_if_name = "lo:";
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50601; // vnf p5 port
|
||||
remote_s_portc = 50600; // pnf p5 port [!]
|
||||
local_s_portd = 50611; // vnf p7 port [!]
|
||||
remote_s_portd = 50610; // pnf p7 port [!]
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
pkt_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
nr_phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
nr_mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
nr_rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
nr_pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
nr_rrc_log_level ="info";
|
||||
ngap_log_level ="info";
|
||||
};
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
log_config = {
|
||||
global_log_level ="info";
|
||||
hw_log_level ="error";
|
||||
nr_phy_log_level ="debug";
|
||||
mac_log_level ="error";
|
||||
nr_mac_log_level ="debug";
|
||||
rlc_log_level ="debug";
|
||||
pdcp_log_level ="debug";
|
||||
rrc_log_level ="debug";
|
||||
nr_rrc_log_level ="debug";
|
||||
nas_log_level ="debug";
|
||||
sdap_log_level ="debug";
|
||||
};
|
||||
|
||||
uicc0 = {
|
||||
imsi = "001010123456063";
|
||||
key = "000102030405060708090A0B0C0D0E0F";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
nssai_sd=0xffffff;
|
||||
use_milenage = 0;
|
||||
}
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "nfapi";
|
||||
local_n_if_name = "lo:";
|
||||
remote_n_address = "127.0.0.1"; //Proxy IP
|
||||
local_n_address = "127.0.0.1";
|
||||
local_n_portc = 50600;
|
||||
remote_n_portc = 50601;
|
||||
local_n_portd = 50610;
|
||||
remote_n_portd = 50611;
|
||||
}
|
||||
);
|
||||
@@ -1,233 +0,0 @@
|
||||
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 = 0x1;
|
||||
|
||||
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; } );
|
||||
|
||||
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 = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2160000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
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.61.4";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDRESS";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address, port numbers and SSMode for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "/tmp/eNBSys.pipe"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "/tmp/eNBSrb.pipe"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "/tmp/eNBVng.pipe"; #Host for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "/tmp/eNBDrb.pipe"; #Host for System Simulator DRB Port
|
||||
SysInd_port = 7782; #Port Number for System Simulator SysIND Port
|
||||
SysInd_host = "/tmp/eNBSysInd.pipe"; #Host for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
remote_s_portc = 50000;
|
||||
local_s_portd = 50011;
|
||||
remote_s_portd = 50010;
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
#scheduler_mode = "fairRR";
|
||||
}
|
||||
);
|
||||
|
||||
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_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config =
|
||||
{
|
||||
global_log_level ="error";
|
||||
pkt_log_level ="info";
|
||||
#global_log_verbosity ="low";
|
||||
#hw_log_level ="error";
|
||||
#hw_log_verbosity ="low";
|
||||
#phy_log_level ="error";
|
||||
#phy_log_verbosity ="low";
|
||||
#mac_log_level ="info";
|
||||
#mac_log_verbosity ="low";
|
||||
#rlc_log_level ="warn";
|
||||
#rlc_log_verbosity ="low";
|
||||
#pdcp_log_level ="analysis";
|
||||
#pdcp_log_verbosity ="low";
|
||||
#rrc_log_level ="info";
|
||||
#rrc_log_verbosity ="full";
|
||||
};
|
||||
@@ -1,329 +0,0 @@
|
||||
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 = 0x1;
|
||||
|
||||
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; } );
|
||||
|
||||
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 = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2160000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
},
|
||||
{
|
||||
node_function = "3GPP_eNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2150000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 1;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
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.61.4";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDRESS";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address, port numbers and SSMode for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "127.0.0.1"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
SysInd_port = 7782; #Port Number for System Simulator SysIND Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 2;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
remote_s_portc = 50000;
|
||||
local_s_portd = 50011;
|
||||
remote_s_portd = 50010;
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
#scheduler_mode = "fairRR";
|
||||
}
|
||||
);
|
||||
|
||||
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_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
#log_config =
|
||||
# {
|
||||
# global_log_level ="debug";
|
||||
# global_log_verbosity ="low";
|
||||
# hw_log_level ="error";
|
||||
# hw_log_verbosity ="low";
|
||||
# phy_log_level ="debug";
|
||||
# phy_log_verbosity ="low";
|
||||
# mac_log_level ="analysis";
|
||||
# mac_log_verbosity ="low";
|
||||
# rlc_log_level ="warn";
|
||||
# rlc_log_verbosity ="low";
|
||||
# pdcp_log_level ="analysis";
|
||||
# pdcp_log_verbosity ="low";
|
||||
# rrc_log_level ="analysis";
|
||||
# rrc_log_verbosity ="full";
|
||||
# };
|
||||
|
||||
log_config =
|
||||
{
|
||||
global_log_level ="error";
|
||||
pkt_log_level ="info";
|
||||
#global_log_verbosity ="low";
|
||||
#hw_log_level ="error";
|
||||
#hw_log_verbosity ="low";
|
||||
#phy_log_level ="error";
|
||||
#phy_log_verbosity ="low";
|
||||
mac_log_level ="info";
|
||||
#mac_log_verbosity ="low";
|
||||
#rlc_log_level ="warn";
|
||||
#rlc_log_verbosity ="low";
|
||||
#pdcp_log_level ="analysis";
|
||||
#pdcp_log_verbosity ="low";
|
||||
rrc_log_level ="info";
|
||||
#rrc_log_verbosity ="full";
|
||||
};
|
||||
|
||||
@@ -1,416 +0,0 @@
|
||||
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 = 0x1;
|
||||
|
||||
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; } );
|
||||
|
||||
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 = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2160000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
},
|
||||
{
|
||||
node_function = "3GPP_eNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2150000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 1;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
},
|
||||
{
|
||||
node_function = "3GPP_eNODEB";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 0;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 1;
|
||||
downlink_frequency = 2150000000L;
|
||||
uplink_frequency_offset = -200000000L;
|
||||
Nid_cell = 2;
|
||||
N_RB_DL = 50;
|
||||
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 = 22;
|
||||
prach_config_index = 3;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 5;
|
||||
prach_freq_offset = 4;
|
||||
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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
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.61.4";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "l2sim-net";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDRESS";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address, port numbers and SSMode for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "/tmp/eNBSys.pipe"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "/tmp/eNBSrb.pipe"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "/tmp/eNBVng.pipe"; #Host for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "/tmp/eNBDrb.pipe"; #Host for System Simulator DRB Port
|
||||
SysInd_port = 7782; #Port Number for System Simulator SysIND Port
|
||||
SysInd_host = "/tmp/eNBSysInd.pipe"; #Host for System Simulator DRB Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 3;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
remote_s_portc = 50000;
|
||||
local_s_portd = 50011;
|
||||
remote_s_portd = 50010;
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
#scheduler_mode = "fairRR";
|
||||
}
|
||||
);
|
||||
|
||||
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_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
#log_config =
|
||||
# {
|
||||
# global_log_level ="debug";
|
||||
# global_log_verbosity ="low";
|
||||
# hw_log_level ="error";
|
||||
# hw_log_verbosity ="low";
|
||||
# phy_log_level ="debug";
|
||||
# phy_log_verbosity ="low";
|
||||
# mac_log_level ="analysis";
|
||||
# mac_log_verbosity ="low";
|
||||
# rlc_log_level ="warn";
|
||||
# rlc_log_verbosity ="low";
|
||||
# pdcp_log_level ="analysis";
|
||||
# pdcp_log_verbosity ="low";
|
||||
# rrc_log_level ="analysis";
|
||||
# rrc_log_verbosity ="full";
|
||||
# };
|
||||
|
||||
log_config =
|
||||
{
|
||||
global_log_level ="info";
|
||||
pkt_log_level ="info";
|
||||
#global_log_verbosity ="low";
|
||||
#hw_log_level ="error";
|
||||
#hw_log_verbosity ="low";
|
||||
#phy_log_level ="error";
|
||||
#phy_log_verbosity ="low";
|
||||
mac_log_level ="info";
|
||||
#mac_log_verbosity ="low";
|
||||
#rlc_log_level ="warn";
|
||||
#rlc_log_verbosity ="low";
|
||||
#pdcp_log_level ="analysis";
|
||||
#pdcp_log_verbosity ="low";
|
||||
rrc_log_level ="info";
|
||||
#rrc_log_verbosity ="full";
|
||||
};
|
||||
|
||||
@@ -1,251 +0,0 @@
|
||||
Active_eNBs = ( "eNB-Eurecom-LTEBox");
|
||||
# Asn1_verbosity, choice in: none, debug, 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; } );
|
||||
|
||||
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 = 7;
|
||||
downlink_frequency = 2685000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
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 = 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 = "192.168.61.149";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
t_reloc_prep = 1000; /* unit: millisecond */
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
t_dc_prep = 1000; /* unit: millisecond */
|
||||
t_dc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "enp2s0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "10.87.0.16";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "enp2s0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "10.87.0.16";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "10.87.0.16";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address, port numbers and SSMode for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
SSMode = 1; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Only SRB_PORT test
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
remote_s_portc = 50000;
|
||||
local_s_portd = 50011;
|
||||
remote_s_portd = 50010;
|
||||
tr_s_preference = "nfapi";
|
||||
tr_n_preference = "local_RRC";
|
||||
scheduler_mode = "fairRR";
|
||||
}
|
||||
);
|
||||
|
||||
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_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config =
|
||||
{
|
||||
global_log_level ="debug";
|
||||
hw_log_level ="debug";
|
||||
phy_log_level ="debug";
|
||||
mac_log_level ="debug";
|
||||
rlc_log_level ="debug";
|
||||
pdcp_log_level ="debug";
|
||||
rrc_log_level ="debug";
|
||||
};
|
||||
@@ -1,37 +0,0 @@
|
||||
log_config = {
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
};
|
||||
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "nfapi";
|
||||
local_n_if_name = "lo";
|
||||
remote_n_address = "127.0.0.1";
|
||||
local_n_address = "127.0.0.1";
|
||||
local_n_portc = 50000;
|
||||
remote_n_portc = 50001;
|
||||
local_n_portd = 50010;
|
||||
remote_n_portd = 50011;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1
|
||||
nb_rx = 1
|
||||
att_tx = 90
|
||||
att_rx = 0;
|
||||
bands = [7,38,42,43];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 125;
|
||||
}
|
||||
);
|
||||
@@ -1,307 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
#nr_cellid = 0L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 6; # (type integer TTCN: p_Kssb)
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 11; # (type ControlResourceSetZero TTCN: p_Coreset0_Index) #p_Coreset0_OffsetRB (expressed in PRB of 30 KHz) depends On p_Coreset0_Index
|
||||
searchSpaceZero = 0; # Cr0_id -> cr0_offset: (0,0) (1,1) (2,2) (3,3) (4,4) (5,0), (6,1) (7,2) (8,3) (9,4) (10,12) (11,14) (12,16) (13,12) (14,14) (15,16)
|
||||
}); # p_offsetCarrierCoreset0 = p_OffsetToPointA/2 - p_OffsetToCarrier - p_Coreset0_OffsetRB
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
# spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 620640; # 3309.6 MHz # (type:ARFCN_VAlueNR TTCN: p_SSB_ARFCN)
|
||||
# absoluteFrequencySSB = 620352; #3305.28 MHZ
|
||||
dl_frequencyBand = 78; # (type:FreqBandIndiactorNR TTCN: p_FreqBandIndicatorNR) as band=78 then p_SSBSubcarrierSpacing=30kHz (38.104)
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 620058; #620040; # (type:ARFCN_VAlueNR TTCN: p_PointA)
|
||||
# dl_absoluteFrequencyPointA = 620058; # p_OffsetToPointA= (p_SSB_ARFCN-p_kssb-p_PointA)/12 - 10*p_SSBSubcarrierSpacing/15Khz - p_SubCarrierSpacing/15KHz*p_OffsetToCarrier = 28 (PRB of 15 kHz SCS)
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0; # (type:SCS_SpecificCarrier.offsetToCarrier TTCN: p_OffsetToCarrier)
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1; # (Type:SubcarrierSpacing TTCN: p_SubcarrierSpacing we should put "kHz30")
|
||||
dl_carrierBandwidth = 106; #51; # (type:SCS_SpecificCarrier.carrierBandwidth TTCN: p_CarrierBandwidth) we should also put p_DL_ChannelBandwidth = 40
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 28875; #13750; # it works also for 20 MHZ bandwidth (51 PRB of 30 KHz)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
|
||||
# pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 11; # (Type ControlResourceSetZero TTCN: p_Coreset0_Index)
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106; # 51;
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 28875; #13750;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
|
||||
# rach-ConfigCommon
|
||||
# rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 160; # this is the most important parameter for PRACH: I made it alligned with TTCN conf
|
||||
# prach_msg1_FDM
|
||||
# 0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 15;
|
||||
preambleReceivedTargetPower = -90;
|
||||
# preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
# powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
# ra_ReponseWindow
|
||||
# 1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
# ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
# 1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
# oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 0; # You have the choice between only Preamble indexes 0, 1, 2, 3
|
||||
# ra_ContentionResolutionTimer
|
||||
# (0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
# prach-RootSequenceIndex_PR
|
||||
# 1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
# pucch-ConfigCommon
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1; # (Type SubcarrierSpacing TTCN : p_SubcarrierSpacing)
|
||||
|
||||
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2; # its important to dinf this parameter : manadatory
|
||||
ssb_PositionsInBurst_Bitmap = 2;
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "127.0.0.2";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "127.0.0.2";
|
||||
#GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
#GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "/tmp/eNBSys.pipe"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "/tmp/eNBSrb.pipe"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "/tmp/eNBVng.pipe"; #Host for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "/tmp/eNBDrb.pipe"; #Host for System Simulator DRB Port
|
||||
SSMode = 2; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Harware setup/USRP
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
pusch_FailureThres = 100;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
ul_max_mcs = 28;
|
||||
#dl_harq_round_max = 1;
|
||||
#ul_harq_round_max = 1;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pucch0_dtx_threshold = 80;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
sdr_addrs = "mgmt_addr=192.168.20.2,addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
# drb_integrity = "no";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="error";
|
||||
pkt_log_level ="error";
|
||||
# hw_log_level ="debug";
|
||||
# phy_log_level ="debug";
|
||||
mac_log_level ="info";
|
||||
nr_mac_log_level ="info"
|
||||
# rlc_log_level ="info";
|
||||
# pdcp_log_level ="info";
|
||||
rrc_log_level ="debug";
|
||||
#nr_rrc_log_level ="debug";
|
||||
# ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
};
|
||||
@@ -1,304 +0,0 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
#nr_cellid = 0L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 6; # (type integer TTCN: p_Kssb)
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 11; # (type ControlResourceSetZero TTCN: p_Coreset0_Index) #p_Coreset0_OffsetRB (expressed in PRB of 30 KHz) depends On p_Coreset0_Index
|
||||
searchSpaceZero = 0; # Cr0_id -> cr0_offset: (0,0) (1,1) (2,2) (3,3) (4,4) (5,0), (6,1) (7,2) (8,3) (9,4) (10,12) (11,14) (12,16) (13,12) (14,14) (15,16)
|
||||
}); # p_offsetCarrierCoreset0 = p_OffsetToPointA/2 - p_OffsetToCarrier - p_Coreset0_OffsetRB
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
# spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 620640; # 3309.6 MHz # (type:ARFCN_VAlueNR TTCN: p_SSB_ARFCN)
|
||||
# absoluteFrequencySSB = 620352; #3305.28 MHZ
|
||||
dl_frequencyBand = 78; # (type:FreqBandIndiactorNR TTCN: p_FreqBandIndicatorNR) as band=78 then p_SSBSubcarrierSpacing=30kHz (38.104)
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 620058; #620040; # (type:ARFCN_VAlueNR TTCN: p_PointA)
|
||||
# dl_absoluteFrequencyPointA = 620058; # p_OffsetToPointA= (p_SSB_ARFCN-p_kssb-p_PointA)/12 - 10*p_SSBSubcarrierSpacing/15Khz - p_SubCarrierSpacing/15KHz*p_OffsetToCarrier = 28 (PRB of 15 kHz SCS)
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0; # (type:SCS_SpecificCarrier.offsetToCarrier TTCN: p_OffsetToCarrier)
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1; # (Type:SubcarrierSpacing TTCN: p_SubcarrierSpacing we should put "kHz30")
|
||||
dl_carrierBandwidth = 106; #51; # (type:SCS_SpecificCarrier.carrierBandwidth TTCN: p_CarrierBandwidth) we should also put p_DL_ChannelBandwidth = 40
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 28875; #13750; # it works also for 20 MHZ bandwidth (51 PRB of 30 KHz)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
|
||||
# pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 11; # (Type ControlResourceSetZero TTCN: p_Coreset0_Index)
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106; # 51;
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 28875; #13750;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
|
||||
# rach-ConfigCommon
|
||||
# rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 160; # this is the most important parameter for PRACH: I made it alligned with TTCN conf
|
||||
# prach_msg1_FDM
|
||||
# 0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 15;
|
||||
preambleReceivedTargetPower = -90;
|
||||
# preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
# powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
# ra_ReponseWindow
|
||||
# 1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
# ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
# 1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
# oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 0; # You have the choice between only Preamble indexes 0, 1, 2, 3
|
||||
# ra_ContentionResolutionTimer
|
||||
# (0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
# prach-RootSequenceIndex_PR
|
||||
# 1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
# pucch-ConfigCommon
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1; # (Type SubcarrierSpacing TTCN : p_SubcarrierSpacing)
|
||||
|
||||
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2; # its important to dinf this parameter : manadatory
|
||||
ssb_PositionsInBurst_Bitmap = 2;
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "127.0.0.2";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "lo";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "127.0.0.2";
|
||||
#GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
#GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
#GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
# IP Address and port numbers for System Simulator
|
||||
SSConfig = (
|
||||
{
|
||||
hostIp = "127.0.0.1"; #Host IP for System Simulator
|
||||
Sys_port = 7777; #Port Number for System Simulator Sys Port
|
||||
Sys_host = "/tmp/eNBSys.pipe"; #Host for System Simulator SYS Port
|
||||
Srb_port = 7778; #Port Number for System Simulator Srb Port
|
||||
Srb_host = "/tmp/eNBSrb.pipe"; #Host for System Simulator SRB Port
|
||||
Vng_port = 7779; #Port Number for System Simulator VNG Port
|
||||
Vng_host = "/tmp/eNBVng.pipe"; #Host for System Simulator VNG Port
|
||||
Vtp_port = 7780; #Port Number for System Simulator VTP Port
|
||||
Vtp_host = "/tmp/eNBVT.pipe"; #Host for System Simulator VTP Port
|
||||
Drb_port = 7781; #Port Number for System Simulator DRB Port
|
||||
Drb_host = "/tmp/eNBDrb.pipe"; #Host for System Simulator DRB Port
|
||||
SSMode = 2; #SSMode: 0 - eNB , 1- SYS_PORT test , 2- Harware setup/USRP
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
pusch_FailureThres = 100;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
ul_max_mcs = 28;
|
||||
#dl_harq_round_max = 1;
|
||||
#ul_harq_round_max = 1;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pucch0_dtx_threshold = 80;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
#sdr_addrs = "mgmt_addr=192.168.20.2,addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
# drb_integrity = "no";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
# hw_log_level ="debug";
|
||||
# phy_log_level ="debug";
|
||||
# mac_log_level ="debug";
|
||||
# rlc_log_level ="info";
|
||||
# pdcp_log_level ="info";
|
||||
# rrc_log_level ="info";
|
||||
# ngap_log_level ="debug";
|
||||
# f1ap_log_level ="info";
|
||||
};
|
||||
@@ -137,13 +137,7 @@ eNBs =
|
||||
};
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -156,9 +150,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.45";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.45";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.45";
|
||||
|
||||
@@ -174,13 +174,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -193,9 +187,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.46";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.46";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.46";
|
||||
|
||||
@@ -134,13 +134,7 @@ eNBs =
|
||||
};
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -153,9 +147,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.20";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.20";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.20";
|
||||
|
||||
@@ -172,12 +172,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.195";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.195"; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -190,9 +185,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.16.128";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.16.128";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.16.128";
|
||||
@@ -211,8 +204,8 @@ MACRLCs = (
|
||||
bler_target_upper = 20.0;
|
||||
bler_target_lower = 10.0;
|
||||
max_ul_rb_index = 27;
|
||||
puSch10xSnr = 190;
|
||||
puCch10xSnr = 160;
|
||||
puSch10xSnr = 250;
|
||||
puCch10xSnr = 230;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -231,8 +224,8 @@ RUs = (
|
||||
local_rf = "yes"
|
||||
nb_tx = 2
|
||||
nb_rx = 2
|
||||
att_tx = 10
|
||||
att_rx = 5;
|
||||
att_tx = 12
|
||||
att_rx = 0;
|
||||
bands = [38];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
|
||||
@@ -172,12 +172,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.195";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.195"; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -190,9 +185,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.16.128";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.16.128";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.16.128";
|
||||
@@ -211,8 +204,8 @@ MACRLCs = (
|
||||
bler_target_upper = 20.0;
|
||||
bler_target_lower = 10.0;
|
||||
max_ul_rb_index = 27;
|
||||
puSch10xSnr = 190;
|
||||
puCch10xSnr = 160;
|
||||
puSch10xSnr = 280;
|
||||
puCch10xSnr = 250;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -231,8 +224,8 @@ RUs = (
|
||||
local_rf = "yes"
|
||||
nb_tx = 2
|
||||
nb_rx = 2
|
||||
att_tx = 10
|
||||
att_rx = 5;
|
||||
att_tx = 18
|
||||
att_rx = 0;
|
||||
bands = [38];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
|
||||
@@ -172,12 +172,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -190,9 +185,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
|
||||
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";
|
||||
|
||||
@@ -134,13 +134,7 @@ eNBs =
|
||||
};
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -153,9 +147,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.45";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.45";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.45";
|
||||
|
||||
@@ -134,13 +134,7 @@ eNBs =
|
||||
};
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -153,9 +147,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.45";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.45";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.45";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.20";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.20";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.20";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.46";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.46";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.46";
|
||||
|
||||
@@ -172,13 +172,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -191,9 +185,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.1";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.1";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.1";
|
||||
@@ -206,7 +198,6 @@ eNBs =
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo";
|
||||
remote_s_address = "127.0.0.1";
|
||||
local_s_address = "127.0.0.1";
|
||||
local_s_portc = 50001;
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.20";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.20";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.20";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.20";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.20";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.20";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.30";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.30";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.30";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.46";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.46";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.46";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.46";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.46";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.46";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.61.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.61.3"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.61.20";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.61.20";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.61.20";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.18.48";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.18.48"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "no";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.18.46";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.18.46";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.18.46";
|
||||
|
||||
@@ -180,12 +180,7 @@ eNBs =
|
||||
t_dc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
////////// MCE parameters:
|
||||
target_mce_m2_ip_address = ( { ipv4 = "127.0.0.7";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
target_mce_m2_ip_address = ({ ipv4 = "127.0.0.7"; });
|
||||
|
||||
///M2
|
||||
enable_enb_m2 = "yes";
|
||||
@@ -208,9 +203,7 @@ eNBs =
|
||||
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";
|
||||
@@ -252,12 +245,7 @@ MCEs = (
|
||||
//M3
|
||||
enable_mce_m3 = "yes";
|
||||
|
||||
target_mme_m3_ip_address = ( { ipv4 = "127.0.0.18";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
target_mme_m3_ip_address = ({ ipv4 = "127.0.0.18"; });
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -179,13 +179,7 @@ eNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; port = 36412; });
|
||||
|
||||
enable_measurement_reports = "no";
|
||||
|
||||
@@ -198,9 +192,7 @@ eNBs =
|
||||
|
||||
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";
|
||||
|
||||
@@ -177,13 +177,7 @@ eNBs =
|
||||
enable_measurement_reports = "yes";
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "172.21.16.137";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "172.21.16.137"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
@@ -194,9 +188,7 @@ eNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.68.130";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.68.130";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.68.130";
|
||||
|
||||
@@ -22,7 +22,6 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "eth0";
|
||||
local_s_address = "192.168.71.150";
|
||||
remote_s_address = "192.168.71.171";
|
||||
local_s_portc = 501;
|
||||
@@ -40,19 +39,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.150";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.150";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -22,9 +22,8 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "eth0";
|
||||
local_s_address = "192.168.68.194";
|
||||
remote_s_address = "192.168.68.195";
|
||||
local_s_address = "127.0.0.4";
|
||||
remote_s_address = "127.0.0.5";
|
||||
local_s_portc = 501;
|
||||
local_s_portd = 2153;
|
||||
remote_s_portc = 500;
|
||||
@@ -40,20 +39,13 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.16.137";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.16.137"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.68.194";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.68.194";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.109";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.109";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "lo";
|
||||
local_s_address = "192.168.71.150";
|
||||
remote_s_address = "0.0.0.0"; # multiple DUs
|
||||
local_s_portc = 501;
|
||||
@@ -41,12 +40,7 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "oai-amf"; });
|
||||
|
||||
E1_INTERFACE =
|
||||
(
|
||||
@@ -61,8 +55,7 @@ gNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/24";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.150/24";
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -94,5 +87,6 @@ security = {
|
||||
rrc_log_level ="info";
|
||||
f1ap_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
sctp_log_level ="info";
|
||||
};
|
||||
|
||||
|
||||
@@ -23,9 +23,8 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "eth0";
|
||||
local_s_address = "192.168.68.194";
|
||||
remote_s_address = "192.168.68.195";
|
||||
local_s_address = "127.0.0.4";
|
||||
remote_s_address = "127.0.0.5";
|
||||
local_s_portc = 501;
|
||||
local_s_portd = 2153;
|
||||
remote_s_portc = 500;
|
||||
@@ -41,28 +40,22 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.16.137";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.16.137"; });
|
||||
|
||||
E1_INTERFACE =
|
||||
(
|
||||
{
|
||||
type = "cp";
|
||||
ipv4_cucp = "192.168.68.194";
|
||||
ipv4_cucp = "127.0.0.4";
|
||||
port_cucp = 38462;
|
||||
ipv4_cuup = "192.168.68.196";
|
||||
ipv4_cuup = "127.0.0.6";
|
||||
port_cuup = 38462;
|
||||
}
|
||||
)
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.68.194";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.109";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
@@ -21,7 +21,6 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "lo";
|
||||
local_s_address = "192.168.72.161";
|
||||
remote_s_address = "192.168.72.171";
|
||||
local_s_portc = 501;
|
||||
@@ -48,9 +47,7 @@ gNBs =
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.161/24";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.161/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -21,9 +21,8 @@ gNBs =
|
||||
|
||||
tr_s_preference = "f1";
|
||||
|
||||
local_s_if_name = "lo";
|
||||
local_s_address = "192.168.68.196";
|
||||
remote_s_address = "192.168.68.195";
|
||||
local_s_address = "127.0.0.6";
|
||||
remote_s_address = "127.0.0.5";
|
||||
local_s_portc = 501;
|
||||
local_s_portd = 2153;
|
||||
remote_s_portc = 500;
|
||||
@@ -41,17 +40,15 @@ gNBs =
|
||||
(
|
||||
{
|
||||
type = "up";
|
||||
ipv4_cucp = "192.168.68.194";
|
||||
ipv4_cuup = "192.168.68.196";
|
||||
ipv4_cucp = "127.0.0.4";
|
||||
ipv4_cuup = "127.0.0.6";
|
||||
}
|
||||
)
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.68.196";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.68.196";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.109";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.109";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
}
|
||||
|
||||
@@ -168,7 +168,6 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "f1";
|
||||
local_n_if_name = "eth0";
|
||||
local_n_address = "192.168.72.142";
|
||||
remote_n_address = "192.168.72.140";
|
||||
local_n_portc = 500;
|
||||
@@ -207,14 +206,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
|
||||
@@ -162,9 +162,8 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "f1";
|
||||
local_n_if_name = "eth0";
|
||||
local_n_address = "192.168.68.195";
|
||||
remote_n_address = "192.168.68.194";
|
||||
local_n_address = "127.0.0.5";
|
||||
remote_n_address = "127.0.0.4";
|
||||
local_n_portc = 500;
|
||||
local_n_portd = 2153;
|
||||
remote_n_portc = 501;
|
||||
@@ -203,14 +202,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
|
||||
@@ -168,7 +168,6 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "f1";
|
||||
local_n_if_name = "eth0";
|
||||
local_n_address = "192.168.71.171";
|
||||
remote_n_address = "192.168.71.150";
|
||||
local_n_portc = 500;
|
||||
@@ -207,14 +206,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
@@ -231,3 +222,31 @@ log_config: {
|
||||
rlc_log_level = "info";
|
||||
f1ap_log_level = "info";
|
||||
};
|
||||
|
||||
#/* configuration for channel modelisation */
|
||||
#/* To be included in main config file when */
|
||||
#/* channel modelisation is used (rfsimulator with chanmod options enabled) */
|
||||
channelmod = {
|
||||
max_chan = 10;
|
||||
modellist = "modellist_rfsimu_1";
|
||||
modellist_rfsimu_1 = (
|
||||
{ # DL, modify on UE side
|
||||
model_name = "rfsimu_channel_enB0"
|
||||
type = "AWGN";
|
||||
ploss_dB = 20;
|
||||
noise_power_dB = -4;
|
||||
forgetfact = 0;
|
||||
offset = 0;
|
||||
ds_tdl = 0;
|
||||
},
|
||||
{ # UL, modify on gNB side
|
||||
model_name = "rfsimu_channel_ue0"
|
||||
type = "AWGN";
|
||||
ploss_dB = 20;
|
||||
noise_power_dB = -2;
|
||||
forgetfact = 0;
|
||||
offset = 0;
|
||||
ds_tdl = 0;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
@@ -169,9 +169,8 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "f1";
|
||||
local_n_if_name = "eth0";
|
||||
local_n_address = "192.168.68.195";
|
||||
remote_n_address = "192.168.68.194";
|
||||
local_n_address = "127.0.0.5";
|
||||
remote_n_address = "127.0.0.4";
|
||||
local_n_portc = 500;
|
||||
local_n_portd = 2153;
|
||||
remote_n_portc = 501;
|
||||
@@ -208,14 +207,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
|
||||
@@ -190,19 +190,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.131";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eno";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.131";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -213,7 +206,6 @@ gNBs =
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo:";
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50001; // vnf p5 port
|
||||
|
||||
@@ -150,19 +150,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.12.26"; });
|
||||
|
||||
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
|
||||
};
|
||||
@@ -216,14 +209,6 @@ rfsimulator: {
|
||||
serveraddr = "server";
|
||||
};
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -85,7 +85,7 @@ gNBs =
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
@@ -162,20 +162,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.12.26"; port = 36412; });
|
||||
|
||||
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
|
||||
};
|
||||
@@ -225,14 +217,6 @@ rfsimulator: {
|
||||
serveraddr = "server";
|
||||
};
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -162,20 +162,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.12.26"; port = 36412; });
|
||||
|
||||
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
|
||||
};
|
||||
@@ -221,14 +213,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -162,18 +162,10 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.12.26"; port = 36412; });
|
||||
|
||||
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
|
||||
};
|
||||
@@ -205,12 +197,6 @@ RUs = ({
|
||||
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
|
||||
});
|
||||
|
||||
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";
|
||||
});
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -164,18 +164,10 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||
ipv6 = "192:168:30::17";
|
||||
port = 36412 ;
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
mme_ip_address = ({ ipv4 = "192.168.12.26"; port = 36412; });
|
||||
|
||||
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
|
||||
};
|
||||
@@ -207,12 +199,6 @@ RUs = ({
|
||||
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
|
||||
});
|
||||
|
||||
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";
|
||||
});
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -158,13 +158,7 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
# mme_ip_address = ( { ipv4 = "192.168.68.130";
|
||||
# ipv6 = "192:168:30::17";
|
||||
# port = 36412 ;
|
||||
# active = "yes";
|
||||
# preference = "ipv4";
|
||||
# }
|
||||
# );
|
||||
# mme_ip_address = ({ ipv4 = "192.168.68.130"; port = 36412; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
@@ -173,17 +167,11 @@ gNBs =
|
||||
t_dc_prep = 1000; /* unit: millisecond */
|
||||
t_dc_overall = 2000; /* unit: millisecond */
|
||||
|
||||
target_enb_x2_ip_address = ( { ipv4 = "192.168.68.130";
|
||||
ipv6 = "192:168:30::17";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
target_enb_x2_ip_address = ({ ipv4 = "192.168.68.130"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_S1_MME = "192.168.68.194";
|
||||
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_S1U = "192.168.68.194";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
GNB_IPV4_ADDRESS_FOR_X2C = "192.168.68.194";
|
||||
@@ -227,14 +215,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -163,12 +163,7 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||
|
||||
///X2
|
||||
enable_x2 = "yes";
|
||||
@@ -176,19 +171,12 @@ gNBs =
|
||||
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||
t_dc_prep = 1000; /* unit: millisecond */
|
||||
t_dc_overall = 2000; /* unit: millisecond */
|
||||
target_enb_x2_ip_address = (
|
||||
{ ipv4 = "CI_FR1_CTL_ENB_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
target_enb_x2_ip_address = ({ ipv4 = "CI_FR1_CTL_ENB_IP_ADDR"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
GNB_IPV4_ADDRESS_FOR_X2C = "CI_GNB_IP_ADDR";
|
||||
@@ -232,14 +220,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -162,18 +162,11 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/24";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -160,19 +160,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -218,14 +211,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
|
||||
@@ -28,11 +28,11 @@ gNBs =
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 2150 MHz + 14 PRBs@15kHz SCS (same as initial BWP), points to Subcarrier 0 of RB#10 of SSB block
|
||||
# this is 2150.43 MHz + 14 PRBs@15kHz SCS (same as initial BWP), points to Subcarrier 0 of RB#10 of SSB block
|
||||
absoluteFrequencySSB = 430590;
|
||||
dl_frequencyBand = 66;
|
||||
# this is 2150 MHz
|
||||
dl_absoluteFrequencyPointA = 430002;
|
||||
# this is 2150.43 MHz
|
||||
dl_absoluteFrequencyPointA = 430086;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
@@ -53,8 +53,8 @@ gNBs =
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 66;
|
||||
# this is 1750 MHz
|
||||
ul_absoluteFrequencyPointA = 350002;
|
||||
# this is 1750.43 MHz
|
||||
ul_absoluteFrequencyPointA = 350086;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
@@ -161,18 +161,11 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/26";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eno1";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/26";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -227,14 +220,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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_DISABLE";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
|
||||
253
ci-scripts/conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf
Normal file
253
ci-scripts/conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf
Normal file
@@ -0,0 +1,253 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
sa = 1;
|
||||
usrp-tx-thread-config = 1;
|
||||
tune-offset = 30720000;
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1; }) });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 0;
|
||||
pdsch_AntennaPorts_XP = 2;
|
||||
pusch_AntennaPorts = 2;
|
||||
do_CSIRS = 1;
|
||||
do_SRS = 1;
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3300.60 MHz + 81*12*30e-3 MHz = 3329.76
|
||||
absoluteFrequencySSB = 673344;
|
||||
# this is 3300.60 MHz
|
||||
dl_absoluteFrequencyPointA = 671400;
|
||||
dl_frequencyBand = 77;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 162;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
|
||||
initialDLBWPlocationAndBandwidth = 31624;
|
||||
#
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 77;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 162;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 31624;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 98;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 12;
|
||||
preambleReceivedTargetPower = -96;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -70;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 5;
|
||||
nrofDownlinkSlots = 2;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -20;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ({ ipv4 = "192.168.61.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.61.129/26";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.61.129/26";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pucch_TargetSNRx10 = 300;
|
||||
ulsch_max_frame_inactivity = 0;
|
||||
pusch_FailureThres = 100;
|
||||
ul_max_mcs = 28;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pusch_dtx_threshold = 20;
|
||||
max_ldpc_iterations = 20;
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 2;
|
||||
nb_rx = 2;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [77];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 72;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
sdr_addrs = "addr=192.168.80.53, clock_source=internal,time_source=internal"
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
};
|
||||
297
ci-scripts/conf_files/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf
Normal file
297
ci-scripts/conf_files/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf
Normal file
@@ -0,0 +1,297 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||
|
||||
//nr_cellid = 12345678L;
|
||||
nr_cellid = 1;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
pdsch_AntennaPorts_XP = 2;
|
||||
pdsch_AntennaPorts_N1 = 1;
|
||||
maxMIMO_layers = 2;
|
||||
pusch_AntennaPorts = 4;
|
||||
do_CSIRS = 1;
|
||||
do_SRS = 0 ;
|
||||
|
||||
pdcch_ConfigSIB1 = (
|
||||
{
|
||||
controlResourceSetZero = 11;
|
||||
searchSpaceZero = 0;
|
||||
}
|
||||
);
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
physCellId = 0;
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3450.72 MHz (center frequency)
|
||||
absoluteFrequencySSB = 666624;
|
||||
dl_frequencyBand = 77;
|
||||
# this is 3401.58 MHz
|
||||
dl_absoluteFrequencyPointA = 663348;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 273;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 1099; #38.101-1 Table 5.3.2-1
|
||||
#
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 11;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 77;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 273;
|
||||
pMax = 23;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 1099;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 159;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 0;
|
||||
preambleReceivedTargetPower = -100;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 7;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 2;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
# this is the offset between the last PRACH preamble power and the Msg3 PUSCH, 2 times the field value in dB
|
||||
msg3_DeltaPreamble = 2;
|
||||
p0_NominalWithGrant = -100;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 0;
|
||||
p0_nominal = -96;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 5;
|
||||
nrofDownlinkSlots = 3;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 1;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = 0;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.103"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.18.20";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.18.20";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 180;
|
||||
pucch_TargetSNRx10 = 230;
|
||||
ul_bler_target_upper=.35;
|
||||
ul_bler_target_lower=.15;
|
||||
pusch_FailureThres = 100;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 130
|
||||
pucch0_dtx_threshold = 80;
|
||||
pusch_dtx_threshold = -100;
|
||||
tx_amp_backoff_dB = 3;
|
||||
L1_rx_thread_core = 3;
|
||||
L1_tx_thread_core = 4;
|
||||
phase_compensation = 0; # needs to match O-RU configuration
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "no";
|
||||
nb_tx = 4;
|
||||
nb_rx = 4;
|
||||
att_tx = 0
|
||||
att_rx = 0;
|
||||
bands = [77];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
sf_extension = 0;
|
||||
eNB_instances = [0];
|
||||
ru_thread_core = 5;
|
||||
sl_ahead = 5;
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000,0x00007fff, 0x0000];
|
||||
clock_src = "internal";
|
||||
tr_preference = "raw_if4p5"; # important: activate FHI7.2
|
||||
do_precoding = 0; # needs to match O-RU configuration
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config : {
|
||||
global_log_level = "info";
|
||||
hw_log_level = "info";
|
||||
phy_log_level = "info";
|
||||
mac_log_level = "info";
|
||||
rlc_log_level = "info";
|
||||
pdcp_log_level = "info";
|
||||
rrc_log_level = "info";
|
||||
ngap_log_level = "info";
|
||||
f1ap_log_level = "info";
|
||||
};
|
||||
|
||||
fhi_72 = {
|
||||
dpdk_devices = ("0000:c3:11.0", "0000:c3:11.1");
|
||||
system_core = 0;
|
||||
io_core = 1;
|
||||
worker_cores = (2);
|
||||
du_addr = ("76:76:64:6e:00:01", "76:76:64:6e:00:01");
|
||||
ru_addr = ("98:ae:71:01:c5:eb", "98:ae:71:01:c5:eb");
|
||||
mtu = 9216; # check if xran uses this properly
|
||||
fh_config = ({
|
||||
Tadv_cp_dl = 125;
|
||||
T2a_cp_dl = (285, 429); # (min, max)
|
||||
T2a_cp_ul = (285, 429); # (min, max)
|
||||
T2a_up = (125, 428); # (min, max)
|
||||
Ta3 = (130, 170); # (min, max)
|
||||
T1a_cp_dl = (285, 470); # (min, max)
|
||||
T1a_cp_ul = (285, 429); # (min, max)
|
||||
T1a_up = (125, 350); # (min, max)
|
||||
Ta4 = (110, 180); # (min, max)
|
||||
ru_config = {
|
||||
iq_width = 9;
|
||||
iq_width_prach = 9;
|
||||
};
|
||||
prach_config = {
|
||||
eAxC_offset = 4;
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -2,6 +2,9 @@ Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
sa = 1;
|
||||
usrp-tx-thread-config = 1;
|
||||
|
||||
gNBs = (
|
||||
{
|
||||
////////// Identification parameters:
|
||||
@@ -10,23 +13,17 @@ gNBs = (
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 1; }); });
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst = 1; }); });
|
||||
|
||||
nr_cellid = 12345678L;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
ssb_SubcarrierOffset = 0;
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
#ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
pdcch_ConfigSIB1 = ({
|
||||
controlResourceSetZero = 12;
|
||||
searchSpaceZero = 10;
|
||||
});
|
||||
pdsch_AntennaPorts_XP = 2;
|
||||
pusch_AntennaPorts = 2;
|
||||
do_CSIRS = 1;
|
||||
do_SRS = 1;
|
||||
ul_prbblacklist = "135,136,137,138"
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
@@ -36,21 +33,21 @@ gNBs = (
|
||||
|
||||
# downlinkConfigCommon
|
||||
# frequencyInfoDL
|
||||
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3954.72
|
||||
absoluteFrequencySSB = 623424;#621312;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3900.60 MHz + (134 PRBs + 4 SCs)@30kHz SCS (GSCN: 8158)
|
||||
absoluteFrequencySSB = 673344;
|
||||
dl_frequencyBand = 77;
|
||||
# this is 3900.60 MHz
|
||||
dl_absoluteFrequencyPointA = 622152; #620040;
|
||||
dl_absoluteFrequencyPointA = 670068;
|
||||
|
||||
# scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
dl_carrierBandwidth = 273;
|
||||
|
||||
# initialDownlinkBWP
|
||||
# genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 28875;
|
||||
initialDLBWPlocationAndBandwidth = 1099;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
@@ -61,18 +58,18 @@ gNBs = (
|
||||
|
||||
# uplinkConfigCommon
|
||||
# frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
ul_frequencyBand = 77;
|
||||
# scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
ul_carrierBandwidth = 273;
|
||||
pMax = 20;
|
||||
|
||||
# initialUplinkBWP
|
||||
# genericParameters
|
||||
initialULBWPlocationAndBandwidth = 28875;
|
||||
initialULBWPlocationAndBandwidth = 1099;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
@@ -167,21 +164,12 @@ gNBs = (
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = (
|
||||
{
|
||||
ipv4 = "192.168.70.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.61.132"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "enp6s0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "10.87.0.21";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "enp6s0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "10.87.0.21";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.61.129/24";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.61.129/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
}
|
||||
|
||||
@@ -193,13 +181,11 @@ MACRLCs = (
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 300;
|
||||
pusch_TargetSNRx10 = 200;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
pusch_FailureThres = 100;
|
||||
ulsch_max_frame_inactivity = 10;
|
||||
ul_max_mcs = 28;
|
||||
#dl_harq_round_max = 1;
|
||||
#ul_harq_round_max = 1;
|
||||
pusch_FailureThres = 1000;
|
||||
ulsch_max_frame_inactivity = 0;
|
||||
ul_max_mcs = 25;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -208,6 +194,7 @@ L1s = (
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
max_ldpc_iterations = 15;
|
||||
pucch0_dtx_threshold = 80;
|
||||
}
|
||||
);
|
||||
@@ -215,39 +202,21 @@ L1s = (
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
nb_tx = 2;
|
||||
nb_rx = 2;
|
||||
att_tx = 12;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
bands = [77];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
max_rxgain = 72;
|
||||
eNB_instances = [0];
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000];
|
||||
#clock_src = "internal";
|
||||
sdr_addrs = "mgmt_addr=192.168.20.2,addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||
sdr_addrs = "addr=192.168.80.53,clock_source=internal,time_source=internal"
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
serveraddr = "server";
|
||||
serverport = "4043";
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs";
|
||||
};
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
@@ -275,5 +244,5 @@ log_config :
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="info";
|
||||
f1ap_log_level ="debug";
|
||||
};
|
||||
@@ -158,19 +158,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.128";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eno1";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.128";
|
||||
GNB_PORT_FOR_NGU = 2152; # Spec 2152
|
||||
};
|
||||
@@ -181,7 +174,6 @@ gNBs =
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
local_s_if_name = "lo:";
|
||||
remote_s_address = "127.0.0.1"; // pnf addr [!]
|
||||
local_s_address = "127.0.0.2"; // vnf addr
|
||||
local_s_portc = 50601; // vnf p5 port
|
||||
|
||||
@@ -13,7 +13,7 @@ gNBs =
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({sst = 1;}); });
|
||||
plmn_list = ({ mcc = 001; mnc = 02; mnc_length = 2; snssaiList = ({sst = 1;}); });
|
||||
|
||||
nr_cellid = 12345678L
|
||||
|
||||
@@ -170,19 +170,12 @@ gNBs =
|
||||
};
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.6.100";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.100"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno33np0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.124/22";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eno33np0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.124/22";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -85,7 +85,7 @@ gNBs =
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
@@ -161,19 +161,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/24";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -219,14 +212,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator :
|
||||
{
|
||||
|
||||
@@ -88,7 +88,7 @@ gNBs =
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
@@ -164,19 +164,12 @@ gNBs =
|
||||
};
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -227,14 +220,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
|
||||
313
ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.neighbour.conf
Normal file
313
ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.neighbour.conf
Normal file
@@ -0,0 +1,313 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 0x1; }) });
|
||||
|
||||
@include "neighbour-config.conf"
|
||||
nr_cellid = 1;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
do_CSIRS = 0;
|
||||
do_SRS = 0;
|
||||
min_rxtxtime = 6;
|
||||
pdcch_ConfigSIB1 = (
|
||||
{
|
||||
controlResourceSetZero = 12;
|
||||
searchSpaceZero = 0;
|
||||
}
|
||||
);
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
|
||||
absoluteFrequencySSB = 641280;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3600 MHz
|
||||
dl_absoluteFrequencyPointA = 640008;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
# this is RBstart=27,L=48 (275*(L-1))+RBstart
|
||||
initialDLBWPlocationAndBandwidth = 28875; # 6366 12925 12956 28875 12952
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 12;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
pMax = 20;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 28875;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 98;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 13;
|
||||
preambleReceivedTargetPower = -96;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 6;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
msg3_DeltaPreamble = 1;
|
||||
p0_NominalWithGrant =-90;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 40;
|
||||
p0_nominal = -90;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -25;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
# Dedicated Serving Cell Configuration
|
||||
servingCellConfigDedicated = ({
|
||||
# BWP-Downlink
|
||||
# BWP 1 Configuration
|
||||
dl_bwp-Id_1 = 1;
|
||||
dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_bwp1_subcarrierSpacing = 1;
|
||||
|
||||
# BWP 2 Configuration
|
||||
dl_bwp-Id_2 = 2;
|
||||
dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_bwp2_subcarrierSpacing = 1;
|
||||
|
||||
# BWP 3 Configuration
|
||||
dl_bwp-Id_3 = 3;
|
||||
dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_bwp3_subcarrierSpacing = 1;
|
||||
|
||||
firstActiveDownlinkBWP-Id = 1; #BWP-Id
|
||||
defaultDownlinkBWP-Id = 1; #BWP-Id
|
||||
|
||||
# bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
|
||||
# ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
|
||||
# ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
|
||||
# spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
|
||||
|
||||
# UplinkConfig
|
||||
# BWP-Uplink
|
||||
# BWP 1 Configuration
|
||||
ul_bwp-Id_1 = 1;
|
||||
ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_bwp1_subcarrierSpacing = 1;
|
||||
|
||||
# BWP 2 Configuration
|
||||
ul_bwp-Id_2 = 2;
|
||||
ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_bwp2_subcarrierSpacing = 1;
|
||||
|
||||
# BWP 3 Configuration
|
||||
ul_bwp-Id_3 = 3;
|
||||
ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_bwp3_subcarrierSpacing = 1;
|
||||
|
||||
firstActiveUplinkBWP-Id = 1; #BWP-Id
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP : {
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.70.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES : {
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 250;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
ulsch_max_frame_inactivity = 0;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 120;
|
||||
pucch0_dtx_threshold = 100;
|
||||
ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
|
||||
}
|
||||
);
|
||||
|
||||
RUs = ({
|
||||
local_rf = "yes";
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 114;
|
||||
eNB_instances = [0];
|
||||
#beamforming 1x4 matrix:
|
||||
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
|
||||
clock_src = "internal";
|
||||
});
|
||||
|
||||
|
||||
rfsimulator: {
|
||||
serveraddr = "server";
|
||||
serverport = 4043;
|
||||
options = (); #("saviq"); or/and "chanmod"
|
||||
modelname = "AWGN";
|
||||
IQfile = "/tmp/rfsimulator.iqs"
|
||||
}
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config : {
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
nr_rrc_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="debug";
|
||||
f1ap_log_level ="debug";
|
||||
};
|
||||
@@ -163,19 +163,12 @@ gNBs =
|
||||
};
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -226,14 +219,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -156,20 +156,13 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.16.137";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.16.137"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.68.194";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.68.194";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.109";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.109";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
|
||||
@@ -176,19 +176,12 @@ gNBs =
|
||||
};
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -240,14 +233,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -177,19 +177,12 @@ gNBs =
|
||||
};
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "em1";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -240,14 +233,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -82,7 +82,7 @@ gNBs =
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 4;
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
@@ -159,19 +159,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "192.168.71.132";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "192.168.71.132"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/24";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/24";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -222,14 +215,6 @@ rfsimulator: {
|
||||
serveraddr = "server";
|
||||
};
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -0,0 +1,296 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||
|
||||
nr_cellid = 1;
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
pdsch_AntennaPorts_XP = 2;
|
||||
pdsch_AntennaPorts_N1 = 1;
|
||||
maxMIMO_layers = 2;
|
||||
pusch_AntennaPorts = 4;
|
||||
do_CSIRS = 1;
|
||||
do_SRS = 0 ;
|
||||
sib1_tda = 15;
|
||||
# force_UL256qam_off = 1;
|
||||
|
||||
pdcch_ConfigSIB1 = (
|
||||
{
|
||||
controlResourceSetZero = 11;
|
||||
searchSpaceZero = 0;
|
||||
}
|
||||
);
|
||||
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
#spCellConfigCommon
|
||||
|
||||
physCellId = 0;
|
||||
# n_TimingAdvanceOffset = 0;
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3450.72 MHz (center frequency)
|
||||
absoluteFrequencySSB = 623328;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3401.58 MHz
|
||||
dl_absoluteFrequencyPointA = 620052;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 273;
|
||||
#initialDownlinkBWP
|
||||
#genericParameters
|
||||
initialDLBWPlocationAndBandwidth = 1099; #38.101-1 Table 5.3.2-1
|
||||
#
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
#pdcch-ConfigCommon
|
||||
initialDLBWPcontrolResourceSetZero = 11;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
|
||||
#uplinkConfigCommon
|
||||
#frequencyInfoUL
|
||||
ul_frequencyBand = 78;
|
||||
#scs-SpecificCarrierList
|
||||
ul_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 273;
|
||||
pMax = 23;
|
||||
#initialUplinkBWP
|
||||
#genericParameters
|
||||
initialULBWPlocationAndBandwidth = 1099;
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
#rach-ConfigCommon
|
||||
#rach-ConfigGeneric
|
||||
prach_ConfigurationIndex = 151;
|
||||
#prach_msg1_FDM
|
||||
#0 = one, 1=two, 2=four, 3=eight
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 0;
|
||||
preambleReceivedTargetPower = -100;
|
||||
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||
preambleTransMax = 8;
|
||||
#powerRampingStep
|
||||
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||
powerRampingStep = 1;
|
||||
#ra_ReponseWindow
|
||||
#1,2,4,8,10,20,40,80
|
||||
ra_ResponseWindow = 5;
|
||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
|
||||
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
#ra_ContentionResolutionTimer
|
||||
#(0..7) 8,16,24,32,40,48,56,64
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
#prach-RootSequenceIndex_PR
|
||||
#1 = 839, 2 = 139
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||
#
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
# restrictedSetConfig
|
||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||
restrictedSetConfig = 0,
|
||||
|
||||
# this is the offset between the last PRACH preamble power and the Msg3 PUSCH, 2 times the field value in dB
|
||||
msg3_DeltaPreamble = 2;
|
||||
p0_NominalWithGrant = -96;
|
||||
|
||||
# pucch-ConfigCommon setup :
|
||||
# pucchGroupHopping
|
||||
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 0;
|
||||
p0_nominal = -96;
|
||||
# ssb_PositionsInBurs_BitmapPR
|
||||
# 1=short, 2=medium, 3=long
|
||||
ssb_PositionsInBurst_PR = 2;
|
||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||
|
||||
# ssb_periodicityServingCell
|
||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||
ssb_periodicityServingCell = 2;
|
||||
|
||||
# dmrs_TypeA_position
|
||||
# 0 = pos2, 1 = pos3
|
||||
dmrs_TypeA_Position = 0;
|
||||
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
subcarrierSpacing = 1;
|
||||
|
||||
|
||||
#tdd-UL-DL-ConfigurationCommon
|
||||
# subcarrierSpacing
|
||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||
referenceSubcarrierSpacing = 1;
|
||||
# pattern1
|
||||
# dl_UL_TransmissionPeriodicity
|
||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||
dl_UL_TransmissionPeriodicity = 6;
|
||||
nrofDownlinkSlots = 7;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 2;
|
||||
nrofUplinkSymbols = 4;
|
||||
|
||||
ssPBCH_BlockPower = -15;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.103"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.18.20";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.18.20";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 100;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
dl_bler_target_upper=.35;
|
||||
dl_bler_target_lower=.15;
|
||||
ul_bler_target_upper=.35;
|
||||
ul_bler_target_lower=.15;
|
||||
pusch_FailureThres = 1000;
|
||||
ul_max_mcs = 28;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 90;
|
||||
pucch0_dtx_threshold = 80;
|
||||
pusch_dtx_threshold = 10;
|
||||
max_ldpc_iterations = 15;
|
||||
tx_amp_backoff_dB = 12; # needs to match O-RU configuration
|
||||
L1_rx_thread_core = 3;
|
||||
L1_tx_thread_core = 4;
|
||||
phase_compensation = 0; # needs to match O-RU configuration
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "no";
|
||||
nb_tx = 4;
|
||||
nb_rx = 4;
|
||||
att_tx = 0
|
||||
att_rx = 0;
|
||||
bands = [78];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
sf_extension = 0;
|
||||
eNB_instances = [0];
|
||||
ru_thread_core = 5;
|
||||
sl_ahead = 10;
|
||||
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||
bf_weights = [0x00007fff, 0x0000,0x00007fff, 0x0000];
|
||||
tr_preference = "raw_if4p5"; # important: activate FHI7.2
|
||||
do_precoding = 0; # needs to match O-RU configuration
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nea0, nea1, nea2, nea3
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
|
||||
# preferred integrity algorithms
|
||||
# the first one of the list that an UE supports in chosen
|
||||
# valid values: nia0, nia1, nia2, nia3
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
|
||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
hw_log_level ="info";
|
||||
phy_log_level ="info";
|
||||
mac_log_level ="info";
|
||||
rlc_log_level ="info";
|
||||
pdcp_log_level ="info";
|
||||
rrc_log_level ="info";
|
||||
ngap_log_level ="info";
|
||||
f1ap_log_level ="info";
|
||||
};
|
||||
|
||||
fhi_72 = {
|
||||
dpdk_devices = ("0000:c3:11.0", "0000:c3:11.1");
|
||||
system_core = 0;
|
||||
io_core = 1;
|
||||
worker_cores = (2);
|
||||
du_addr = ("00:11:22:33:44:66", "00:11:22:33:44:67");
|
||||
ru_addr = ("70:b3:d5:e1:5b:81", "70:b3:d5:e1:5b:81");
|
||||
mtu = 9216;
|
||||
file_prefix = "fhi_72";
|
||||
fh_config = ({
|
||||
Tadv_cp_dl = 125;
|
||||
T2a_cp_dl = (259, 500);
|
||||
T2a_cp_ul = (25, 500);
|
||||
T2a_up = (134, 375);
|
||||
Ta3 = (152, 160);
|
||||
T1a_cp_dl = (419, 470);
|
||||
T1a_cp_ul = (285, 336);
|
||||
T1a_up = (294, 345);
|
||||
Ta4 = (0, 200);
|
||||
ru_config = {
|
||||
iq_width = 9;
|
||||
iq_width_prach = 9;
|
||||
};
|
||||
prach_config = {
|
||||
eAxC_offset = 4;
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -16,7 +16,7 @@ gNBs =
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 0x1;
|
||||
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ({ sst =0x1; }) });
|
||||
plmn_list = ({ mcc = 001; mnc = 02; mnc_length = 2; snssaiList = ({ sst =0x1; }) });
|
||||
|
||||
nr_cellid = 12345678L
|
||||
|
||||
@@ -35,10 +35,10 @@ gNBs =
|
||||
# downlinkConfigCommon
|
||||
#frequencyInfoDL
|
||||
# this is 3410.4 MHz => 301 REs from PointA 25 PRBs + 1 RE
|
||||
absoluteFrequencySSB = 627360;
|
||||
absoluteFrequencySSB = 630048;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3410.4 - (51*12*30e-3/2) = 3401.22 MHz
|
||||
dl_absoluteFrequencyPointA = 626748;
|
||||
dl_absoluteFrequencyPointA = 629436;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
@@ -166,19 +166,12 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.6.100";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.100"; });
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno33np0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.124/20";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eno33np0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.124/20";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
@@ -239,14 +232,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -30,7 +30,7 @@ gNBs =
|
||||
absoluteFrequencySSB = 620736;
|
||||
dl_frequencyBand = 78;
|
||||
# this is 3300.30 MHz
|
||||
dl_absoluteFrequencyPointA = 620052;
|
||||
dl_absoluteFrequencyPointA = 620020;
|
||||
#scs-SpecificCarrierList
|
||||
dl_offstToCarrier = 0;
|
||||
# subcarrierSpacing
|
||||
@@ -156,20 +156,13 @@ gNBs =
|
||||
|
||||
|
||||
////////// AMF parameters:
|
||||
amf_ip_address = ( { ipv4 = "172.21.16.137";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
amf_ip_address = ({ ipv4 = "172.21.16.137"; });
|
||||
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.68.194";
|
||||
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.68.194";
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.109";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.109";
|
||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
@@ -214,14 +207,6 @@ RUs = (
|
||||
}
|
||||
);
|
||||
|
||||
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";
|
||||
}
|
||||
);
|
||||
|
||||
security = {
|
||||
# preferred ciphering algorithms
|
||||
|
||||
@@ -13,7 +13,6 @@ L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "nfapi";
|
||||
local_n_if_name = "eno1";
|
||||
remote_n_address = "127.0.0.1";
|
||||
local_n_address = "127.0.0.1";
|
||||
local_n_portc = 50000;
|
||||
|
||||
76
ci-scripts/conf_files/neighbour-config.conf
Normal file
76
ci-scripts/conf_files/neighbour-config.conf
Normal file
@@ -0,0 +1,76 @@
|
||||
neighbour_list = (
|
||||
{
|
||||
nr_cellid = 1;
|
||||
neighbour_cell_configuration = (
|
||||
{
|
||||
gNB_ID = 0xb00;
|
||||
nr_cellid = 2;
|
||||
physical_cellId = 0x002;
|
||||
absoluteFrequencySSB = 641280 ;
|
||||
subcarrierSpacing = 1; #30 KHz
|
||||
plmn = { mcc = 216; mnc = 03; mnc_length = 2};
|
||||
tracking_area_code = 2;
|
||||
},
|
||||
{
|
||||
gNB_ID = 0xa00;
|
||||
nr_cellid = 3;
|
||||
physical_cellId = 0x003;
|
||||
absoluteFrequencySSB = 641280 ;
|
||||
subcarrierSpacing = 1; #30 KHz
|
||||
plmn = { mcc = 999; mnc = 99; mnc_length = 2};
|
||||
tracking_area_code = 3;
|
||||
},
|
||||
{
|
||||
gNB_ID = 0xc00;
|
||||
nr_cellid = 4;
|
||||
physical_cellId = 0x004;
|
||||
absoluteFrequencySSB = 641280 ;
|
||||
subcarrierSpacing = 1; #30 KHz
|
||||
plmn = { mcc = 999; mnc = 99; mnc_length = 2};
|
||||
tracking_area_code = 4;
|
||||
}
|
||||
)
|
||||
},
|
||||
{
|
||||
nr_cellid = 2;
|
||||
neighbour_cell_configuration = (
|
||||
{
|
||||
gNB_ID = 0xe00;
|
||||
nr_cellid = 1;
|
||||
physical_cellId = 0x000;
|
||||
absoluteFrequencySSB = 641280 ;
|
||||
subcarrierSpacing = 1; #30 KHz
|
||||
plmn = { mcc = 001; mnc = 01; mnc_length = 2};
|
||||
tracking_area_code = 1;
|
||||
}
|
||||
)
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
nr_measurement_configuration = {
|
||||
Periodical = {
|
||||
enable = 1;
|
||||
includeBeamMeasurements = 1;
|
||||
maxNrofRS_IndexesToReport = 4;
|
||||
};
|
||||
|
||||
A2 = {
|
||||
enable = 1;
|
||||
threshold = 60;
|
||||
timeToTrigger = 1;
|
||||
};
|
||||
|
||||
A3 = ({
|
||||
cell_id = -1; #Default
|
||||
offset = 10;
|
||||
hysteresis = 0;
|
||||
timeToTrigger = 1
|
||||
}, {
|
||||
cell_id = 2;
|
||||
offset = 5;
|
||||
hysteresis = 1;
|
||||
timeToTrigger = 2
|
||||
})
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user